Compare commits

..

236 Commits

Author SHA1 Message Date
Sylvia van Os
a514f285f7 Release Catima 2.36.0 2025-08-05 18:10:57 +02:00
Sylvia van Os
5634df1f5a Merge pull request #2601 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-08-05 18:09:02 +02:00
delvani
f2b46310de Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_BR/
2025-08-05 17:49:05 +02:00
Edgars Andersons
a646717277 Translated using Weblate (Latvian)
Currently translated at 9.4% (14 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/lv/
2025-08-05 17:49:05 +02:00
Edgars Andersons
63e992be5c Translated using Weblate (Latvian)
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/lv/
2025-08-05 17:49:04 +02:00
Sylvia van Os
98a574f223 Translated using Weblate (Dutch)
Currently translated at 59.4% (88 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/nl/
2025-08-05 17:49:04 +02:00
Sylvia van Os
6dfbcc3577 Translated using Weblate (Dutch)
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2025-08-05 17:49:03 +02:00
Sylvia van Os
4c00c8b94d Merge pull request #2599 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-08-03 20:49:25 +02:00
Ömer
cde3dd8ecf Translated using Weblate (Turkish)
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/tr/
2025-08-03 18:02:29 +00:00
Giovanni Donisi
e22ad2c4a8 Translated using Weblate (Italian)
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2025-08-03 18:02:28 +00:00
Sylvia van Os
62aeadae71 Merge pull request #2598 from CatimaLoyalty/create-pull-request/patch-1754196371
Update contributors
2025-08-03 10:24:36 +02:00
TheLastProject
7e89db428b Update contributors 2025-08-03 04:46:11 +00:00
Sylvia van Os
50e13c22c6 Merge pull request #2597 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-08-02 17:33:07 +02:00
ssantos
7e323dc342 Translated using Weblate (Portuguese)
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt/
2025-08-02 17:08:20 +02:00
josé m
c0cd051831 Translated using Weblate (Galician)
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/gl/
2025-08-02 17:08:20 +02:00
Priit Jõerüüt
b1b97c8972 Translated using Weblate (Estonian)
Currently translated at 11.4% (17 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/et/
2025-08-02 17:08:19 +02:00
Priit Jõerüüt
256687ecdb Translated using Weblate (Estonian)
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/et/
2025-08-02 17:08:18 +02:00
ssantos
9829cc3100 Translated using Weblate (Portuguese)
Currently translated at 100.0% (148 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt/
2025-08-02 17:08:18 +02:00
ssantos
2aa8be2642 Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_PT/
2025-08-02 17:08:17 +02:00
ssantos
75a6482c0e Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (148 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt_PT/
2025-08-02 17:08:16 +02:00
109247019824
14e953db4c Translated using Weblate (Bulgarian)
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bg/
2025-08-02 17:08:16 +02:00
Ricky Tigg
60e3c864c8 Translated using Weblate (Finnish)
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fi/
2025-08-02 17:08:15 +02:00
大王叫我来巡山
87ca4a5dd3 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (148 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2025-08-02 17:08:14 +02:00
大王叫我来巡山
a70671cf0b Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hans/
2025-08-02 17:08:14 +02:00
Warder
67d7ea4ca2 Translated using Weblate (Slovak)
Currently translated at 98.6% (146 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sk/
2025-08-02 17:08:13 +02:00
Fjuro
53f58940dd Translated using Weblate (Czech)
Currently translated at 100.0% (148 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/cs/
2025-08-02 17:08:13 +02:00
Максим Горпиніч
f2639612f0 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (148 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2025-08-02 17:08:12 +02:00
solokot
d29344af73 Translated using Weblate (Russian)
Currently translated at 100.0% (148 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2025-08-02 17:08:12 +02:00
Kachelkaiser
32635bdc9a Translated using Weblate (German)
Currently translated at 100.0% (148 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2025-08-02 17:08:11 +02:00
Sylvain Pichon
8457cc06d2 Translated using Weblate (French)
Currently translated at 100.0% (148 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/fr/
2025-08-02 17:08:10 +02:00
Максим Горпиніч
a8316769a1 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2025-08-02 17:08:10 +02:00
Warder
2f6bae7333 Translated using Weblate (Slovak)
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sk/
2025-08-02 17:08:09 +02:00
solokot
e951402049 Translated using Weblate (Russian)
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2025-08-02 17:08:08 +02:00
Sylvain Pichon
4d5e3043ff Translated using Weblate (French)
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fr/
2025-08-02 17:08:08 +02:00
Vasilis K
d57f528165 Translated using Weblate (Greek)
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/el/
2025-08-02 17:08:07 +02:00
Kachelkaiser
14e84e5e0f Translated using Weblate (German)
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2025-08-02 17:08:07 +02:00
Fjuro
fe79d3e866 Translated using Weblate (Czech)
Currently translated at 100.0% (334 of 334 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/cs/
2025-08-02 17:08:06 +02:00
Sylvia van Os
88369ea070 Merge pull request #2596 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-08-01 17:18:04 +02:00
Warder
944e83e480 Translated using Weblate (Slovak)
Currently translated at 98.6% (146 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sk/
2025-08-01 16:53:47 +02:00
Sylvia van Os
8bb15bcb57 Merge pull request #2593 from CatimaLoyalty/dependabot/gradle/com.android.application-8.12.0
Bump com.android.application from 8.11.1 to 8.12.0
2025-08-01 08:16:33 +02:00
dependabot[bot]
cb6358892b Bump com.android.application from 8.11.1 to 8.12.0
Bumps com.android.application from 8.11.1 to 8.12.0.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 8.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-01 02:06:11 +00:00
Sylvia van Os
9956f6de34 Merge pull request #2592 from CatimaLoyalty/create-pull-request/patch-1753994193
Update Fastlane changelogs
2025-07-31 22:38:06 +02:00
TheLastProject
893bd551e0 Update Fastlane changelogs 2025-07-31 20:36:32 +00:00
Sylvia van Os
5c67459330 Update CHANGELOG 2025-07-31 22:36:20 +02:00
Sylvia van Os
e2988ec29a Merge pull request #2566 from realwk/widget
Widget with all cards
2025-07-31 22:35:44 +02:00
Sylvia van Os
2c96b11725 Various widget bugfixes
Widget now updates on sorting order change and no cards is correctly
detected
2025-07-31 21:50:59 +02:00
Sylvia van Os
0d52a49e8b Merge pull request #2591 from CatimaLoyalty/dependabot/gradle/androidx.test.ext-junit-1.3.0
Bump androidx.test.ext:junit from 1.2.1 to 1.3.0
2025-07-31 08:46:53 +02:00
dependabot[bot]
504ab7f148 Bump androidx.test.ext:junit from 1.2.1 to 1.3.0
Bumps androidx.test.ext:junit from 1.2.1 to 1.3.0.

---
updated-dependencies:
- dependency-name: androidx.test.ext:junit
  dependency-version: 1.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-31 06:23:18 +00:00
Sylvia van Os
d75f228632 Merge pull request #2590 from CatimaLoyalty/dependabot/gradle/androidx.test.espresso-espresso-core-3.7.0
Bump androidx.test.espresso:espresso-core from 3.6.1 to 3.7.0
2025-07-31 08:22:07 +02:00
Sylvia van Os
410f0f2a6f Merge pull request #2588 from CatimaLoyalty/dependabot/gradle/androidXTestVersion-1.7.0
Bump androidXTestVersion from 1.6.1 to 1.7.0
2025-07-31 08:16:15 +02:00
dependabot[bot]
c4672d282c Bump androidx.test.espresso:espresso-core from 3.6.1 to 3.7.0
Bumps androidx.test.espresso:espresso-core from 3.6.1 to 3.7.0.

---
updated-dependencies:
- dependency-name: androidx.test.espresso:espresso-core
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-31 02:06:24 +00:00
dependabot[bot]
9297fee839 Bump androidXTestVersion from 1.6.1 to 1.7.0
Bumps `androidXTestVersion` from 1.6.1 to 1.7.0.

Updates `androidx.test:core` from 1.6.1 to 1.7.0

Updates `androidx.test:runner` from 1.6.1 to 1.7.0

---
updated-dependencies:
- dependency-name: androidx.test:core
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: androidx.test:runner
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-31 02:06:07 +00:00
Sylvia van Os
acc72c0937 Rename from CatimaWidget to ListWidget
This makes the codebase easier to understand if we get more widget types
in the future
2025-07-30 21:23:14 +02:00
Sylvia van Os
54c27f7038 Refactor widget to be the same size as regular cards
This isn't as automatic as I would've liked, but with some manual
trial-and-error I think this works well enough in keeping the aspect
ratio while somewhat "scaling" based on size (at least the number of
columns are scaled)
2025-07-30 21:23:14 +02:00
Sylvia van Os
7277ff26fc Refactor deprecated widget code
This replaces the deprecated widget method with the new one and ensures
it consistently updates on changes.
2025-07-30 21:23:14 +02:00
realwk
9a0149def8 Initial widget work
Co-authored-by: Sylvia van Os <sylvia@hackerchick.me>
2025-07-30 21:23:14 +02:00
Sylvia van Os
e217e99864 Merge pull request #2587 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-07-29 20:17:46 +02:00
Lilith Maria
9674af3bae Translated using Weblate (Lithuanian)
Currently translated at 4.0% (6 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/lt/
2025-07-29 19:10:30 +02:00
Sylvia van Os
a2b85dd37a Merge pull request #2585 from StellarSand/mainfork
Migrate 2 actvities to kotlin
2025-07-29 18:15:01 +02:00
Sylvia van Os
220fe96268 Merge pull request #2586 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-07-28 18:45:19 +02:00
ssantos
917b6cfb7d Translated using Weblate (Portuguese)
Currently translated at 100.0% (148 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt/
2025-07-28 18:22:47 +02:00
ssantos
0b687e1788 Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (148 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt_PT/
2025-07-28 18:22:46 +02:00
Edgars Andersons
b35fa810ef Translated using Weblate (Latvian)
Currently translated at 9.4% (14 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/lv/
2025-07-28 18:22:45 +02:00
大王叫我来巡山
0d1e10d064 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (148 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2025-07-28 18:22:45 +02:00
StellarSand
96359e5942 minor changes 2025-07-28 04:03:06 +05:30
StellarSand
bf63390f65 convert BarcodeSelectorActivity to kotlin 2025-07-28 02:47:58 +05:30
StellarSand
6f54981333 Rename .java to .kt 2025-07-28 02:47:58 +05:30
StellarSand
aed145239b convert CardShortcutConfigure to kotlin 2025-07-28 02:47:44 +05:30
StellarSand
99a8c917b9 Rename .java to .kt 2025-07-28 02:47:44 +05:30
Sylvia van Os
ef39f30fd7 Merge pull request #2584 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-07-27 15:37:11 +02:00
Reptalica
24e996e1a9 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/vi/
2025-07-27 12:07:40 +00:00
Fjuro
4178dce4e2 Translated using Weblate (Czech)
Currently translated at 100.0% (148 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/cs/
2025-07-27 12:07:38 +00:00
Максим Горпиніч
514eaae616 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (148 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2025-07-27 12:07:23 +00:00
solokot
5692251668 Translated using Weblate (Russian)
Currently translated at 100.0% (148 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2025-07-27 12:07:07 +00:00
B o d o
6208dd3fd9 Translated using Weblate (German)
Currently translated at 100.0% (148 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2025-07-27 12:06:52 +00:00
Sylvain Pichon
85288a3658 Translated using Weblate (French)
Currently translated at 100.0% (148 of 148 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/fr/
2025-07-27 12:06:36 +00:00
Sylvia van Os
bae7e676b4 Merge pull request #2581 from CatimaLoyalty/create-pull-request/patch-1753466727
Update Fastlane changelogs
2025-07-25 20:05:51 +02:00
TheLastProject
6ae7491a18 Update Fastlane changelogs 2025-07-25 18:05:26 +00:00
Sylvia van Os
e5de694711 Update CHANGELOG 2025-07-25 20:05:13 +02:00
StellarSand
996cd2cd2c Proper fix for FAB being hidden by keyboard (#2579) 2025-07-25 20:04:24 +02:00
Sylvia van Os
8f6bd8c266 Merge pull request #2578 from CatimaLoyalty/create-pull-request/patch-1753131181
Update Fastlane changelogs
2025-07-21 23:20:23 +02:00
TheLastProject
599d58e3c7 Update Fastlane changelogs 2025-07-21 20:53:01 +00:00
Sylvia van Os
1dd58bf2d0 Update CHANGELOG 2025-07-21 22:52:49 +02:00
Sylvia van Os
90cf3adc25 Merge pull request #2573 from StellarSand/main
Fix for save button being covered by keyboard
2025-07-21 22:45:55 +02:00
Sylvia van Os
26797addb8 Merge pull request #2577 from CatimaLoyalty/create-pull-request/patch-1752986452
Update contributors
2025-07-20 09:59:27 +02:00
TheLastProject
b320e6f253 Update contributors 2025-07-20 04:40:52 +00:00
Sylvia van Os
48d9ac4eed Merge pull request #2575 from CatimaLoyalty/create-pull-request/patch-1752820497
Update feature graphic
2025-07-18 17:42:17 +02:00
TheLastProject
388eb273e4 Update feature graphic 2025-07-18 06:34:57 +00:00
Sylvia van Os
0eee713712 Merge pull request #2574 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-07-18 08:32:14 +02:00
Hosted Weblate
3ff1262149 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/
2025-07-18 05:04:31 +02:00
Mujtaba-Alsaleh
f4a420b699 Translated using Weblate (Arabic)
Currently translated at 44.8% (66 of 147 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ar/
2025-07-18 05:04:31 +02:00
Mujtaba-Alsaleh
b35b0cf1f9 Translated using Weblate (Arabic)
Currently translated at 44.8% (66 of 147 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ar/
2025-07-18 05:04:30 +02:00
Mujtaba-Alsaleh
2f4ee75c85 Translated using Weblate (Arabic)
Currently translated at 44.8% (66 of 147 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ar/
2025-07-18 05:04:30 +02:00
StellarSand
b3356b6575 close keypad if open on back pressed 2025-07-18 02:24:26 +05:30
Sylvia van Os
359a37c8a6 Remove gradle updater
Has been broken for several months, mailing me daily about failed runs. Needs replacing. See https://github.com/CatimaLoyalty/Android/issues/2525
2025-07-11 08:55:04 +02:00
Sylvia van Os
a5a57fe8c8 Merge pull request #2571 from CatimaLoyalty/dependabot/gradle/com.android.application-8.11.1
Bump com.android.application from 8.11.0 to 8.11.1
2025-07-11 07:57:50 +02:00
dependabot[bot]
c1f088c191 Bump com.android.application from 8.11.0 to 8.11.1
Bumps com.android.application from 8.11.0 to 8.11.1.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 8.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-11 02:39:37 +00:00
Sylvia van Os
fec8d05927 Merge pull request #2570 from CatimaLoyalty/create-pull-request/patch-1751776272
Update contributors
2025-07-06 07:13:23 +02:00
TheLastProject
466f068e36 Update contributors 2025-07-06 04:31:11 +00:00
Sylvia van Os
b5880223a5 Merge pull request #2569 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-07-05 08:46:07 +02:00
toposets
0a8a621fad Translated using Weblate (Indonesian)
Currently translated at 99.6% (331 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/id/
2025-07-05 07:01:56 +02:00
Cristian Carpo
5267607b79 Translated using Weblate (Romanian)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ro/
2025-07-05 07:01:56 +02:00
Sylvia van Os
5474a516f4 Merge pull request #2567 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-07-01 23:38:33 +02:00
ssantos
221b8cd7d1 Translated using Weblate (Portuguese)
Currently translated at 100.0% (147 of 147 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt/
2025-07-01 21:37:30 +02:00
ssantos
2b544a74bd Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (147 of 147 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt_PT/
2025-07-01 21:37:30 +02:00
Yash R. Dhake
bcb7df24ec Optimize resizeBitmap(): Skip resizing for already-small images (#2565)
Co-authored-by: Sylvia van Os <sylvia@hackerchick.me>
2025-06-29 21:24:12 +02:00
Sylvia van Os
59fb95a4a7 Merge pull request #2563 from CatimaLoyalty/create-pull-request/patch-1751171603
Update contributors
2025-06-29 08:11:57 +02:00
TheLastProject
157617fe4a Update contributors 2025-06-29 04:33:23 +00:00
Sylvia van Os
ecdfeee3e6 Merge pull request #2562 from CatimaLoyalty/dependabot/gradle/com.android.application-8.11.0
Bump com.android.application from 8.10.1 to 8.11.0
2025-06-25 07:03:13 +02:00
dependabot[bot]
3cd3a53268 Bump com.android.application from 8.10.1 to 8.11.0
Bumps com.android.application from 8.10.1 to 8.11.0.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 8.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-25 02:14:37 +00:00
Sylvia van Os
9edf3c3028 Merge pull request #2561 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-06-24 08:17:13 +02:00
Sylvia van Os
82d8addafa Merge pull request #2560 from CatimaLoyalty/dependabot/gradle/org.jetbrains.kotlin.android-2.2.0
Bump org.jetbrains.kotlin.android from 2.1.21 to 2.2.0
2025-06-24 08:13:11 +02:00
Warder
3b446145b8 Translated using Weblate (Slovak)
Currently translated at 98.6% (145 of 147 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sk/
2025-06-24 07:02:19 +02:00
dependabot[bot]
92fec8558e Bump org.jetbrains.kotlin.android from 2.1.21 to 2.2.0
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 2.1.21 to 2.2.0.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v2.2.0/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.21...v2.2.0)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-version: 2.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-24 03:07:37 +00:00
Sylvia van Os
df858a7d65 Merge pull request #2559 from CatimaLoyalty/dependabot/gradle/org.robolectric-robolectric-4.15.1
Bump org.robolectric:robolectric from 4.15 to 4.15.1
2025-06-23 07:05:58 +02:00
dependabot[bot]
a4c0c51a45 Bump org.robolectric:robolectric from 4.15 to 4.15.1
Bumps [org.robolectric:robolectric](https://github.com/robolectric/robolectric) from 4.15 to 4.15.1.
- [Release notes](https://github.com/robolectric/robolectric/releases)
- [Commits](https://github.com/robolectric/robolectric/compare/robolectric-4.15...robolectric-4.15.1)

---
updated-dependencies:
- dependency-name: org.robolectric:robolectric
  dependency-version: 4.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 03:13:01 +00:00
Sylvia van Os
33d4b3ab7c Merge pull request #2558 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-06-22 23:20:41 +02:00
solokot
06dc720108 Translated using Weblate (Russian)
Currently translated at 100.0% (147 of 147 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2025-06-22 21:02:23 +02:00
Sylvia van Os
a24805232c Merge pull request #2557 from CatimaLoyalty/create-pull-request/patch-1750566607
Update contributors
2025-06-22 10:03:50 +02:00
TheLastProject
5ec1bcb721 Update contributors 2025-06-22 04:30:07 +00:00
Sylvia van Os
cddc273333 Merge pull request #2556 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-06-21 16:23:36 +02:00
大王叫我来巡山
0bd46b96cb Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (147 of 147 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2025-06-21 15:03:44 +02:00
Fjuro
2b6926c800 Translated using Weblate (Czech)
Currently translated at 100.0% (147 of 147 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/cs/
2025-06-21 15:03:43 +02:00
Максим Горпиніч
ceb6bb8328 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (147 of 147 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2025-06-21 15:03:42 +02:00
Michael Moroni
8fd88e29ec Translated using Weblate (Italian)
Currently translated at 85.0% (125 of 147 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/it/
2025-06-21 15:03:42 +02:00
B o d o
d97b1cc1d0 Translated using Weblate (German)
Currently translated at 100.0% (147 of 147 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2025-06-21 15:03:41 +02:00
Sylvain Pichon
baf2848ce0 Translated using Weblate (French)
Currently translated at 100.0% (147 of 147 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/fr/
2025-06-21 15:03:40 +02:00
Sylvia van Os
b16ea272ae Merge pull request #2554 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-06-20 17:10:52 +02:00
ssantos
59fa7d143d Translated using Weblate (Portuguese)
Currently translated at 100.0% (146 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt/
2025-06-20 14:04:03 +02:00
ssantos
658cfd2d4a Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (146 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt_PT/
2025-06-20 14:04:02 +02:00
Sylvia van Os
a428db36c4 Merge pull request #2553 from CatimaLoyalty/dependabot/gradle/org.robolectric-robolectric-4.15
Bump org.robolectric:robolectric from 4.14.1 to 4.15
2025-06-20 08:18:21 +02:00
dependabot[bot]
469eaefcb6 Bump org.robolectric:robolectric from 4.14.1 to 4.15
Bumps [org.robolectric:robolectric](https://github.com/robolectric/robolectric) from 4.14.1 to 4.15.
- [Release notes](https://github.com/robolectric/robolectric/releases)
- [Commits](https://github.com/robolectric/robolectric/compare/robolectric-4.14.1...robolectric-4.15)

---
updated-dependencies:
- dependency-name: org.robolectric:robolectric
  dependency-version: '4.15'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-20 02:37:20 +00:00
Sylvia van Os
e991c9fdc1 Update fastlane 2025-06-18 22:05:28 +02:00
Sylvia van Os
43c9e7f7ac Merge branch 'main' of github.com:CatimaLoyalty/Android 2025-06-17 18:54:46 +02:00
Sylvia van Os
b410f100e8 Release Catima 2.35.1 2025-06-17 18:47:43 +02:00
Sylvia van Os
e2413f8538 Merge pull request #2551 from CatimaLoyalty/create-pull-request/patch-1750178776
Update Fastlane changelogs
2025-06-17 18:46:41 +02:00
TheLastProject
745f1ba8cc Update Fastlane changelogs 2025-06-17 16:46:16 +00:00
Sylvia van Os
482b16e772 Update CHANGELOG 2025-06-17 18:46:04 +02:00
Sylvia van Os
f284c4807f Merge pull request #2549 from CatimaLoyalty/create-pull-request/patch-1749961719
Update contributors
2025-06-15 11:46:00 +02:00
TheLastProject
9927d6a544 Update contributors 2025-06-15 04:28:39 +00:00
Sylvia van Os
0b4c474ece Merge pull request #2548 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-06-14 12:25:26 +02:00
KING APPS
344e853839 Translated using Weblate (Persian)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fa/
2025-06-14 09:02:06 +00:00
Sylvia van Os
865f5f67d7 Merge pull request #2546 from SamantazFox/patch-1
Fix: Use ANDROID_SDK_ROOT everywhere in build.sh
2025-06-12 19:09:47 +02:00
Sylvia van Os
5f8e7ab702 Replace deprecated ANDROID_SDK_ROOT with ANDROID_HOME var 2025-06-12 18:51:43 +02:00
Sylvia van Os
6ac864e3aa Merge pull request #2547 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-06-11 15:43:54 +02:00
smcx
e0a012f3a4 Translated using Weblate (Persian)
Currently translated at 96.0% (319 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fa/
2025-06-11 13:02:35 +02:00
Toni Liski
5f1ae9db8e Translated using Weblate (Finnish)
Currently translated at 5.4% (8 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/fi/
2025-06-11 13:02:34 +02:00
Toni Liski
dcb5cd882e Translated using Weblate (Finnish)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fi/
2025-06-11 13:02:33 +02:00
Samantaz Fox
9d27df7e10 Fix: Use ANDROID_SDK_ROOT everywhere in build.sh
The signing section was using $HOME/Android/Sdk instead of $ANDROID_SDK_ROOT, preventing from signing the APK if the Android SDK is not installed at the default location.
2025-06-11 05:53:36 +00:00
Sylvia van Os
a11682181c Merge pull request #2545 from CatimaLoyalty/docs/repro_status
Add reproducibility status

Powered by https://shields.rbtlog.dev/
2025-06-10 23:44:07 +02:00
Sylvia van Os
a9b7f47053 Merge pull request #2544 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-06-10 23:43:14 +02:00
Sylvia van Os
809a91b16a Add reproducibility status
Powered by https://shields.rbtlog.dev/
2025-06-10 23:36:39 +02:00
Sylvia van Os
2c6e56342c Translated using Weblate (Arabic)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ar/
2025-06-10 09:06:37 +00:00
Sylvia van Os
df2b7ffc1b Translated using Weblate (Korean)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ko/
2025-06-10 09:06:19 +00:00
jonnysemon
3c5f28b496 Translated using Weblate (Arabic)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ar/
2025-06-09 10:02:48 +02:00
Aerin Park
7942bfc3f7 Translated using Weblate (Korean)
Currently translated at 100.0% (146 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ko/
2025-06-09 10:02:47 +02:00
Taiki Ohno
9e8e7fd8c2 Translated using Weblate (Japanese)
Currently translated at 82.8% (275 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ja/
2025-06-09 10:02:46 +02:00
Aerin Park
e8c5caa2f3 Translated using Weblate (Korean)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ko/
2025-06-09 10:02:45 +02:00
Sylvia van Os
b697aa389a Merge pull request #2542 from CatimaLoyalty/create-pull-request/patch-1749356924
Update contributors
2025-06-08 11:02:56 +02:00
TheLastProject
a19f5b91a8 Update contributors 2025-06-08 04:28:44 +00:00
Sylvia van Os
e1ebeec623 Merge pull request #2539 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-06-05 18:59:16 +02:00
Hosted Weblate
7734727e16 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/
2025-06-05 17:59:17 +02:00
Sylvia van Os
d4d1e9e649 Translated using Weblate (Persian)
Currently translated at 95.7% (318 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fa/
2025-06-05 17:59:16 +02:00
Sylvia van Os
b3b45fcc50 Merge pull request #2537 from CatimaLoyalty/create-pull-request/patch-1749113981
Update locales
2025-06-05 11:20:37 +02:00
TheLastProject
3bf63b855f Update locales 2025-06-05 08:59:40 +00:00
Sylvia van Os
c24ac94307 Merge pull request #2535 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-06-05 10:59:27 +02:00
Sylvia van Os
94c8f1f82d Merge pull request #2536 from CatimaLoyalty/dependabot/gradle/androidx.appcompat-appcompat-1.7.1
Bump androidx.appcompat:appcompat from 1.7.0 to 1.7.1
2025-06-05 10:23:49 +02:00
Majid G
5d455a31b3 Translated using Weblate (Persian)
Currently translated at 96.0% (319 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fa/
2025-06-05 06:10:24 +02:00
dependabot[bot]
b43fe087d6 Bump androidx.appcompat:appcompat from 1.7.0 to 1.7.1
Bumps androidx.appcompat:appcompat from 1.7.0 to 1.7.1.

---
updated-dependencies:
- dependency-name: androidx.appcompat:appcompat
  dependency-version: 1.7.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-05 02:33:53 +00:00
ofab22
c7c414c218 Translated using Weblate (Slovak)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sk/
2025-06-04 19:35:42 +00:00
Sylvia van Os
775b55fd23 Merge pull request #2508 from CatimaLoyalty/dependabot/gradle/org.jetbrains.kotlin.android-2.1.21
Bump org.jetbrains.kotlin.android from 2.1.10 to 2.1.21
2025-06-02 23:23:40 +02:00
Sylvia van Os
4cb601e0ce Rewrite loop that stopped working in Kotlin 2.1.21 2025-06-02 23:11:43 +02:00
Sylvia van Os
c42533aba5 Merge pull request #2534 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-06-02 15:06:07 +02:00
dicaeffe
df919417cb Translated using Weblate (Italian)
Currently translated at 84.9% (124 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/it/
2025-06-02 13:26:04 +02:00
Sylvia van Os
90afc5594f Merge pull request #2533 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-06-02 11:15:26 +02:00
ssantos
7b62e1871d Translated using Weblate (Portuguese (Portugal))
Currently translated at 98.6% (144 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt_PT/
2025-06-02 11:03:47 +02:00
ofab22
fc483b449b Translated using Weblate (Slovak)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sk/
2025-06-02 11:03:47 +02:00
Sylvia van Os
62dbc9c97f Merge pull request #2531 from CatimaLoyalty/create-pull-request/patch-1748752381
Update contributors
2025-06-01 09:23:25 +02:00
TheLastProject
ed9beb0752 Update contributors 2025-06-01 04:33:01 +00:00
Sylvia van Os
6b750ff84b Merge pull request #2530 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-06-01 00:09:33 +02:00
Hosted Weblate
17be2599f0 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/
2025-05-31 18:52:53 +02:00
Sylvia van Os
20820c27f8 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 98.7% (328 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2025-05-31 18:52:52 +02:00
林依若
b83f629c09 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 99.0% (329 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2025-05-31 17:26:41 +02:00
Warder
bfc79f6d97 Translated using Weblate (Slovak)
Currently translated at 98.6% (144 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sk/
2025-05-31 17:26:41 +02:00
Sylvia van Os
e297620ea2 Merge pull request #2528 from CatimaLoyalty/create-pull-request/patch-1748542198
Update feature graphic
2025-05-29 20:10:50 +02:00
TheLastProject
83e5240871 Update feature graphic 2025-05-29 18:09:58 +00:00
Sylvia van Os
2e68290d0c Merge pull request #2527 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-05-29 20:07:22 +02:00
ofab22
690d405f87 Translated using Weblate (Slovak)
Currently translated at 98.6% (144 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sk/
2025-05-29 19:12:13 +02:00
ofab22
4c711a991a Translated using Weblate (Slovak)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sk/
2025-05-29 19:12:12 +02:00
dependabot[bot]
79795ff328 Bump org.jetbrains.kotlin.android from 2.1.10 to 2.1.21
Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 2.1.10 to 2.1.21.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.10...v2.1.21)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-version: 2.1.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-29 06:56:40 +00:00
Sylvia van Os
c178fb230e Merge pull request #2526 from CatimaLoyalty/dependabot/gradle/com.android.application-8.10.1
Bump com.android.application from 8.10.0 to 8.10.1
2025-05-29 08:55:46 +02:00
dependabot[bot]
0acaf0598a Bump com.android.application from 8.10.0 to 8.10.1
Bumps com.android.application from 8.10.0 to 8.10.1.

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-version: 8.10.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-29 02:55:42 +00:00
Sylvia van Os
7b99bf86fa Merge pull request #2524 from CatimaLoyalty/TheLastProject-patch-1
Update OpenJDK version in README
2025-05-28 10:12:31 +02:00
Sylvia van Os
6cf68abfc7 Update OpenJDK version in README 2025-05-28 10:11:53 +02:00
Sylvia van Os
0e95dadb6c Merge pull request #2523 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-05-27 17:12:01 +02:00
summoner001
77b525809d Translated using Weblate (Hungarian)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hu/
2025-05-27 15:02:27 +00:00
Warder
d624316207 Translated using Weblate (Slovak)
Currently translated at 98.6% (144 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sk/
2025-05-27 15:02:26 +00:00
Sylvia van Os
353c8090a9 Merge pull request #2522 from CatimaLoyalty/create-pull-request/patch-1748147066
Update contributors
2025-05-25 08:48:35 +02:00
Sylvia van Os
7928cf8332 Merge pull request #2521 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-05-25 08:44:59 +02:00
TheLastProject
75bcade01c Update contributors 2025-05-25 04:24:26 +00:00
Sylvia van Os
2d33774b56 Translated using Weblate (Slovak)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sk/
2025-05-25 01:56:41 +02:00
Sylvia van Os
26e5a1fbab Merge pull request #2520 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-05-23 18:06:31 +02:00
B o d o
b516736b6c Translated using Weblate (German)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2025-05-23 15:01:07 +00:00
Sylvia van Os
881b3fefef Merge pull request #2519 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-05-23 10:50:40 +02:00
Priit Jõerüüt
a4c14e3c88 Translated using Weblate (Estonian)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/et/
2025-05-23 10:35:06 +02:00
Sylvia van Os
2943b64634 Merge pull request #2517 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-05-20 20:53:10 +02:00
Takahiro Namatame
0af74ef8de Translated using Weblate (Japanese)
Currently translated at 82.5% (274 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ja/
2025-05-20 19:34:07 +02:00
Sylvia van Os
8556507c6a Update and fix fastlane
Apply the workaround in
https://github.com/fastlane/fastlane/issues/29183 (needed on Fedora 42)
2025-05-20 17:28:24 +02:00
Sylvia van Os
ff8c662423 Merge pull request #2515 from CatimaLoyalty/create-pull-request/patch-1747561264
Update locales
2025-05-18 11:52:42 +02:00
Sylvia van Os
9314637094 Merge pull request #2514 from CatimaLoyalty/fix/he
Fix hebrew support
2025-05-18 11:52:14 +02:00
TheLastProject
8def5cbe5b Update locales 2025-05-18 09:41:04 +00:00
Sylvia van Os
6c7f21d6fd Fix hebrew support 2025-05-18 11:40:01 +02:00
Sylvia van Os
edc3c38d14 Merge pull request #2513 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-05-18 11:21:35 +02:00
Sylvia van Os
4045566514 Merge pull request #2512 from CatimaLoyalty/create-pull-request/patch-1747542126
Update contributors
2025-05-18 11:12:52 +02:00
elid
9b5af3b221 Translated using Weblate (Hebrew)
Currently translated at 15.6% (52 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/he/
2025-05-18 08:50:52 +02:00
elid
b5fc0af979 Added translation using Weblate (Hebrew) 2025-05-18 05:41:35 +00:00
TheLastProject
4c643b3c61 Update contributors 2025-05-18 04:22:06 +00:00
Sylvia van Os
01e198c94b Release Catima 2.35.0 2025-05-17 13:40:13 +02:00
Sylvia van Os
6b09656164 Merge pull request #2510 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-05-15 21:50:25 +02:00
Sylvia van Os
21b051c422 Merge pull request #2507 from CatimaLoyalty/target/java21
Use Java 21
2025-05-15 21:48:22 +02:00
Prachi Joshi
9a8fa4ad1a Translated using Weblate (Marathi)
Currently translated at 39.7% (132 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/mr/
2025-05-15 20:02:28 +02:00
Sylvain Pichon
2ac2f07c80 Translated using Weblate (French)
Currently translated at 100.0% (146 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/fr/
2025-05-15 20:02:27 +02:00
Sylvia van Os
e893923164 Remove spotBugs
We've been running an old version for very long because there hasn't
been any time to update it. A newer version doesn't support Java 21.
Given Java 21 ihas more priority, let's just get rid of spotBugs.
2025-05-14 20:53:14 +02:00
Sylvia van Os
ebacb6fe4c Fix CI status badge 2025-05-14 20:49:04 +02:00
Sylvia van Os
fb329f410a Merge pull request #2509 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-05-14 17:12:12 +02:00
Edgars Andersons
f95d7d62dd Translated using Weblate (Latvian)
Currently translated at 8.9% (13 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/lv/
2025-05-14 14:03:16 +00:00
大王叫我来巡山
482303b775 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (146 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2025-05-14 14:03:15 +00:00
Fjuro
d02a359cc3 Translated using Weblate (Czech)
Currently translated at 100.0% (146 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/cs/
2025-05-14 14:03:15 +00:00
Максим Горпиніч
9b24158acc Translated using Weblate (Ukrainian)
Currently translated at 100.0% (146 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2025-05-14 14:03:14 +00:00
solokot
cf65476f16 Translated using Weblate (Russian)
Currently translated at 100.0% (146 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2025-05-14 14:03:14 +00:00
B o d o
02d04614e0 Translated using Weblate (German)
Currently translated at 100.0% (146 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2025-05-14 14:03:13 +00:00
Sylvia van Os
a543d4d4bf Use Java 21 2025-05-13 20:28:57 +02:00
Sylvia van Os
f4de708e42 Merge pull request #2506 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-05-13 17:23:41 +02:00
hajer tabbane
f1079f4e5d Translated using Weblate (Arabic)
Currently translated at 42.4% (62 of 146 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ar/
2025-05-13 13:02:26 +00:00
icosahedr.online
4d09077b2f Translated using Weblate (Dutch)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2025-05-13 13:02:24 +00:00
Sylvia van Os
f62fc879c5 Merge pull request #2505 from CatimaLoyalty/create-pull-request/patch-1747073386
Update Fastlane changelogs
2025-05-12 20:15:28 +02:00
171 changed files with 1153 additions and 493 deletions

View File

@@ -24,7 +24,7 @@ permissions:
security-events: none
statuses: none
env:
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64
JAVA_HOME: /usr/lib/jvm/java-21-openjdk-amd64
jobs:
build:
runs-on: ubuntu-latest
@@ -36,10 +36,10 @@ jobs:
- name: Fail on bad translations
run: if grep -ri "&lt;xliff" app/src/main/res/values*/strings.xml; then echo "Invalidly escaped translations found"; exit 1; fi
- uses: gradle/actions/wrapper-validation@v4
- name: set up OpenJDK 17
- name: set up OpenJDK 21
run: |
sudo apt-get update
sudo apt-get install -y openjdk-17-jdk-headless
sudo apt-get install -y openjdk-21-jdk-headless
sudo update-alternatives --auto java
- name: Build
run: ./gradlew assemble${{ matrix.flavor }}Release
@@ -64,8 +64,6 @@ jobs:
api-level: 35
arch: x86_64
script: ./gradlew connected${{ matrix.flavor }}DebugAndroidTest
- name: SpotBugs
run: ./gradlew spotbugs${{ matrix.flavor }}Release
- name: Archive test results
if: always()
uses: actions/upload-artifact@v4.6.2

View File

@@ -1,33 +0,0 @@
name: Gradle update
on:
workflow_dispatch:
schedule:
- cron: '3 6 * * *'
permissions:
actions: none
checks: none
contents: write
deployments: none
discussions: none
id-token: none
issues: none
packages: none
pages: none
pull-requests: write
repository-projects: none
security-events: none
statuses: none
jobs:
gradle-update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.2.2
- uses: obfusk/gradle-update-action@v3.0.0
id: gradle-update
- uses: gradle/actions/wrapper-validation@v4
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7.0.8
with:
title: "Update Gradle to ${{ steps.gradle-update.outputs.version }}"
commit-message: "Update Gradle to ${{ steps.gradle-update.outputs.version }}"
branch-suffix: timestamp

View File

@@ -11,6 +11,7 @@ MIN_PERCENT = 90
NOT_LANGS = ("night", "w600dp")
REPLACE_CODES = {
"el": "el-rGR",
"he": "iw",
"id": "in-rID",
"ro": "ro-rRO",
"zh_Hans": "zh-rCN",

View File

@@ -1,6 +1,15 @@
# Changelog
## Unreleased - 148
## v2.36.0 - 150 (2025-08-05)
- Add a widget showing all non-archived cards
- Prevent the keyboard from overlapping the save button in edit and group screens
## v2.35.1 - 149 (2025-06-17)
- Dependency and translation updates
## v2.35.0 - 148 (2025-05-17)
- Add ability to choose barcode width in fullscreen view
- Remove confusing import from app function

View File

@@ -36,10 +36,6 @@ These are the Android lint checker, run using:
# ./gradlew lintRelease
and SpotBugs, run using:
# ./gradlew spotbugsRelease
The final check is by testing the application on a live device and verifying
the basic functionality works as expected.

View File

@@ -1,3 +1,8 @@
source "https://rubygems.org"
gem "fastlane"
# https://github.com/fastlane/fastlane/issues/29183
gem "abbrev"
gem "mutex_m"
gem "ostruct"

View File

@@ -5,29 +5,31 @@ GEM
base64
nkf
rexml
abbrev (0.1.2)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.2)
aws-partitions (1.1072.0)
aws-sdk-core (3.220.2)
aws-eventstream (1.4.0)
aws-partitions (1.1117.0)
aws-sdk-core (3.226.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
base64
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.99.0)
aws-sdk-core (~> 3, >= 3.216.0)
logger
aws-sdk-kms (1.105.0)
aws-sdk-core (~> 3, >= 3.225.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.182.0)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sdk-s3 (1.189.1)
aws-sdk-core (~> 3, >= 3.225.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.11.0)
aws-sigv4 (1.12.1)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.2.0)
base64 (0.3.0)
claide (1.1.0)
colored (1.2)
colored2 (3.1.2)
@@ -56,10 +58,10 @@ GEM
faraday (>= 0.8.0)
http-cookie (~> 1.0.0)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.0)
faraday-em_synchrony (1.0.1)
faraday-excon (1.1.0)
faraday-httpclient (1.0.1)
faraday-multipart (1.1.0)
faraday-multipart (1.1.1)
multipart-post (~> 2.0)
faraday-net_http (1.0.2)
faraday-net_http_persistent (1.2.0)
@@ -69,7 +71,7 @@ GEM
faraday_middleware (1.2.1)
faraday (~> 1.0)
fastimage (2.4.0)
fastlane (2.227.0)
fastlane (2.228.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
@@ -109,7 +111,7 @@ GEM
tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0)
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.4.0)
xcpretty (~> 0.4.1)
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
fastlane-sirp (1.0.0)
sysrandom (~> 1.0)
@@ -156,22 +158,24 @@ GEM
httpclient (2.9.0)
mutex_m
jmespath (1.6.2)
json (2.10.2)
json (2.12.2)
jwt (2.10.1)
base64
logger (1.7.0)
mini_magick (4.13.2)
mini_mime (1.1.5)
multi_json (1.15.0)
multipart-post (2.4.1)
mutex_m (0.3.0)
nanaimo (0.4.0)
naturally (2.2.1)
naturally (2.3.0)
nkf (0.2.0)
optparse (0.6.0)
os (1.1.4)
ostruct (0.6.1)
plist (3.7.2)
public_suffix (6.0.1)
rake (13.2.1)
public_suffix (6.0.2)
rake (13.3.0)
representable (3.2.0)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)
@@ -182,7 +186,7 @@ GEM
ruby2_keywords (0.0.5)
rubyzip (2.4.1)
security (0.1.5)
signet (0.19.0)
signet (0.20.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0)
@@ -209,7 +213,7 @@ GEM
colored2 (~> 3.1)
nanaimo (~> 0.4.0)
rexml (>= 3.3.6, < 4.0)
xcpretty (0.4.0)
xcpretty (0.4.1)
rouge (~> 3.28.0)
xcpretty-travis-formatter (1.0.1)
xcpretty (~> 0.2, >= 0.0.7)
@@ -218,7 +222,10 @@ PLATFORMS
ruby
DEPENDENCIES
abbrev
fastlane
mutex_m
ostruct
BUNDLED WITH
2.5.22

View File

@@ -1,17 +1,12 @@
import com.android.build.gradle.internal.tasks.factory.dependsOn
import com.github.spotbugs.snom.SpotBugsTask
plugins {
id("com.android.application")
id("com.github.spotbugs")
id("org.jetbrains.kotlin.android")
}
spotbugs {
ignoreFailures.set(false)
setEffort("max")
excludeFilter.set(file("./config/spotbugs/exclude.xml"))
reportsDir.set(layout.buildDirectory.file("reports/spotbugs/").get().asFile)
kotlin {
jvmToolchain(21)
}
android {
@@ -22,13 +17,13 @@ android {
applicationId = "me.hackerchick.catima"
minSdk = 21
targetSdk = 35
versionCode = 147
versionName = "2.34.5"
versionCode = 150
versionName = "2.36.0"
vectorDrawables.useSupportLibrary = true
multiDexEnabled = true
resourceConfigurations += listOf("ar", "be", "bg", "bn", "bn-rIN", "bs", "cs", "da", "de", "el-rGR", "en", "eo", "es", "es-rAR", "et", "fi", "fr", "gl", "he-rIL", "hi", "hr", "hu", "in-rID", "is", "it", "ja", "ko", "lt", "lv", "nb-rNO", "nl", "oc", "pl", "pt", "pt-rBR", "pt-rPT", "ro-rRO", "ru", "sk", "sl", "sr", "sv", "ta", "tr", "uk", "vi", "zh-rCN", "zh-rTW")
resourceConfigurations += listOf("ar", "be", "bg", "bn", "bn-rIN", "bs", "cs", "da", "de", "el-rGR", "en", "eo", "es", "es-rAR", "et", "fa", "fi", "fr", "gl", "he-rIL", "hi", "hr", "hu", "in-rID", "is", "it", "ja", "ko", "lt", "lv", "nb-rNO", "nl", "oc", "pl", "pt", "pt-rBR", "pt-rPT", "ro-rRO", "ru", "sk", "sl", "sr", "sv", "ta", "tr", "uk", "vi", "zh-rCN", "zh-rTW")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
@@ -104,15 +99,20 @@ android {
lintConfig = file("lint.xml")
}
kotlinOptions {
jvmTarget = "17"
jvmTarget = "21"
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
}
dependencies {
// AndroidX
implementation("androidx.appcompat:appcompat:1.7.0")
implementation("androidx.appcompat:appcompat:1.7.1")
implementation("androidx.constraintlayout:constraintlayout:2.2.1")
implementation("androidx.core:core-ktx:1.16.0")
implementation("androidx.core:core-remoteviews:1.1.0")
implementation("androidx.core:core-splashscreen:1.0.1")
implementation("androidx.exifinterface:exifinterface:1.4.1")
implementation("androidx.palette:palette:1.0.0")
@@ -128,34 +128,19 @@ dependencies {
implementation("com.jaredrummler:colorpicker:1.1.0")
implementation("net.lingala.zip4j:zip4j:2.11.5")
// SpotBugs
implementation("io.wcm.tooling.spotbugs:io.wcm.tooling.spotbugs.annotations:1.0.0")
// Testing
val androidXTestVersion = "1.6.1"
val androidXTestVersion = "1.7.0"
val junitVersion = "4.13.2"
testImplementation("androidx.test:core:$androidXTestVersion")
testImplementation("junit:junit:$junitVersion")
testImplementation("org.robolectric:robolectric:4.14.1")
testImplementation("org.robolectric:robolectric:4.15.1")
androidTestImplementation("androidx.test:core:$androidXTestVersion")
androidTestImplementation("junit:junit:$junitVersion")
androidTestImplementation("androidx.test.ext:junit:1.2.1")
androidTestImplementation("androidx.test.ext:junit:1.3.0")
androidTestImplementation("androidx.test:runner:$androidXTestVersion")
androidTestImplementation("androidx.test.uiautomator:uiautomator:2.3.0")
androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1")
}
tasks.withType<SpotBugsTask>().configureEach {
description = "Run spotbugs"
group = "verification"
//classes = fileTree("build/intermediates/javac/debug/compileDebugJavaWithJavac/classes")
//source = fileTree("src/main/java")
//classpath = files()
reports.maybeCreate("xml").required.set(false)
reports.maybeCreate("html").required.set(true)
androidTestImplementation("androidx.test.espresso:espresso-core:3.7.0")
}
tasks.register("copyRawResFiles", Copy::class) {

View File

@@ -30,6 +30,20 @@
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:localeConfig="@xml/locales_config">
<receiver
android:name=".ListWidget"
android:label="@string/card_list_widget_name"
android:exported="false">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/list_widget_info" />
</receiver>
<activity
android:name=".MainActivity"
android:exported="true"
@@ -75,7 +89,8 @@
<activity
android:name=".ManageGroupActivity"
android:label="@string/group_edit"
android:theme="@style/AppTheme.NoActionBar"/>
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="adjustResize"/>
<activity
android:name=".LoyaltyCardViewActivity"
android:exported="true"

View File

@@ -1,126 +0,0 @@
package protect.card_locker;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import androidx.appcompat.widget.Toolbar;
import com.google.zxing.BarcodeFormat;
import java.util.ArrayList;
import protect.card_locker.databinding.BarcodeSelectorActivityBinding;
/**
* This activity is callable and will allow a user to enter
* barcode data and generate all barcodes possible for
* the data. The user may then select any barcode, where its
* data and type will be returned to the caller.
*/
public class BarcodeSelectorActivity extends CatimaAppCompatActivity implements BarcodeSelectorAdapter.BarcodeSelectorListener {
private BarcodeSelectorActivityBinding binding;
private static final String TAG = "Catima";
// Result this activity will return
public static final String BARCODE_CONTENTS = "contents";
public static final String BARCODE_FORMAT = "format";
private final Handler typingDelayHandler = new Handler(Looper.getMainLooper());
public static final Integer INPUT_DELAY = 250;
private BarcodeSelectorAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = BarcodeSelectorActivityBinding.inflate(getLayoutInflater());
setTitle(R.string.selectBarcodeTitle);
setContentView(binding.getRoot());
Utils.applyWindowInsets(binding.getRoot());
Toolbar toolbar = binding.toolbar;
setSupportActionBar(toolbar);
enableToolbarBackButton();
EditText cardId = binding.cardId;
ListView mBarcodeList = binding.barcodes;
mAdapter = new BarcodeSelectorAdapter(this, new ArrayList<>(), this);
mBarcodeList.setAdapter(mAdapter);
cardId.addTextChangedListener(new SimpleTextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// Delay the input processing so we avoid overload
typingDelayHandler.removeCallbacksAndMessages(null);
typingDelayHandler.postDelayed(() -> {
Log.d(TAG, "Entered text: " + s);
runOnUiThread(() -> {
generateBarcodes(s.toString());
});
}, INPUT_DELAY);
}
});
final Bundle b = getIntent().getExtras();
final String initialCardId = b != null ? b.getString(LoyaltyCard.BUNDLE_LOYALTY_CARD_CARD_ID) : null;
if (initialCardId != null) {
cardId.setText(initialCardId);
} else {
generateBarcodes("");
}
}
private void generateBarcodes(String value) {
// Update barcodes
ArrayList<CatimaBarcodeWithValue> barcodes = new ArrayList<>();
for (BarcodeFormat barcodeFormat : CatimaBarcode.barcodeFormats) {
CatimaBarcode catimaBarcode = CatimaBarcode.fromBarcode(barcodeFormat);
barcodes.add(new CatimaBarcodeWithValue(catimaBarcode, value));
}
mAdapter.setBarcodes(barcodes);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
setResult(Activity.RESULT_CANCELED);
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onRowClicked(int inputPosition, View view) {
CatimaBarcodeWithValue barcodeWithValue = mAdapter.getItem(inputPosition);
CatimaBarcode catimaBarcode = barcodeWithValue.catimaBarcode();
if (!mAdapter.isValid(view)) {
Toast.makeText(this, getString(R.string.wrongValueForBarcodeType), Toast.LENGTH_LONG).show();
return;
}
String barcodeFormat = catimaBarcode.format().name();
String value = barcodeWithValue.value();
Log.d(TAG, "Selected barcode type " + barcodeFormat);
Intent result = new Intent();
result.putExtra(BARCODE_FORMAT, barcodeFormat);
result.putExtra(BARCODE_CONTENTS, value);
BarcodeSelectorActivity.this.setResult(RESULT_OK, result);
finish();
}
}

View File

@@ -0,0 +1,118 @@
package protect.card_locker
import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import android.view.View
import android.widget.Toast
import androidx.core.view.MenuProvider
import androidx.core.widget.doOnTextChanged
import androidx.lifecycle.lifecycleScope
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import protect.card_locker.BarcodeSelectorAdapter.BarcodeSelectorListener
import protect.card_locker.databinding.BarcodeSelectorActivityBinding
/**
* This activity is callable and will allow a user to enter
* barcode data and generate all barcodes possible for
* the data. The user may then select any barcode, where its
* data and type will be returned to the caller.
*/
class BarcodeSelectorActivity : CatimaAppCompatActivity(), BarcodeSelectorListener, MenuProvider {
private lateinit var binding: BarcodeSelectorActivityBinding
private lateinit var mAdapter: BarcodeSelectorAdapter
companion object {
private const val TAG = "Catima"
// Result this activity will return
const val BARCODE_CONTENTS = "contents"
const val BARCODE_FORMAT = "format"
const val INPUT_DELAY = 250L
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
addMenuProvider(this)
binding = BarcodeSelectorActivityBinding.inflate(layoutInflater)
setTitle(R.string.selectBarcodeTitle)
setContentView(binding.getRoot())
Utils.applyWindowInsets(binding.getRoot())
setSupportActionBar(binding.toolbar)
enableToolbarBackButton()
var typingDelayJob: Job? = null
val cardId = binding.cardId
val mBarcodeList = binding.barcodes
mAdapter = BarcodeSelectorAdapter(this, ArrayList<CatimaBarcodeWithValue?>(), this)
mBarcodeList.adapter = mAdapter
cardId.doOnTextChanged { s, _, _, _ ->
typingDelayJob?.cancel()
typingDelayJob =
lifecycleScope.launch {
delay(INPUT_DELAY) // Delay the input processing so we avoid overload
Log.d(TAG, "Entered text: $s")
generateBarcodes(s.toString())
}
}
val initialCardId = intent.extras?.getString(LoyaltyCard.BUNDLE_LOYALTY_CARD_CARD_ID)
initialCardId?.let {
cardId.setText(initialCardId)
} ?: generateBarcodes("")
}
private fun generateBarcodes(value: String?) {
// Update barcodes
val barcodes = ArrayList<CatimaBarcodeWithValue?>()
CatimaBarcode.barcodeFormats.forEach {
val catimaBarcode = CatimaBarcode.fromBarcode(it)
barcodes.add(CatimaBarcodeWithValue(catimaBarcode, value))
}
mAdapter.setBarcodes(barcodes)
}
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
if (menuItem.itemId == android.R.id.home) {
setResult(RESULT_CANCELED)
finish()
}
return true
}
override fun onRowClicked(inputPosition: Int, view: View) {
val barcodeWithValue = mAdapter.getItem(inputPosition)
val catimaBarcode = barcodeWithValue!!.catimaBarcode()
if (!mAdapter.isValid(view)) {
Toast.makeText(this, getString(R.string.wrongValueForBarcodeType), Toast.LENGTH_LONG).show()
return
}
val barcodeFormat = catimaBarcode.format().name
val value = barcodeWithValue.value()
Log.d(TAG, "Selected barcode type $barcodeFormat")
Intent().apply {
putExtra(BARCODE_FORMAT, barcodeFormat)
putExtra(BARCODE_CONTENTS, value)
setResult(RESULT_OK, this)
}
finish()
}
}

View File

@@ -1,111 +0,0 @@
package protect.card_locker;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.pm.ShortcutInfoCompat;
import androidx.core.content.pm.ShortcutManagerCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import protect.card_locker.databinding.CardShortcutConfigureActivityBinding;
import protect.card_locker.preferences.Settings;
/**
* The configuration screen for creating a shortcut.
*/
public class CardShortcutConfigure extends CatimaAppCompatActivity implements LoyaltyCardCursorAdapter.CardAdapterListener {
private CardShortcutConfigureActivityBinding binding;
static final String TAG = "Catima";
private SQLiteDatabase mDatabase;
private LoyaltyCardCursorAdapter mAdapter;
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
binding = CardShortcutConfigureActivityBinding.inflate(getLayoutInflater());
mDatabase = new DBHelper(this).getReadableDatabase();
// Set the result to CANCELED. This will cause nothing to happen if the
// aback button is pressed.
setResult(RESULT_CANCELED);
setContentView(binding.getRoot());
Utils.applyWindowInsets(binding.getRoot());
Toolbar toolbar = binding.toolbar;
toolbar.setTitle(R.string.shortcutSelectCard);
setSupportActionBar(toolbar);
// If there are no cards, bail
int cardCount = DBHelper.getLoyaltyCardCount(mDatabase);
if (cardCount == 0) {
Toast.makeText(this, R.string.noCardsMessage, Toast.LENGTH_LONG).show();
finish();
}
Cursor cardCursor = DBHelper.getLoyaltyCardCursor(mDatabase, DBHelper.LoyaltyCardArchiveFilter.All);
mAdapter = new LoyaltyCardCursorAdapter(this, cardCursor, this, null);
binding.list.setAdapter(mAdapter);
}
@Override
protected void onResume() {
super.onResume();
var layoutManager = (GridLayoutManager) binding.list.getLayoutManager();
if (layoutManager != null) {
var settings = new Settings(this);
layoutManager.setSpanCount(settings.getPreferredColumnCount());
}
}
private void onClickAction(int position) {
Cursor selected = DBHelper.getLoyaltyCardCursor(mDatabase, DBHelper.LoyaltyCardArchiveFilter.All);
selected.moveToPosition(position);
LoyaltyCard loyaltyCard = LoyaltyCard.fromCursor(CardShortcutConfigure.this, selected);
Log.d(TAG, "Creating shortcut for card " + loyaltyCard.store + "," + loyaltyCard.id);
ShortcutInfoCompat shortcut = ShortcutHelper.createShortcutBuilder(CardShortcutConfigure.this, loyaltyCard).build();
setResult(RESULT_OK, ShortcutManagerCompat.createShortcutResultIntent(CardShortcutConfigure.this, shortcut));
finish();
}
@Override
public boolean onCreateOptionsMenu(Menu inputMenu) {
getMenuInflater().inflate(R.menu.card_details_menu, inputMenu);
return super.onCreateOptionsMenu(inputMenu);
}
@Override
public boolean onOptionsItemSelected(MenuItem inputItem) {
int id = inputItem.getItemId();
if (id == R.id.action_display_options) {
mAdapter.showDisplayOptionsDialog();
invalidateOptionsMenu();
return true;
}
return super.onOptionsItemSelected(inputItem);
}
@Override
public void onRowClicked(int inputPosition) {
onClickAction(inputPosition);
}
@Override
public void onRowLongClicked(int inputPosition) {
// do nothing
}
}

View File

@@ -0,0 +1,96 @@
package protect.card_locker
import android.database.sqlite.SQLiteDatabase
import android.os.Bundle
import android.util.Log
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import android.widget.Toast
import androidx.core.content.pm.ShortcutManagerCompat
import androidx.core.view.MenuProvider
import androidx.recyclerview.widget.GridLayoutManager
import protect.card_locker.LoyaltyCardCursorAdapter.CardAdapterListener
import protect.card_locker.databinding.CardShortcutConfigureActivityBinding
import protect.card_locker.preferences.Settings
class CardShortcutConfigure : CatimaAppCompatActivity(), CardAdapterListener, MenuProvider {
private lateinit var binding: CardShortcutConfigureActivityBinding
private lateinit var mDatabase: SQLiteDatabase
private lateinit var mAdapter: LoyaltyCardCursorAdapter
private companion object {
private const val TAG: String = "Catima"
}
public override fun onCreate(savedInstanceBundle: Bundle?) {
super.onCreate(savedInstanceBundle)
addMenuProvider(this)
binding = CardShortcutConfigureActivityBinding.inflate(layoutInflater)
mDatabase = DBHelper(this).readableDatabase
// Set the result to CANCELED.
// This will cause nothing to happen if the back button is pressed.
setResult(RESULT_CANCELED)
setContentView(binding.getRoot())
Utils.applyWindowInsets(binding.getRoot())
binding.toolbar.apply {
setTitle(R.string.shortcutSelectCard)
setSupportActionBar(this)
}
// If there are no cards, bail
if (DBHelper.getLoyaltyCardCount(mDatabase) == 0) {
Toast.makeText(this, R.string.noCardsMessage, Toast.LENGTH_LONG).show()
finish()
}
val cardCursor = DBHelper.getLoyaltyCardCursor(mDatabase, DBHelper.LoyaltyCardArchiveFilter.All)
mAdapter = LoyaltyCardCursorAdapter(this, cardCursor, this, null)
binding.list.setAdapter(mAdapter)
}
override fun onResume() {
super.onResume()
val layoutManager = binding.list.layoutManager as GridLayoutManager?
layoutManager?.setSpanCount(Settings(this).getPreferredColumnCount())
}
private fun onClickAction(position: Int) {
val selected = DBHelper.getLoyaltyCardCursor(mDatabase, DBHelper.LoyaltyCardArchiveFilter.All)
selected.moveToPosition(position)
val loyaltyCard = LoyaltyCard.fromCursor(this, selected)
Log.d(TAG, "Creating shortcut for card ${loyaltyCard.store}, ${loyaltyCard.id}")
val shortcut = ShortcutHelper.createShortcutBuilder(this, loyaltyCard).build()
setResult(RESULT_OK,
ShortcutManagerCompat.createShortcutResultIntent(this, shortcut))
finish()
}
override fun onCreateMenu(inputMenu: Menu, menuInflater: MenuInflater) {
menuInflater.inflate(R.menu.card_details_menu, inputMenu)
}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
if (menuItem.itemId == R.id.action_display_options) {
mAdapter.showDisplayOptionsDialog()
}
return true
}
override fun onRowClicked(inputPosition: Int) {
onClickAction(inputPosition)
}
override fun onRowLongClicked(inputPosition: Int) {
// do nothing
}
}

View File

@@ -0,0 +1,130 @@
package protect.card_locker
import android.app.PendingIntent
import android.appwidget.AppWidgetManager
import android.appwidget.AppWidgetProvider
import android.content.ComponentName
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.graphics.drawable.Icon
import android.os.Build
import android.view.View
import android.widget.RemoteViews
import androidx.core.widget.RemoteViewsCompat
import protect.card_locker.DBHelper.LoyaltyCardArchiveFilter
class ListWidget : AppWidgetProvider() {
fun updateAll(context: Context) {
val appWidgetManager = AppWidgetManager.getInstance(context)
val componentName = ComponentName(context, ListWidget::class.java)
onUpdate(
context,
appWidgetManager,
appWidgetManager.getAppWidgetIds(componentName)
)
}
override fun onUpdate(
context: Context,
appWidgetManager: AppWidgetManager,
appWidgetIds: IntArray
) {
for (appWidgetId in appWidgetIds) {
val database = DBHelper(context).readableDatabase
// Get cards
val order = Utils.getLoyaltyCardOrder(context);
val orderDirection = Utils.getLoyaltyCardOrderDirection(context);
val loyaltyCardCursor = DBHelper.getLoyaltyCardCursor(
database,
"",
null,
order,
orderDirection,
LoyaltyCardArchiveFilter.Unarchived
)
// Bind every card to cell in the grid
var hasCards = false
val remoteCollectionItemsBuilder = RemoteViewsCompat.RemoteCollectionItems.Builder()
if (loyaltyCardCursor.moveToFirst()) {
do {
val loyaltyCard = LoyaltyCard.fromCursor(context, loyaltyCardCursor)
remoteCollectionItemsBuilder.addItem(
loyaltyCard.id.toLong(),
createRemoteViews(
context, loyaltyCard
)
)
hasCards = true
} while (loyaltyCardCursor.moveToNext())
}
loyaltyCardCursor.close()
// Create the base empty view
var views = RemoteViews(context.packageName, R.layout.list_widget_empty)
if (hasCards) {
// If we have cards, create the list
views = RemoteViews(context.packageName, R.layout.list_widget)
val templateIntent = Intent(context, LoyaltyCardViewActivity::class.java)
val pendingIntent = PendingIntent.getActivity(
context,
0,
templateIntent,
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
)
views.setPendingIntentTemplate(R.id.grid_view, pendingIntent)
RemoteViewsCompat.setRemoteAdapter(
context,
views,
appWidgetId,
R.id.grid_view,
remoteCollectionItemsBuilder.build()
)
}
// Let Android know the widget is ready for display
appWidgetManager.updateAppWidget(appWidgetId, views)
}
}
private fun createRemoteViews(context: Context, loyaltyCard: LoyaltyCard): RemoteViews {
// Create a single cell for the grid view, bind it to open in the LoyaltyCardViewActivity
// Note: Android 5 will not use bitmaps
val remoteViews = RemoteViews(context.packageName, R.layout.list_widget_item).apply {
val headerColor = Utils.getHeaderColor(context, loyaltyCard)
val foreground = if (Utils.needsDarkForeground(headerColor)) Color.BLACK else Color.WHITE
setInt(R.id.item_container_foreground, "setBackgroundColor", headerColor)
val icon = loyaltyCard.getImageThumbnail(context)
// setImageViewIcon is not supported on Android 5, so force Android 5 down the text path
if (icon != null && Build.VERSION.SDK_INT >= 23) {
setInt(R.id.item_container_foreground, "setBackgroundColor", foreground)
setImageViewIcon(R.id.item_image, Icon.createWithBitmap(icon))
setViewVisibility(R.id.item_text, View.INVISIBLE)
setViewVisibility(R.id.item_image, View.VISIBLE)
} else {
setImageViewBitmap(R.id.item_image, null)
setTextViewText(R.id.item_text, loyaltyCard.store)
setViewVisibility(R.id.item_text, View.VISIBLE)
setViewVisibility(R.id.item_image, View.INVISIBLE)
setTextColor(
R.id.item_text,
foreground
)
}
// Add the card ID to the intent template
val fillInIntent = Intent().apply {
putExtra(LoyaltyCardViewActivity.BUNDLE_ID, loyaltyCard.id)
}
setOnClickFillInIntent(R.id.item_container, fillInIntent)
}
return remoteViews
}
}

View File

@@ -44,6 +44,9 @@ import androidx.appcompat.widget.AppCompatTextView;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import androidx.core.content.FileProvider;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.exifinterface.media.ExifInterface;
import androidx.lifecycle.ViewModelProvider;
@@ -297,7 +300,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
super.onCreate(savedInstanceState);
binding = LoyaltyCardEditActivityBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
Utils.applyWindowInsets(binding.getRoot());
Utils.applyWindowInsetsAndFabOffset(binding.getRoot(), binding.fabSave);
viewModel = new ViewModelProvider(this).get(LoyaltyCardEditActivityViewModel.class);
@@ -576,7 +579,6 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
binding.tabs.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
@edu.umd.cs.findbugs.annotations.SuppressFBWarnings("NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE")
public void onTabSelected(TabLayout.Tab tab) {
viewModel.setTabIndex(tab.getPosition());
showPart(tab.getText().toString());
@@ -588,7 +590,6 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
}
@Override
@edu.umd.cs.findbugs.annotations.SuppressFBWarnings("NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE")
public void onTabReselected(TabLayout.Tab tab) {
viewModel.setTabIndex(tab.getPosition());
showPart(tab.getText().toString());

View File

@@ -880,6 +880,8 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
} else if (id == R.id.action_star_unstar) {
DBHelper.updateLoyaltyCardStarStatus(database, loyaltyCardId, loyaltyCard.starStatus == 0 ? 1 : 0);
new ListWidget().updateAll(LoyaltyCardViewActivity.this);
// Re-init loyaltyCard with new data from DB
onResume();
invalidateOptionsMenu();
@@ -890,6 +892,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
Toast.makeText(LoyaltyCardViewActivity.this, R.string.archived, Toast.LENGTH_LONG).show();
ShortcutHelper.removeShortcut(LoyaltyCardViewActivity.this, loyaltyCardId);
new ListWidget().updateAll(LoyaltyCardViewActivity.this);
// Re-init loyaltyCard with new data from DB
onResume();
@@ -915,6 +918,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
DBHelper.deleteLoyaltyCard(database, LoyaltyCardViewActivity.this, loyaltyCardId);
ShortcutHelper.removeShortcut(LoyaltyCardViewActivity.this, loyaltyCardId);
new ListWidget().updateAll(LoyaltyCardViewActivity.this);
finish();
dialog.dismiss();

View File

@@ -2,6 +2,8 @@ package protect.card_locker;
import android.app.Activity;
import android.app.SearchManager;
import android.appwidget.AppWidgetManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
@@ -330,22 +332,8 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
selectedTab = activeTabPref.getInt(getString(R.string.sharedpreference_active_tab), 0);
// Restore sort preferences from Shared Preferences
// If one of the sorting prefererences has never been set or is set to an invalid value,
// stick to the defaults.
SharedPreferences sortPref = getApplicationContext().getSharedPreferences(
getString(R.string.sharedpreference_sort),
Context.MODE_PRIVATE);
String orderString = sortPref.getString(getString(R.string.sharedpreference_sort_order), null);
String orderDirectionString = sortPref.getString(getString(R.string.sharedpreference_sort_direction), null);
if (orderString != null && orderDirectionString != null) {
try {
mOrder = DBHelper.LoyaltyCardOrder.valueOf(orderString);
mOrderDirection = DBHelper.LoyaltyCardOrderDirection.valueOf(orderDirectionString);
} catch (IllegalArgumentException ignored) {
}
}
mOrder = Utils.getLoyaltyCardOrder(this);
mOrderDirection = Utils.getLoyaltyCardOrderDirection(this);
mGroup = null;
@@ -442,6 +430,8 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
if (mCurrentActionMode != null) {
mCurrentActionMode.finish();
}
new ListWidget().updateAll(mAdapter.mContext);
}
private void processParseResultList(List<ParseResult> parseResultList, String group, boolean closeAppOnNoBarcode) {
@@ -709,6 +699,8 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
showReversed.isChecked() ? DBHelper.LoyaltyCardOrderDirection.Descending : DBHelper.LoyaltyCardOrderDirection.Ascending
);
new ListWidget().updateAll(this);
dialog.dismiss();
});

View File

@@ -48,7 +48,7 @@ public class ManageGroupActivity extends CatimaAppCompatActivity implements Mana
super.onCreate(inputSavedInstanceState);
binding = ActivityManageGroupBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
Utils.applyWindowInsets(binding.getRoot());
Utils.applyWindowInsetsAndFabOffset(binding.getRoot(), binding.fabSave);
Toolbar toolbar = binding.toolbar;
setSupportActionBar(toolbar);

View File

@@ -67,8 +67,17 @@ class PkpassParser(context: Context, uri: Uri?) {
try {
mContext.contentResolver.openInputStream(uri).use { inputStream ->
ZipInputStream(inputStream).use { zipInputStream ->
var localFileHeader: LocalFileHeader
while ((zipInputStream.nextEntry.also { localFileHeader = it }) != null) {
var localFileHeader: LocalFileHeader?
while (true) {
// Retrieve the next file
localFileHeader = zipInputStream.nextEntry
// If no next file, exit loop
if (localFileHeader == null) {
break
}
// Ignore directories
if (localFileHeader.isDirectory) continue

View File

@@ -4,6 +4,7 @@ import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
@@ -50,6 +51,7 @@ import androidx.palette.graphics.Palette;
import com.google.android.material.color.DynamicColors;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
@@ -594,6 +596,11 @@ public class Utils {
double width = bitmap.getWidth();
double height = bitmap.getHeight();
// Early exit
if (Math.max(width, height) <= maxSize) {
return bitmap;
}
if (height > width) {
double scale = height / maxSize;
height = maxSize;
@@ -1134,6 +1141,27 @@ public class Utils {
return WindowInsetsCompat.CONSUMED;
});
}
public static void applyWindowInsetsAndFabOffset(View root, FloatingActionButton fab) {
/* This function is a copy of applyWindowInsets, with the added behaviour that it ensures the FAB will be displayed vertically above the keyboard at all times */
ViewCompat.setOnApplyWindowInsetsListener(root, (view, windowInsets) -> {
Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
layoutParams.leftMargin = insets.left;
layoutParams.bottomMargin = insets.bottom;
layoutParams.rightMargin = insets.right;
layoutParams.topMargin = insets.top;
view.setLayoutParams(layoutParams);
// This is required to move the FAB above the keyboard when keyboard is open
Insets imeInsets = windowInsets.getInsets(WindowInsetsCompat.Type.ime());
boolean isKeyboardVisible = windowInsets.isVisible(WindowInsetsCompat.Type.ime());
fab.setTranslationY(isKeyboardVisible ? (- imeInsets.bottom) : 0);
return WindowInsetsCompat.CONSUMED;
});
}
public static ImageView.ScaleType getRecommendedScaleTypeForThumbnailImage(@Nullable Bitmap image) {
// Return something sensible if no image
@@ -1149,4 +1177,40 @@ public class Utils {
return ImageView.ScaleType.FIT_CENTER;
}
public static DBHelper.LoyaltyCardOrder getLoyaltyCardOrder(Context context) {
SharedPreferences sortPref = context.getSharedPreferences(
"sharedpreference_sort",
Context.MODE_PRIVATE
);
String orderString = sortPref.getString("sharedpreference_sort_order", null);
if (orderString != null) {
try {
return DBHelper.LoyaltyCardOrder.valueOf(orderString);
} catch (IllegalArgumentException ignored) {
}
}
return DBHelper.LoyaltyCardOrder.Alpha;
}
public static DBHelper.LoyaltyCardOrderDirection getLoyaltyCardOrderDirection(Context context) {
SharedPreferences sortPref = context.getSharedPreferences(
"sharedpreference_sort",
Context.MODE_PRIVATE
);
String orderDirectionString = sortPref.getString("sharedpreference_sort_direction", null);
if (orderDirectionString != null) {
try {
return DBHelper.LoyaltyCardOrderDirection.valueOf(orderDirectionString);
} catch (IllegalArgumentException ignored) {
}
}
return DBHelper.LoyaltyCardOrderDirection.Ascending;
}
}

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget_layout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- android:columnWidth must be kept in sync with list_widget_item.xml -->
<GridView
android:id="@+id/grid_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:numColumns="auto_fit"
android:columnWidth="107dp"
android:verticalSpacing="4dp"
android:horizontalSpacing="4dp"
android:gravity="center"/>
</LinearLayout>

View File

@@ -0,0 +1,17 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/widget_layout"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/no_cards_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/card_list_widget_empty"
app:autoSizeTextType="uniform"
app:autoSizeMinTextSize="12sp"
app:autoSizeMaxTextSize="100sp"
app:autoSizeStepGranularity="2sp" />
</LinearLayout>

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
85.6dp : 53.98dp
Both multiplied by 1.25 to fit better
-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="107dp"
android:layout_height="67.475dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:gravity="center"
android:id="@+id/item_container"
android:background="@drawable/round_outline"
android:clipToOutline="true">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/item_container_foreground">
<ImageView
android:id="@+id/item_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center|center" />
<TextView
android:id="@+id/item_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:autoSizeMinTextSize="6sp"
app:autoSizeTextType="uniform"
android:layout_gravity="center|center"
android:gravity="center" />
</FrameLayout>
</FrameLayout>

View File

@@ -16,62 +16,65 @@ Altonss
B o d o
Michael Moroni
Eric
Silvério Santos
Максим Горпиніч
GM
Priit Jõerüüt
laralem
Petr Novák
Joel A
Priit Jõerüüt
Taco
Edgars Andersons
Taco
nadiafekihahmed
pfaffenrodt
Aayush Gupta
Scrambled777
Silvério Santos
ikanakova
Giovanni Donisi
HudobniVolk
Jiri Grönroos
Nyatsuki
Balázs Meskó
Milo Ivir
josé m
Samantaz Fox
Balázs Meskó
Milo Ivir
Fjuro
Cliff Heraldo
Sergio Paredes
Ankit Tiwari
Arno-github
Jose Delvani
mdvhimself
Milan Šalka
Kachelkaiser
Jose Delvani
Warder
GitSpoon
Milan Šalka
mdvhimself
Skrripy
Vasilis
huuhaa
தமிழ் நேரம்
waffshappen
Marnick L'Eau
ngocanhtve
Vasilis
StellarSand
Quentin PAGÈS
Projjal Moitra
Robin
JungHee Lee
hajertabbane
Ziad OUALHADJ
Robin Liu
Ricky Tigg
Renko
Denis Shilin
しいたけ
Alexander Ivanov
Fjuro
Miha Frangež
Viet Nguyen Hoang
stavpup
hajertabbane
ehrt74
Virginie
Tim Trek
Ricky Tigg
Peter Dave Hello
Michael Gangolf
rudy3
@@ -80,5 +83,5 @@ Govind S Nair
Freddo espresso
Augustin LAVILLE
arshbeerSingh
Aliaksandr Trush
MisterCosta96
Aliaksandr Trush

View File

@@ -2,7 +2,7 @@
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
<string name="action_search">بحث</string>
<string name="action_add">أضف</string>
<string name="noGiftCards">اضغط على زر الإضافة+ لإضافة بطاقة، أو استورد من ⋮ القائمة.</string>
<string name="noGiftCards">اضغط على زر الإضافة + لإضافة بطاقة، أو استورد من ⋮ القائمة.</string>
<string name="noMatchingGiftCards">لا نتائج. حاول تغيير كلمات البحث.</string>
<string name="storeName">اسم</string>
<string name="note">مذكرة</string>
@@ -44,9 +44,9 @@
<string name="selectBarcodeTitle">اختار الباركود</string>
<string name="thumbnailDescription">صورة مصغرة</string>
<string name="starImage">نجم مفضل</string>
<string name="settings">اعدادات</string>
<string name="settings_light_theme">فاتح</string>
<string name="settings_dark_theme">داكن</string>
<string name="settings">الإعدادات</string>
<string name="settings_light_theme">فاتحة</string>
<string name="settings_dark_theme">داكنة</string>
<string name="settings_card_orientation">اتجاه الشاشة</string>
<string name="settings_portrait_orientation">الوضع الرأسي</string>
<string name="settings_landscape_orientation">الوضع الأفقي</string>
@@ -63,7 +63,7 @@
<string name="group_updated">تم تحديث المجموعة</string>
<string name="all">الكل</string>
<string name="deleteConfirmationGroup">هل تريد حذف المجموعة؟</string>
<string name="failedOpeningFileManager">قم بتثبيت مدير الملفات أولاً.</string>
<string name="failedOpeningFileManager">ثبِّت مدير الملفات أولاً.</string>
<string name="moveUp">تحرك لأعلى</string>
<string name="addFromImage">حدد صورة من المعرض</string>
<string name="balance">الرصيد</string>
@@ -74,19 +74,16 @@
<string name="privacy_policy">سياسة الخصوصية</string>
<string name="accept">قبول</string>
<string name="importCatima">الاستيراد من Catima</string>
<string name="importCatimaMessage">حدد ملفك <i>catima.zip</i> تصدير من Catima للاستيراد.
\nقم بإنشائه من قائمة الاستيراد / التصدير لتطبيق Catima آخر بالضغط على تصدير هناك أولاً.</string>
<string name="importCatimaMessage">حدّد ملفك <i>catima.zip</i> تصدير من Catima للاستيراد. \nإنشئها من قائمة الاستيراد / التصدير لتطبيق Catima آخر بالضغط على تصدير هناك أولاً.</string>
<string name="importFidme">الاستيراد من FidMe</string>
<string name="importFidmeMessage">حدد ملفك <i>fidme-export-request-xxxxxx.zip</i> تصدير من FidMe للاستيراد ، ثم حدد أنواع الباركود يدويًا بعد ذلك.
\nقم بإنشائه من ملف تعريف FidMe الخاص بك عن طريق اختيار حماية البيانات ثم الضغط على استخراج بياناتي أولاً.</string>
<string name="importFidmeMessage">حدّد ملفك <i>fidme-export-request-xxxxxx.zip</i> تصدير من FidMe للاستيراد، ثم حدد أنواع الباركود يدويًا بعد ذلك. \nإنشئها من ملف تعريف FidMe الخاص بك عن طريق اختيار حماية البيانات ثم الضغط على استخراج بياناتي أولاً.</string>
<string name="importStocardMessage">حدد ملفك <i>***.zip</i> تصدير من Stocard للاستيراد.
\nاحصل عليه عن طريق إرسال بريد إلكتروني إلى support@stocardapp.com لطلب تصدير بياناتك.</string>
<string name="importVoucherVault">الاستيراد من Voucher Vault</string>
<string name="importVoucherVaultMessage">حدد ملفك <i>vouchervault.json</i> تصدير من Voucher Vault للاستيراد.
\nقم بإنشائه بالضغط على تصدير في Voucher Vault أولاً.</string>
<string name="importVoucherVaultMessage">حدّد ملفك <i>vouchervault.json</i> تصدير من Voucher Vault للاستيراد. \nإنشئها بالضغط على تصدير في Voucher Vault أولاً.</string>
<string name="barcodeId">قيمة الباركود</string>
<string name="sameAsCardId">نفس بطاقة الهوية</string>
<string name="setBarcodeId">قم بتعيين قيمة الباركود</string>
<string name="setBarcodeId">عيّن قيمة الباركود</string>
<string name="unsupportedBarcodeType">لا يمكن عرض نوع الباركود هذا. قد يكون مدعومًا في إصدار أحدث من التطبيق.</string>
<string name="wrongValueForBarcodeType">القيمة غير صالحة لنوع الباركود المحدد</string>
<string name="intent_import_card_from_url_share_multiple_text">أريد مشاركة بعض البطاقات معك</string>
@@ -102,9 +99,9 @@
<string name="yes">نعم</string>
<string name="no">لا</string>
<string name="passwordRequired">الرجاء إدخال كلمة المرور</string>
<string name="exportPassword">قم بتعيين كلمة مرور لحماية التصدير (اختياري)</string>
<string name="exportPassword">عيّن كلمة مرور لحماية التصدير (اختياري)</string>
<string name="exportPasswordHint">أدخل كلمة المرور</string>
<string name="turn_flashlight_on">قم بتشغيل المصباح</string>
<string name="turn_flashlight_on">شغّل المصباح</string>
<string name="turn_flashlight_off">أطفئ المصباح</string>
<string name="settings_locale">لغة</string>
<string name="settings_system_locale">النظام</string>
@@ -131,7 +128,7 @@
<string name="shortcutSelectCard">اختر بطاقة</string>
<string name="options">خيارات</string>
<string name="starred">مميز بنجمة</string>
<string name="include_if_asking_support">إذا كنت ترغب في طلب الدعم ، فقم بتضمين المعلومات التالية:</string>
<string name="include_if_asking_support">إذا كنت ترغب في طلب الدعم، ضمّن المعلومات التالية:</string>
<string name="duplicateCard">كرر</string>
<string name="archive">ضع الي الأرشيف</string>
<string name="unarchive">أخرج من الأرشيف</string>
@@ -185,7 +182,7 @@
<string name="importOptionFilesystemExplanation">اختر ملفًا محددًا من نظام الملفات.</string>
<string name="about_title_fmt">حول <xliff:g id="app_name">%s</xliff:g></string>
<string name="debug_version_fmt">نسخة: <xliff:g id="version">%s</xliff:g></string>
<string name="settings_system_theme">نظام</string>
<string name="settings_system_theme">النظام</string>
<string name="settings_lock_on_opening_orientation">قفل على الاتجاه عند فتح البطاقة</string>
<string name="app_resources">موارد الطرف الثالث الحرة: <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="settings_follow_system_orientation">نظام المتابعة</string>
@@ -231,8 +228,7 @@
<string name="report_error">الإبلاغ عن خطأ</string>
<string name="sort_by_expiry">انقضاء</string>
<string name="importLoyaltyCardKeychain">الاستيراد من Loyalty Card Keychain</string>
<string name="importLoyaltyCardKeychainMessage">حدد ملفك <i>LoyaltyCardKeychain.csv</i> التصدير من Loyalty Card Keychain للاستيراد.
\nقم بإنشائه من قائمة الاستيراد / التصدير في Loyalty Card Keychain بالضغط على تصدير هناك أولاً.</string>
<string name="importLoyaltyCardKeychainMessage">حدّد ملفك <i>LoyaltyCardKeychain.csv</i> التصدير من Loyalty Card Keychain للاستيراد. \nإنشئها من قائمة الاستيراد / التصدير في Loyalty Card Keychain بالضغط على تصدير هناك أولاً.</string>
<string name="importStocard">الاستيراد من Stocard</string>
<string name="failedGeneratingShareURL">تعذر إنشاء عنوان URL قابل للمشاركة. الرجاء الإبلاغ عن هذا.</string>
<string name="help_translate_this_app">ساعد في ترجمة هذا التطبيق</string>
@@ -243,7 +239,7 @@
<string name="failedToRetrieveImageFile">فشل في استخراج ملف الصورة</string>
<string name="barcodeLongPressMessage">يمكن فتح صور فقط في تطبيق معرض الصور</string>
<string name="failedToOpenUrl">ثبت متصفح ويب أولاً</string>
<string name="welcome">مرحبا بك في كاتيما</string>
<string name="welcome">مرحبًا بك في كاتيما</string>
<string name="updateBalanceTitle">كم أنفقت أو استلمت؟</string>
<string name="currentBalanceSentence">الرصيد الحالي: <xliff:g> %s </xliff:g></string>
<string name="importCards">استيراد البطاقات</string>
@@ -282,7 +278,7 @@
<string name="setBarcodeHeight">ضبط ارتفاع الباركود</string>
<string name="openBackImageInGalleryApp">فتح الصورة الخلفية في تطبيق المعرض</string>
<string name="settings_allow_content_provider_read_title">السماح للتطبيقات الأخرى بالوصول إلى بياناتي</string>
<string name="donate">يتبرع</string>
<string name="donate">تبرّع</string>
<string name="show_archived_cards">عرض البطاقات المؤرشفة</string>
<string name="settings_category_title_privacy">خصوصية</string>
<string name="show_balance">إظهار التوازن</string>
@@ -313,11 +309,11 @@
<string name="exportCancelled">تم الغاء الاستخراج</string>
<string name="useFrontImage">استخدام صورة أمامية</string>
<string name="useBackImage">استخدم صورة خلفية</string>
<string name="addFromPkpass">اختر ملف الدفتر(.pkpass)</string>
<string name="addFromPkpass">اختر ملف الدفتر (.pkpass)</string>
<string name="unsupportedFile">هذا الملف غير مدعوم</string>
<string name="generic_error_please_retry">نعتذر، حدث خطأ ما، حاول مرة أخرى...</string>
<string name="settings_use_volume_keys_navigation">تبديل البطاقات باستخدام أزرار الصوت</string>
<string name="settings_use_volume_keys_navigation_summary">تبديل البطاقات الظاهرة باستخدام أزرار الصوت</string>
<string name="settings_use_volume_keys_navigation">بدّل البطاقات باستخدام أزرار الصوت</string>
<string name="settings_use_volume_keys_navigation_summary">بدّل البطاقات الظاهرة باستخدام أزرار الصوت</string>
<string name="settings_category_title_cards_overview">نظرة عامة على البطاقات</string>
<string name="settings_column_count_portrait">الأعمدة في الوضع الرأسي</string>
<string name="settings_column_count_landscape">الأعمدة في الوضع الأفقي</string>

View File

@@ -308,4 +308,6 @@
<string name="sort_by_valid_from">Начало валидност</string>
<string name="width">Ширина</string>
<string name="setBarcodeWidth">Задаване ширина на щрих кода</string>
<string name="card_list_widget_name">Списък с карти</string>
<string name="card_list_widget_empty">Когато добавите карти в Catima те ще се покажат тук. Ако имате карти уверете се, че са извън архива.</string>
</resources>

View File

@@ -314,4 +314,6 @@
<string name="sort_by_valid_from">Platnost od</string>
<string name="setBarcodeWidth">Nastavit šířku čárového kódu</string>
<string name="width">Šířka</string>
<string name="card_list_widget_name">Seznam karet</string>
<string name="card_list_widget_empty">Karty přidané do aplikace Catima se zobrazí zde. Pokud máte karty, ujistěte se, že nejsou všechny archivovány.</string>
</resources>

View File

@@ -101,7 +101,7 @@
<string name="importLoyaltyCardKeychain">Aus Loyalty Card Keychain importieren</string>
<string name="importFidmeMessage">Wähle deinen <i>fidme-export-request-xxxxxx.zip</i>-Export aus FidMe zum Importieren aus und wähle anschließend die Barcodetypen manuell aus. \nOder erstelle ihn aus deinem FidMe-Profil, indem du Datenschutz wählst und dann zuerst auf Meine Daten extrahieren drückst.</string>
<string name="importFidme">Aus FidMe importieren</string>
<string name="importCatimaMessage">Wähle deinen <i>catima.zip</i>-Export aus Catima zum Importieren aus.\nErstelle ihn aus dem Import/Export-Menü einer anderen Catima-Anwendung, indem du dort zuerst Export drückst.</string>
<string name="importCatimaMessage">Wähle deinen <i>catima.zip</i>-Export“ von Catima zum Importieren aus.\nErstelle ihn zuerst aus dem Import/Export-Menü einer anderen Catima-Anwendung, indem du dort Export drückst.</string>
<string name="importCatima">Aus Catima importieren</string>
<string name="setBarcodeId">Barcodewert festlegen</string>
<string name="sameAsCardId">Entspricht Kartennummer</string>
@@ -304,4 +304,6 @@
<string name="sort_by_valid_from">Gültig ab</string>
<string name="width">Breite</string>
<string name="setBarcodeWidth">Barcodebreite einstellen</string>
<string name="card_list_widget_empty">Nachdem du einige Treuekarten in Catima hinzugefügt hast, werden sie hier angezeigt. Wenn du Karten hast, stelle sicher, dass sie nicht alle archiviert sind.</string>
<string name="card_list_widget_name">Kartenliste</string>
</resources>

View File

@@ -307,4 +307,6 @@
<string name="sort_by_valid_from">Έναρξη ισχύος</string>
<string name="setBarcodeWidth">Ορισμός πλάτους γραμμωτού κώδικα</string>
<string name="width">Πλάτος</string>
<string name="card_list_widget_empty">Αφού προσθέσετε μερικές κάρτες επιβράβευσης στο Catima, θα εμφανιστούν εδώ. Εάν έχετε κάρτες, βεβαιωθείτε ότι δεν είναι όλες αρχειοθετημένες.</string>
<string name="card_list_widget_name">Λίστα καρτών</string>
</resources>

View File

@@ -175,7 +175,7 @@
<string name="points">Punkte</string>
<string name="balanceParsingFailed">Vigane maksejääk</string>
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
<string name="privacy_policy">Privaatsuspoliitika</string>
<string name="privacy_policy">Andmekaitsepõhimõtted</string>
<string name="accept">Nõustu</string>
<string name="importCatima">Impordi Catima varukoopiast</string>
<string name="importCatimaMessage">Importimiseks vali varem tehtud <i>catima.zip</i> Catima ekspordifail. \nSellise faili saad luua mõnes teises seadmes olevast Catima rakendusest Import/Eksport menüüst valikust Eksport.</string>
@@ -303,4 +303,6 @@
<string name="sort_by_valid_from">Kehtib alates</string>
<string name="setBarcodeWidth">Määratle triipkoodi laius</string>
<string name="width">Laius</string>
<string name="card_list_widget_name">Kaartide loend</string>
<string name="card_list_widget_empty">Kui lisad Catimasse kliendikaarte, siis saavad nad olema nähtavad siin. Kui sul on kaardid lisatud, siis palun kontrolli, et nad kõik poleks arhiveeritud.</string>
</resources>

View File

@@ -71,7 +71,7 @@
<string name="importExport">ایمپورت/خروجی گرفتن</string>
<string name="settings_category_title_privacy">حریم شخصی</string>
<string name="settings_category_title_general">عمومی</string>
<string name="settings_category_title_cards">کارتها</string>
<string name="settings_category_title_cards">نمایش کارت</string>
<string name="barcodeImageDescriptionWithType">تصویر بارکد <xliff:g>%s</xliff:g></string>
<string name="importOptionFilesystemButton">از فایل های سیستم</string>
<string name="about">درباره</string>
@@ -112,7 +112,7 @@
<string name="about_title_fmt">درباره <xliff:g id="app_name">%s</xliff:g></string>
<string name="debug_version_fmt">نسخه <xliff:g id="version">%s</xliff:g></string>
<string name="chooseExpiryDate">انتخاب تاریخ انقضاء</string>
<string name="app_libraries">کتابخانه های شخص ثالث: <xliff:g id="app_libraries_list">%s</xliff:g></string>
<string name="app_libraries">کتابخانه های آزاد شخص ثالث: <xliff:g id="app_libraries_list">%s</xliff:g></string>
<string name="app_copyright_old">بر اساس کارت وفاداری Keychain\nکپی رایت © 2016-2020 سازنده : Branden</string>
<string name="app_license">نرم‌افزار آزاد با حقوق کپی‌لفت، تحت مجوز GPLv3+</string>
<string name="groups">گروه‌ها</string>
@@ -188,4 +188,118 @@
<string name="height">ارتفاع</string>
<string name="add_manually_warning_message">برای برخی از فروشگاه‌ها، مقدار بارکد با عدد نوشته شده روی کارت متفاوت است. به همین دلیل، وارد کردن دستی بارکد ممکن است همیشه کار نکند. اکیداً توصیه می‌شود که به جای آن، بارکد را با دوربین خود اسکن کنید. آیا هنوز می‌خواهید ادامه دهید؟</string>
<string name="generic_error_please_retry">ببخشید، مشکلی پیش آمده، لطفا دوباره امتحان کنید...</string>
<string name="settings_magenta_theme">سرخابی</string>
<string name="welcome">یه کتیما خوش آمدید</string>
<string name="chooseValidFromDate">مقداری درست از تاریخ برگزینید</string>
<string name="intent_import_card_from_url_share_multiple_text">می‌خواهم چند کارت به شما بدهم</string>
<string name="frontImageDescription">عکس نمایه</string>
<string name="backImageDescription">عکس پشتِ‌سر</string>
<string name="photos">عکس‌ها</string>
<string name="setFrontImage">عکس روبه‌رو را بگذارید</string>
<string name="yes">بله</string>
<string name="no">نه</string>
<string name="updateBarcodeQuestionTitle">مقدار بارکد را به‌روز می‌کنید؟</string>
<string name="updateBarcodeQuestionText">شما شناسه را تغییر دادید. می‌خواهید بارکد را هم به‌روز کنید تا همین مقدار را به‌کار ببرید؟</string>
<string name="failedGeneratingShareURL">نتوانستم آدرس هم‌رسانی‌پذیر بسازم. لطفن این را گزارش کنید.</string>
<string name="turn_flashlight_on">چراغ‌قوه را روشن کنید</string>
<string name="settings_locale">زبان</string>
<string name="settings_oled_dark">پس‌زمینه‌ی یک‌دست سیاه برای حالت تاریک</string>
<string name="settings_oled_dark_summary">استفاده‌ی باتری را برای نمایشگرهای OLED کاهش می‌دهد</string>
<string name="setIcon">قالب پیش‌نمایه را بگمارید</string>
<string name="settings_theme_color">رنگ زمینه</string>
<string name="settings_catima_theme">کتیما</string>
<string name="settings_system_locale">سیستم</string>
<string name="selectColor">رنگ را برگزینید</string>
<string name="settings_violet_theme">بنفش</string>
<string name="settings_blue_theme">آبی</string>
<string name="settings_sky_blue_theme">آبی آسمانی</string>
<string name="settings_green_theme">سبز</string>
<string name="settings_brown_theme">قهوه‌ای</string>
<string name="app_contributors">با کمک او ممکن شد: <xliff:g id="app_contributors">%s</xliff:g></string>
<string name="sort">مرتب‌کردن</string>
<string name="showMoreInfo">نمایش اطلاعات</string>
<string name="credits">اعتبارها</string>
<string name="archived">کارت بایگانی شد</string>
<string name="unarchived">کارت از بایگانی برچیده شد</string>
<string name="show_validity">درستی را نشان دهید</string>
<string name="wrongValueForBarcodeType">مقدار برای نوع بارکد برگزیده درست نیست</string>
<string name="setBackImage">عکس پشتِ‌سر را بگذارید</string>
<string name="removeImage">عکس را برچینید</string>
<string name="passwordRequired">لطفا گذرواژه را وارد کنید</string>
<string name="previousCard">پیشین</string>
<string name="turn_flashlight_off">چراغ‌قوه را خاموش کنید</string>
<string name="settings_pink_theme">صورتی</string>
<string name="updateBalance">به‌روزرسانی موجودی</string>
<string name="barcodeLongPressMessage">تنها عکس می‌تواند در گالری برنامه باز شود</string>
<string name="sort_by_name">نام</string>
<string name="sort_by_most_recently_used">به‌تازگی استفاده‌شده</string>
<string name="sort_by_expiry">انقضا</string>
<string name="sort_by">مرتب کن با</string>
<string name="include_if_asking_support">اگر می‌خواهید پشتیبانی درخواست کنید، اطلاعات زیر را پر کنید:</string>
<string name="unarchive">برچیدن بایگانی</string>
<string name="switchToBackImage">به عکس پشتِ‌سر جابه‌جا کنید</string>
<string name="openBackImageInGalleryApp">عکس پشتِ‌سر را در برنامه‌ی گالری باز کنید</string>
<string name="setBarcodeHeight">ارتفاع بارگد را بگمارید</string>
<string name="donate">کمک مالی کنید</string>
<string name="icon_header_click_text">برای ویرایش قاب پیش‌نمایه فشار داده و نگه‌دارید</string>
<string name="show_name_below_image_thumbnail">زیر عکس پیش‌نمایه نام را نشان دهید</string>
<string name="show_note">یادداشت را نشان دهید</string>
<string name="settings_category_title_cards_overview">نگاهی به کارت‌ها</string>
<string name="settings_column_count_portrait">ستون‌ها در حالت پرتره</string>
<string name="settings_automatic_column_count">خودکار</string>
<string name="settings_column_count_2">۲</string>
<string name="settings_column_count_3">۳</string>
<string name="settings_column_count_4">۴</string>
<string name="settings_column_count_5">۵</string>
<string name="settings_column_count_6">۶</string>
<string name="failedLaunchingPhotoPicker">نتوانستم یک برنامه‌ی گالری پشتیبانی‌شده بیابم</string>
<string name="show_balance">موجودی را نشان دهید</string>
<string name="settings_column_count_landscape">ستون‌ها در حالت لنداسکیپ</string>
<string name="settings_column_count_1">۱</string>
<string name="sort_by_valid_from">درست از</string>
<string name="reverse">به‌ترتیب برعکس</string>
<string name="version_history">تاریخچه‌ی نسخه</string>
<string name="license">مجوز</string>
<string name="source_repository">مخزن منبع</string>
<string name="report_error">خطا را گزارش کنید</string>
<string name="translate_platform">در وب‌لیت</string>
<string name="shortcutSelectCard">یک کارت برگزینید</string>
<string name="options">گزینه‌ها</string>
<string name="starred">نشان‌شده</string>
<string name="on_github">روی گیتهاب</string>
<string name="and_data_usage">و مصرف داده</string>
<string name="rate_this_app">به این برنامه رتبه بدهید</string>
<string name="on_google_play">در گوگل‌پلی</string>
<string name="archive">بایگانی</string>
<string name="updateBalanceHint">مقدار را وارد کنید</string>
<string name="currentBalanceSentence">موجودی کنونی: <xliff:g>%s</xliff:g></string>
<string name="newBalanceSentence">موجودی تازه: <xliff:g>%s</xliff:g></string>
<string name="validFromDate">معتبر از</string>
<string name="anyDate">هر تاریخی</string>
<string name="validFromSentence">درست از: <xliff:g>%s</xliff:g></string>
<string name="switchToFrontImage">به عکس روبه‌رو جابه‌جا کنید</string>
<string name="nextCard">پسین</string>
<string name="failedToOpenUrl">نخست یک مرورگر وب نصب کنید</string>
<string name="updateBalanceTitle">چقدر خرج یا دریافت کردید؟</string>
<string name="switchToBarcode">به بارکد جابه‌جا کنید</string>
<string name="openFrontImageInGalleryApp">عکس روبه‌رو را در برنامه‌ی گالری باز کنید</string>
<string name="add_a_card_in_a_different_way">یک کارت به روشی متفاوت بیافزایید</string>
<string name="takePhoto">عکس بگیرید</string>
<string name="settings_column_count_7">۷</string>
<string name="manually_enter_barcode_instructions">شماره شناسایی یا متنی که روی کارت شماست را وارد کنید و بارکدی را که شبیه بارکد روی کارت شماست فشار دهید.</string>
<string name="failedLaunchingFileManager">نتوانستم یک مدیر فایل پشتیبانی‌شده پیدا کنم</string>
<string name="useFrontImage">از تصویر جلو استفاده کنید</string>
<string name="useBackImage">از تصویر پشت استفاده کنید</string>
<string name="pageWithNumber">صفحه <xliff:g>%d</xliff:g></string>
<string name="multipleBarcodesFoundPleaseChooseOne">از کدام یک از بارکدهای پیدا شده می‌خواهید استفاده کنید؟</string>
<string name="width">عرض</string>
<string name="setBarcodeWidth">تنظیم عرض بارکد</string>
<string name="unsupportedFile">این فایل پشتیبانی نمی‌شود</string>
<plurals name="groupCardCountWithArchived">
<item quantity="one"><xliff:g>%1$d</xliff:g> کارت (<xliff:g id="archivedCount">%2$d</xliff:g> بایگانی شده)</item>
<item quantity="other"><xliff:g>%1$d</xliff:g> کارت‌ (<xliff:g id="archivedCount">%2$d</xliff:g> بایگانی شده‌)</item>
</plurals>
<string name="spend">خرج کردن</string>
<string name="addFromPkpass">یک فایل دفترچه حساب (.pkpass) انتخاب کنید</string>
<string name="noCameraFoundGuideText">به نظر نمی‌رسد دستگاه شما دوربین داشته باشد. اگر دارد، دستگاه را مجدداً راه‌اندازی کنید. در غیر این صورت، از دکمه گزینه‌های بیشتر در زیر برای افزودن بارکد به روش دیگری استفاده کنید.</string>
</resources>

View File

@@ -306,4 +306,8 @@
<string name="unsupportedFile">Tämä tiedosto ei ole tuettu</string>
<string name="generic_error_please_retry">Pahoittelut, jokin meni pieleen. Yritä uudelleen...</string>
<string name="sort_by_valid_from">Voimassa alkaen</string>
<string name="width">Leveys</string>
<string name="setBarcodeWidth">Aseta viivakoodin leveys</string>
<string name="card_list_widget_name">Korttiluettelo</string>
<string name="card_list_widget_empty">Kun olet lisännyt kanta-asiakaskortteja Catimaan, ne näkyvät täällä. Jos sinulla on kortteja, varmista, etteivät ne kaikki ole arkistoituja.</string>
</resources>

View File

@@ -314,4 +314,6 @@
<string name="sort_by_valid_from">Valide à partir du</string>
<string name="width">Largeur</string>
<string name="setBarcodeWidth">Définir la largeur du code-barres</string>
<string name="card_list_widget_name">Liste des cartes</string>
<string name="card_list_widget_empty">Après avoir ajouter des cartes de fidélité dans Catima, elles apparaîtront ici. Si vous avez des cartes, assurez-vous qu\'elles ne soient pas archivées.</string>
</resources>

View File

@@ -302,4 +302,6 @@
<string name="sort_by_valid_from">Válido desde</string>
<string name="width">Anchura</string>
<string name="setBarcodeWidth">Establecer anchura do código de barras</string>
<string name="card_list_widget_name">Lista de tarxetas</string>
<string name="card_list_widget_empty">Aquí aparecerán as tarxetas fidelidade cando as engadas a Catima. Se tes tarxetas mira que non estean arquivadas.</string>
</resources>

View File

@@ -306,4 +306,6 @@
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_7">7</string>
<string name="sort_by_valid_from">Érvényesség kezdete</string>
<string name="width">Szélesség</string>
<string name="setBarcodeWidth">Vonalkód szélességének beállítása</string>
</resources>

View File

@@ -300,4 +300,5 @@
<string name="unsupportedFile">File ini tidak didukung</string>
<string name="generic_error_please_retry">Maaf, terjadi kesalahan, silakan coba lagi...</string>
<string name="sort_by_valid_from">Berlaku dari</string>
<string name="width">Lebar</string>
</resources>

View File

@@ -314,4 +314,6 @@
<string name="sort_by_valid_from">Valido da</string>
<string name="setBarcodeWidth">Imposta la larghezza del codice a barre</string>
<string name="width">Larghezza</string>
<string name="card_list_widget_name">Lista delle carte</string>
<string name="card_list_widget_empty">Dopo aver aggiunto alcune carte fedeltà in Catima, queste appariranno qui. Se hai delle carte, assicurati che non siano tutte archiviate.</string>
</resources>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="action_search">חיפוש</string>
<plurals name="selectedCardCount">
<item quantity="one"><xliff:g>%d</xliff:g> נבחר</item>
<item quantity="two"><xliff:g>%d</xliff:g> נבחרו</item>
<item quantity="other"><xliff:g>%d</xliff:g> נבחרו</item>
</plurals>
<string name="action_add">הוסף</string>
<string name="noGiftCards">לחץ על כפתור הפלוס (+) כדי להוסיף כרטיס, או ייבא מתפריט ⋮.</string>
</resources>

View File

@@ -51,7 +51,7 @@
<string name="intent_import_card_from_url_share_text">カード共有をしましょう</string>
<string name="settings_disable_lockscreen_while_viewing_card">バーコード表示中に画面をロックしない</string>
<string name="settings_keep_screen_on">バーコード表示中に画面を点けたままにする</string>
<string name="settings_display_barcode_max_brightness">バーコード表示画面を明るくする</string>
<string name="settings_display_barcode_max_brightness">画面を明るくする</string>
<string name="settings_dark_theme">ダーク</string>
<string name="settings_light_theme">ライト</string>
<string name="settings_system_theme">システムに従う</string>
@@ -189,7 +189,7 @@
<string name="chooseValidFromDate">有効期限を選択</string>
<string name="anyDate">無期限</string>
<string name="app_name">Catima</string>
<string name="settings_card_orientation">バーコードの向き</string>
<string name="settings_card_orientation">画面の向き</string>
<string name="settings_display_barcode_max_brightness_summary">仕事をするためにいくつかのスキャナーが必要</string>
<string name="settings_follow_system_orientation">システムに従う</string>
<string name="storageReadPermissionRequired">このアクションのためにストレージの読み取り権限を許可…</string>
@@ -239,4 +239,8 @@
<string name="settings_column_count_4">4</string>
<string name="settings_category_title_privacy">プライバシー</string>
<string name="exportCancelled">輸出がキャンセルされた</string>
<string name="settings_allow_content_provider_read_title">他のアプリが自分のデータにアクセスすることを許可する</string>
<string name="permissionReadCardsDescription">Catimaカードと、ートや画像を含むすべての詳細を読み取る</string>
<string name="settings_use_volume_keys_navigation_summary">ボリュームボタンを使ってどのカードを表示するかを変更する</string>
<string name="unsupportedFile">このファイルはサポートされていません</string>
</resources>

View File

@@ -300,4 +300,6 @@
<string name="settings_automatic_column_count">자동</string>
<string name="settings_column_count_1">1</string>
<string name="sort_by_valid_from">유효 기간</string>
<string name="width">너비</string>
<string name="setBarcodeWidth">바코드 너비를 설정하세요</string>
</resources>

View File

@@ -309,4 +309,6 @@
<string name="sort_by_valid_from">Derīga no</string>
<string name="setBarcodeWidth">Iestatīt svītrkoda platumu</string>
<string name="width">Platums</string>
<string name="card_list_widget_name">Karšu saraksts</string>
<string name="card_list_widget_empty">Pēc klienta karšu pievienošanas Catima tās parādīsies šeit. Ja Tev ir kartes, jāpārliecinās, ka tās visas nav arhivētas.</string>
</resources>

View File

@@ -84,6 +84,14 @@
<string name="settings_theme">थीम</string>
<string name="settings_light_theme">उजळ</string>
<string name="settings">सेटिंग्ज</string>
<string name="settings_card_orientation">बार्कोड अभिमुखता</string>
<string name="settings_card_orientation">स्क्रीन ओरिएंटेशन</string>
<string name="thumbnailDescription">लघुप्रतिमा</string>
</resources>
<string name="settings_keep_screen_on_summary">कार्ड पाहताना स्क्रीन टाइमआउट बंद करते</string>
<string name="settings_follow_sensor_orientation">नेहमी फिरवा (सिस्टम सेटिंग्ज दुर्लक्षित करेल)</string>
<string name="settings_lock_on_opening_orientation">कार्ड उघडताना वापरला जाणारा लॉक टू ओरिएंटेशन</string>
<string name="settings_display_barcode_max_brightness">स्क्रीन उजळवा</string>
<string name="settings_display_barcode_max_brightness_summary">काही स्कॅनर्सना काम करण्यासाठी आवश्यक</string>
<string name="settings_keep_screen_on">स्क्रीन चालू ठेवा</string>
<string name="settings_disable_lockscreen_while_viewing_card">स्क्रीन लॉक प्रतिबंधित करा</string>
<string name="settings_disable_lockscreen_while_viewing_card_summary">कार्ड पाहताना स्क्रीन लॉक बंद करते</string>
</resources>

View File

@@ -306,4 +306,8 @@
<string name="unsupportedFile">Dit bestand wordt niet ondersteund</string>
<string name="generic_error_please_retry">Sorry, er ging iets mis. Probeer het opnieuw.</string>
<string name="sort_by_valid_from">Op geldig vanaf</string>
<string name="width">Breedte</string>
<string name="setBarcodeWidth">Stel Barcodebreedte in</string>
<string name="card_list_widget_name">Kaartenlijst</string>
<string name="card_list_widget_empty">Zodra er kaarten in Catima toegevoegd zijn worden deze hier getoond. Heb je al kaarten? Controleer dan of deze niet gearchiveerd zijn.</string>
</resources>

View File

@@ -314,4 +314,6 @@
<string name="sort_by_valid_from">Válido a partir de</string>
<string name="width">Largura</string>
<string name="setBarcodeWidth">Definir largura do código de barras</string>
<string name="card_list_widget_name">Lista de cartões</string>
<string name="card_list_widget_empty">Depois que você adicionar alguns cartões de fidelidade no Catima, eles aparecerão aqui. Se você tiver cartões, verifique se eles não estão todos arquivados.</string>
</resources>

View File

@@ -314,4 +314,6 @@
<string name="sort_by_valid_from">Válido a partir de</string>
<string name="width">Largura</string>
<string name="setBarcodeWidth">Definir a largura do código de barras</string>
<string name="card_list_widget_name">Lista de cartões</string>
<string name="card_list_widget_empty">Após adicionar cartões de fidelidade em Catima, eles aparecerão aqui. Se tem cartões, certifique-se de que não estão todos arquivados.</string>
</resources>

View File

@@ -308,4 +308,6 @@
<string name="generic_error_please_retry">Lamento, ocorreu um erro, tente novamente...</string>
<string name="setBarcodeWidth">Definir Largura do Código de Barra</string>
<string name="width">Largura</string>
<string name="card_list_widget_name">Lista de cartões</string>
<string name="card_list_widget_empty">Após adicionar cartões de fidelidade em Catima, eles aparecerão aqui. Se tem cartões, certifique-se de que não estão todos arquivados.</string>
</resources>

View File

@@ -307,4 +307,6 @@
<string name="addFromPkpass">Selectează un fișier de tip Passbook (.pkpass)</string>
<string name="unsupportedFile">Acest fișier nu este suportat</string>
<string name="generic_error_please_retry">Scuze, ceva nu a funționat. Încearcă din nou ...</string>
<string name="width">Lățime</string>
<string name="setBarcodeWidth">Setează Lățimea Codului de Bare</string>
</resources>

View File

@@ -320,4 +320,6 @@
<string name="sort_by_valid_from">Начало действия</string>
<string name="width">Ширина</string>
<string name="setBarcodeWidth">Указать ширину штрих-кода</string>
<string name="card_list_widget_name">Список карт</string>
<string name="card_list_widget_empty">После добавления карт лояльности в Catima, они появятся здесь. Если у вас есть карты, убедитесь, что они не архивированы.</string>
</resources>

View File

@@ -10,7 +10,7 @@
<string name="edit">Upraviť</string>
<string name="delete">Vymazať</string>
<string name="confirm">Potvrdiť</string>
<string name="ok">Áno</string>
<string name="ok">OK</string>
<string name="sendLabel">Odoslať…</string>
<string name="editCardTitle">Upraviť kartu</string>
<string name="addCardTitle">Pridať kartu</string>
@@ -21,10 +21,10 @@
<string name="importExport">Import/Export</string>
<string name="exportName">Export</string>
<string name="importExportHelp">Zálohovanie vašich údajov umožňuje ich presun na iné zariadenie.</string>
<string name="importSuccessfulTitle">Importované</string>
<string name="importSuccessfulTitle">Úspešne importované</string>
<string name="importFailedTitle">Import zlyhal</string>
<string name="importFailed">Nemožno vykonať import</string>
<string name="exportSuccessfulTitle">Exportované</string>
<string name="exportSuccessfulTitle">Úspešne exportované</string>
<string name="exportFailedTitle">Export zlyhal</string>
<string name="exportFailed">Nemožno vykonať export</string>
<string name="importing">Importujem…</string>
@@ -33,13 +33,13 @@
<string name="importOptionFilesystemExplanation">Vyberte súbor zo súborového systému.</string>
<string name="importOptionFilesystemButton">Zo súborového systému</string>
<string name="about">O aplikácii</string>
<string name="app_license">Copyleftovaný slobodný softvér s licenciou GPLv3+</string>
<string name="app_license">Slobodný softvér s copyleft licenciou GPLv3+</string>
<string name="about_title_fmt">O <xliff:g id="app_name">%s</xliff:g></string>
<string name="debug_version_fmt">Verzia: <xliff:g id="version">%s</xliff:g></string>
<string name="selectBarcodeTitle">Vyberte čiarový kód</string>
<string name="thumbnailDescription">Miniatúra</string>
<string name="settings">Nastavenia</string>
<string name="settings_display_barcode_max_brightness">Zvýrazniť obrazovku zobrazenia čiarových kódov</string>
<string name="settings_display_barcode_max_brightness">Zvýšiť jas obrazovky pri zobrazení čiarového kódu</string>
<string name="deleteTitle">Odstrániť kartu</string>
<string name="deleteConfirmation">Naozaj chcete túto kartu odstrániť?</string>
<string name="star">Pridať k obľúbeným</string>
@@ -50,7 +50,7 @@
<string name="chooseImportType">Importovať údaje z</string>
<string name="points">Body</string>
<string name="currency">Mena</string>
<string name="balance">Vyváženie</string>
<string name="balance">Zostatok</string>
<string name="errorReadingImage">Obrázok sa nepodarilo prečítať</string>
<string name="noBarcodeFound">Nenašiel sa žiadny čiarový kód</string>
<string name="moveBarcodeToTopOfScreen">Presun čiarového kódu do hornej časti obrazovky</string>
@@ -59,7 +59,7 @@
<string name="addFromImage">Vyberte obrázok z galérie</string>
<string name="addManually">Zadajte čiarový kód ručne</string>
<string name="leaveWithoutSaveConfirmation">Odísť bez uloženia\?</string>
<string name="leaveWithoutSaveTitle">Výstup</string>
<string name="leaveWithoutSaveTitle">Ukončiť</string>
<string name="moveDown">Pohyb smerom nadol</string>
<string name="moveUp">Pohyb smerom nahor</string>
<string name="failedOpeningFileManager">Najprv nainštalujte správcu súborov.</string>
@@ -71,13 +71,13 @@
<string name="enter_group_name">Zadajte názov skupiny</string>
<string name="exportSuccessful">Údaje exportované</string>
<string name="importSuccessful">Údaje importované</string>
<string name="intent_import_card_from_url_share_text">Chcem sa s vami podeliť o pohľadnicu</string>
<string name="settings_disable_lockscreen_while_viewing_card">Zabrániť uzamknutiu obrazovky</string>
<string name="settings_keep_screen_on">Nechajte obrazovku zapnutú</string>
<string name="intent_import_card_from_url_share_text">Zdieľam kartu</string>
<string name="settings_disable_lockscreen_while_viewing_card">Nezamykať obrazovku</string>
<string name="settings_keep_screen_on">Nevypínať obrazovku</string>
<string name="unstar">Odstrániť z obľúbených</string>
<string name="settings_dark_theme">Tmavé</string>
<string name="settings_light_theme">Svetlo</string>
<string name="settings_system_theme">Systém</string>
<string name="settings_dark_theme">Tmavá</string>
<string name="settings_light_theme">Svetlá</string>
<string name="settings_system_theme">Podľa nastavení systému</string>
<string name="settings_theme">Téma</string>
<string name="starImage">Obľúbená hviezda</string>
<string name="exportOptionExplanation">Údaje sa zapíšu na vami zvolené miesto.</string>
@@ -107,7 +107,7 @@
</plurals>
<string name="group_edit">Upraviť skupinu</string>
<string name="group_name_already_in_use">Tento názov skupiny sa už používa</string>
<string name="group_name_is_empty">Názov skupiny nesmie byť prázdne</string>
<string name="group_name_is_empty">Názov skupiny nesmie byť prázdny</string>
<string name="group_updated">Skupina bola aktualizovaná</string>
<string name="editGroup">Úprava skupiny: <xliff:g>%s</xliff:g></string>
<string name="expiryStateSentence">Platí do: <xliff:g>%s</xliff:g></string>
@@ -153,7 +153,7 @@
<string name="credits">Poďakovanie</string>
<string name="card">Karta</string>
<string name="rate_this_app">Ohodnoťte túto aplikáciu</string>
<string name="exportPassword">Nastavenie hesla na ochranu exportu (voliteľné)</string>
<string name="exportPassword">Nastavte heslo na ochranu exportu (voliteľné)</string>
<string name="exportPasswordHint">Zadajte heslo</string>
<string name="failedGeneratingShareURL">Nepodarilo sa vygenerovať zdieľateľnú adresu URL. Nahláste to, prosím.</string>
<string name="turn_flashlight_off">Vypnúť svetlo</string>
@@ -168,7 +168,7 @@
<string name="barcodeId">Hodnota čiarového kódu</string>
<string name="sameAsCardId">Rovnaké ako ID</string>
<string name="setBarcodeId">Nastavenie hodnoty čiarového kódu</string>
<string name="unsupportedBarcodeType">Tento typ čiarového kódu zatiaľ nie je možné zobraziť. Možno bude podporovaný v neskoršej verzii aplikácie.</string>
<string name="unsupportedBarcodeType">Tento typ čiarového kódu zatiaľ nie je možné zobraziť. Možno bude podporovaný v novšej verzii aplikácie.</string>
<string name="wrongValueForBarcodeType">Hodnota nie je platná pre vybraný typ čiarového kódu</string>
<string name="frontImageDescription">Obrázok prednej strany</string>
<string name="backImageDescription">Obrázok zadnej strany</string>
@@ -184,7 +184,7 @@
<string name="noGiftCardsGroup">Zatiaľ nemáte žiadne vernostné karty. Keď nejaké pridáte, môžete ich priradiť ku skupine tu.</string>
<string name="noCameraPermissionDirectToSystemSetting">Na skenovanie čiarových kódov potrebuje Catima prístup k fotoaparátu. Ťuknite sem a zmeňte nastavenia oprávnení.</string>
<string name="importCards">Importovať karty</string>
<string name="settings_card_orientation">Orientácia obrazovky čiarového kódu</string>
<string name="settings_card_orientation">Orientácia obrazovky</string>
<string name="settings_lock_on_opening_orientation">Zamknúť na orientáciu použitú pri otváraní karty</string>
<string name="app_loyalty_card_keychain">Kľúčenka vernostných kariet</string>
<string name="settings_oled_dark">Čisto čierne pozadie pre tmavú tému</string>
@@ -195,7 +195,7 @@
<string name="starred">S hviezdičkou</string>
<string name="duplicateCard">Duplikovať</string>
<string name="archive">Archivovať</string>
<string name="unarchive">Vrátiť z archivu</string>
<string name="unarchive">Vrátiť z archívu</string>
<string name="archived">Karta archivovaná</string>
<string name="unarchived">Karta vrátená z archívu</string>
<string name="previousCard">Predošlá</string>
@@ -244,13 +244,13 @@
<string name="icon_header_click_text">Dlhým stlačením upravíte miniatúru</string>
<string name="settings_category_title_general">Všeobecné</string>
<string name="settings_category_title_privacy">Súkromie</string>
<string name="settings_keep_screen_on_summary">Zakázanie časového limitu obrazovky počas prezerania karty</string>
<string name="settings_display_barcode_max_brightness_summary">Potrebné pre fungovanie niektorých skenerov</string>
<string name="settings_keep_screen_on_summary">Ponechať obrazovku aktívnu počas prezerania karty</string>
<string name="settings_display_barcode_max_brightness_summary">Pre zaistenie čitateľnosti pre niektoré skenery</string>
<string name="settings_allow_content_provider_read_summary">Aplikácie budú musieť stále žiadať o povolenie, aby im bol udelený prístup</string>
<string name="openBackImageInGalleryApp">Otvorenie spätného obrázka v aplikácii galéria</string>
<string name="openBackImageInGalleryApp">Otvorenie zadného obrázka v aplikácii galéria</string>
<string name="openFrontImageInGalleryApp">Otvorenie predného obrázka v aplikácii galéria</string>
<string name="setBarcodeHeight">Nastavenie výšky čiarového kódu</string>
<string name="show_balance">Ukážte rovnováhu</string>
<string name="show_balance">Ukážte zostatok</string>
<string name="show_name_below_image_thumbnail">Zobraziť názov pod miniatúrou obrázka</string>
<string name="show_validity">Zobraziť platnosť</string>
<string name="permissionReadCardsLabel">Načítať Catima karty</string>
@@ -258,14 +258,14 @@
<string name="switchToBackImage">Prepnutie na zadný obrázok</string>
<string name="height">Výška</string>
<string name="switchToFrontImage">Prepnutie na predný obrázok</string>
<string name="settings_disable_lockscreen_while_viewing_card_summary">Zakázanie uzamknutia obrazovky počas prezerania karty</string>
<string name="settings_disable_lockscreen_while_viewing_card_summary">Zakázanie zamknutia obrazovky počas prezerania karty</string>
<string name="settings_allow_content_provider_read_title">Povolenie prístupu k mojim údajom iným aplikáciám</string>
<string name="settings_oled_dark_summary">Znižuje spotrebu batérie na displejoch OLED</string>
<string name="settings_oled_dark_summary">Znižuje spotrebu batérie na obrazovkách typu OLED</string>
<string name="switchToBarcode">Prepnutie na čiarový kód</string>
<string name="settings_category_title_cards">Zobrazenie karty</string>
<string name="donate">Darujte</string>
<string name="card_id_must_not_be_empty">ID karty nesmie byť prázdne</string>
<string name="balanceParsingFailed">Neplatná rovnováha</string>
<string name="balanceParsingFailed">Neplatný zostatok</string>
<string name="add_a_card_in_a_different_way">Pridať kartu iným spôsobom</string>
<string name="view_online">Zobraziť online</string>
<string name="manually_enter_barcode_instructions">Zadajte číslo ID alebo text na karte a stlačte čiarový kód, ktorý vyzerá ako ten na vašej karte.</string>
@@ -273,18 +273,18 @@
<string name="enter_card_id">Zadajte číslo ID alebo text na karte</string>
<string name="action_display_options">Možnosti zobrazenia</string>
<string name="addWithoutBarcode">Pridať kartu bez čiarového kódu</string>
<string name="app_copyright_short">Copyright © Sylvia van Os a prispievateľov</string>
<string name="app_copyright_short">Copyright © Sylvia van Os a prispievatelia</string>
<string name="field_must_not_be_empty">Pole nesmie byť prázdne</string>
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019<xliff:g>%d</xliff:g> Sylvia van Os a prispievateľov</string>
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019<xliff:g>%d</xliff:g> Sylvia van Os a prispievatelia</string>
<string name="show_archived_cards">Zobraziť archivované karty</string>
<string name="app_name">Katima</string>
<string name="settings_follow_sensor_orientation">Vždy otáčať (ignoruje nastavenie systému)</string>
<string name="app_name">Catima</string>
<string name="settings_follow_sensor_orientation">Vždy otočiť (ignoruje nastavenie systému)</string>
<string name="continue_">Pokračovať</string>
<string name="spend">Utratené</string>
<string name="receive">Prijaté</string>
<string name="amountParsingFailed">Neplatná hodnota</string>
<string name="add_manually_warning_title">Skenovanie je odporúčané</string>
<string name="add_manually_warning_message">V niektorých obchodoch nie je číslo na cenovke totožné s čiarovým kódom, preto je lepšie zoskenovať čiarový kód. Chcete napriek tomu pokračovať?</string>
<string name="add_manually_warning_message">V niektorých obchodoch sa hodnota čiarového kódu líši od čísla uvedeného na karte. Z tohto dôvodu nemusí manuálne zadanie čiarového kódu vždy fungovať. Dôrazne odporúčame naskenovať čiarový kód pomocou fotoaparátu. Chcete napriek tomu pokračovať?</string>
<string name="addFromPdfFile">Vyberte súbor PDF</string>
<string name="errorReadingFile">Súbor sa nepodarilo prečítať</string>
<string name="failedLaunchingFileManager">Nepodarilo sa nájsť podporovaného správcu súborov</string>
@@ -312,6 +312,8 @@
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_7">7</string>
<string name="addFromPkpass">Vyberte súbor Passbook (.pkpass)</string>
<string name="settings_use_volume_keys_navigation">Prepínanie kariet pomocou tlačidiel hlasitosti</string>
<string name="settings_use_volume_keys_navigation_summary">Zobrazovanú kartu môžete zmeniť pomocou tlačidiel hlasitosti</string>
<string name="settings_use_volume_keys_navigation">Zmena kariet pomocou tlačidiel hlasitosti</string>
<string name="settings_use_volume_keys_navigation_summary">Pre posúvanie medzi kartami používať tlačidlá hlasitosti</string>
<string name="card_list_widget_name">Zoznam kariet</string>
<string name="card_list_widget_empty">Po pridaní vernostných kariet do Catima sa zobrazia tu. Ak máte karty, uistite sa, že nie sú všetky archivované.</string>
</resources>

View File

@@ -308,4 +308,6 @@
<string name="sort_by_valid_from">İtibaren Geçerli</string>
<string name="width">Genişlik</string>
<string name="setBarcodeWidth">Barkod Genişliğini Ayarla</string>
<string name="card_list_widget_name">Kart listesi</string>
<string name="card_list_widget_empty">Catima\'ya sadakat kartları eklediğinizde, burada gözükecekler. Eğer kartlarınız varsa, arşivlemediğinizden emin olun.</string>
</resources>

View File

@@ -319,4 +319,6 @@
<string name="sort_by_valid_from">Діє з</string>
<string name="width">Ширина</string>
<string name="setBarcodeWidth">Встановити ширину штрих-коду</string>
<string name="card_list_widget_name">Список карток</string>
<string name="card_list_widget_empty">Після того, як ви додасте кілька карток лояльності в Catima, вони з’являться тут. Якщо у вас є картки, переконайтеся, що вони не всі заархівовані.</string>
</resources>

View File

@@ -296,4 +296,10 @@
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_7">7</string>
<string name="sort_by_valid_from">Có hiệu lực từ</string>
<string name="addFromPkpass">Chọn tệp Passbook (.pkpass)</string>
<string name="unsupportedFile">Tập tin này không được hỗ trợ</string>
<string name="generic_error_please_retry">Xin lỗi, có gì đó không ổn, vui lòng thử lại...</string>
<string name="width">Chiều rộng</string>
<string name="setBarcodeWidth">Đặt chiều rộng mã vạch</string>
</resources>

View File

@@ -302,4 +302,6 @@
<string name="sort_by_valid_from">有效期开始日</string>
<string name="width">宽度</string>
<string name="setBarcodeWidth">设置条码宽度</string>
<string name="card_list_widget_name">卡片列表</string>
<string name="card_list_widget_empty">在 Catima 中添加了一些会员卡后,它们会出现在这里。如果你有卡片,确保不是所有都已归档。</string>
</resources>

View File

@@ -117,7 +117,7 @@
<item>es</item>
<item>es-rAR</item>
<item>et</item>
<!-- <item>fa</item> -->
<item>fa</item>
<item>fi</item>
<!-- <item>fil</item> -->
<item>fr</item>
@@ -129,6 +129,7 @@
<item>in-rID</item>
<item>is</item>
<item>it</item>
<!-- <item>iw</item> -->
<item>ja</item>
<!-- <item>kn</item> -->
<item>ko</item>

View File

@@ -362,5 +362,7 @@
<string name="unsupportedFile">This file is not supported</string>
<string name="generic_error_please_retry">Sorry, something went wrong, please try again...</string>
<string name="width">Width</string>
<string name="card_list_widget_name">Card list</string>
<string name="setBarcodeWidth">Set Barcode Width</string>
<string name="card_list_widget_empty">After you add some loyalty cards in Catima, they will appear here. If you have cards, make sure they are not all archived.</string>
</resources>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:initialKeyguardLayout="@layout/list_widget"
android:initialLayout="@layout/list_widget"
android:minWidth="245dp"
android:minHeight="54dp"
android:previewImage="@drawable/widget_preview"
android:resizeMode="horizontal|vertical"
android:targetCellWidth="4"
android:targetCellHeight="2"
android:updatePeriodMillis="86400000"
android:widgetCategory="home_screen" />

View File

@@ -15,6 +15,7 @@
<locale android:name="es" />
<locale android:name="es-AR" />
<locale android:name="et" />
<locale android:name="fa" />
<locale android:name="fi" />
<locale android:name="fr" />
<locale android:name="gl" />

View File

@@ -1,9 +1,8 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id("com.android.application") version "8.10.0" apply false
id("com.github.spotbugs") version "5.1.4" apply false
id("org.jetbrains.kotlin.android") version "2.1.10" apply false
id("com.android.application") version "8.12.0" apply false
id("org.jetbrains.kotlin.android") version "2.2.0" apply false
}
allprojects {

View File

@@ -5,19 +5,19 @@ IFS=$'\n\t'
### build.sh
### Builds Catima the same way rbtlog/IzzyOnDroid does for reproducible builds
if [ -z "${ANDROID_SDK_ROOT:-}" ]; then
echo "ANDROID_SDK_ROOT is not set, setting to $HOME/Android/Sdk";
export ANDROID_SDK_ROOT=$HOME/Android/Sdk
if [ -z "${ANDROID_HOME:-}" ]; then
echo "ANDROID_HOME is not set, setting to $HOME/Android/Sdk";
export ANDROID_HOME=$HOME/Android/Sdk
fi
if [ -z "${JAVA_HOME:-}" ]; then
echo "JAVA_HOME is not set, setting to Java 17"
echo "JAVA_HOME is not set, setting to Java 21"
if [ -f "/etc/debian_version" ]; then
echo "Debian-based distro, Java 17 is /usr/lib/jvm/java-17-openjdk-amd64"
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
echo "Debian-based distro, Java 21 is /usr/lib/jvm/java-21-openjdk-amd64"
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
else
echo "Not Debian-based, assuming Fedora and setting Java 17 as /usr/lib/jvm/java-17-openjdk"
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
echo "Not Debian-based, assuming Fedora and setting Java 21 as /usr/lib/jvm/java-21-openjdk"
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk
fi
fi
@@ -39,13 +39,13 @@ else
KEYSTORE_ALIAS=catima
fi
apksigner_version="$(ls -1 "$HOME/Android/Sdk/build-tools/" | tail -n 1)"
apksigner_version="$(ls -1 "$ANDROID_HOME/build-tools/" | tail -n 1)"
for flavourDir in $flavourDirs; do
flavourName="$(basename "$flavourDir")"
echo "Signing $flavourName flavour..."
cp "$flavourDir/release/app-$flavourName-release-unsigned.apk" "$flavourDir/release/app-$flavourName-release.apk"
"$HOME/Android/Sdk/build-tools/$apksigner_version/apksigner" sign -v --ks "$KEYSTORE" --ks-key-alias "$KEYSTORE_ALIAS" "$flavourDir/release/app-$flavourName-release.apk"
"$ANDROID_HOME/build-tools/$apksigner_version/apksigner" sign -v --ks "$KEYSTORE" --ks-key-alias "$KEYSTORE_ALIAS" "$flavourDir/release/app-$flavourName-release.apk"
echo "Build finished (signed)"
echo "Your $flavourName flavour is at $flavourDir/release/app-$flavourName-release.apk"

View File

@@ -7,7 +7,9 @@ Copylefted libre software (GPLv3+) card management app.
[![F-Droid Version](https://img.shields.io/f-droid/v/me.hackerchick.catima.svg?logo=f-droid&label=F-Droid)](https://f-droid.org/packages/me.hackerchick.catima/)
[![Google Play Store Version](https://img.shields.io/endpoint?color=blue&logo=google-play&url=https%3A%2F%2Fplay.cuzi.workers.dev%2Fplay%3Fi%3Dme.hackerchick.catima%26l%3DGoogle%2520Play%26m%3D%24version)](https://play.google.com/store/apps/details?id=me.hackerchick.catima)
![Android CI](https://github.com/CatimaLoyalty/Android/workflows/Android%20CI/badge.svg)
[![Reproducibility status](https://shields.rbtlog.dev/simple/me.hackerchick.catima)](https://shields.rbtlog.dev/me.hackerchick.catima)
[![Android CI](https://github.com/CatimaLoyalty/Android/actions/workflows/android.yml/badge.svg)](https://github.com/CatimaLoyalty/Android/actions/workflows/android.yml)
[![Translation status](https://hosted.weblate.org/widgets/catima/-/svg-badge.svg)](https://hosted.weblate.org/engage/catima/)
[![Matrix](https://img.shields.io/matrix/catima%3Amatrix.org)](https://matrix.to/#/%23catima:matrix.org)
@@ -59,7 +61,7 @@ For FidMe you need to select the barcode type for each entry afterwards.
# Building
Building can either be done through Android Studio (not reproducible!) or the build.sh script in this repository (reproducible with OpenJDK 17). This script can also sign the build.
Building can either be done through Android Studio (not reproducible!) or the build.sh script in this repository (reproducible with OpenJDK 21). This script can also sign the build.
Build without signing:
```

View File

@@ -10,4 +10,4 @@
7. Upload `app/build/outputs/apk/gplay/release/app-gplay-release.apk` to Google Play Open Testing
8. Push the version update commit: `git push`
9. Create a new release on GitHub and attach the `app/build/outputs/apk/foss/release/app-foss-release.apk` and `SHA256SUMS` files
10. After the release has been approved on Google Play Production, update the metadata there: `bundle exec fastlane supply --version_code <VERSION_CODE>`
10. When pushing the release to Google Play Production, update the metadata there: `bundle exec fastlane supply --version_code <VERSION_CODE>`

View File

@@ -0,0 +1,8 @@
إضافة خيار في القائمة لقفل تدوير الشاشة عند عرض بطاقة. إذا تم تفعيل القفل، فستنتقل الشاشة إلى وضعها "الطبيعي" وسيتم منع أي تدوير إضافي للشاشة.
(طلب السحب رقم #128 https://github.com/brarcher/loyalty-card-locker/pull/128)
إذا تم اختيار بطاقة من الشاشة الرئيسية ولم يمكن تحميلها، فإن التطبيق يتعامل مع الحالة بشكل سليم ويعرض رسالة تنبيه.
(طلب السحب رقم #132 https://github.com/brarcher/loyalty-card-locker/pull/132)
تصحيح حالة عدم العثور على معرفات التخطيط (layout IDs) الخاصة بمعالج التمهيد (intro wizard).
(

View File

@@ -0,0 +1 @@
إصلاح التفاف النص في مربع حوار الإضافة

View File

@@ -0,0 +1,4 @@
* تغيير عدد الأعمدة الافتراضي في الشاشات الواسعة إلى 4
* السماح بتعديل عدد الأعمدة للوضعين العمودي والأفقي من خلال الإعدادات
* الاحتفاظ بفلتر البحث في الشاشة الرئيسية عند تدوير الشاشة أو فتح بطاقة
* تحديد الحد الأقصى لطول عرض الملاحظة في الشاشة الرئيسية

View File

@@ -0,0 +1,3 @@
* إضافة دعم لملفات Passbook (.pkpass)
* إصلاح استيراد ملفات PDF الشفافة
* تحسين عرض الصور المصغرة الشفافة

View File

@@ -0,0 +1 @@
* إصلاح الانهيار عند فتح ملفات pkpass غير الصالحة

View File

@@ -0,0 +1 @@
* تحسين عرض أيقونات الأرشيف/المميزة بنجمة

View File

@@ -0,0 +1,3 @@
* استهداف أندرويد 15
* إصلاح مشكلة تغطية لوحة المفاتيح لزر الحفظ في شاشة التعديل
* إصلاح عدم اكتشاف بعض ملفات pkpass كملفات pkpass (دعم نوع MIME: application/vnd-com.apple.pkpass)

View File

@@ -0,0 +1,2 @@
* إمكانية فرز البطاقات حسب تاريخ بداية الصلاحية
* التراجع مؤقتًا عن استهداف أندرويد 15 والعودة إلى أندرويد 14 لإصلاح بعض مشاكل واجهة المستخدم

View File

@@ -0,0 +1,3 @@
* استهداف نظام أندرويد 15
* إصلاح الانهيار عند قراءة ملفات pkpass غير المدعومة
* تحسين دعم ملفات pkpass

View File

@@ -0,0 +1,3 @@
* إضافة القدرة على اختيار عرض الرمز الشريطي في عرض الشاشة الكاملة
* إزالة الاستيراد المربك من وظيفة التطبيق
* إصلاحات متنوعة في المسح

View File

@@ -0,0 +1 @@
- تحديثات التبعية و الترجمة

View File

@@ -0,0 +1,2 @@
* إضافة دعم للاختصارات في التطبيق (Android 7.1+)، حيث ستظهر أكثر البطاقات استخدامًا كاختصارات. (pull #145 ([https://github.com/brarcher/loyalty-card-locker/pull/145](https://github.com/brarcher/loyalty-card-locker/pull/145)))
* إضافة عنصر واجهة مستخدم يعمل مثل اختصار التطبيق المثبت، لدعم الأجهزة التي تعمل بنظام Android أقل من 7.1. (pull #142 ([https://github.com/brarcher/loyalty-card-locker/pull/142](https://github.com/brarcher/loyalty-card-locker/pull/142)))

View File

@@ -0,0 +1,5 @@
* إضافة دعم لإضافة اختصارات إلى الشاشة الرئيسية عند إضافة أو تعديل بطاقة. (pull #155 ([https://github.com/brarcher/loyalty-card-locker/pull/155](https://github.com/brarcher/loyalty-card-locker/pull/155)))
* إزالة عنصر واجهة المستخدم، لأنه كان بديلاً غير مناسب للاختصارات. (pull #155 ([https://github.com/brarcher/loyalty-card-locker/pull/155](https://github.com/brarcher/loyalty-card-locker/pull/155)))
* إصلاح مشكلة تصدير النسخ الاحتياطية على Android 7+. (pull #153 ([https://github.com/brarcher/loyalty-card-locker/pull/153](https://github.com/brarcher/loyalty-card-locker/pull/153)))
* الإبلاغ عن نوع MIME أكثر دقة عند تصدير بيانات النسخة الاحتياطية. (pull #156 ([https://github.com/brarcher/loyalty-card-locker/pull/156](https://github.com/brarcher/loyalty-card-locker/pull/156)))
* إصلاح الخطأ الذي كان يمنع تعديل بطاقة. (pull #155 ([https://github.com/brarcher/loyalty-card-locker/pull/155](https://github.com/brarcher/loyalty-card-locker/pull/155)))

View File

@@ -0,0 +1,2 @@
* إضافة دعم لإضافة اختصارات بطاقات الولاء من المشغّل / الشاشة الرئيسية. (pull #161 ([https://github.com/brarcher/loyalty-card-locker/pull/161](https://github.com/brarcher/loyalty-card-locker/pull/161)))
* إزالة الدعم لإضافة اختصارات بطاقات الولاء من التطبيق نفسه. هذا يزيل الحاجة إلى إذن الاختصار. (pull #163 ([https://github.com/brarcher/loyalty-card-locker/pull/163](https://github.com/brarcher/loyalty-card-locker/pull/163)))

View File

@@ -0,0 +1,2 @@
* إصلاح مشكلة في Android SDK 24+ حيث كان استخدام خيار استيراد مُختار الملفات يتسبب في تعطل التطبيق. (pull #170 ([https://github.com/brarcher/loyalty-card-locker/pull/170](https://github.com/brarcher/loyalty-card-locker/pull/170)))
* أيقونة جديدة ونظام ألوان جديد. (pull #171 ([https://github.com/brarcher/loyalty-card-locker/pull/171](https://github.com/brarcher/loyalty-card-locker/pull/171)))

View File

@@ -0,0 +1,3 @@
* إصلاح تعطل التطبيق عند استيراد بعض أنواع ملفات CSV التالفة. (pull #177 ([https://github.com/brarcher/loyalty-card-locker/pull/177](https://github.com/brarcher/loyalty-card-locker/pull/177)))
* إصلاح استيراد النسخ الاحتياطية مباشرة من نظام الملفات. (pull #180 ([https://github.com/brarcher/loyalty-card-locker/pull/180](https://github.com/brarcher/loyalty-card-locker/pull/180)))
* إصلاح استيراد النسخ الاحتياطية من بعض أنواع مقدمي المحتوى. (pull #179 ([https://github.com/brarcher/loyalty-card-locker/pull/179](https://github.com/brarcher/loyalty-card-locker/pull/179)))

View File

@@ -0,0 +1,3 @@
* ترجمات إيطالية
* دعم لجميع أنواع الباركود أحادية الأبعاد (كان في البداية يتم دعم باركود المنتجات فقط)
* إضافة إذن الكاميرا المطلوب، الذي كان مفقودًا في البداية

View File

@@ -0,0 +1 @@
* حل مؤقت لمشكلة التعطل أثناء التثبيت على بعض إصدارات أندرويد (من المحتمل أن تكون أندرويد 5 وما دون).

View File

@@ -0,0 +1,2 @@
* تحسين تنسيق عرض قائمة البطاقات. (طلب السحب رقم 188: [الرابط](https://github.com/brarcher/loyalty-card-locker/pull/188))
* تحسين تنسيق عرض البطاقة عند فتحها. (طلب السحب رقم 190: [الرابط](https://github.com/brarcher/loyalty-card-locker/pull/190))

View File

@@ -0,0 +1 @@
* تغييرات في عرض البطاقة لعرض الملاحظة، والسماح لمعرّف البطاقة بأن يمتد لعدة أسطر، وعرض اسم المتجر. (طلب السحب رقم 197: [الرابط](https://github.com/brarcher/loyalty-card-locker/pull/197))

View File

@@ -0,0 +1,3 @@
* إضافة مساحة هادئة في بداية ونهاية الرموز الشريطية (الباركود). (طلب السحب رقم 200: [الرابط](https://github.com/brarcher/loyalty-card-locker/pull/200))
* إضافة خيارات لتخصيص ألوان خط و خلفية اسم المتجر. (طلب السحب رقم 203: [الرابط](https://github.com/brarcher/loyalty-card-locker/pull/203))
* إضافة خيارات لتعديل حجم الخط في صفحة قائمة البطاقات وصفحة البطاقة المفردة. (طلب السحب رقم 204: [الرابط](https://github.com/brarcher/loyalty-card-locker/pull/204))

View File

@@ -0,0 +1,5 @@
* تحديث الترجمات. (طلب السحب رقم 208: [الرابط](https://github.com/brarcher/loyalty-card-locker/pull/208))
* تحديثات على عرض الرموز الشريطية (الباركود): (طلب السحب رقم 209: [الرابط](https://github.com/brarcher/loyalty-card-locker/pull/209))
* إعادة تحميل واجهة عرض البطاقة عند تدوير الشاشة، لضمان أن يكون حجم صورة الباركود صحيحًا.
* عرض الرموز الشريطية أحادية البُعد (1D) في مساحة أكبر، مما يسمح لها بملء الشاشة بشكل أفضل.

View File

@@ -0,0 +1,2 @@
* تقليل المساحة في الرأس (Header) عند عرض بطاقة. (طلب السحب رقم 213: [الرابط](https://github.com/brarcher/loyalty-card-locker/pull/213))
* تعطيل الصوت (الصفير) عند مسح رمز شريطي (باركود). (طلب السحب رقم 216: [الرابط](https://github.com/brarcher/loyalty-card-locker/pull/216))

View File

@@ -0,0 +1 @@
* منع تعطل التطبيق عند نفاد الذاكرة أثناء عرض رمز شريطي (باركود). (طلب السحب رقم 219: [الرابط](https://github.com/brarcher/loyalty-card-locker/pull/219))

View File

@@ -0,0 +1,2 @@
- تقليل الحد الأدنى لإصدار مجموعة أدوات مطوري البرامج من 17 إلى 15. (طلب سحب رقم 226 (https://github.com/brarcher/loyalty-card-locker/pull/226))
- إزالة إستخدام مكتبة apache الموروثة, أستخدمت فقط في مرحلة أختبار الوحدة ولم تعد مطلوبة.(طلب سحب رقم 225 (https://github.com/brarcher/loyalty-card-locker/pull/225))

View File

@@ -0,0 +1,5 @@
- أُضيفت ترجمات
- اللغة البولندية (طلب سحب رقم 232 (https://github.com/brarcher/loyalty-card-locker/pull/232))
- اللغة الإسبانية (طلب سحب رقم 232 (https://github.com/brarcher/loyalty-card-locker/pull/232))
- اللغة السلوفاكية (طلب سحب رقم 232 (https://github.com/brarcher/loyalty-card-locker/pull/232))
- حدثت الترجمات (طلب سحب رقم 239 (https://github.com/brarcher/loyalty-card-locker/pull/239))

View File

@@ -0,0 +1,2 @@
- إصلاح الترجمة الإسبانية (طلب سحب رقم 224 (https://github.com/brarcher/loyalty-card-locker/pull/244))
- تحديث الترجمات (طلب سحب رقم 224 (https://github.com/brarcher/loyalty-card-locker/pull/244))

View File

@@ -0,0 +1,14 @@
- الآن رسمياً ندعم الباركودات التالية ذات أحادية الأبعاد و ثنائية الأبعاد:
- AZTEC
- CODABAR
- CODE_39
- CODE_128
- DATA_MATRIX
- EAN_8
- EAN_13
- ITF
- PDF_417
- QR_CODE
- UPC_A
- الباركودات المُوَلَّدة بواسطة البرنامج الآن تظهر بشكل أكبر من أجل تسهيل عملية المسح بإستخدام جهاز المسح (القارئ الضوئي)

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -1 +1 @@
Catima
كاتيما - محفظة بطاقة الولاء

View File

@@ -1,3 +1,4 @@
- Přidána možnost výběru šířky čárového kódu v celoobrazovkovém zobrazení
- Odstraněna matoucí funkce importu z aplikace
- Různé opravy skenování
- Opraven pád při načtení souboru pkpass bez čárového kódu

View File

@@ -0,0 +1 @@
- Aktualizace závislostí a překladů

View File

@@ -0,0 +1,2 @@
- Přidán widget zobrazující všechny nearchivované karty
- Zabránění překrytí tlačítka uložení klávesnicí na stránkách úpravy a skupin

View File

@@ -1,3 +1,4 @@
- Die Barcodebreite kann in der Vollbildansicht eingestellt werden
- Verwirrende Importfunktion „Andere App verwenden“ entfernt
- Verschiedene Korrekturen bzgl. „Barcode scannen“
- Verhindert Absturz beim Laden einer pkpass-Datei ohne Barcode

View File

@@ -0,0 +1 @@
- Übersetzungs- und Abhängigkeitsaktualisierungen

View File

@@ -0,0 +1,2 @@
- Widget, das alle nichtarchvierten Karten anzeigt, hinzugefügt
- Beugt dem Verdecken der „Speichern“-Taste durch die Tastatur in der Bearbeitungs- bzw. Gruppenansicht vor

View File

@@ -0,0 +1 @@
- Dependency and translation updates

View File

@@ -0,0 +1,2 @@
- Add a widget showing all non-archived cards
- Prevent the keyboard from overlapping the save button in edit and group screens

Some files were not shown because too many files have changed in this diff Show More