245 Commits

Author SHA1 Message Date
0593eb8fbf Update .github/workflows/build.yml 2026-05-23 14:53:48 +02:00
54dadd5bf2 Update app/build.gradle 2026-05-23 14:52:39 +02:00
c191eb6248 Update metadata/en-US/short_description.txt 2026-05-23 14:52:09 +02:00
35366a5a09 Update metadata/en-US/full_description.txt 2026-05-23 14:51:50 +02:00
07eb4eefdd Update README.md 2026-05-23 14:50:37 +02:00
soraefir
2a76ef340b Fix proguard 2026-05-23 14:12:11 +02:00
soraefir
249b281ae1 Fixes and updates 2026-05-23 14:01:32 +02:00
bot
82ab401862 Merge pull request 'Update plugin com.autonomousapps.dependency-analysis to v3.13.0' (#279) from renovate/com.autonomousapps.dependency-analysis-3.x into main 2026-05-22 04:01:56 +02:00
Renovate Bot
1cc4533617 Update plugin com.autonomousapps.dependency-analysis to v3.13.0 2026-05-22 02:01:48 +00:00
bot
9b903ce12b Merge pull request 'Update plugin com.autonomousapps.dependency-analysis to v3.12.2' (#278) from renovate/com.autonomousapps.dependency-analysis-3.x into main 2026-05-21 04:02:34 +02:00
bot
122d03c971 Merge pull request 'Update dependency androidx.compose.ui:ui-tooling to v1.11.2' (#277) from renovate/androidx.compose.ui-ui-tooling-1.x into main 2026-05-21 04:02:27 +02:00
Renovate Bot
25c993354e Update plugin com.autonomousapps.dependency-analysis to v3.12.2 2026-05-21 02:02:27 +00:00
Renovate Bot
6eefb809d8 Update dependency androidx.compose.ui:ui-tooling to v1.11.2 2026-05-21 02:02:24 +00:00
bot
3ae56fdbdf Merge pull request 'Update dependency androidx.compose.material:material to v1.11.2' (#276) from renovate/androidx.compose.material-material-1.x into main 2026-05-20 04:02:21 +02:00
bot
e4a7413534 Merge pull request 'Update dependency androidx.compose:compose-bom to v2026.05.01' (#275) from renovate/androidx.compose-compose-bom-2026.x into main 2026-05-20 04:02:18 +02:00
Renovate Bot
6c8cfaf128 Update dependency androidx.compose.material:material to v1.11.2 2026-05-20 02:02:17 +00:00
Renovate Bot
3c71988d12 Update dependency androidx.compose:compose-bom to v2026.05.01 2026-05-20 02:02:15 +00:00
bot
beca592f01 Merge pull request 'Update plugin com.autonomousapps.dependency-analysis to v3.12.0' (#274) from renovate/com.autonomousapps.dependency-analysis-3.x into main 2026-05-15 04:02:35 +02:00
Renovate Bot
ecfaa44756 Update plugin com.autonomousapps.dependency-analysis to v3.12.0 2026-05-15 02:02:27 +00:00
bot
1e12c6e0db Merge pull request 'Update dependency com.google.android.material:material to v1.14.0' (#273) from renovate/com.google.android.material-material-1.x into main 2026-05-14 04:02:59 +02:00
Renovate Bot
cb71570834 Update dependency com.google.android.material:material to v1.14.0 2026-05-14 02:02:55 +00:00
bot
1a2d785d82 Merge pull request 'Update plugin com.autonomousapps.dependency-analysis to v3.11.0' (#272) from renovate/com.autonomousapps.dependency-analysis-3.x into main 2026-05-13 04:03:20 +02:00
bot
8e0c8b7eaa Merge pull request 'Update dependency gradle to v9.5.1' (#271) from renovate/gradle-9.x into main 2026-05-13 04:03:15 +02:00
Renovate Bot
f96363306d Update plugin com.autonomousapps.dependency-analysis to v3.11.0 2026-05-13 02:03:14 +00:00
Renovate Bot
ab32a2ecd2 Update dependency gradle to v9.5.1 2026-05-13 02:03:11 +00:00
bot
85ae80696e Merge pull request 'Update dependency androidx.compose:compose-bom to v2026.05.00' (#270) from renovate/androidx.compose-compose-bom-2026.x into main 2026-05-09 04:03:16 +02:00
Renovate Bot
41bba56d5b Update dependency androidx.compose:compose-bom to v2026.05.00 2026-05-09 02:03:15 +00:00
bot
6e1466f1a3 Merge pull request 'Update dependency androidx.compose.ui:ui-tooling to v1.11.1' (#269) from renovate/androidx.compose.ui-ui-tooling-1.x into main 2026-05-09 04:03:07 +02:00
Renovate Bot
d082c6b1bd Update dependency androidx.compose.ui:ui-tooling to v1.11.1 2026-05-09 02:03:05 +00:00
bot
dfa97108d4 Merge pull request 'Update dependency androidx.compose.material:material to v1.11.1' (#268) from renovate/androidx.compose.material-material-1.x into main 2026-05-08 04:03:25 +02:00
bot
ef1f4d071e Merge pull request 'Update dependency androidx.camera:camera-view to v1.6.1' (#267) from renovate/androidx.camera-camera-view-1.x into main 2026-05-08 04:03:22 +02:00
Renovate Bot
9a64cd2cb6 Update dependency androidx.compose.material:material to v1.11.1 2026-05-08 02:03:21 +00:00
Renovate Bot
9971360e7e Update dependency androidx.camera:camera-view to v1.6.1 2026-05-08 02:03:20 +00:00
bot
7c30df4436 Merge pull request 'Update plugin com.android.library to v9.2.1' (#264) from renovate/com.android.library-9.x into main 2026-05-07 04:03:38 +02:00
bot
6bde0f2129 Merge pull request 'Update dependency androidx.camera:camera-lifecycle to v1.6.1' (#266) from renovate/androidx.camera-camera-lifecycle-1.x into main 2026-05-07 04:03:35 +02:00
Renovate Bot
28d23034b0 Update plugin com.android.library to v9.2.1 2026-05-07 02:03:34 +00:00
bot
962bf1ca7c Merge pull request 'Update dependency androidx.camera:camera-camera2 to v1.6.1' (#265) from renovate/androidx.camera-camera-camera2-1.x into main 2026-05-07 04:03:32 +02:00
Renovate Bot
9364cced34 Update dependency androidx.camera:camera-lifecycle to v1.6.1 2026-05-07 02:03:32 +00:00
Renovate Bot
9916804e36 Update dependency androidx.camera:camera-camera2 to v1.6.1 2026-05-07 02:03:30 +00:00
bot
7764b1aa06 Merge pull request 'Update plugin com.android.application to v9.2.1' (#263) from renovate/com.android.application-9.x into main 2026-05-06 10:01:12 +02:00
Renovate Bot
355a5342f4 Update plugin com.android.application to v9.2.1 2026-05-06 08:01:07 +00:00
bot
29b28d4935 Merge pull request 'Update plugin com.autonomousapps.dependency-analysis to v3.10.0' (#262) from renovate/com.autonomousapps.dependency-analysis-3.x into main 2026-04-30 04:02:22 +02:00
Renovate Bot
a7833beb8d Update plugin com.autonomousapps.dependency-analysis to v3.10.0 2026-04-30 02:02:15 +00:00
bot
1984406048 Merge pull request 'Update dependency gradle to v9.5.0' (#261) from renovate/gradle-9.x into main 2026-04-29 04:03:16 +02:00
Renovate Bot
5224337b13 Update dependency gradle to v9.5.0 2026-04-29 02:03:13 +00:00
bot
1d15f25cd7 Merge pull request 'Update dependency joda-time:joda-time to v2.14.2' (#260) from renovate/joda-time-joda-time-2.x into main 2026-04-29 04:03:09 +02:00
Renovate Bot
d7ffbc40ae Update dependency joda-time:joda-time to v2.14.2 2026-04-29 02:03:04 +00:00
bot
3f1d809855 Merge pull request 'Update dependency androidx.compose.ui:ui-tooling to v1.11.0' (#259) from renovate/androidx.compose.ui-ui-tooling-1.x into main 2026-04-26 04:03:13 +02:00
Renovate Bot
db9bd281d7 Update dependency androidx.compose.ui:ui-tooling to v1.11.0 2026-04-26 02:03:11 +00:00
bot
1b217ef01d Merge pull request 'Update dependency androidx.compose.material:material to v1.11.0' (#258) from renovate/androidx.compose.material-material-1.x into main 2026-04-25 04:13:26 +02:00
Renovate Bot
6e3487f905 Update dependency androidx.compose.material:material to v1.11.0 2026-04-25 02:13:23 +00:00
bot
e25d6da3aa Merge pull request 'Update plugin org.jetbrains.kotlin.plugin.serialization to v2.3.21' (#257) from renovate/org.jetbrains.kotlin.plugin.serialization-2.x into main 2026-04-25 04:13:10 +02:00
Renovate Bot
57ab225705 Update plugin org.jetbrains.kotlin.plugin.serialization to v2.3.21 2026-04-25 02:13:06 +00:00
bot
43147f0600 Merge pull request 'Update plugin org.jetbrains.kotlin.plugin.compose to v2.3.21' (#256) from renovate/org.jetbrains.kotlin.plugin.compose-2.x into main 2026-04-24 04:13:59 +02:00
bot
bdd1fe2323 Merge pull request 'Update plugin org.jetbrains.kotlin.android to v2.3.21' (#255) from renovate/org.jetbrains.kotlin.android-2.x into main 2026-04-24 04:13:50 +02:00
Renovate Bot
de62af173f Update plugin org.jetbrains.kotlin.plugin.compose to v2.3.21 2026-04-24 02:13:49 +00:00
Renovate Bot
c9c5009092 Update plugin org.jetbrains.kotlin.android to v2.3.21 2026-04-24 02:06:37 +00:00
bot
fa8e9f390f Merge pull request 'Update plugin com.android.library to v9.2.0' (#252) from renovate/com.android.library-9.x into main 2026-04-23 04:02:48 +02:00
bot
7ce9d0f36a Merge pull request 'Update dependency androidx.compose:compose-bom to v2026.04.01' (#254) from renovate/androidx.compose-compose-bom-2026.x into main 2026-04-23 04:02:44 +02:00
Renovate Bot
6066b25d15 Update plugin com.android.library to v9.2.0 2026-04-23 02:02:44 +00:00
bot
9262c737c3 Merge pull request 'Update dependency androidx.navigation:navigation-compose to v2.9.8' (#253) from renovate/androidx.navigation-navigation-compose-2.x into main 2026-04-23 04:02:42 +02:00
Renovate Bot
5b03dc4c7b Update dependency androidx.compose:compose-bom to v2026.04.01 2026-04-23 02:02:42 +00:00
Renovate Bot
f32ae1a8e8 Update dependency androidx.navigation:navigation-compose to v2.9.8 2026-04-23 02:02:40 +00:00
bot
4220a334fd Merge pull request 'Update plugin com.android.application to v9.2.0' (#251) from renovate/com.android.application-9.x into main 2026-04-22 04:02:34 +02:00
Renovate Bot
c2be61f1a6 Update plugin com.android.application to v9.2.0 2026-04-22 02:02:31 +00:00
bot
c8bae4838e Merge pull request 'Update plugin com.autonomousapps.dependency-analysis to v3.9.0' (#250) from renovate/com.autonomousapps.dependency-analysis-3.x into main 2026-04-21 04:02:45 +02:00
Renovate Bot
e60c4cd35b Update plugin com.autonomousapps.dependency-analysis to v3.9.0 2026-04-21 02:02:38 +00:00
bot
c230c8ea72 Merge pull request 'Update plugin com.autonomousapps.dependency-analysis to v3.8.0' (#249) from renovate/com.autonomousapps.dependency-analysis-3.x into main 2026-04-20 04:02:40 +02:00
Renovate Bot
4e2a3de7d2 Update plugin com.autonomousapps.dependency-analysis to v3.8.0 2026-04-20 02:02:34 +00:00
bot
1b7f068976 Merge pull request 'Update plugin com.android.library to v9.1.1' (#248) from renovate/com.android.library-9.x into main 2026-04-18 04:05:07 +02:00
Renovate Bot
4e24f9e73e Update plugin com.android.library to v9.1.1 2026-04-15 02:01:43 +00:00
bot
4b471f5e56 Merge pull request 'Update plugin com.android.application to v9.1.1' (#247) from renovate/com.android.application-9.x into main 2026-04-14 04:02:03 +02:00
Renovate Bot
463007c80e Update plugin com.android.application to v9.1.1 2026-04-14 02:02:00 +00:00
bot
aedb9d0ab4 Merge pull request 'Update softprops/action-gh-release action to v3' (#246) from renovate/softprops-action-gh-release-3.x into main 2026-04-13 04:02:33 +02:00
Renovate Bot
a48fc9a374 Update softprops/action-gh-release action to v3 2026-04-13 02:02:30 +00:00
bot
541c79db7f Merge pull request 'Update plugin com.autonomousapps.dependency-analysis to v3.7.0' (#245) from renovate/com.autonomousapps.dependency-analysis-3.x into main 2026-04-11 04:03:08 +02:00
Renovate Bot
7cad346bb7 Update plugin com.autonomousapps.dependency-analysis to v3.7.0 2026-04-11 02:03:02 +00:00
bot
dc5237652e Merge pull request 'Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.11.0' (#244) from renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x into main 2026-04-10 04:02:26 +02:00
Renovate Bot
f0bd4100dc Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.11.0 2026-04-10 02:02:21 +00:00
9903790e87 Update .github/workflows/build.yml 2026-04-04 12:08:52 +02:00
06053b7ec8 Update .github/workflows/build.yml 2026-04-04 12:05:40 +02:00
bot
ab6073d415 Merge pull request 'Update dependency androidx.camera:camera-view to v1.6.0' (#243) from renovate/androidx.camera-camera-view-1.x into main 2026-03-28 03:02:44 +01:00
Renovate Bot
4f1897af2f Update dependency androidx.camera:camera-view to v1.6.0 2026-03-28 02:02:43 +00:00
bot
867e438857 Merge pull request 'Update dependency androidx.camera:camera-lifecycle to v1.6.0' (#242) from renovate/androidx.camera-camera-lifecycle-1.x into main 2026-03-28 03:02:36 +01:00
Renovate Bot
b41ff5868e Update dependency androidx.camera:camera-lifecycle to v1.6.0 2026-03-28 02:02:34 +00:00
bot
ca84a36630 Merge pull request 'Update dependency androidx.camera:camera-camera2 to v1.6.0' (#241) from renovate/androidx.camera-camera-camera2-1.x into main 2026-03-27 03:01:19 +01:00
bot
5736164692 Merge pull request 'Update dependency androidx.compose.ui:ui-tooling to v1.10.6' (#240) from renovate/androidx.compose.ui-ui-tooling-1.x into main 2026-03-27 03:01:18 +01:00
Renovate Bot
864927e8eb Update dependency androidx.camera:camera-camera2 to v1.6.0 2026-03-27 02:01:16 +00:00
Renovate Bot
8d4267608b Update dependency androidx.compose.ui:ui-tooling to v1.10.6 2026-03-27 02:01:14 +00:00
bot
7e41b10394 Merge pull request 'Update dependency androidx.compose.material:material to v1.10.6' (#239) from renovate/androidx.compose.material-material-1.x into main 2026-03-26 03:01:23 +01:00
bot
0f9bfa8f29 Merge pull request 'Update dependency androidx.compose:compose-bom to v2026.03.01' (#238) from renovate/androidx.compose-compose-bom-2026.x into main 2026-03-26 03:01:22 +01:00
Renovate Bot
2322a02e0d Update dependency androidx.compose.material:material to v1.10.6 2026-03-26 02:01:21 +00:00
Renovate Bot
b73cd5e9f7 Update dependency androidx.compose:compose-bom to v2026.03.01 2026-03-26 02:01:19 +00:00
bot
bcf848f667 Merge pull request 'Update dependency gradle to v9.4.1' (#237) from renovate/gradle-9.x into main 2026-03-20 03:02:34 +01:00
Renovate Bot
01a627af79 Update dependency gradle to v9.4.1 2026-03-20 02:02:31 +00:00
bot
e542c38eb9 Merge pull request 'Update plugin org.jetbrains.kotlin.plugin.serialization to v2.3.20' (#236) from renovate/org.jetbrains.kotlin.plugin.serialization-2.x into main 2026-03-18 03:09:11 +01:00
Renovate Bot
f1fdd91025 Update plugin org.jetbrains.kotlin.plugin.serialization to v2.3.20 2026-03-18 02:09:08 +00:00
bot
741c8eeb80 Merge pull request 'Update plugin org.jetbrains.kotlin.plugin.compose to v2.3.20' (#235) from renovate/org.jetbrains.kotlin.plugin.compose-2.x into main 2026-03-17 03:10:24 +01:00
bot
f3c5b80122 Merge pull request 'Update plugin org.jetbrains.kotlin.android to v2.3.20' (#234) from renovate/org.jetbrains.kotlin.android-2.x into main 2026-03-17 03:10:19 +01:00
Renovate Bot
dd03b7797f Update plugin org.jetbrains.kotlin.plugin.compose to v2.3.20 2026-03-17 02:10:18 +00:00
Renovate Bot
a705efbeb9 Update plugin org.jetbrains.kotlin.android to v2.3.20 2026-03-17 02:10:16 +00:00
bot
6865c0513f Merge pull request 'Update dependency androidx.compose:compose-bom to v2026.03.00' (#233) from renovate/androidx.compose-compose-bom-2026.x into main 2026-03-13 03:01:31 +01:00
bot
385484eb5c Merge pull request 'Update dependency androidx.datastore:datastore-preferences to v1.2.1' (#232) from renovate/androidx.datastore-datastore-preferences-1.x into main 2026-03-13 03:01:30 +01:00
Renovate Bot
8cc07d2570 Update dependency androidx.compose:compose-bom to v2026.03.00 2026-03-13 02:01:29 +00:00
Renovate Bot
e876d470ed Update dependency androidx.datastore:datastore-preferences to v1.2.1 2026-03-13 02:01:26 +00:00
bot
f2a8a9b179 Merge pull request 'Update dependency androidx.compose.ui:ui-tooling to v1.10.5' (#231) from renovate/androidx.compose.ui-ui-tooling-1.x into main 2026-03-12 03:01:41 +01:00
bot
a03e9553c3 Merge pull request 'Update dependency androidx.compose.material:material to v1.10.5' (#230) from renovate/androidx.compose.material-material-1.x into main 2026-03-12 03:01:38 +01:00
Renovate Bot
6f5fc5733e Update dependency androidx.compose.ui:ui-tooling to v1.10.5 2026-03-12 02:01:37 +00:00
Renovate Bot
0cff562c76 Update dependency androidx.compose.material:material to v1.10.5 2026-03-12 02:01:35 +00:00
bot
a9e5e0c969 Merge pull request 'Update dependency joda-time:joda-time to v2.14.1' (#229) from renovate/joda-time-joda-time-2.x into main 2026-03-09 03:01:38 +01:00
Renovate Bot
ee1ef7b2de Update dependency joda-time:joda-time to v2.14.1 2026-03-09 02:01:32 +00:00
bot
b22c24aa54 Merge pull request 'Update plugin com.android.library to v9.1.0' (#227) from renovate/com.android.library-9.x into main 2026-03-05 03:02:34 +01:00
bot
0ceee3ab67 Merge pull request 'Update dependency gradle to v9.4.0' (#228) from renovate/gradle-9.x into main 2026-03-05 03:02:30 +01:00
Renovate Bot
5c4b20d57c Update plugin com.android.library to v9.1.0 2026-03-05 02:02:30 +00:00
Renovate Bot
5c4b3c7df0 Update dependency gradle to v9.4.0 2026-03-05 02:02:28 +00:00
bot
933578fca0 Merge pull request 'Update plugin com.android.application to v9.1.0' (#226) from renovate/com.android.application-9.x into main 2026-03-04 03:01:52 +01:00
Renovate Bot
ec12827b21 Update plugin com.android.application to v9.1.0 2026-03-04 02:01:49 +00:00
bot
3655987082 Merge pull request 'Update dependency androidx.compose:compose-bom to v2026.02.01' (#225) from renovate/androidx.compose-compose-bom-2026.x into main 2026-02-28 03:02:30 +01:00
Renovate Bot
28ec153a0c Update dependency androidx.compose:compose-bom to v2026.02.01 2026-02-28 02:02:28 +00:00
bot
f3d7059221 Merge pull request 'Update plugin com.autonomousapps.dependency-analysis to v3.6.1' (#224) from renovate/com.autonomousapps.dependency-analysis-3.x into main 2026-02-27 03:01:51 +01:00
Renovate Bot
c83ef3d3c4 Update plugin com.autonomousapps.dependency-analysis to v3.6.1 2026-02-27 02:01:43 +00:00
bot
4dfb171d41 Merge pull request 'Update dependency androidx.compose.ui:ui-tooling to v1.10.4' (#223) from renovate/androidx.compose.ui-ui-tooling-1.x into main 2026-02-26 03:01:50 +01:00
bot
ee6a8dc35a Merge pull request 'Update dependency androidx.compose.material:material to v1.10.4' (#222) from renovate/androidx.compose.material-material-1.x into main 2026-02-26 03:01:47 +01:00
Renovate Bot
8e22babdc2 Update dependency androidx.compose.ui:ui-tooling to v1.10.4 2026-02-26 02:01:45 +00:00
Renovate Bot
a770f0d381 Update dependency androidx.compose.material:material to v1.10.4 2026-02-26 02:01:43 +00:00
bot
7976c05e76 Merge pull request 'Update plugin com.android.library to v9.0.1' (#221) from renovate/com.android.library-9.x into main 2026-02-14 03:03:02 +01:00
Renovate Bot
af8d718058 Update plugin com.android.library to v9.0.1 2026-02-14 02:03:01 +00:00
bot
ccf9da6e98 Merge pull request 'Update plugin com.android.application to v9.0.1' (#220) from renovate/com.android.application-9.x into main 2026-02-14 03:02:54 +01:00
Renovate Bot
6c27af1404 Update plugin com.android.application to v9.0.1 2026-02-14 02:02:52 +00:00
bot
daef958340 Merge pull request 'Update dependency androidx.compose:compose-bom to v2026.02.00' (#219) from renovate/androidx.compose-compose-bom-2026.x into main 2026-02-13 03:02:10 +01:00
Renovate Bot
1cea5b6c3f Update dependency androidx.compose:compose-bom to v2026.02.00 2026-02-13 02:02:07 +00:00
bot
4d52634e18 Merge pull request 'Update dependency androidx.compose.ui:ui-tooling to v1.10.3' (#218) from renovate/androidx.compose.ui-ui-tooling-1.x into main 2026-02-12 03:02:13 +01:00
bot
6f6d220f4f Merge pull request 'Update dependency androidx.compose.material:material to v1.10.3' (#217) from renovate/androidx.compose.material-material-1.x into main 2026-02-12 03:02:11 +01:00
Renovate Bot
34858d23d5 Update dependency androidx.compose.ui:ui-tooling to v1.10.3 2026-02-12 02:02:10 +00:00
Renovate Bot
8ddd042579 Update dependency androidx.compose.material:material to v1.10.3 2026-02-12 02:02:08 +00:00
bot
7136f8c883 Merge pull request 'Update plugin org.jetbrains.kotlin.plugin.serialization to v2.3.10' (#216) from renovate/org.jetbrains.kotlin.plugin.serialization-2.x into main 2026-02-07 03:10:06 +01:00
Renovate Bot
372274cfc3 Update plugin org.jetbrains.kotlin.plugin.serialization to v2.3.10 2026-02-07 02:10:04 +00:00
bot
54ff955670 Merge pull request 'Update plugin org.jetbrains.kotlin.plugin.compose to v2.3.10' (#215) from renovate/org.jetbrains.kotlin.plugin.compose-2.x into main 2026-02-06 03:09:47 +01:00
bot
f4f18258d1 Merge pull request 'Update plugin org.jetbrains.kotlin.android to v2.3.10' (#214) from renovate/org.jetbrains.kotlin.android-2.x into main 2026-02-06 03:09:44 +01:00
Renovate Bot
b43d1a53e2 Update plugin org.jetbrains.kotlin.plugin.compose to v2.3.10 2026-02-06 02:09:44 +00:00
Renovate Bot
63c1bd1d7e Update plugin org.jetbrains.kotlin.android to v2.3.10 2026-02-06 02:09:41 +00:00
bot
4e33f88f4f Merge pull request 'Update dependency gradle to v9.3.1' (#213) from renovate/gradle-9.x into main 2026-02-01 03:03:57 +01:00
Renovate Bot
9893c8ddae Update dependency gradle to v9.3.1 2026-02-01 02:03:48 +00:00
bot
3a5a9ca273 Merge pull request 'Update dependency androidx.navigation:navigation-compose to v2.9.7' (#212) from renovate/androidx.navigation-navigation-compose-2.x into main 2026-02-01 03:03:21 +01:00
Renovate Bot
2b4823206c Update dependency androidx.navigation:navigation-compose to v2.9.7 2026-02-01 02:03:16 +00:00
bot
60bc918153 Merge pull request 'Update dependency androidx.compose.ui:ui-tooling to v1.10.2' (#211) from renovate/androidx.compose.ui-ui-tooling-1.x into main 2026-01-31 03:03:31 +01:00
Renovate Bot
9454b612ce Update dependency androidx.compose.ui:ui-tooling to v1.10.2 2026-01-31 02:03:30 +00:00
bot
f5f472d39e Merge pull request 'Update dependency androidx.compose.material:material to v1.10.2' (#210) from renovate/androidx.compose.material-material-1.x into main 2026-01-31 03:03:22 +01:00
Renovate Bot
58182a51db Update dependency androidx.compose.material:material to v1.10.2 2026-01-31 02:03:17 +00:00
bot
1db246eab9 Merge pull request 'Update dependency androidx.compose:compose-bom to v2026.01.01' (#209) from renovate/androidx.compose-compose-bom-2026.x into main 2026-01-30 03:02:04 +01:00
bot
67ade9909c Merge pull request 'Update dependency androidx.camera:camera-view to v1.5.3' (#208) from renovate/androidx.camera-camera-view-1.x into main 2026-01-30 03:02:03 +01:00
Renovate Bot
e412cee462 Update dependency androidx.compose:compose-bom to v2026.01.01 2026-01-30 02:02:01 +00:00
Renovate Bot
46c9aedb7c Update dependency androidx.camera:camera-view to v1.5.3 2026-01-30 02:01:59 +00:00
bot
089de53398 Merge pull request 'Update dependency androidx.camera:camera-lifecycle to v1.5.3' (#207) from renovate/androidx.camera-camera-lifecycle-1.x into main 2026-01-29 03:02:09 +01:00
bot
dcc18bc26e Merge pull request 'Update dependency androidx.camera:camera-camera2 to v1.5.3' (#206) from renovate/androidx.camera-camera-camera2-1.x into main 2026-01-29 03:02:09 +01:00
Renovate Bot
89d9f0274e Update dependency androidx.camera:camera-lifecycle to v1.5.3 2026-01-29 02:02:07 +00:00
Renovate Bot
126cfe08a3 Update dependency androidx.camera:camera-camera2 to v1.5.3 2026-01-29 02:02:05 +00:00
bot
7866c074ed Merge pull request 'Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.10.0' (#205) from renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x into main 2026-01-22 03:01:46 +01:00
Renovate Bot
d8d91f091a Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.10.0 2026-01-22 02:01:42 +00:00
bot
2b3d01a680 Merge pull request 'Update plugin com.android.library to v9' (#204) from renovate/com.android.library-9.x into main 2026-01-17 03:04:49 +01:00
Renovate Bot
99ffa3226e Update plugin com.android.library to v9 2026-01-17 02:04:48 +00:00
bot
a0af4a3d24 Merge pull request 'Update dependency gradle to v9.3.0' (#203) from renovate/gradle-9.x into main 2026-01-17 03:04:39 +01:00
Renovate Bot
aacedd40e0 Update dependency gradle to v9.3.0 2026-01-17 02:04:36 +00:00
bot
d9e0cb0502 Merge pull request 'Update plugin com.android.application to v9' (#202) from renovate/com.android.application-9.x into main 2026-01-16 03:02:17 +01:00
bot
08cfbc1e53 Merge pull request 'Update dependency androidx.compose:compose-bom to v2026' (#201) from renovate/androidx.compose-compose-bom-2026.x into main 2026-01-16 03:02:16 +01:00
Renovate Bot
f24e15a9f3 Update plugin com.android.application to v9 2026-01-16 02:02:14 +00:00
Renovate Bot
adcd5f50f3 Update dependency androidx.compose:compose-bom to v2026 2026-01-16 02:02:12 +00:00
bot
bb4dd58bbb Merge pull request 'Update dependency androidx.compose.ui:ui-tooling to v1.10.1' (#200) from renovate/androidx.compose.ui-ui-tooling-1.x into main 2026-01-15 03:03:04 +01:00
bot
25c7ddae1c Merge pull request 'Update dependency androidx.compose.material:material to v1.10.1' (#199) from renovate/androidx.compose.material-material-1.x into main 2026-01-15 03:03:03 +01:00
Renovate Bot
40f28ceca9 Update dependency androidx.compose.ui:ui-tooling to v1.10.1 2026-01-15 02:03:01 +00:00
Renovate Bot
6622ef0d94 Update dependency androidx.compose.material:material to v1.10.1 2026-01-15 02:02:59 +00:00
bot
950678e279 Merge pull request 'Update plugin org.jetbrains.kotlin.plugin.serialization to v2.3.0' (#198) from renovate/org.jetbrains.kotlin.plugin.serialization-2.x into main 2025-12-18 03:09:21 +01:00
bot
5544289d0f Merge pull request 'Update dependency androidx.compose:compose-bom to v2025.12.01' (#197) from renovate/androidx.compose-compose-bom-2025.x into main 2025-12-18 03:01:18 +01:00
Renovate Bot
d7f32d0841 Update plugin org.jetbrains.kotlin.plugin.serialization to v2.3.0 2025-12-18 02:01:16 +00:00
Renovate Bot
b1fc257786 Update dependency androidx.compose:compose-bom to v2025.12.01 2025-12-18 02:01:13 +00:00
bot
140ef2cb64 Merge pull request 'Update plugin org.jetbrains.kotlin.plugin.compose to v2.3.0' (#196) from renovate/org.jetbrains.kotlin.plugin.compose-2.x into main 2025-12-17 03:10:37 +01:00
bot
55b730f73e Merge pull request 'Update plugin org.jetbrains.kotlin.android to v2.3.0' (#195) from renovate/org.jetbrains.kotlin.android-2.x into main 2025-12-17 03:10:34 +01:00
Renovate Bot
41d6ba0e87 Update plugin org.jetbrains.kotlin.plugin.compose to v2.3.0 2025-12-17 02:10:34 +00:00
Renovate Bot
8124ff0f55 Update plugin org.jetbrains.kotlin.android to v2.3.0 2025-12-17 02:10:31 +00:00
bot
0c862b4756 Merge pull request 'Update plugin com.android.library to v8.13.2' (#194) from renovate/com.android.library-8.x into main 2025-12-14 03:02:15 +01:00
Renovate Bot
6453e56e18 Update plugin com.android.library to v8.13.2 2025-12-13 02:02:24 +00:00
bot
ddf56d86ba Merge pull request 'Update plugin com.android.application to v8.13.2' (#193) from renovate/com.android.application-8.x into main 2025-12-12 03:02:22 +01:00
Renovate Bot
5cc072921d Update plugin com.android.application to v8.13.2 2025-12-12 02:02:19 +00:00
bot
247da0b8b6 Merge pull request 'Update dependency androidx.compose.ui:ui-tooling to v1.10.0' (#192) from renovate/androidx.compose.ui-ui-tooling-1.x into main 2025-12-06 03:02:41 +01:00
Renovate Bot
993524e641 Update dependency androidx.compose.ui:ui-tooling to v1.10.0 2025-12-06 02:02:39 +00:00
bot
c17026509c Merge pull request 'Update dependency androidx.camera:camera-view to v1.5.2' (#191) from renovate/androidx.camera-camera-view-1.x into main 2025-12-06 03:02:30 +01:00
Renovate Bot
595524f2d1 Update dependency androidx.camera:camera-view to v1.5.2 2025-12-06 02:02:27 +00:00
bot
f322e35fcb Merge pull request 'Update dependency androidx.camera:camera-lifecycle to v1.5.2' (#190) from renovate/androidx.camera-camera-lifecycle-1.x into main 2025-12-05 03:01:42 +01:00
bot
045ad6eb89 Merge pull request 'Update dependency androidx.camera:camera-camera2 to v1.5.2' (#189) from renovate/androidx.camera-camera-camera2-1.x into main 2025-12-05 03:01:40 +01:00
Renovate Bot
8c5f9b988d Update dependency androidx.camera:camera-lifecycle to v1.5.2 2025-12-05 02:01:39 +00:00
Renovate Bot
4803c2d59a Update dependency androidx.camera:camera-camera2 to v1.5.2 2025-12-05 02:01:37 +00:00
bot
ce827e9c0d Merge pull request 'Update dependency androidx.compose.material:material to v1.10.0' (#188) from renovate/androidx.compose.material-material-1.x into main 2025-12-04 03:02:31 +01:00
bot
4ee6bf0bcf Merge pull request 'Update dependency androidx.compose:compose-bom to v2025.12.00' (#187) from renovate/androidx.compose-compose-bom-2025.x into main 2025-12-04 03:02:26 +01:00
Renovate Bot
80fbb71bfd Update dependency androidx.compose.material:material to v1.10.0 2025-12-04 02:02:25 +00:00
Renovate Bot
c4d5eb2831 Update dependency androidx.compose:compose-bom to v2025.12.00 2025-12-04 02:02:23 +00:00
bot
958f23803e Merge pull request 'Update plugin com.autonomousapps.dependency-analysis to v3.5.1' (#186) from renovate/com.autonomousapps.dependency-analysis-3.x into main 2025-11-27 03:02:29 +01:00
Renovate Bot
78afa1163a Update plugin com.autonomousapps.dependency-analysis to v3.5.1 2025-11-27 02:02:22 +00:00
bot
767723f642 Merge pull request 'Update actions/checkout action to v6' (#185) from renovate/actions-checkout-6.x into main 2025-11-22 03:03:08 +01:00
Renovate Bot
43e462256b Update actions/checkout action to v6 2025-11-22 02:03:06 +00:00
bot
9986b58fc4 Merge pull request 'Update plugin com.autonomousapps.dependency-analysis to v3.5.0' (#184) from renovate/com.autonomousapps.dependency-analysis-3.x into main 2025-11-22 03:02:57 +01:00
Renovate Bot
86cd3e89eb Update plugin com.autonomousapps.dependency-analysis to v3.5.0 2025-11-22 02:02:50 +00:00
bot
36ad7a18b3 Merge pull request 'Update dependency androidx.datastore:datastore-preferences to v1.2.0' (#183) from renovate/androidx.datastore-datastore-preferences-1.x into main 2025-11-21 03:01:35 +01:00
bot
aa29f61e8f Merge pull request 'Update dependency androidx.compose.ui:ui-tooling to v1.9.5' (#182) from renovate/androidx.compose.ui-ui-tooling-1.x into main 2025-11-21 03:01:31 +01:00
Renovate Bot
7412fef388 Update dependency androidx.datastore:datastore-preferences to v1.2.0 2025-11-21 02:01:30 +00:00
Renovate Bot
8d5cccf821 Update dependency androidx.compose.ui:ui-tooling to v1.9.5 2025-11-21 02:01:28 +00:00
bot
1ba0fe6ff4 Merge pull request 'Update dependency androidx.compose.material:material to v1.9.5' (#181) from renovate/androidx.compose.material-material-1.x into main 2025-11-20 03:01:24 +01:00
bot
ebba515605 Merge pull request 'Update dependency androidx.compose:compose-bom to v2025.11.01' (#180) from renovate/androidx.compose-compose-bom-2025.x into main 2025-11-20 03:01:23 +01:00
Renovate Bot
bb9f9b2a3f Update dependency androidx.compose.material:material to v1.9.5 2025-11-20 02:01:22 +00:00
Renovate Bot
8506c7a50d Update dependency androidx.compose:compose-bom to v2025.11.01 2025-11-20 02:01:20 +00:00
bot
31b91351b1 Merge pull request 'Update dependency gradle to v9.2.1' (#179) from renovate/gradle-9.x into main 2025-11-18 03:02:45 +01:00
Renovate Bot
6cffa3ac85 Update dependency gradle to v9.2.1 2025-11-18 02:02:40 +00:00
bot
0cc9912b03 Merge pull request 'Update plugin com.android.library to v8.13.1' (#177) from renovate/com.android.library-8.x into main 2025-11-12 03:01:42 +01:00
bot
7f76089bd9 Merge pull request 'Update dependency com.google.zxing:core to v3.5.4' (#178) from renovate/com.google.zxing-core-3.x into main 2025-11-12 03:01:39 +01:00
Renovate Bot
12d85e1d0c Update plugin com.android.library to v8.13.1 2025-11-12 02:01:37 +00:00
Renovate Bot
00edab363c Update dependency com.google.zxing:core to v3.5.4 2025-11-12 02:01:34 +00:00
bot
3d5f57ef4a Merge pull request 'Update plugin com.android.application to v8.13.1' (#176) from renovate/com.android.application-8.x into main 2025-11-11 03:01:37 +01:00
Renovate Bot
1a01e1ffdf Update plugin com.android.application to v8.13.1 2025-11-11 02:01:34 +00:00
bot
456f14d7d3 Merge pull request 'Update dependency androidx.compose:compose-bom to v2025.11.00' (#175) from renovate/androidx.compose-compose-bom-2025.x into main 2025-11-08 03:02:44 +01:00
Renovate Bot
f7babb188a Update dependency androidx.compose:compose-bom to v2025.11.00 2025-11-07 02:01:42 +00:00
bot
94ead96c5f Merge pull request 'Update dependency androidx.navigation:navigation-compose to v2.9.6' (#174) from renovate/androidx.navigation-navigation-compose-2.x into main 2025-11-06 03:03:35 +01:00
Renovate Bot
f3aac29466 Update dependency androidx.navigation:navigation-compose to v2.9.6 2025-11-06 02:03:14 +00:00
bot
b37cfb9315 Merge pull request 'Update plugin com.autonomousapps.dependency-analysis to v3.4.1' (#173) from renovate/com.autonomousapps.dependency-analysis-3.x into main 2025-10-31 03:01:49 +01:00
Renovate Bot
4a8b8a1f9c Update plugin com.autonomousapps.dependency-analysis to v3.4.1 2025-10-31 02:01:41 +00:00
bot
826d9c8a4c Merge pull request 'Update dependency gradle to v9.2.0' (#172) from renovate/gradle-9.x into main 2025-10-30 03:02:15 +01:00
Renovate Bot
33394d895b Update dependency gradle to v9.2.0 2025-10-30 02:02:12 +00:00
bot
deb8b238bd Merge pull request 'Update plugin com.autonomousapps.dependency-analysis to v3.4.0' (#171) from renovate/com.autonomousapps.dependency-analysis-3.x into main 2025-10-29 03:02:30 +01:00
Renovate Bot
07b4b9d375 Update plugin com.autonomousapps.dependency-analysis to v3.4.0 2025-10-29 02:02:22 +00:00
bot
3987ac3a93 Merge pull request 'Update plugin com.autonomousapps.dependency-analysis to v3.3.0' (#170) from renovate/com.autonomousapps.dependency-analysis-3.x into main 2025-10-26 03:03:22 +01:00
Renovate Bot
419a2e2442 Update plugin com.autonomousapps.dependency-analysis to v3.3.0 2025-10-26 02:03:16 +00:00
bot
d30fe7ed7e Merge pull request 'Update plugin org.jetbrains.kotlin.plugin.serialization to v2.2.21' (#169) from renovate/org.jetbrains.kotlin.plugin.serialization-2.x into main 2025-10-25 04:11:24 +02:00
Renovate Bot
9c45359e6e Update plugin org.jetbrains.kotlin.plugin.serialization to v2.2.21 2025-10-25 02:11:22 +00:00
bot
83670603a0 Merge pull request 'Update plugin org.jetbrains.kotlin.plugin.compose to v2.2.21' (#168) from renovate/org.jetbrains.kotlin.plugin.compose-2.x into main 2025-10-25 04:11:08 +02:00
Renovate Bot
a4bf5e7c39 Update plugin org.jetbrains.kotlin.plugin.compose to v2.2.21 2025-10-25 02:10:58 +00:00
bot
d179407451 Merge pull request 'Update plugin org.jetbrains.kotlin.android to v2.2.21' (#167) from renovate/org.jetbrains.kotlin.android-2.x into main 2025-10-24 04:06:44 +02:00
bot
5c2b13dc38 Merge pull request 'Update dependency androidx.compose.ui:ui-tooling to v1.9.4' (#166) from renovate/androidx.compose.ui-ui-tooling-1.x into main 2025-10-24 04:06:41 +02:00
Renovate Bot
2cf38db3fe Update plugin org.jetbrains.kotlin.android to v2.2.21 2025-10-24 02:06:39 +00:00
Renovate Bot
63606f8565 Update dependency androidx.compose.ui:ui-tooling to v1.9.4 2025-10-24 02:06:37 +00:00
bot
9759aab12b Merge pull request 'Update dependency androidx.compose.material:material to v1.9.4' (#165) from renovate/androidx.compose.material-material-1.x into main 2025-10-23 04:01:31 +02:00
bot
31175fb738 Merge pull request 'Update dependency androidx.compose:compose-bom to v2025.10.01' (#164) from renovate/androidx.compose-compose-bom-2025.x into main 2025-10-23 04:01:29 +02:00
Renovate Bot
e6d24eef24 Update dependency androidx.compose.material:material to v1.9.4 2025-10-23 02:01:28 +00:00
Renovate Bot
188d5c770a Update dependency androidx.compose:compose-bom to v2025.10.01 2025-10-23 02:01:26 +00:00
bot
c3fadc7224 Merge pull request 'Update plugin com.autonomousapps.dependency-analysis to v3.2.0' (#163) from renovate/com.autonomousapps.dependency-analysis-3.x into main 2025-10-22 04:02:32 +02:00
Renovate Bot
1e0e5e8aca Update plugin com.autonomousapps.dependency-analysis to v3.2.0 2025-10-22 02:02:25 +00:00
bot
cda5fcd90f Merge pull request 'Update dependency org.joda:joda-convert to v3' (#162) from renovate/org.joda-joda-convert-3.x into main 2025-10-13 04:01:30 +02:00
Renovate Bot
09ec6500bd Update dependency org.joda:joda-convert to v3 2025-10-13 02:01:24 +00:00
22 changed files with 215 additions and 124 deletions

View File

@@ -23,9 +23,14 @@ jobs:
contents: write
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
submodules: true
fetch-depth: 0
- name: Make script executable
run: chmod +x ./patch_submodule.sh
- name: Run patch submodule script
run: ./patch_submodule.sh
- name: set up secrets
run: |
echo "${{ secrets.RELEASE_KEYSTORE }}" > keystore.asc
@@ -33,8 +38,6 @@ jobs:
gpg -d --passphrase "${{ secrets.RELEASE_KEYSTORE_PASSWORD }}" --batch keystore.asc > app/keystore.properties
gpg -d --passphrase "${{ secrets.RELEASE_KEYSTORE_PASSWORD }}" --batch key.asc > app/key.jks
- uses: gradle/wrapper-validation-action@v3
- name: create and checkout branch
if: github.event_name == 'pull_request'
env:
@@ -44,12 +47,16 @@ jobs:
- name: set up JDK
uses: actions/setup-java@v5
with:
java-version: 17
java-version: 21
distribution: "temurin"
cache: 'gradle'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v6
- name: Build APK
run: ./gradlew assemble
run: |
VERSION_CODE=$(git rev-list --count HEAD)
./gradlew assemble -PVERSION_CODE=$VERSION_CODE
# - name: Upload APK
# uses: actions/upload-artifact@v4
@@ -58,7 +65,7 @@ jobs:
# path: app/build/outputs/apk/release/app-release.apk
- name: Release
uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@v3
if: startsWith(github.ref, 'refs/tags/')
with:
files: |

View File

@@ -3,13 +3,13 @@
<h1>Keepass Fidelity</h1>
<img width="100px" src="./metadata/en-US/images/icon.png" alt="Logo">
<p>A minimalist fidelity/loyalty card plugin</p>
<p>A minimalist fidelity/loyalty card app with Keepass Database storage</p>
<img src="https://forthebadge.com/images/badges/built-for-android.svg" alt="Built for Android">
<img src="https://forthebadge.com/images/badges/built-with-love.svg" alt="Built with love">
<br>
<a href="https://github.com/choelzl/keepass-fidelity/actions/workflows/build.yml">
<img src="https://github.com/choelzl/keepass-fidelity/actions/workflows/build.yml/badge.svg?branch=main" alt="Build Status">
<a href="https://github.com/helcel-net/keepass-fidelity/actions/workflows/build.yml">
<img src="https://github.com/helcel-net/keepass-fidelity/actions/workflows/build.yml/badge.svg?branch=main" alt="Build Status">
</a>
</div>
@@ -27,7 +27,7 @@
## ⭐ Features
- Search entries in [Keepass2Android](https://github.com/PhilippC/keepass2android/)
- Search entries in Keepass Database
- Scan & Create entries
- Recently used history for fast access
- Protect entries from caching

View File

@@ -1,27 +1,38 @@
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'org.jetbrains.kotlin.plugin.serialization' version '2.2.20'
id 'org.jetbrains.kotlin.plugin.compose' version '2.2.20'
def getCommitCount() {
try {
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'rev-list', '--count', 'HEAD'
standardOutput = stdout
}
return stdout.toString().trim().toInteger()
} catch (ignored) {
return 1
}
}
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.plugin.serialization' version '2.3.21'
id 'org.jetbrains.kotlin.plugin.compose' version '2.3.21'
}
android {
namespace 'net.helcel.fidelity'
compileSdk 36
compileSdk = 37
defaultConfig {
applicationId 'net.helcel.fidelity'
versionName "1.0d"
versionName "1.3b"
versionCode project.hasProperty('VERSION_CODE') ? project.property('VERSION_CODE').toInteger() : 1
buildConfigField("String", "APP_NAME", "\"Keepass Fidelity\"")
manifestPlaceholders["APP_NAME"] = "Keepass Fidelity"
minSdk 28
targetSdk 36
minSdk = 28
targetSdk = 37
}
signingConfigs {
create("release") {
register("release") {
try {
def keystorePropertiesFile = rootProject.file("app/keystore.properties")
def keystoreProperties = new Properties()
@@ -41,10 +52,12 @@ android {
buildTypes {
debug {
debuggable true
initWith(buildTypes.release)
signingConfig signingConfigs.debug
}
release {
minifyEnabled true
shrinkResources false
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
signedRelease {
@@ -86,43 +99,41 @@ android {
disable 'UsingMaterialAndMaterial3Libraries'
disable 'PreviewAnnotationInFunctionWithParameters'
}
}
dependencies {
implementation 'androidx.compose.ui:ui'
implementation 'androidx.compose.material3:material3:1.4.0'
implementation 'androidx.compose.material:material:1.9.3'
implementation 'androidx.compose.material:material:1.11.2'
implementation 'androidx.compose.material:material-icons-extended:1.7.8'
implementation 'androidx.navigation:navigation-compose:2.9.5'
implementation 'androidx.navigation:navigation-compose:2.9.8'
implementation 'androidx.preference:preference-ktx:1.2.1'
implementation "androidx.biometric:biometric:1.2.0-alpha05"
implementation "androidx.security:security-crypto:1.1.0"
implementation "androidx.datastore:datastore-preferences:1.1.7"
implementation "androidx.datastore:datastore-preferences:1.2.1"
implementation "androidx.security:security-crypto:1.1.0"
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.1.5'
implementation 'androidx.camera:camera-lifecycle:1.5.1'
implementation 'androidx.camera:camera-view:1.5.1'
runtimeOnly 'androidx.camera:camera-camera2:1.5.1'
implementation 'androidx.camera:camera-lifecycle:1.6.1'
implementation 'androidx.camera:camera-view:1.6.1'
runtimeOnly 'androidx.camera:camera-camera2:1.6.1'
implementation 'com.google.android.material:material:1.13.0'
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0'
implementation 'com.google.zxing:core:3.5.3'
implementation 'com.google.android.material:material:1.14.0'
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.11.0'
implementation 'com.google.zxing:core:3.5.4'
implementation project(":database")
implementation project(":crypto")
implementation platform('androidx.compose:compose-bom:2025.10.00')
implementation 'androidx.compose.ui:ui-tooling:1.9.3'
implementation platform('androidx.compose:compose-bom:2026.05.01')
implementation 'androidx.compose.ui:ui-tooling:1.11.2'
implementation 'androidx.compose.ui:ui-tooling-preview'
//Submodule
//noinspection NewerVersionAvailable
implementation 'joda-time:joda-time:2.14.0'
implementation 'org.joda:joda-convert:2.2.4'
implementation 'joda-time:joda-time:2.14.2'
implementation 'org.joda:joda-convert:3.0.1'
}

View File

@@ -3,5 +3,6 @@
-keepattributes Signature
-keep class org.joda.convert.** { *; }
-dontwarn org.threeten.bp.**
# Optional. For using GSON @Expose annotation
-keepattributes AnnotationDefault,RuntimeVisibleAnnotations

View File

@@ -62,6 +62,7 @@ import net.helcel.fidelity.tools.FidelityEntry
import net.helcel.fidelity.tools.FidelityRepository
import net.helcel.fidelity.tools.FidelityRepository.activeEntry
import net.helcel.fidelity.tools.FidelityRepository.addEntry
import kotlin.time.Duration.Companion.milliseconds
@Preview
@@ -81,7 +82,7 @@ fun CreateEntryScreen(navController: NavHostController?) {
LaunchedEffect(entry) {
isValidBarcode = false
delay(500)
delay(500.milliseconds)
if (entry.code.isEmpty()) return@LaunchedEffect
try {
val bmp = generateBarcode(entry.code, entry.format, 600)
@@ -158,8 +159,9 @@ fun CreateEntryScreen(navController: NavHostController?) {
),
label = { Text("Code") },
isError = errorCode.isNotEmpty(),
modifier = Modifier.fillMaxWidth(),
singleLine = true
maxLines = 5,
singleLine = false,
modifier = Modifier.fillMaxWidth()
)
if (errorCode.isNotEmpty()) {
Text(errorCode, color = MaterialTheme.colors.error)
@@ -358,7 +360,13 @@ private fun onSubmitIfValid(
object CreateEntryEventHandler {
fun onSubmit(navController: NavHostController){
navController.popBackStack()
activeEntry.value = activeEntry.value.copy(null,"","","",false)
activeEntry.value = activeEntry.value.copy(
uid = null,
title = "",
code = "",
format = "",
protected = false
)
}
fun onFileScan(navController: NavHostController){

View File

@@ -1,12 +1,14 @@
package net.helcel.fidelity.activity.fragment
import android.content.Context
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
@@ -24,9 +26,12 @@ import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.FloatingActionButton
import androidx.compose.material.Icon
import androidx.compose.material.MaterialTheme
import androidx.compose.material.OutlinedTextField
import androidx.compose.material.Text
import androidx.compose.material.TextFieldDefaults
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Add
import androidx.compose.material.icons.filled.Close
import androidx.compose.material.icons.filled.Edit
import androidx.compose.material.icons.filled.HideSource
import androidx.compose.material.icons.filled.PushPin
@@ -36,6 +41,7 @@ import androidx.compose.material3.CardDefaults
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.pulltorefresh.PullToRefreshBox
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
@@ -44,6 +50,8 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
@@ -51,6 +59,8 @@ import androidx.navigation.NavHostController
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import net.helcel.fidelity.activity.ToastHelper
import net.helcel.fidelity.activity.fragment.LauncherEventHandlers.isSearchVisible
import net.helcel.fidelity.activity.fragment.LauncherEventHandlers.onAdd
import net.helcel.fidelity.activity.fragment.LauncherEventHandlers.onEdit
import net.helcel.fidelity.activity.fragment.LauncherEventHandlers.onHide
@@ -58,6 +68,7 @@ import net.helcel.fidelity.activity.fragment.LauncherEventHandlers.onPin
import net.helcel.fidelity.activity.fragment.LauncherEventHandlers.onQuery
import net.helcel.fidelity.activity.fragment.LauncherEventHandlers.onRefresh
import net.helcel.fidelity.activity.fragment.LauncherEventHandlers.onView
import net.helcel.fidelity.activity.fragment.LauncherEventHandlers.searchQuery
import net.helcel.fidelity.tools.CredentialResult
import net.helcel.fidelity.tools.FidelityEntry
import net.helcel.fidelity.tools.FidelityRepository.activeEntry
@@ -79,9 +90,18 @@ fun LauncherScreen(
var showHidden by remember { mutableStateOf(false) }
val context = LocalContext.current
val scope = rememberCoroutineScope()
val sortedEntries = remember(entries) {
val focusRequester = remember { FocusRequester() }
BackHandler(enabled = isSearchVisible) {
onQuery()
}
val sortedEntries = remember(entries, showHidden, searchQuery) {
derivedStateOf {
entries.filter{showHidden || !it.hidden}.sortedWith(
entries.filter {
(showHidden || !it.hidden) &&
(searchQuery.isEmpty() || it.title.contains(searchQuery, ignoreCase = true))
}.sortedWith(
compareByDescending<FidelityEntry> { it.pinned }
.thenBy { it.hidden }
.thenByDescending { it.lastUse }
@@ -105,17 +125,47 @@ fun LauncherScreen(
isRefreshing = isRefreshingState,
modifier = Modifier.fillMaxSize()
) {
LazyVerticalGrid(
columns = GridCells.Fixed(2),
modifier = Modifier
.fillMaxSize()
.fillMaxSize()
.padding(16.dp),
verticalArrangement = Arrangement.spacedBy(8.dp),
horizontalArrangement = Arrangement.spacedBy(8.dp)
) {
items(sortedEntries.value) { entry ->
FidelityRow(navController, entry)
Column(modifier = Modifier.fillMaxSize()) {
if (isSearchVisible) {
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
OutlinedTextField(
value = searchQuery,
onValueChange = { searchQuery = it },
colors = TextFieldDefaults.textFieldColors(
textColor = MaterialTheme.colors.onBackground
),
modifier = Modifier
.fillMaxWidth()
.padding(16.dp)
.focusRequester(focusRequester),
label = { Text("Search") },
singleLine = true,
trailingIcon = {
Icon(
Icons.Default.Close,
contentDescription = "Clear",
modifier = Modifier.clickable {
searchQuery = ""
onQuery()
}
)
}
)
}
LazyVerticalGrid(
columns = GridCells.Fixed(2),
modifier = Modifier
.fillMaxSize()
.fillMaxSize()
.padding(16.dp),
verticalArrangement = Arrangement.spacedBy(8.dp),
horizontalArrangement = Arrangement.spacedBy(8.dp)
) {
items(sortedEntries.value) { entry ->
FidelityRow(navController, entry)
}
}
}
FloatingActionButton(
@@ -262,21 +312,24 @@ fun FidelityRow(
object LauncherEventHandlers {
var isSearchVisible by mutableStateOf(false)
var searchQuery by mutableStateOf("")
var CRED: CredentialResult.Success? = null
fun onAdd(navController: NavHostController) {
navController.navigate("edit")
}
fun onQuery() {
//TODO
isSearchVisible = !isSearchVisible
if (!isSearchVisible) searchQuery = ""
}
var CRED: CredentialResult.Success? = null
suspend fun onSave(context: Context, navController: NavHostController){
try {
if (CRED == null) {
val res = loadCredentials(context)
when (res) {
CredentialResult.AuthFailed, CredentialResult.NoData -> null
when (val res = loadCredentials(context)) {
CredentialResult.AuthFailed, CredentialResult.NoData -> ToastHelper.show(context, "Unable to Load Credentials")
is CredentialResult.Success -> CRED = res
}
}
@@ -297,11 +350,9 @@ object LauncherEventHandlers {
suspend fun onRefresh(context: Context, navController: NavHostController) {
try {
if (CRED == null) {
val res = loadCredentials(context)
when (res) {
CredentialResult.AuthFailed, CredentialResult.NoData -> null
when (val res = loadCredentials(context)) {
CredentialResult.AuthFailed, CredentialResult.NoData -> ToastHelper.show(context, "Unable to Load Credentials")
is CredentialResult.Success -> CRED = res
}
}
CRED!!
@@ -309,8 +360,8 @@ object LauncherEventHandlers {
genCredentials(context, CRED!!)
}
if (withContext(Dispatchers.IO) {
start(context, CRED!!.db, cred)
})
start(context, CRED!!.db, cred)
})
importDB(context)
} catch (e: Exception) {
println(e.toString())

View File

@@ -53,6 +53,7 @@ import net.helcel.fidelity.activity.ToastHelper
import net.helcel.fidelity.activity.fragment.SetupEventHandlers.onOpen
import net.helcel.fidelity.tools.CredentialResult
import net.helcel.fidelity.tools.FidelityRepository.genCredentials
import net.helcel.fidelity.tools.FidelityRepository.importDB
import net.helcel.fidelity.tools.FidelityRepository.start
import net.helcel.fidelity.tools.KeePassStore.loadCredentials
import net.helcel.fidelity.tools.KeePassStore.packCredentials
@@ -116,8 +117,8 @@ fun InitialScreen(
LaunchedEffect(Unit) {
scope.launch(Dispatchers.Main) {
when(val res = loadCredentials(context)) {
CredentialResult.AuthFailed -> null
CredentialResult.NoData -> null
CredentialResult.AuthFailed -> ToastHelper.show(context, "Unable to Load Credentials")
CredentialResult.NoData -> ToastHelper.show(context, "Unable to Load Credentials")
is CredentialResult.Success -> {
if (res.db != null) dbFile = res.db
if (res.key != null) keyFile = res.key
@@ -219,13 +220,17 @@ fun InitialScreen(
onClick = {
loading = true
scope.launch {
if(onOpen(context, dbFile!!, password, keyFile)){
val res = onOpen(context, dbFile!!, password, keyFile)
if(res != null){
ToastHelper.show(context, "Successful... Importing")
withContext(Dispatchers.IO) {
start(context, dbFile!!,genCredentials(context, res))
}
importDB(context)
navController!!.popBackStack()
navController.navigate("init")
navController.navigate("launcher")
}else{
ToastHelper.show(context, "Auth failed...")
navController!!.popBackStack()
navController.navigate("exit")
ToastHelper.show(context, "Failed... Retry")
}
}
},
@@ -249,7 +254,7 @@ fun InitialScreen(
}
object SetupEventHandlers {
suspend fun onOpen(context: Context, db: Uri, p: String, key: Uri?): Boolean {
suspend fun onOpen(context: Context, db: Uri, p: String, key: Uri?): CredentialResult.Success? {
try {
val packCred = packCredentials(db, p, key)
withContext(Dispatchers.IO) {
@@ -261,14 +266,14 @@ object SetupEventHandlers {
saveCredentials(context, packCred)
}
return when (res) {
CredentialResult.AuthFailed, CredentialResult.NoData -> false
is CredentialResult.Success -> true
CredentialResult.AuthFailed, CredentialResult.NoData -> null
is CredentialResult.Success -> res
}
} catch (e: Exception) {
ToastHelper.show(context, e.message.toString())
println("Err${e.toString()}")
println(e.message)
return false
return null
}
}
}

View File

@@ -13,7 +13,6 @@ import com.google.zxing.common.HybridBinarizer
import net.helcel.fidelity.tools.BarcodeFormatConverter.formatToString
import java.util.concurrent.Executors
@OptIn(ExperimentalGetImage::class)
object BarcodeScanner {
@@ -56,6 +55,4 @@ object BarcodeScanner {
fun bitmapUseCase(bitmap: Bitmap, cb: (String?, String?) -> Unit) {
processImage(bitmap, cb)
}
}

View File

@@ -113,13 +113,21 @@ suspend fun showBiometricPrompt(activity: FragmentActivity, enc: Boolean): Ciphe
activity,
executor,
object : BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) { cont.resume(result.cryptoObject?.cipher) {} }
override fun onAuthenticationError(code: Int, msg: CharSequence) { cont.resume(null) {} }
override fun onAuthenticationFailed() { cont.resume(null) {} }
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
cont.resume(result.cryptoObject?.cipher) { _, _, _ -> }
}
override fun onAuthenticationError(code: Int, msg: CharSequence) {
cont.resume(null) { _, _, _ -> }
}
override fun onAuthenticationFailed() {
cont.resume(null) { _, _, _ -> }
}
}
)
val iv = if(enc) null else prefs[KeePassKeys.IV]?.let { Base64.decode(it, Base64.DEFAULT) }
if (!enc && iv == null) { cont.resume(null) {} }
if (!enc && iv == null) {
cont.resume(null) { _, _, _ -> }
}
val cipher = getCipherForDecryption(getOrCreateBiometricKey(), iv)
val promptInfo = BiometricPrompt.PromptInfo.Builder()
.setTitle("Unlock KeePass")

View File

@@ -59,7 +59,7 @@ object FidelityRepository {
db.loadData(
bitStream, c,
{ hardwareKey, seed -> retrieveResponseFromChallenge(hardwareKey, seed) },
false, binaryDir!!,
readOnly=false, allowUserVerification = false,binaryDir!!,
{ BinaryData.canMemoryBeAllocatedInRAM(ctx, it) },
false, null
)
@@ -84,7 +84,7 @@ object FidelityRepository {
hardwareKey: HardwareKey? = null
): MasterCredential {
return MasterCredential(
cred.password,
cred.password.toCharArray(),
cred.key?.let { ctx.contentResolver.openInputStream(cred.key)?.readBytes() },
hardwareKey
)
@@ -103,8 +103,8 @@ object FidelityRepository {
val newEntry = FidelityEntry(
uid=it.nodeId.id.toString(),
title=it.title,
code=code.protectedValue.stringValue,
format=format.protectedValue.stringValue,
code=code.protectedValue.toString(),
format=format.protectedValue.toString(),
protected=code.protectedValue.isProtected,
)
val idx = entries.indexOfFirst { e -> e.uid == newEntry.uid }
@@ -172,7 +172,7 @@ object FidelityRepository {
putExtraField(
Field(
FidelityKeepassFields.FIDELITYFORMAT,
ProtectedString(string= entry.format)
ProtectedString(true, entry.format.toCharArray())
)
)
if(dbParent!=null) title = entry.title

View File

@@ -2,4 +2,5 @@
<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"/>
<monochrome android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

View File

@@ -1,16 +1,14 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
// ext.kotlin_version = '1.8.20'
// ext.android_core_version = '1.10.1'
// ext.android_appcompat_version = '1.6.1'
// ext.android_material_version = '1.9.0'
ext.android_test_version = '1.5.2'
ext.joda_time_version = '2.14.1'
ext.commons_io_version = '2.21.0'
ext.android_test_version = '1.7.0'
}
plugins {
id 'com.android.application' version '8.13.0' apply false
id 'com.android.library' version '8.13.0' apply false
id 'org.jetbrains.kotlin.android' version '2.2.20' apply false
id 'com.autonomousapps.dependency-analysis' version '3.1.0' apply true
id 'com.android.application' version '9.2.1' apply false
id 'com.android.library' version '9.2.1' apply false
id 'org.jetbrains.kotlin.android' version '2.3.21' apply false
id 'com.autonomousapps.dependency-analysis' version '3.13.0' apply true
}

View File

@@ -21,4 +21,8 @@ kotlin.code.style=official
# Enables namespacing of each library's R class so that its R class includes only the
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
android.nonTransitiveRClass=true
android.nonTransitiveRClass=true
android.onlyEnableUnitTestForTheTestedBuildType=false
android.uniquePackageNames=false
android.r8.strictFullModeForKeepRules=false
android.dependency.useConstraints=false

Binary file not shown.

View File

@@ -1,7 +1,9 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip
networkTimeout=10000
retries=0
retryBackOffMs=500
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

2
gradlew vendored
View File

@@ -57,7 +57,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.

31
gradlew.bat vendored
View File

@@ -23,8 +23,8 @@
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
@rem Set local scope for the variables, and ensure extensions are enabled
setlocal EnableExtensions
set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@@ -51,7 +51,7 @@ echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
"%COMSPEC%" /c exit 1
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
@@ -65,7 +65,7 @@ echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
"%COMSPEC%" /c exit 1
:execute
@rem Setup the command line
@@ -73,21 +73,10 @@ goto fail
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
@rem endlocal doesn't take effect until after the line is parsed and variables are expanded
@rem which allows us to clear the local environment before executing the java command
endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel
:end
@rem End local scope for the variables with windows NT shell
if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
:exitWithErrorLevel
@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts
"%COMSPEC%" /c exit %ERRORLEVEL%

View File

@@ -1 +1 @@
<p><i>Keepass-Fidelity</i> adds an interface to view/save barcodes (QR included) to Keepass through the plugin interface of the Keepass2Android app.</p><p><br></p><ul><li><b>Launcher:</b> view and launch recent entries (a per entry flag can disable this behaviour)</li><li><b>View:</b> view entries from the history or queried from Keepass2Android</li><li><b>Create:</b> add entries from the camera, an image of by filling out a form. The entry is then created in the Keepass2Android app</li><li><b>Data:</b> the app uses the following data Title (entry name), barcode type (QR, UPC, ...), barcode content (number/text content) and a "secure" flag (enable/disable caching the entry).</li></ul>
<p><i>Keepass-Fidelity</i> adds an interface to view&save barcodes (QR included) with a Keepass Database.</p><p><br></p><ul><li><b>Launcher:</b> view and launch recent entries (a per entry flag can disable this behaviour)</li><li><b>View:</b> view entries from loaded from the database</li><li><b>Create:</b> add entries from the camera, an image of by filling out a form. The entry is then created in the database</li><li><b>Data:</b> the app uses the following data Title (entry name), barcode type (QR, UPC, ...), barcode content (number/text content) and a "secure" flag (enable/disable caching the entry).</li></ul>

View File

@@ -1 +1 @@
Fidelity (Membership/Loyalty) Card plugin for Keepass2Android
Fidelity (Membership/Loyalty) Card app with Keepass Database Storage

9
patch_submodule.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
for file in external/KeePassDX/{crypto,database}/build.gradle; do
if [ -f "$file" ]; then
sed -i "/id 'kotlin-android'/d" "$file"
sed -i "/apply plugin: 'kotlin-android'/d" "$file"
sed -i '/kotlinOptions {/,/}/d' "$file"
fi
done