Compare commits
6 Commits
8181da421e
...
1.1c
Author | SHA1 | Date | |
---|---|---|---|
6596f347a1
|
|||
a2dd009533
|
|||
4104104b16
|
|||
0d838b6209
|
|||
1d41671fb6
|
|||
84ebdcc9a8
|
1
.github/workflows/build.yml
vendored
1
.github/workflows/build.yml
vendored
@ -1,3 +1,4 @@
|
|||||||
|
#file: noinspection SpellCheckingInspection
|
||||||
|
|
||||||
name: CI-Android APK
|
name: CI-Android APK
|
||||||
|
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
<!--suppress ALL -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<h1>Keepass Fidelity</h1>
|
<h1>Keepass Fidelity</h1>
|
||||||
<p>A minimalist fidelity/loyalty card plugin</p>
|
<p>A minimalist fidelity/loyalty card plugin</p>
|
||||||
@ -28,6 +32,7 @@
|
|||||||
- Recently used history for fast access
|
- Recently used history for fast access
|
||||||
- Protect entries from caching
|
- Protect entries from caching
|
||||||
- Minimalist design and features
|
- Minimalist design and features
|
||||||
|
- Supported Formats:CODE_39, CODE_93, CODE_128, EAN_8, EAN_13, UPC_A, UPC_E, CODE_QR, PDF_417, AZTEC, CODABAR, DATA_MATRIX, ITF
|
||||||
|
|
||||||
## 📳 Installation
|
## 📳 Installation
|
||||||
|
|
||||||
@ -54,7 +59,6 @@ Keepass-Fidelity is a user-driven project. We welcome any contribution, big or s
|
|||||||
|
|
||||||
Thanks to all contributors, the developers of our dependencies, and our users.
|
Thanks to all contributors, the developers of our dependencies, and our users.
|
||||||
|
|
||||||
|
|
||||||
## 📝 License
|
## 📝 License
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -19,8 +19,6 @@ android {
|
|||||||
resValue "string", "app_name", "Keepass Fidelity"
|
resValue "string", "app_name", "Keepass Fidelity"
|
||||||
minSdk 28
|
minSdk 28
|
||||||
targetSdk 34
|
targetSdk 34
|
||||||
versionCode 1
|
|
||||||
versionName "1.0"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -61,21 +59,25 @@ android {
|
|||||||
buildFeatures {
|
buildFeatures {
|
||||||
viewBinding true
|
viewBinding true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dependenciesInfo {
|
||||||
|
// Disables dependency metadata when building APKs.
|
||||||
|
includeInApk = false
|
||||||
|
// Disables dependency metadata when building Android App Bundles.
|
||||||
|
includeInBundle = false
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|
||||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.4'
|
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.4'
|
||||||
implementation 'androidx.appcompat:appcompat:1.6.1'
|
|
||||||
implementation 'androidx.core:core-ktx:1.12.0'
|
|
||||||
implementation 'androidx.preference:preference-ktx:1.2.1'
|
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
|
||||||
implementation 'androidx.camera:camera-camera2:1.3.2'
|
|
||||||
implementation 'androidx.camera:camera-lifecycle:1.3.2'
|
implementation 'androidx.camera:camera-lifecycle:1.3.2'
|
||||||
implementation 'androidx.camera:camera-view:1.3.2'
|
implementation 'androidx.camera:camera-view:1.3.2'
|
||||||
|
runtimeOnly 'androidx.camera:camera-camera2:1.3.2'
|
||||||
|
|
||||||
implementation 'com.google.code.gson:gson:2.10.1'
|
implementation 'com.google.code.gson:gson:2.10.1'
|
||||||
implementation 'com.google.android.material:material:1.11.0'
|
implementation 'com.google.android.material:material:1.11.0'
|
||||||
implementation 'com.google.zxing:core:3.5.3'
|
implementation 'com.google.zxing:core:3.5.3'
|
||||||
|
|
||||||
}
|
}
|
@ -1,13 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:versionCode="1"
|
android:versionCode="5"
|
||||||
android:versionName="1.0">
|
android:versionName="1.1c">
|
||||||
|
|
||||||
<uses-feature android:name="android.hardware.camera" />
|
<uses-feature android:name="android.hardware.camera" />
|
||||||
<uses-permission android:name="android.permission.CAMERA" />
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
<application
|
<application
|
||||||
android:icon="@drawable/logo"
|
android:icon="@mipmap/ic_launcher_round"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:supportsRtl="true">
|
android:supportsRtl="true">
|
||||||
<activity
|
<activity
|
||||||
|
@ -15,21 +15,39 @@ object BarcodeFormatConverter {
|
|||||||
"UPC_A" -> BarcodeFormat.UPC_A
|
"UPC_A" -> BarcodeFormat.UPC_A
|
||||||
"UPC_E" -> BarcodeFormat.UPC_E
|
"UPC_E" -> BarcodeFormat.UPC_E
|
||||||
"PDF_417" -> BarcodeFormat.PDF_417
|
"PDF_417" -> BarcodeFormat.PDF_417
|
||||||
|
"AZTEC" -> BarcodeFormat.AZTEC
|
||||||
|
"CODABAR" -> BarcodeFormat.CODABAR
|
||||||
|
"MAXICODE" -> BarcodeFormat.MAXICODE
|
||||||
|
"DATA_MATRIX" -> BarcodeFormat.DATA_MATRIX
|
||||||
|
"ITF" -> BarcodeFormat.ITF
|
||||||
|
"RSS_14" -> BarcodeFormat.RSS_14
|
||||||
|
"RSS_EXPANDED" -> BarcodeFormat.RSS_EXPANDED
|
||||||
|
"UPC_EAN" -> BarcodeFormat.UPC_EAN_EXTENSION
|
||||||
else -> throw Exception("Unsupported Format: $f")
|
else -> throw Exception("Unsupported Format: $f")
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun formatToString(f: BarcodeFormat): String {
|
fun formatToString(f: BarcodeFormat): String {
|
||||||
return when (f) {
|
return when (f) {
|
||||||
BarcodeFormat.CODE_128 -> "CODE_128"
|
|
||||||
BarcodeFormat.CODE_39 -> "CODE_39"
|
BarcodeFormat.CODE_39 -> "CODE_39"
|
||||||
BarcodeFormat.CODE_93 -> "CODE_93"
|
BarcodeFormat.CODE_93 -> "CODE_93"
|
||||||
|
BarcodeFormat.CODE_128 -> "CODE_128"
|
||||||
BarcodeFormat.EAN_8 -> "EAN_8"
|
BarcodeFormat.EAN_8 -> "EAN_8"
|
||||||
BarcodeFormat.EAN_13 -> "EAN_13"
|
BarcodeFormat.EAN_13 -> "EAN_13"
|
||||||
BarcodeFormat.QR_CODE -> "CODE_QR"
|
BarcodeFormat.QR_CODE -> "CODE_QR"
|
||||||
BarcodeFormat.UPC_A -> "UPC_A"
|
BarcodeFormat.UPC_A -> "UPC_A"
|
||||||
BarcodeFormat.UPC_E -> "UPC_E"
|
BarcodeFormat.UPC_E -> "UPC_E"
|
||||||
BarcodeFormat.PDF_417 -> "PDF_417"
|
BarcodeFormat.PDF_417 -> "PDF_417"
|
||||||
|
BarcodeFormat.AZTEC -> "AZTEC"
|
||||||
|
BarcodeFormat.CODABAR -> "CODABAR"
|
||||||
|
BarcodeFormat.MAXICODE -> "MAXICODE"
|
||||||
|
BarcodeFormat.DATA_MATRIX -> "DATA_MATRIX"
|
||||||
|
BarcodeFormat.ITF -> "ITF"
|
||||||
|
BarcodeFormat.RSS_14 -> "RSS_14"
|
||||||
|
BarcodeFormat.RSS_EXPANDED -> "RSS_EXPANDED"
|
||||||
|
BarcodeFormat.UPC_EAN_EXTENSION -> "UPC_EAN"
|
||||||
else -> throw Exception("Unsupported Format: $f")
|
else -> throw Exception("Unsupported Format: $f")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
5
app/src/main/res/drawable/ic_launcher_foreground.xml
Normal file
5
app/src/main/res/drawable/ic_launcher_foreground.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<background android:drawable="@color/ic_launcher_background" />
|
||||||
|
<foreground android:drawable="@drawable/logo_g"/>
|
||||||
|
</adaptive-icon>
|
@ -1,5 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item
|
||||||
|
android:width="256dp"
|
||||||
|
android:height="256dp"
|
||||||
|
android:viewportWidth="256"
|
||||||
|
android:viewportHeight="256"
|
||||||
|
android:gravity="center"
|
||||||
|
>
|
||||||
|
<layer-list>
|
||||||
<item
|
<item
|
||||||
android:width="128dp"
|
android:width="128dp"
|
||||||
android:height="128dp"
|
android:height="128dp"
|
||||||
@ -18,4 +26,5 @@
|
|||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:left="72dp"
|
android:left="72dp"
|
||||||
android:bottom="20dp" />
|
android:bottom="20dp" />
|
||||||
|
</layer-list></item>
|
||||||
</layer-list>
|
</layer-list>
|
167
app/src/main/res/drawable/logo_g.xml
Normal file
167
app/src/main/res/drawable/logo_g.xml
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="108dp"
|
||||||
|
android:height="108dp"
|
||||||
|
android:viewportWidth="128"
|
||||||
|
android:viewportHeight="128">
|
||||||
|
<group
|
||||||
|
android:translateX="28"
|
||||||
|
android:translateY="28">
|
||||||
|
<group>
|
||||||
|
<path
|
||||||
|
android:fillColor="#92D3F5"
|
||||||
|
android:pathData="M59.959,52.794H12.041c-0.552,0 -1,-0.448 -1,-1v-29.547c0,-0.552 0.448,-1 1,-1h47.918c0.552,0 1,0.448 1,1v29.547C60.959,52.347 60.511,52.794 59.959,52.794z"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000000" />
|
||||||
|
</group>
|
||||||
|
<group
|
||||||
|
android:scaleX="0.5"
|
||||||
|
android:scaleY="0.5"
|
||||||
|
android:translateX="32"
|
||||||
|
android:translateY="16">
|
||||||
|
<path
|
||||||
|
android:fillColor="#EA5A47"
|
||||||
|
android:pathData="M46.5,56l-10,-11.151l-10,11.151l0,-45.042l20,0z"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#00000000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#D22F27"
|
||||||
|
android:pathData="M41.864,12.03l0,37.854l4.523,5.044l0,-42.898z"
|
||||||
|
android:strokeColor="#00000000" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M46.5,56l-10,-11.151l-10,11.151l0,-45.042l20,0z"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M46.5,56l-10,-11.151l-10,11.151l0,-45.042l20,0z"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
</group>
|
||||||
|
<group
|
||||||
|
android:scaleX="0.5"
|
||||||
|
android:scaleY="0.5"
|
||||||
|
android:translateX="10"
|
||||||
|
android:translateY="18">
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M9,21V52"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M12,21V52"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M20,21V50"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M28,21V50"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#000"
|
||||||
|
android:pathData="M15,50V21H17V50H15Z"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#000"
|
||||||
|
android:pathData="M23,50V21H25V50H23Z"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#000"
|
||||||
|
android:pathData="M31,50V21H32V50H31Z"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M46,21V50"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M49,21V50"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M57,21V50"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#000"
|
||||||
|
android:pathData="M41,50V21H43V50H41Z"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#000"
|
||||||
|
android:pathData="M52,50V21H54V50H52Z"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M60,21V52"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M63,21V52"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M35,21V52"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M38,21V52"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:strokeColor="#000"
|
||||||
|
android:strokeLineCap="round"
|
||||||
|
android:strokeLineJoin="round" />
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
</vector>
|
5
app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
Normal file
5
app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<background android:drawable="@color/ic_launcher_background"/>
|
||||||
|
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
||||||
|
</adaptive-icon>
|
5
app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
Normal file
5
app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<background android:drawable="@color/ic_launcher_background"/>
|
||||||
|
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
||||||
|
</adaptive-icon>
|
BIN
app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
Normal file
BIN
app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
BIN
app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
Normal file
BIN
app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
BIN
app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
Normal file
BIN
app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
Normal file
BIN
app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.4 KiB |
BIN
app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
Normal file
BIN
app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.1 KiB |
4
app/src/main/res/values/ic_launcher_background.xml
Normal file
4
app/src/main/res/values/ic_launcher_background.xml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<color name="ic_launcher_background">#393939</color>
|
||||||
|
</resources>
|
@ -16,14 +16,18 @@
|
|||||||
<string name="format">Format</string>
|
<string name="format">Format</string>
|
||||||
<string name="save">Save</string>
|
<string name="save">Save</string>
|
||||||
<string-array name="format_array">
|
<string-array name="format_array">
|
||||||
<item>CODE_128</item>
|
|
||||||
<item>CODE_39</item>
|
<item>CODE_39</item>
|
||||||
<item>CODE_93</item>
|
<item>CODE_93</item>
|
||||||
|
<item>CODE_128</item>
|
||||||
<item>EAN_8</item>
|
<item>EAN_8</item>
|
||||||
<item>EAN_13</item>
|
<item>EAN_13</item>
|
||||||
<item>CODE_QR</item>
|
<item>CODE_QR</item>
|
||||||
<item>UPC_A</item>
|
<item>UPC_A</item>
|
||||||
<item>UPC_E</item>
|
<item>UPC_E</item>
|
||||||
<item>PDF_417</item>
|
<item>PDF_417</item>
|
||||||
|
<item>AZTEC</item>
|
||||||
|
<item>CODABAR</item>
|
||||||
|
<item>DATA_MATRIX</item>
|
||||||
|
<item>ITF</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
</resources>
|
</resources>
|
Reference in New Issue
Block a user