Compare commits

...

1255 Commits

Author SHA1 Message Date
Sylvia van Os
1c8c492400 Release Catima 2.31.1 2024-08-24 14:07:16 +02:00
Sylvia van Os
186db1d419 Merge pull request #2053 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-08-23 00:06:02 +02:00
Uporabnik Alen
b596628f81 Translated using Weblate (Slovenian)
Currently translated at 82.3% (257 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sl/
2024-08-22 23:09:22 +02:00
Sylvia van Os
74aad20d6b Merge pull request #2050 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-08-19 17:40:23 +02:00
Priit Jõerüüt
e7a50901ea Translated using Weblate (Estonian)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/et/
2024-08-19 15:09:17 +00:00
Sylvia van Os
b7fa0dc70c Merge pull request #2048 from CatimaLoyalty/create-pull-request/patch-1723962057
Update Gradle to 8.10
2024-08-18 11:07:45 +02:00
Sylvia van Os
c19dc78f3e Merge pull request #2047 from CatimaLoyalty/create-pull-request/patch-1723954751
Update contributors
2024-08-18 09:57:18 +02:00
TheLastProject
c7639f0a02 Update Gradle to 8.10 2024-08-18 06:20:57 +00:00
TheLastProject
ad984b2ec4 Update contributors 2024-08-18 04:19:10 +00:00
Sylvia van Os
baa0378fa2 Merge pull request #2046 from CatimaLoyalty/create-pull-request/patch-1723902322
Update Fastlane changelogs
2024-08-17 17:08:52 +02:00
TheLastProject
9f422dc5ac Update Fastlane changelogs 2024-08-17 13:45:21 +00:00
Sylvia van Os
3ab28d8270 Update CHANGELOG 2024-08-17 15:45:08 +02:00
Sylvia van Os
f63950ff3c Merge pull request #2045 from obfusk/patch-9
update obfusk/gradle-update-action to v3.0.0
2024-08-17 12:46:28 +02:00
FC (Fay) Stegerman
b4dd713dab update obfusk/gradle-update-action to v3.0.0 2024-08-15 13:44:42 +00:00
unbiaseduser-github
80e4701d41 Make Back button/gesture not instantly collapse the MainActivity's search view (#2030) 2024-08-14 20:09:46 +02:00
Sylvia van Os
7c7a05f1f8 Merge pull request #2044 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-08-13 19:19:08 +02:00
Sylvia van Os
6e57d4711a Merge pull request #2043 from CatimaLoyalty/create-pull-request/patch-1723568443
Update locales
2024-08-13 19:18:41 +02:00
Priit Jõerüüt
626c4c956e Translated using Weblate (Estonian)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/et/
2024-08-13 19:02:09 +02:00
ΣΤΑΥΡΟΣ ΔΑΛΙΑΚΟΠΟΥΛΟΣ
522ae07942 Translated using Weblate (Greek)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/el/
2024-08-13 19:02:08 +02:00
TheLastProject
e5b7f723d2 Update locales 2024-08-13 17:00:43 +00:00
Sylvia van Os
1c8830f59c Merge pull request #2041 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-08-13 19:00:27 +02:00
Sylvia van Os
ad25cf9c9e Remove translated strings no longer in Catima 2024-08-13 18:04:50 +02:00
Priit Jõerüüt
c4c63e5ddc Added translation using Weblate (Estonian) 2024-08-12 23:30:58 +02:00
Priit Jõerüüt
443c858700 Translated using Weblate (Estonian)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/et/
2024-08-12 23:30:57 +02:00
Sylvia van Os
c19b80f991 Merge pull request #2033 from AndreVero/AndreVero-remove-unused-strings-issue-2027
Remove unused strings from string.xml
2024-08-12 23:06:38 +02:00
Sylvia van Os
f3ee88b43c More cleanups 2024-08-12 23:01:27 +02:00
Sylvia van Os
1ac6ee6c59 Merge pull request #2040 from CatimaLoyalty/dependabot/github_actions/actions/upload-artifact-4.3.6
Bump actions/upload-artifact from 4.3.5 to 4.3.6
2024-08-12 18:16:38 +02:00
dependabot[bot]
3f4da811ca Bump actions/upload-artifact from 4.3.5 to 4.3.6
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.5 to 4.3.6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.3.5...v4.3.6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-12 02:25:26 +00:00
Sylvia van Os
598a9dd2da Merge pull request #2037 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-08-11 13:09:33 +02:00
Priit Jõerüüt
7a7a81d5c4 Translated using Weblate (Estonian)
Currently translated at 41.0% (130 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/et/
2024-08-11 09:09:56 +00:00
Peter Dave Hello
2730d157d8 Translated using Weblate (Chinese (Traditional))
Currently translated at 86.6% (117 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hant/
2024-08-11 09:09:56 +00:00
Peter Dave Hello
55519e487d Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2024-08-11 09:09:53 +00:00
Sylvia van Os
55fb14b6df Merge pull request #2036 from CatimaLoyalty/create-pull-request/patch-1723349900
Update contributors
2024-08-11 10:45:26 +02:00
TheLastProject
6b8fdd9c5c Update contributors 2024-08-11 04:18:20 +00:00
Sylvia van Os
94b15220ea Merge pull request #2034 from CatimaLoyalty/dependabot/gradle/com.android.application-8.5.2
Bump com.android.application from 8.5.1 to 8.5.2
2024-08-09 08:21:29 +02:00
dependabot[bot]
bbb3be736e Bump com.android.application from 8.5.1 to 8.5.2
Bumps com.android.application from 8.5.1 to 8.5.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-09 02:29:54 +00:00
Sylvia van Os
0355dc6cf3 Merge pull request #2032 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-08-08 18:51:13 +02:00
Andrii
287918372a Remove unused strings from string.xml 2024-08-08 14:54:49 +01:00
Priit Jõerüüt
6597ec1b6e Translated using Weblate (Estonian)
Currently translated at 23.6% (75 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/et/
2024-08-08 02:09:16 +02:00
Sylvia van Os
3184db27d1 Merge pull request #2031 from CatimaLoyalty/create-pull-request/patch-1723047037
Update locales
2024-08-07 18:12:42 +02:00
TheLastProject
99434e69a7 Update locales 2024-08-07 16:10:36 +00:00
Sylvia van Os
cb0997a0b1 Merge pull request #2029 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-08-07 18:10:21 +02:00
Priit Jõerüüt
6fa2c71bd3 Added translation using Weblate (Estonian) 2024-08-07 01:57:36 +02:00
Sylvia van Os
2f66317190 Merge pull request #2025 from CatimaLoyalty/dependabot/github_actions/gradle/actions-4
Bump gradle/actions from 3 to 4
2024-08-05 18:11:05 +02:00
Sylvia van Os
c718d27a4c Merge pull request #2024 from CatimaLoyalty/dependabot/github_actions/actions/upload-artifact-4.3.5
Bump actions/upload-artifact from 4.3.4 to 4.3.5
2024-08-05 18:04:04 +02:00
Sylvia van Os
cadb92c4ef Merge pull request #2026 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-08-05 17:07:33 +02:00
tygyh
16d66f6c90 Translated using Weblate (Swedish)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/sv/
2024-08-05 15:09:31 +02:00
Milo Ivir
5c157888af Translated using Weblate (Croatian)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hr/
2024-08-05 15:09:30 +02:00
Sylvia van Os
a556899881 Translated using Weblate (Esperanto)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/eo/
2024-08-05 15:09:30 +02:00
하루
3ed6ad8b11 Translated using Weblate (Korean)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ko/
2024-08-05 15:09:29 +02:00
Allan Nordhøy
a06887e663 Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.2% (305 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nb_NO/
2024-08-05 15:09:28 +02:00
dependabot[bot]
ef9757df75 Bump gradle/actions from 3 to 4
Bumps [gradle/actions](https://github.com/gradle/actions) from 3 to 4.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](https://github.com/gradle/actions/compare/v3...v4)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-05 02:32:59 +00:00
dependabot[bot]
03811f1f39 Bump actions/upload-artifact from 4.3.4 to 4.3.5
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.4 to 4.3.5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.3.4...v4.3.5)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-05 02:32:57 +00:00
Sylvia van Os
c1801ae450 Merge pull request #2023 from CatimaLoyalty/create-pull-request/patch-1722776436
Update feature graphic
2024-08-04 15:01:16 +02:00
TheLastProject
24ee045dcf Update feature graphic 2024-08-04 13:00:35 +00:00
Sylvia van Os
06c0ddf6ae Merge pull request #2022 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-08-04 14:59:31 +02:00
Hosted Weblate
e22a7c3063 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/
2024-08-04 08:09:35 +02:00
Amir
b91dcc8e27 Translated using Weblate (Persian)
Currently translated at 35.3% (112 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fa/
2024-08-04 08:09:34 +02:00
ed tavinor
496ba82835 Translated using Weblate (Esperanto)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/eo/
2024-08-04 08:09:34 +02:00
ed tavinor
410518e677 Translated using Weblate (Esperanto)
Currently translated at 1.4% (2 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/eo/
2024-08-04 08:09:33 +02:00
ed tavinor
7cafebab7d Translated using Weblate (Esperanto)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/eo/
2024-08-04 08:09:32 +02:00
Sylvia van Os
429e22cc5e Merge pull request #2021 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-08-02 23:47:05 +02:00
ed tavinor
1edc17fb7e Translated using Weblate (Esperanto)
Currently translated at 75.3% (239 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/eo/
2024-08-02 22:09:36 +02:00
Alexander Kulumbeg
dd3cf771bd Translated using Weblate (Slovak)
Currently translated at 99.2% (134 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sk/
2024-08-02 22:09:36 +02:00
Alexander Kulumbeg
eebb5e5cd4 Translated using Weblate (Slovak)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sk/
2024-08-02 22:09:35 +02:00
Sylvia van Os
46fc2aab55 Merge pull request #2019 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-08-01 21:42:05 +02:00
ed tavinor
b765560fff Translated using Weblate (Esperanto)
Currently translated at 40.0% (127 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/eo/
2024-08-01 21:09:16 +02:00
Sylvia van Os
6a3dd841b0 Merge pull request #2018 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-31 18:58:39 +02:00
Scrambled777
1b899a40a5 Translated using Weblate (Hindi)
Currently translated at 100.0% (135 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hi/
2024-07-31 16:38:12 +02:00
Sylvia van Os
a05769c42d Update fastlane 2024-07-28 13:12:41 +02:00
Sylvia van Os
2c2ff2d1d2 Merge pull request #2016 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-28 13:08:24 +02:00
kompowiec2
045363f138 Translated using Weblate (Polish)
Currently translated at 97.0% (131 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pl/
2024-07-28 11:10:32 +02:00
kompowiec2
6860e1deb0 Translated using Weblate (Polish)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pl/
2024-07-28 11:10:31 +02:00
Sylvia van Os
469ed374ad Release Catima 2.31.0 2024-07-26 18:13:40 +02:00
Sylvia van Os
d952f194be Merge pull request #2014 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-25 18:38:43 +02:00
大王叫我来巡山
ccbf4afd44 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (135 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-07-25 02:09:51 +00:00
solokot
2b1a950204 Translated using Weblate (Russian)
Currently translated at 100.0% (135 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-07-25 02:09:50 +00:00
Sylvia van Os
e930ee8efd Merge pull request #2013 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-24 19:42:31 +02:00
gallegonovato
d469e50985 Translated using Weblate (Spanish)
Currently translated at 48.8% (66 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/es/
2024-07-24 03:28:16 +02:00
Sylvia van Os
39ba630479 Merge pull request #2012 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-23 18:18:13 +02:00
Francisco (F4VSE)
074f84818d Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_PT/
2024-07-23 14:10:02 +00:00
Francisco (F4VSE)
dd645a761d Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (135 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt_PT/
2024-07-23 14:10:01 +00:00
grgergo
a12125e26d Translated using Weblate (Hungarian)
Currently translated at 99.3% (315 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hu/
2024-07-23 14:10:00 +00:00
Sylvia van Os
67e82c5d8f Translated using Weblate (Dutch)
Currently translated at 53.3% (72 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/nl/
2024-07-23 14:10:00 +00:00
Francisco (F4VSE)
52b30cf988 Translated using Weblate (French)
Currently translated at 100.0% (135 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/fr/
2024-07-23 14:09:59 +00:00
Monika
ccfdc5f3b5 Translated using Weblate (Polish)
Currently translated at 99.3% (315 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pl/
2024-07-23 14:09:59 +00:00
Francisco (F4VSE)
339d002529 Translated using Weblate (French)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fr/
2024-07-23 14:09:58 +00:00
Sylvia van Os
5afe0bdc59 Merge pull request #2011 from CatimaLoyalty/create-pull-request/patch-1721672428
Update Fastlane changelogs
2024-07-22 20:22:34 +02:00
TheLastProject
59d3a74206 Update Fastlane changelogs 2024-07-22 18:20:28 +00:00
Sylvia van Os
58d3d29fbe Merge pull request #2010 from CatimaLoyalty/fix/1971
Fix chip contrast in dark mode
2024-07-22 20:20:13 +02:00
Sylvia van Os
c340544886 Fix chip contrast in dark mode 2024-07-22 19:47:01 +02:00
Sylvia van Os
c137e6178a Merge pull request #2009 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-22 19:21:45 +02:00
arbadacarba
98f1fd42f6 Translated using Weblate (Dutch)
Currently translated at 53.3% (72 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/nl/
2024-07-22 13:09:52 +00:00
Sylvia van Os
f344a3b125 Translated using Weblate (Dutch)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2024-07-22 13:09:28 +00:00
Giovanni Donisi
24bdffdce8 Translated using Weblate (Italian)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2024-07-22 13:09:28 +00:00
Sylvia van Os
853f4aabfc Translated using Weblate (German)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2024-07-22 13:09:27 +00:00
Sylvia van Os
439cd870e5 Translated using Weblate (German)
Currently translated at 95.5% (129 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-07-21 14:43:29 +02:00
arbadacarba
ab47a769ea Translated using Weblate (Dutch)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2024-07-21 14:43:27 +02:00
SaMuTa
b73b6584c2 Translated using Weblate (Arabic)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ar/
2024-07-21 10:09:57 +00:00
gallegonovato
06f4fb29b4 Translated using Weblate (Spanish)
Currently translated at 48.1% (65 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/es/
2024-07-21 10:09:56 +00:00
arbadacarba
3d19acd434 Translated using Weblate (German)
Currently translated at 95.5% (129 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-07-21 10:09:55 +00:00
arbadacarba
40dd882857 Translated using Weblate (German)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2024-07-21 10:09:55 +00:00
Sylvia van Os
029f49078e Merge pull request #2007 from CatimaLoyalty/create-pull-request/patch-1721535313
Update contributors
2024-07-21 09:48:37 +02:00
TheLastProject
d5f19877f2 Update contributors 2024-07-21 04:15:12 +00:00
Sylvia van Os
9679b0746b Merge pull request #2006 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-20 13:58:23 +02:00
Scrambled777
55209cbca5 Translated using Weblate (Hindi)
Currently translated at 100.0% (135 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hi/
2024-07-20 08:09:40 +02:00
Scrambled777
63d7ea9b06 Translated using Weblate (Hindi)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2024-07-20 08:09:39 +02:00
Sylvia van Os
1062d9a302 Merge pull request #2005 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-19 17:08:20 +02:00
André Nunes
30b2243d1e Translated using Weblate (Portuguese (Portugal))
Currently translated at 99.3% (315 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_PT/
2024-07-18 13:10:11 +00:00
大王叫我来巡山
9f755c2939 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (135 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-07-18 13:10:10 +00:00
IllusiveMan196
375f6d9117 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (135 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2024-07-18 13:10:10 +00:00
solokot
1e3b6f197d Translated using Weblate (Russian)
Currently translated at 100.0% (135 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-07-18 13:10:09 +00:00
IllusiveMan196
9cf21f9d75 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2024-07-18 13:10:09 +00:00
Fqwe1
033168cc8d Translated using Weblate (Ukrainian)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2024-07-18 13:10:08 +00:00
Sylvia van Os
e698240a91 Merge pull request #2003 from CatimaLoyalty/create-pull-request/patch-1721230720
Update locales
2024-07-17 18:51:03 +02:00
TheLastProject
83df2a3262 Update locales 2024-07-17 15:38:40 +00:00
Sylvia van Os
9dce540451 Merge pull request #2002 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-17 17:38:27 +02:00
Lugi
b8f683a335 Translated using Weblate (Serbian)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sr/
2024-07-17 14:27:16 +02:00
Lugi
9781d9bbd9 Translated using Weblate (Serbian)
Currently translated at 93.3% (296 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sr/
2024-07-17 14:09:44 +02:00
Lugi
43f81c5368 Translated using Weblate (Serbian)
Currently translated at 93.0% (295 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sr/
2024-07-17 14:09:43 +02:00
Zero
c702d1523c Translated using Weblate (Czech)
Currently translated at 98.5% (133 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/cs/
2024-07-17 14:09:42 +02:00
solokot
4def250361 Translated using Weblate (Russian)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2024-07-17 14:09:41 +02:00
Zero
c34455db3c Translated using Weblate (Czech)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/cs/
2024-07-17 14:09:40 +02:00
Sylvia van Os
e252d80de9 Merge pull request #2001 from CatimaLoyalty/create-pull-request/patch-1721143752
Update locales
2024-07-16 18:22:49 +02:00
TheLastProject
60cf1dbf23 Update locales 2024-07-16 15:29:12 +00:00
Sylvia van Os
5839a6b2c5 Merge pull request #2000 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-16 17:29:00 +02:00
Lugi
c0da6a3176 Added translation using Weblate (Serbian) 2024-07-16 12:01:51 +00:00
Jose Delvani
85d5316d1f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_BR/
2024-07-16 12:01:51 +00:00
Oğuz Ersen
cb9493eb6e Translated using Weblate (Turkish)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/tr/
2024-07-16 12:01:50 +00:00
109247019824
cfb473df8c Translated using Weblate (Bulgarian)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bg/
2024-07-16 12:01:50 +00:00
大王叫我来巡山
2ff395f5ef Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hans/
2024-07-16 12:01:49 +00:00
Renko
73fa270fce Translated using Weblate (Romanian)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ro/
2024-07-16 12:01:49 +00:00
gallegonovato
552d49ea7b Translated using Weblate (Spanish)
Currently translated at 100.0% (317 of 317 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es/
2024-07-16 12:01:48 +00:00
Sylvia van Os
f1f6dea5e7 Merge pull request #1999 from CatimaLoyalty/create-pull-request/patch-1721069315
Update Fastlane changelogs
2024-07-15 20:51:17 +02:00
TheLastProject
a677b004b3 Update Fastlane changelogs 2024-07-15 18:48:35 +00:00
Sylvia van Os
fd34f59ff9 Update CHANGELOG 2024-07-15 20:48:20 +02:00
Sylvia van Os
0c09707744 Merge pull request #1998 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-15 18:02:24 +02:00
ssantos
142da5b0b6 Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (135 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt_PT/
2024-07-15 14:09:49 +02:00
109247019824
80b72c1984 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bg/
2024-07-15 14:09:49 +02:00
Sylvia van Os
e9f87684af Merge pull request #1997 from CatimaLoyalty/dependabot/github_actions/actions/setup-python-5.1.1
Bump actions/setup-python from 5.1.0 to 5.1.1
2024-07-15 08:23:08 +02:00
dependabot[bot]
5fb2f546b0 Bump actions/setup-python from 5.1.0 to 5.1.1
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.1.0 to 5.1.1.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5.1.0...v5.1.1)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 02:37:47 +00:00
Sylvia van Os
c234444026 Merge pull request #1996 from CatimaLoyalty/create-pull-request/patch-1720930686
Update contributors
2024-07-14 09:23:54 +02:00
TheLastProject
eda9dfaa10 Update contributors 2024-07-14 04:18:06 +00:00
Sylvia van Os
4f13827ae0 Merge pull request #1934 from CatimaLoyalty/feature/1675
Support setting front or back image as thumbnail
2024-07-13 18:17:31 +02:00
Sylvia van Os
47b076b41d Support setting front or back image as thumbnail 2024-07-13 18:15:05 +02:00
Sylvia van Os
1e40241219 Merge pull request #1995 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-13 14:17:17 +02:00
Fqwe1
796f4c918d Translated using Weblate (Ukrainian)
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2024-07-13 11:09:21 +00:00
solokot
ae6ce7f443 Translated using Weblate (Russian)
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2024-07-13 11:09:20 +00:00
Sylvia van Os
95189ce5ce Merge pull request #1994 from CatimaLoyalty/create-pull-request/patch-1720765275
Update Gradle to 8.9
2024-07-12 19:09:51 +02:00
TheLastProject
8de78406d5 Update Gradle to 8.9 2024-07-12 06:21:15 +00:00
Sylvia van Os
ea253313d5 Merge pull request #1993 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-12 07:09:46 +02:00
Sylvia van Os
c3413c4340 Merge pull request #1991 from CatimaLoyalty/dependabot/gradle/com.android.application-8.5.1
Bump com.android.application from 8.5.0 to 8.5.1
2024-07-12 07:08:34 +02:00
Leo
d22e6ca984 Translated using Weblate (French)
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fr/
2024-07-12 03:24:13 +00:00
dependabot[bot]
9b8ab86219 Bump com.android.application from 8.5.0 to 8.5.1
Bumps com.android.application from 8.5.0 to 8.5.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-12 02:31:50 +00:00
Sylvia van Os
8a9c603725 Merge pull request #1990 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-11 18:57:36 +02:00
ssantos
8f4da1b601 Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_PT/
2024-07-11 16:09:31 +00:00
yazan abu alenain
ce917be59d Translated using Weblate (Arabic)
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ar/
2024-07-11 16:09:31 +00:00
Sylvia van Os
1b1d8788df Translated using Weblate (Romanian)
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ro/
2024-07-11 16:09:30 +00:00
Jan Novotny
c126bff23c Translated using Weblate (Czech)
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/cs/
2024-07-11 16:09:29 +00:00
Renko
64355e0ddc Translated using Weblate (Romanian)
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ro/
2024-07-10 16:09:23 +02:00
Diego Beraldin
510b7a0e56 Translated using Weblate (Italian)
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2024-07-10 16:09:22 +02:00
Sylvia van Os
12da47d34a Merge pull request #1988 from CatimaLoyalty/dependabot/gradle/org.robolectric-robolectric-4.13
Bump org.robolectric:robolectric from 4.12.2 to 4.13
2024-07-09 08:22:23 +02:00
dependabot[bot]
3dca6c1db2 Bump org.robolectric:robolectric from 4.12.2 to 4.13
Bumps [org.robolectric:robolectric](https://github.com/robolectric/robolectric) from 4.12.2 to 4.13.
- [Release notes](https://github.com/robolectric/robolectric/releases)
- [Commits](https://github.com/robolectric/robolectric/compare/robolectric-4.12.2...robolectric-4.13)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-09 02:05:32 +00:00
Sylvia van Os
29aec92a7a Merge pull request #1987 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-08 19:45:36 +02:00
Oğuz Ersen
c373c1f9dd Translated using Weblate (Turkish)
Currently translated at 74.0% (100 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/tr/
2024-07-08 19:10:35 +02:00
Sylvia van Os
cba7c77fa2 Merge pull request #1986 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-08 19:04:22 +02:00
Oğuz Ersen
80e3db0b2d Translated using Weblate (Turkish)
Currently translated at 73.3% (99 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/tr/
2024-07-08 18:53:38 +02:00
Jose Delvani
4452336aa0 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_BR/
2024-07-08 18:53:38 +02:00
Scrambled777
d0710a16b6 Translated using Weblate (Hindi)
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2024-07-08 18:53:37 +02:00
Oğuz Ersen
38f603cc0d Translated using Weblate (Turkish)
Currently translated at 72.5% (98 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/tr/
2024-07-08 18:53:37 +02:00
Oğuz Ersen
5a6652c864 Translated using Weblate (Turkish)
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/tr/
2024-07-08 18:53:37 +02:00
大王叫我来巡山
59ed3e3fba Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hans/
2024-07-08 18:53:37 +02:00
gallegonovato
870720ad4b Translated using Weblate (Spanish)
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es/
2024-07-08 18:53:37 +02:00
Kachelkaiser
7d7d5280c5 Translated using Weblate (German)
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2024-07-08 18:53:37 +02:00
Sylvia van Os
a93ee4bbff Merge pull request #1985 from CatimaLoyalty/dependabot/github_actions/actions/upload-artifact-4.3.4
Bump actions/upload-artifact from 4.3.3 to 4.3.4
2024-07-08 07:05:12 +02:00
dependabot[bot]
d9b719103a Bump actions/upload-artifact from 4.3.3 to 4.3.4
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.3 to 4.3.4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.3.3...v4.3.4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-08 02:35:21 +00:00
Sylvia van Os
c65f488536 Merge pull request #1984 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-07 23:44:55 +02:00
Scrambled777
3c11817edb Translated using Weblate (Hindi)
Currently translated at 100.0% (135 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hi/
2024-07-07 21:10:32 +00:00
solokot
8a5dac9c24 Translated using Weblate (Russian)
Currently translated at 100.0% (135 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-07-07 21:10:32 +00:00
Sylvia van Os
968729fbe6 Merge pull request #1983 from CatimaLoyalty/fix/importExportHacks
Fix/import export hacks
2024-07-07 20:00:24 +02:00
Sylvia van Os
8a8d5c65f2 Fix cancelling import/export by tapping away from dialog 2024-07-07 14:06:31 +02:00
Sylvia van Os
80e05a0392 Hack: Don't turn screen off in import/export activity to avoid background kills 2024-07-07 14:06:02 +02:00
Sylvia van Os
2374e998ee Merge pull request #1982 from CatimaLoyalty/create-pull-request/patch-1720325722
Update contributors
2024-07-07 12:09:42 +02:00
TheLastProject
48b6b83fba Update contributors 2024-07-07 04:15:22 +00:00
Sylvia van Os
6eac516d01 Merge pull request #1981 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-06 21:30:57 +02:00
大王叫我来巡山
f1d42ccc77 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (135 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-07-06 20:09:33 +02:00
Renko
68ebf3243f Translated using Weblate (Romanian)
Currently translated at 3.7% (5 of 135 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ro/
2024-07-06 20:09:33 +02:00
Renko
f8a93ed5f2 Translated using Weblate (Romanian)
Currently translated at 99.3% (311 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ro/
2024-07-06 20:09:32 +02:00
Sylvia van Os
ce14cd0447 Merge pull request #1976 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-05 17:54:24 +02:00
leccro
ee5ac2785d Translated using Weblate (Persian)
Currently translated at 15.6% (49 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fa/
2024-07-05 17:04:58 +02:00
Sylvia van Os
1c68bfea8d Merge pull request #1968 from CatimaLoyalty/create-pull-request/patch-1719862199
Update Fastlane changelogs
2024-07-01 21:30:24 +02:00
TheLastProject
a097264983 Update Fastlane changelogs 2024-07-01 19:29:59 +00:00
Sylvia van Os
19d5c1144e Merge pull request #1965 from CatimaLoyalty/fix/allow_multiline_store_name_if_needed
Allow store name thumbnails to span multiple lines
2024-07-01 21:29:46 +02:00
Sylvia van Os
c123dd5d42 Allow store name thumbnails to span multiple lines
Allowing spanning multiple lines helps in case the store name doesn't
fit on a single line. However, the store name should fit a single line
if possible because it looks better when the store name isn't split
among lines. Due to limitations in Android's autoSizeTextType system,
this needs a fairly ugly workaround.
2024-07-01 19:42:35 +02:00
Sylvia van Os
3fe0fec801 Merge pull request #1966 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-07-01 17:42:06 +02:00
109247019824
245ff6ade9 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bg/
2024-07-01 00:05:58 +02:00
Sylvia van Os
353cf1daad Merge pull request #1964 from CatimaLoyalty/create-pull-request/patch-1719720956
Update contributors
2024-06-30 10:13:43 +02:00
TheLastProject
2e5dbd5cc1 Update contributors 2024-06-30 04:15:56 +00:00
Sylvia van Os
7d6ce95998 Merge pull request #1963 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-06-30 00:23:31 +02:00
Jose Delvani
dca9816fbe Translated using Weblate (Portuguese (Brazil))
Currently translated at 2.2% (3 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt_BR/
2024-06-29 22:36:07 +02:00
Sylvia van Os
a5eee0a3b1 Update README paths 2024-06-28 20:59:58 +02:00
Sylvia van Os
5d0b890de9 Merge pull request #1958 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-06-28 17:14:15 +02:00
Jose Delvani
7c6492965f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_BR/
2024-06-28 05:09:31 +02:00
Sylvia van Os
5f5280e2a6 Merge pull request #1957 from CatimaLoyalty/dependabot/gradle/androidx.test-core-1.6.1
Bump androidx.test:core from 1.6.0 to 1.6.1
2024-06-27 17:40:43 +02:00
dependabot[bot]
220d6cb993 Bump androidx.test:core from 1.6.0 to 1.6.1
Bumps androidx.test:core from 1.6.0 to 1.6.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-27 02:13:00 +00:00
Sylvia van Os
5f33807560 Merge pull request #1956 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-06-26 17:54:21 +02:00
Marian Turba
6d64a900f0 Translated using Weblate (Slovak)
Currently translated at 97.0% (130 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sk/
2024-06-26 15:09:57 +02:00
Allan Nordhøy
3550c2a9f7 Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.8% (303 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nb_NO/
2024-06-26 15:09:56 +02:00
Sylvia van Os
0bdda70761 Merge pull request #1955 from CatimaLoyalty/dependabot/gradle/androidx.test-core-1.6.0
Bump androidx.test:core from 1.5.0 to 1.6.0
2024-06-25 17:52:25 +02:00
dependabot[bot]
01debf1a09 Bump androidx.test:core from 1.5.0 to 1.6.0
Bumps androidx.test:core from 1.5.0 to 1.6.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-25 02:02:34 +00:00
Sylvia van Os
76df487661 Merge pull request #1953 from CatimaLoyalty/dependabot/github_actions/peter-evans/create-pull-request-6.1.0
Bump peter-evans/create-pull-request from 6.0.5 to 6.1.0
2024-06-24 21:58:08 +02:00
dependabot[bot]
73a129b430 Bump peter-evans/create-pull-request from 6.0.5 to 6.1.0
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6.0.5 to 6.1.0.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6.0.5...v6.1.0)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-24 02:09:21 +00:00
Sylvia van Os
71afba8ab9 Merge pull request #1951 from CatimaLoyalty/create-pull-request/patch-1719116160
Update contributors
2024-06-23 13:58:06 +02:00
TheLastProject
c0b01fca35 Update contributors 2024-06-23 04:16:00 +00:00
Sylvia van Os
7158de8b81 Merge pull request #1950 from CatimaLoyalty/create-pull-request/patch-1719066500
Update feature graphic
2024-06-22 16:39:03 +02:00
TheLastProject
c1afefb712 Update feature graphic 2024-06-22 14:28:19 +00:00
Sylvia van Os
d924029a5a Merge pull request #1946 from CatimaLoyalty/fix/featuregraphic_generation
Fix kn-IN feature graphic generation
2024-06-22 16:27:19 +02:00
Sylvia van Os
f5d104fa68 Fix kn-IN feature graphic generation 2024-06-22 16:25:33 +02:00
Sylvia van Os
1c0c1c6efc Merge pull request #1941 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-06-21 21:28:13 +02:00
Sylvia van Os
4d4e449150 Update fastlane 2024-06-20 17:13:09 +02:00
Krisna A. Prayoga
900f92cbd6 Translated using Weblate (Indonesian)
Currently translated at 97.0% (130 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/id/
2024-06-19 17:09:45 +00:00
Krisna A. Prayoga
48aab74737 Translated using Weblate (Indonesian)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/id/
2024-06-19 17:09:44 +00:00
しいたけ
427aa039d6 Translated using Weblate (Japanese)
Currently translated at 3.7% (5 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ja/
2024-06-19 17:09:43 +00:00
ΣΤΑΥΡΟΣ ΔΑΛΙΑΚΟΠΟΥΛΟΣ
91909e2ce3 Translated using Weblate (Greek)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/el/
2024-06-19 17:09:42 +00:00
Sylvia van Os
967f20edc7 Add missing date to changelog 2024-06-19 18:51:24 +02:00
Sylvia van Os
61d2e9545e Release Catima 2.30.0 2024-06-18 18:01:49 +02:00
Sylvia van Os
b1ea40abeb Merge pull request #1938 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-06-18 18:00:49 +02:00
Jose Delvani
b898be199c Translated using Weblate (Portuguese (Brazil))
Currently translated at 2.2% (3 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt_BR/
2024-06-18 06:09:26 +02:00
Jose Delvani
e82b61ed7e Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/pt_BR/
2024-06-18 06:09:25 +02:00
Jose Delvani
31aef55343 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_BR/
2024-06-18 06:09:24 +02:00
Sylvia van Os
3da7797ecc Merge pull request #1935 from CatimaLoyalty/dependabot/github_actions/actions/checkout-4.1.7
Bump actions/checkout from 4.1.6 to 4.1.7
2024-06-17 07:26:29 +02:00
Sylvia van Os
b677a34942 Merge pull request #1937 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-06-17 07:24:32 +02:00
Jose Delvani
8275a0da69 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_BR/
2024-06-17 05:47:41 +02:00
Jose Delvani
cc86506868 Added translation using Weblate (Portuguese (Brazil)) 2024-06-17 05:47:41 +02:00
dependabot[bot]
83ee75dc55 Bump actions/checkout from 4.1.6 to 4.1.7
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.6 to 4.1.7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.1.6...v4.1.7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 02:25:13 +00:00
Sylvia van Os
a8d92c1e69 Merge pull request #1932 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-06-16 10:34:05 +02:00
Bruno Fernandes
ccf98f9b32 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.4% (308 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_BR/
2024-06-16 07:22:42 +00:00
Jose Delvani
6c17498481 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.4% (308 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_BR/
2024-06-16 07:22:41 +00:00
Sylvia van Os
ce9794f72f Merge pull request #1931 from CatimaLoyalty/create-pull-request/patch-1718511342
Update contributors
2024-06-16 09:13:17 +02:00
TheLastProject
a48ddeef7f Update contributors 2024-06-16 04:15:41 +00:00
Sylvia van Os
864298cee8 Merge pull request #1928 from CatimaLoyalty/create-pull-request/patch-1718441664
Update locales
2024-06-15 11:08:09 +02:00
TheLastProject
63b48685a6 Update locales 2024-06-15 08:54:23 +00:00
Sylvia van Os
37d4c2c552 Merge pull request #1927 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-06-15 10:54:09 +02:00
Bruno Fernandes
0515f7876b Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.8% (303 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_BR/
2024-06-14 22:09:59 +02:00
grgergo
9e801f0f1c Translated using Weblate (Hungarian)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hu/
2024-06-14 22:09:58 +02:00
IllusiveMan196
c7a8d6ddae Translated using Weblate (Ukrainian)
Currently translated at 100.0% (134 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2024-06-14 22:09:58 +02:00
Kachelkaiser
0f828b5663 Translated using Weblate (German)
Currently translated at 94.0% (126 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-06-14 22:09:57 +02:00
IllusiveMan196
3f28a69d7d Translated using Weblate (Ukrainian)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2024-06-14 22:09:56 +02:00
Cosmin Humeniuc
8980d92263 Translated using Weblate (Romanian)
Currently translated at 99.0% (310 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ro/
2024-06-14 22:09:56 +02:00
Francisco Gabriel Chardin
dd7512cc62 Translated using Weblate (Spanish (Argentina))
Currently translated at 74.1% (232 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es_AR/
2024-06-14 22:09:55 +02:00
Kachelkaiser
3005f7d845 Translated using Weblate (German)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2024-06-14 22:09:55 +02:00
Sylvia van Os
cbbd90a884 Merge pull request #1926 from CatimaLoyalty/dependabot/gradle/com.android.application-8.5.0
Bump com.android.application from 8.4.2 to 8.5.0
2024-06-14 08:18:08 +02:00
dependabot[bot]
883803d348 Bump com.android.application from 8.4.2 to 8.5.0
Bumps com.android.application from 8.4.2 to 8.5.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-14 03:00:13 +00:00
Sylvia van Os
56b73ef7e2 Merge pull request #1925 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-06-13 20:24:01 +02:00
Martijn Westerink
b1c98d33e5 Translated using Weblate (Dutch)
Currently translated at 19.4% (26 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/nl/
2024-06-13 19:08:13 +02:00
Martijn Westerink
4a4feea1be Translated using Weblate (Dutch)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2024-06-13 19:08:12 +02:00
Sylvia van Os
ea015b531a Merge pull request #1924 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-06-12 18:07:58 +02:00
Scrambled777
5b8c40dd8a Translated using Weblate (Hindi)
Currently translated at 100.0% (134 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hi/
2024-06-12 01:04:25 +00:00
Scrambled777
4859499179 Translated using Weblate (Hindi)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2024-06-12 01:04:24 +00:00
grgergo
0e6cdbbb6b Translated using Weblate (Hungarian)
Currently translated at 99.6% (312 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hu/
2024-06-12 01:04:23 +00:00
Sylvia van Os
cc8c8ead2e Merge pull request #1922 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-06-11 18:44:04 +02:00
Sylvia van Os
2b6a4ef466 Merge pull request #1921 from CatimaLoyalty/dependabot/gradle/com.android.application-8.4.2
Bump com.android.application from 8.4.1 to 8.4.2
2024-06-11 18:42:55 +02:00
Wei-Cheng Yeh (IID)
a3b9d78463 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/zh_Hant/
2024-06-11 10:09:57 +02:00
ngocanhtve
7873d21644 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/vi/
2024-06-11 10:09:56 +02:00
GrassWarlock
2ad1b08de2 Translated using Weblate (Arabic)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ar/
2024-06-11 10:09:55 +02:00
Wei-Cheng Yeh (IID)
4fae252d0a Translated using Weblate (Chinese (Traditional))
Currently translated at 6.7% (9 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hant/
2024-06-11 10:09:54 +02:00
Wei-Cheng Yeh (IID)
f89179da21 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2024-06-11 10:09:54 +02:00
GregoryWarn
b4e63f89ce Translated using Weblate (Italian)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2024-06-11 10:09:53 +02:00
dependabot[bot]
ff872edc4b Bump com.android.application from 8.4.1 to 8.4.2
Bumps com.android.application from 8.4.1 to 8.4.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-11 02:22:30 +00:00
Sylvia van Os
013258d421 Merge pull request #1919 from CatimaLoyalty/create-pull-request/patch-1717928359
Update locales
2024-06-09 12:29:42 +02:00
TheLastProject
15575e4189 Update locales 2024-06-09 10:19:18 +00:00
Sylvia van Os
3c051cde95 Merge pull request #1918 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-06-09 12:19:03 +02:00
Hosted Weblate
5d2a173e22 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/
2024-06-09 10:10:13 +00:00
Sylvia van Os
a2032ab730 Translated using Weblate (Filipino)
Currently translated at 15.3% (48 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fil/
2024-06-09 10:10:12 +00:00
しいたけ
9e4d8b846c Translated using Weblate (Japanese)
Currently translated at 84.0% (263 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ja/
2024-06-09 10:10:12 +00:00
solokot
7e8dd2dc2e Translated using Weblate (Russian)
Currently translated at 100.0% (134 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-06-09 10:10:11 +00:00
Mael
b73d0f1836 Translated using Weblate (French)
Currently translated at 100.0% (134 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/fr/
2024-06-09 10:10:11 +00:00
solokot
b478e54ec0 Translated using Weblate (Russian)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2024-06-09 10:10:10 +00:00
Sylvia van Os
cf8c6b8c24 Translated using Weblate (Hebrew (Israel))
Currently translated at 29.0% (91 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/he_IL/
2024-06-09 10:10:09 +00:00
Mael
d64294284a Translated using Weblate (French)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fr/
2024-06-09 10:10:09 +00:00
Alik Majid
098468e6bd Translated using Weblate (Russian)
Currently translated at 99.3% (311 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2024-06-09 10:10:08 +00:00
SC
cebc87a197 Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_PT/
2024-06-09 10:10:07 +00:00
SC
0d3ceb0e61 Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (134 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt_PT/
2024-06-09 10:10:07 +00:00
Oğuz Ersen
e017b07337 Translated using Weblate (Turkish)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/tr/
2024-06-09 10:10:06 +00:00
大王叫我来巡山
c4ec81f22b Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (134 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-06-09 10:10:05 +00:00
大王叫我来巡山
c597df056d Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hans/
2024-06-09 10:10:05 +00:00
Wendell Nicolas
5517b418ac Translated using Weblate (Filipino)
Currently translated at 15.6% (49 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fil/
2024-06-09 10:10:04 +00:00
拉夫西奧·羅齊奧馬爾
81e7642bb8 Translated using Weblate (Polish)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pl/
2024-06-09 10:10:03 +00:00
Wendell Nicolas
17718d5349 Translated using Weblate (Hebrew (Israel))
Currently translated at 29.0% (91 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/he_IL/
2024-06-09 10:10:03 +00:00
gallegonovato
f5ef97fa30 Translated using Weblate (Spanish)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es/
2024-06-09 10:10:02 +00:00
Wendell Nicolas
30c6657148 Added translation using Weblate (Filipino) 2024-06-09 10:10:01 +00:00
Sylvia van Os
2b173dc7f6 Merge pull request #1917 from CatimaLoyalty/create-pull-request/patch-1717906588
Update contributors
2024-06-09 11:00:17 +02:00
TheLastProject
cd48a28b5a Update contributors 2024-06-09 04:16:27 +00:00
Sylvia van Os
b7ad5f1f42 Merge pull request #1915 from CatimaLoyalty/create-pull-request/patch-1717619102
Update Fastlane changelogs
2024-06-05 22:25:39 +02:00
TheLastProject
9bf6795328 Update Fastlane changelogs 2024-06-05 20:25:01 +00:00
Sylvia van Os
4364189b3e Update CHANGELOG 2024-06-05 22:24:42 +02:00
Sylvia van Os
40676a365f Merge pull request #1912 from CatimaLoyalty/fix/1907
Support for devices without camera
2024-06-05 22:13:38 +02:00
Sylvia van Os
97314a0436 Rename camera permission denied layout to more logical generic error layout name 2024-06-05 20:07:52 +02:00
Sylvia van Os
d1b93018e3 Show generic zxing errors on the camera error screen 2024-06-05 20:07:46 +02:00
Sylvia van Os
a6b7b227f7 Support for devices without camera
This hides the take photo options for thumbnail and front/back image and
shows a different alert if no camera is available
2024-06-04 18:18:29 +02:00
Sylvia van Os
1c6a5454b8 Merge pull request #1913 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-06-03 18:55:37 +02:00
Marian Turba
06745becd7 Translated using Weblate (Slovak)
Currently translated at 95.5% (128 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sk/
2024-06-03 11:09:59 +02:00
solokot
c172a12956 Translated using Weblate (Russian)
Currently translated at 100.0% (134 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-06-03 11:09:59 +02:00
Marian Turba
c6f18fb7b2 Translated using Weblate (Slovak)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sk/
2024-06-03 11:09:58 +02:00
min7-i
dc3fabbbb9 Translated using Weblate (German)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2024-06-03 11:09:58 +02:00
Sylvia van Os
905402ebab Merge pull request #1911 from CatimaLoyalty/create-pull-request/patch-1717222760
Update Gradle to 8.8
2024-06-01 09:52:10 +02:00
Sylvia van Os
fbed0d7857 Merge pull request #1910 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-06-01 09:48:00 +02:00
TheLastProject
cc74395297 Update Gradle to 8.8 2024-06-01 06:19:20 +00:00
HackerSinhos
560c55d5db Translated using Weblate (Portuguese (Brazil))
Currently translated at 32.0% (100 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_BR/
2024-06-01 05:10:42 +00:00
Sylvia van Os
a45c972a38 Merge pull request #1908 from CatimaLoyalty/dependabot/gradle/androidx.appcompat-appcompat-1.7.0
Bump androidx.appcompat:appcompat from 1.6.1 to 1.7.0
2024-05-31 17:40:00 +02:00
dependabot[bot]
51c1af5ad9 Bump androidx.appcompat:appcompat from 1.6.1 to 1.7.0
Bumps androidx.appcompat:appcompat from 1.6.1 to 1.7.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-30 02:11:34 +00:00
Sylvia van Os
d537164799 Merge pull request #1906 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-05-27 19:40:12 +02:00
hugoalh
012910268b Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2024-05-27 14:09:37 +02:00
tabby
74d9068925 Translated using Weblate (Korean)
Currently translated at 100.0% (134 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ko/
2024-05-27 14:09:36 +02:00
Allan Nordhøy
5d68f558a1 Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.7% (302 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nb_NO/
2024-05-27 14:09:35 +02:00
Sylvia van Os
2164c1a51a Merge pull request #1904 from CatimaLoyalty/create-pull-request/patch-1716696873
Update contributors
2024-05-26 11:27:55 +02:00
TheLastProject
5f180fc289 Update contributors 2024-05-26 04:14:33 +00:00
Sylvia van Os
5be44d9bd2 Merge pull request #1903 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-05-25 14:41:31 +02:00
Asmodeus
54c9857072 Translated using Weblate (Portuguese (Brazil))
Currently translated at 20.8% (65 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_BR/
2024-05-25 14:09:48 +02:00
Scrambled777
c48ac797f6 Translated using Weblate (Hindi)
Currently translated at 100.0% (134 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hi/
2024-05-25 14:09:47 +02:00
大王叫我来巡山
9180d22629 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (134 of 134 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-05-25 14:09:47 +02:00
Sylvia van Os
aa0274534c Merge pull request #1902 from obfusk/fix-new-locales-script
new-locales.py: fix weblate pagination
2024-05-24 21:36:24 +02:00
FC (Fay) Stegerman
c97b37f279 run new-locales.py 2024-05-24 21:03:06 +02:00
FC (Fay) Stegerman
14c12533a7 new-locales.py: fix weblate pagination 2024-05-24 21:01:42 +02:00
Sylvia van Os
39f50bad30 Merge pull request #1901 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-05-24 18:16:32 +02:00
Asmodeus
014061d0a4 Added translation using Weblate (Portuguese (Brazil)) 2024-05-24 13:14:19 +02:00
Sylvia van Os
76c498a7f9 Merge pull request #1899 from CatimaLoyalty/create-pull-request/patch-1716394569
Update Fastlane changelogs
2024-05-22 18:17:23 +02:00
TheLastProject
fa9229c687 Update Fastlane changelogs 2024-05-22 16:16:09 +00:00
Sylvia van Os
182e7ef9a6 Merge pull request #1897 from CatimaLoyalty/fix/threadedImportExport
Run Import/Export on non-UI thread
2024-05-22 18:15:54 +02:00
Sylvia van Os
08e6600880 Lower severity of import/export starting log entries to debug
Co-authored-by: FC (Fay) Stegerman <flx@obfusk.net>
2024-05-22 18:08:37 +02:00
Sylvia van Os
edeb95aee0 Run Import/Export on non-UI thread
This seems to fix Android sometimes throwing
NetworkOnMainThreadException when importing bit files through the
Nextcloud app.

I'm not sure if this is necessary for the export too, but it doesn't
seem to break anything so for consistency it makes sense to also wrap
the exporter into a thread.

This change is suboptimal because it will still block the UI with a
ProgressDialog (which is deprecated) and force the user to wait until
the import/export completes (and will kill the import/export if the app
gets backgrounded) but it should at least fix the most common crash for
most users.
2024-05-21 21:04:25 +02:00
Sylvia van Os
4b1d1f4541 Merge pull request #1896 from CatimaLoyalty/dependabot/gradle/com.android.application-8.4.1
Bump com.android.application from 8.4.0 to 8.4.1
2024-05-21 08:25:15 +02:00
dependabot[bot]
801d3fa8cd ---
updated-dependencies:
- dependency-name: com.android.application
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-21 02:19:26 +00:00
Sylvia van Os
d15a46fc6f Fix typo 2024-05-20 20:04:01 +02:00
Sylvia van Os
7f46a267b6 Merge pull request #1895 from CatimaLoyalty/create-pull-request/patch-1716220734
Update Fastlane changelogs
2024-05-20 18:12:04 +02:00
TheLastProject
195cb8d5ee Update Fastlane changelogs 2024-05-20 15:58:53 +00:00
Sylvia van Os
7454a965bc Update CHANGELOG 2024-05-20 17:58:40 +02:00
Sylvia van Os
9ef988c259 Merge pull request #1894 from CatimaLoyalty/feature/showImageTypeInCardIdVield
Show image type on view screen when not viewing barcode
2024-05-20 17:54:09 +02:00
Sylvia van Os
7a2ff0995f Show image type on view screen when not viewing barcode 2024-05-20 17:47:19 +02:00
Sylvia van Os
9b65d3926b Merge pull request #1893 from CatimaLoyalty/create-pull-request/patch-1716210906
Update Fastlane changelogs
2024-05-20 15:20:35 +02:00
TheLastProject
06b3536079 Update Fastlane changelogs 2024-05-20 13:15:06 +00:00
Sylvia van Os
315396fd42 Merge pull request #1892 from CatimaLoyalty/feature/1860
Support for creating a card from shared text
2024-05-20 15:14:53 +02:00
Sylvia van Os
b90c43f667 Support for creating a card from shared text 2024-05-20 14:53:10 +02:00
Aglag257
6d97a29e9c Fix describeContents() in LoyaltyCard Class (#1887) 2024-05-20 13:19:13 +02:00
Sylvia van Os
7f0e2acab9 Merge pull request #1891 from CatimaLoyalty/dependabot/gradle/org.robolectric-robolectric-4.12.2
Bump org.robolectric:robolectric from 4.12.1 to 4.12.2
2024-05-20 11:52:00 +02:00
Sylvia van Os
be35886c92 Merge pull request #1890 from CatimaLoyalty/dependabot/github_actions/actions/checkout-4.1.6
Bump actions/checkout from 4.1.5 to 4.1.6
2024-05-20 11:51:23 +02:00
dependabot[bot]
73ad9c5365 Bump org.robolectric:robolectric from 4.12.1 to 4.12.2
Bumps [org.robolectric:robolectric](https://github.com/robolectric/robolectric) from 4.12.1 to 4.12.2.
- [Release notes](https://github.com/robolectric/robolectric/releases)
- [Commits](https://github.com/robolectric/robolectric/compare/robolectric-4.12.1...robolectric-4.12.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-20 02:34:37 +00:00
dependabot[bot]
818751ffad Bump actions/checkout from 4.1.5 to 4.1.6
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.5 to 4.1.6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.1.5...v4.1.6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-20 02:12:05 +00:00
Sylvia van Os
d5856e7974 Release Catima 2.29.1 2024-05-19 10:53:43 +02:00
Sylvia van Os
2caf3d42f4 Update fastlane 2024-05-18 10:18:33 +02:00
Sylvia van Os
e766743baa Merge pull request #1885 from CatimaLoyalty/fix/properSeparatorFix
Properly fix decimal separator detection logic
2024-05-14 17:06:20 +02:00
Sylvia van Os
facb23f0a5 Properly fix decimal separator detection logic 2024-05-13 21:17:13 +02:00
Sylvia van Os
a2dff0e6bf Merge pull request #1884 from CatimaLoyalty/dependabot/github_actions/actions/checkout-4.1.5
Bump actions/checkout from 4.1.4 to 4.1.5
2024-05-13 18:42:40 +02:00
dependabot[bot]
60c53ec1d1 Bump actions/checkout from 4.1.4 to 4.1.5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.4 to 4.1.5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.1.4...v4.1.5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 02:55:49 +00:00
Sylvia van Os
e3c903f773 Merge pull request #1883 from CatimaLoyalty/create-pull-request/patch-1715516406
Update Fastlane changelogs
2024-05-12 15:05:00 +02:00
TheLastProject
955764aa18 Update Fastlane changelogs 2024-05-12 12:20:06 +00:00
Sylvia van Os
ed22aa844f Document balance handling improvements 2024-05-12 14:19:36 +02:00
Sylvia van Os
6b8fc50021 Merge pull request #1878 from CatimaLoyalty/feature/acceptBothSeparators
Disable currency grouping and accept thousand separator as decimal separator
2024-05-12 14:17:58 +02:00
Sylvia van Os
1aed5c36b1 Merge pull request #1882 from CatimaLoyalty/create-pull-request/patch-1715487330
Update contributors
2024-05-12 10:33:39 +02:00
TheLastProject
4690f53be7 Update contributors 2024-05-12 04:15:30 +00:00
Sylvia van Os
29a22926aa Merge pull request #1879 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-05-10 23:31:27 +02:00
ΣΤΑΥΡΟΣ ΔΑΛΙΑΚΟΠΟΥΛΟΣ
a4da8144c3 Translated using Weblate (Greek)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/el/
2024-05-10 23:24:06 +02:00
Sylvia van Os
84bfa304c4 Disable currency grouping and accept thousand separator as decimal separator 2024-05-10 20:01:39 +02:00
Sylvia van Os
72749015dd Merge pull request #1877 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-05-09 21:57:52 +02:00
ΣΤΑΥΡΟΣ ΔΑΛΙΑΚΟΠΟΥΛΟΣ
ae5d656a64 Translated using Weblate (Greek)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/el/
2024-05-07 16:07:57 +02:00
ΣΤΑΥΡΟΣ ΔΑΛΙΑΚΟΠΟΥΛΟΣ
d8f2cde9de Translated using Weblate (Greek)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/el/
2024-05-07 16:07:57 +02:00
Sylvia van Os
935a4ae46e Merge pull request #1874 from CatimaLoyalty/create-pull-request/patch-1714882546
Update contributors
2024-05-05 10:37:59 +02:00
TheLastProject
ffecec9cba Update contributors 2024-05-05 04:15:45 +00:00
Sylvia van Os
734845eff0 Merge pull request #1871 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-05-03 17:03:36 +02:00
Sébastien Delord
bd6b18eea2 Translated using Weblate (French)
Currently translated at 98.4% (130 of 132 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/fr/
2024-05-03 09:43:43 +02:00
Sylvia van Os
6473bfe84e Merge pull request #1868 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-05-03 08:26:25 +02:00
Sylvia van Os
66fff2d3d9 Merge pull request #1870 from CatimaLoyalty/dependabot/gradle/com.google.android.material-material-1.12.0
Bump com.google.android.material:material from 1.11.0 to 1.12.0
2024-05-03 08:20:50 +02:00
dependabot[bot]
ef1b470f0a Bump com.google.android.material:material from 1.11.0 to 1.12.0
Bumps [com.google.android.material:material](https://github.com/material-components/material-components-android) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/material-components/material-components-android/releases)
- [Commits](https://github.com/material-components/material-components-android/compare/1.11.0...1.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-03 02:49:31 +00:00
Milo Ivir
b087d49530 Translated using Weblate (Croatian)
Currently translated at 100.0% (312 of 312 strings)

Co-authored-by: Milo Ivir <mail@milotype.de>
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hr/
Translation: Catima/Android
2024-05-03 02:09:26 +02:00
Sylvia van Os
cd46cd3f8d Merge pull request #1866 from CatimaLoyalty/dependabot/gradle/com.android.application-8.4.0
Bump com.android.application from 8.3.2 to 8.4.0
2024-05-01 18:38:37 +02:00
dependabot[bot]
c44133942a Bump com.android.application from 8.3.2 to 8.4.0
Bumps com.android.application from 8.3.2 to 8.4.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-01 02:24:02 +00:00
Sylvia van Os
24e40f41a5 Merge pull request #1865 from CatimaLoyalty/dependabot/github_actions/actions/checkout-4.1.4
Bump actions/checkout from 4.1.3 to 4.1.4
2024-04-29 19:22:01 +02:00
Sylvia van Os
43b90587a5 Merge pull request #1864 from CatimaLoyalty/dependabot/github_actions/actions/upload-artifact-4.3.3
Bump actions/upload-artifact from 4.3.2 to 4.3.3
2024-04-29 19:02:36 +02:00
Sylvia van Os
f5b2516492 Merge pull request #1863 from CatimaLoyalty/dependabot/github_actions/peter-evans/create-pull-request-6.0.5
Bump peter-evans/create-pull-request from 6.0.4 to 6.0.5
2024-04-29 19:02:11 +02:00
dependabot[bot]
5bec40eb59 Bump actions/checkout from 4.1.3 to 4.1.4
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.3 to 4.1.4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.1.3...v4.1.4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-29 02:12:58 +00:00
dependabot[bot]
6b1cccfdf8 Bump actions/upload-artifact from 4.3.2 to 4.3.3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.2 to 4.3.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.3.2...v4.3.3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-29 02:12:56 +00:00
dependabot[bot]
ddf28d7542 Bump peter-evans/create-pull-request from 6.0.4 to 6.0.5
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6.0.4 to 6.0.5.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6.0.4...v6.0.5)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-29 02:12:53 +00:00
Sylvia van Os
9cf69a3128 Merge pull request #1862 from CatimaLoyalty/create-pull-request/patch-1714277679
Update contributors
2024-04-28 10:22:11 +02:00
Sylvia van Os
8dc62def08 Merge pull request #1861 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-28 10:21:09 +02:00
TheLastProject
ac8b898ccc Update contributors 2024-04-28 04:14:39 +00:00
Young
97e675e476 Translated using Weblate (Chinese (Traditional))
Currently translated at 98.0% (306 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2024-04-28 04:07:18 +02:00
Sylvia van Os
4b488ce1f7 Merge pull request #1859 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-25 17:37:57 +02:00
solokot
7f5fe8831a Translated using Weblate (Russian)
Currently translated at 100.0% (132 of 132 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-04-25 01:07:38 +02:00
Jesus Aguilar-Andrade
f7ff63301b Translated using Weblate (Spanish)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es/
2024-04-25 01:07:37 +02:00
simosathan9
9bb1602370 Fix balance unexpected rounding and app crashing issue (#1838)
Co-authored-by:  Colette Kerr <colette.m.y.kerr@gmail.com>
2024-04-24 21:41:22 +02:00
Sylvia van Os
40da1d2e16 Merge pull request #1855 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-24 18:37:33 +02:00
Jesus Aguilar-Andrade
8dd61d026c Translated using Weblate (Spanish)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es/
2024-04-24 00:15:47 +02:00
Sylvia van Os
4d0464f729 Merge pull request #1852 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-22 21:32:33 +02:00
vesp
e0f1410c8b Translated using Weblate (Czech)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/cs/
2024-04-22 21:07:18 +02:00
Sylvia van Os
2bf7698961 Merge pull request #1847 from CatimaLoyalty/dependabot/github_actions/actions/upload-artifact-4.3.2
Bump actions/upload-artifact from 4.3.1 to 4.3.2
2024-04-22 18:30:47 +02:00
Sylvia van Os
0654a2baef Merge pull request #1846 from CatimaLoyalty/dependabot/github_actions/actions/checkout-4.1.3
Bump actions/checkout from 4.1.1 to 4.1.3
2024-04-22 18:29:56 +02:00
Sylvia van Os
0e785b2ccf Merge pull request #1845 from CatimaLoyalty/dependabot/github_actions/peter-evans/create-pull-request-6.0.4
Bump peter-evans/create-pull-request from 6.0.3 to 6.0.4
2024-04-22 18:28:35 +02:00
dependabot[bot]
46088a48f9 Bump actions/upload-artifact from 4.3.1 to 4.3.2
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.1 to 4.3.2.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.3.1...v4.3.2)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-22 02:40:35 +00:00
dependabot[bot]
82acaef96f Bump actions/checkout from 4.1.1 to 4.1.3
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.1 to 4.1.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.1.1...v4.1.3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-22 02:40:32 +00:00
dependabot[bot]
8556f4d586 Bump peter-evans/create-pull-request from 6.0.3 to 6.0.4
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6.0.3 to 6.0.4.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6.0.3...v6.0.4)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-22 02:40:29 +00:00
Sylvia van Os
e8308b1069 Merge branch 'main' of github.com:CatimaLoyalty/Android 2024-04-21 12:31:52 +02:00
Sylvia van Os
6516d18cc2 Remove F-Droid buttons
IzzyOnDroid is the recommended source for Catima updates
2024-04-21 12:30:35 +02:00
Sylvia van Os
6dd0105908 Merge pull request #1843 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-21 09:54:37 +02:00
Sylvia van Os
3e27b931b5 Merge pull request #1844 from CatimaLoyalty/create-pull-request/patch-1713672853
Update contributors
2024-04-21 09:53:27 +02:00
TheLastProject
73046e56e5 Update contributors 2024-04-21 04:14:13 +00:00
Nicoara Alex
84c350af90 Translated using Weblate (Romanian)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ro/
2024-04-21 04:07:20 +02:00
Sylvia van Os
30bd8d810f Update fastlane 2024-04-20 18:40:48 +02:00
Sylvia van Os
d67b17c58a Release Catima 2.29.0 2024-04-19 18:48:09 +02:00
Sylvia van Os
5033fbba50 Merge pull request #1840 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-19 18:46:39 +02:00
Heimen Stoffels
5e752ecfb4 Translated using Weblate (Dutch)
Currently translated at 13.6% (18 of 132 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/nl/
2024-04-19 18:39:00 +02:00
Heimen Stoffels
e976bf3ef6 Translated using Weblate (Dutch)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2024-04-19 18:38:59 +02:00
Sylvia van Os
24ae8d3c4c Merge pull request #1839 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-18 21:04:05 +02:00
LEGEND OG (LEGEND)
26fb9482aa Translated using Weblate (Arabic)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/ar/
2024-04-18 20:03:24 +02:00
LEGEND OG (LEGEND)
1a3019b94f Translated using Weblate (Arabic)
Currently translated at 7.5% (10 of 132 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ar/
2024-04-18 20:03:24 +02:00
LEGEND OG (LEGEND)
67136b708f Translated using Weblate (Arabic)
Currently translated at 99.6% (311 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ar/
2024-04-18 20:03:24 +02:00
Eji-san
07990cea6f Translated using Weblate (Indonesian)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/id/
2024-04-18 20:03:24 +02:00
syntheticbonus
a92895f96e Translated using Weblate (Dutch)
Currently translated at 99.6% (311 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2024-04-18 20:03:23 +02:00
Aglag257
861df94e69 Translated using Weblate (Greek)
Currently translated at 98.7% (308 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/el/
2024-04-18 20:03:23 +02:00
Sylvia van Os
5efd18dac7 Merge pull request #1836 from CatimaLoyalty/dependabot/gradle/com.github.yalantis-ucrop-2.2.9
Bump com.github.yalantis:ucrop from 2.2.8 to 2.2.9
2024-04-17 19:56:15 +02:00
Sylvia van Os
77fcc8cd7e Merge pull request #1837 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-17 18:09:45 +02:00
tabby
b5e53eb076 Translated using Weblate (Korean)
Currently translated at 100.0% (132 of 132 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ko/
2024-04-17 11:03:50 +02:00
tabby
39fe0a17b8 Translated using Weblate (Korean)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ko/
2024-04-17 11:03:50 +02:00
solokot
524278a94c Translated using Weblate (Russian)
Currently translated at 100.0% (132 of 132 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-04-17 11:03:50 +02:00
dependabot[bot]
8d3f36d62c Bump com.github.yalantis:ucrop from 2.2.8 to 2.2.9
Bumps [com.github.yalantis:ucrop](https://github.com/Yalantis/uCrop) from 2.2.8 to 2.2.9.
- [Release notes](https://github.com/Yalantis/uCrop/releases)
- [Commits](https://github.com/Yalantis/uCrop/compare/2.2.8...2.2.9)

---
updated-dependencies:
- dependency-name: com.github.yalantis:ucrop
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-17 02:06:36 +00:00
Sylvia van Os
459b318fdf Merge pull request #1835 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-16 17:30:56 +02:00
Andre Costa
68e7930835 Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (132 of 132 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt_PT/
2024-04-16 10:02:02 +02:00
Scrambled777
947b3f79be Translated using Weblate (Hindi)
Currently translated at 100.0% (132 of 132 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hi/
2024-04-16 10:02:01 +02:00
Rodolphe Veniel
8070e5564b Translated using Weblate (French)
Currently translated at 97.7% (129 of 132 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/fr/
2024-04-16 10:02:00 +02:00
simosathan9
443a67581e Translated using Weblate (Greek)
Currently translated at 91.6% (286 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/el/
2024-04-16 10:01:59 +02:00
Sylvia van Os
60aaff9f38 Merge pull request #1834 from CatimaLoyalty/dependabot/github_actions/gradle/wrapper-validation-action-3
Bump gradle/wrapper-validation-action from 2 to 3
2024-04-15 20:27:58 +02:00
Sylvia van Os
0464e3dbfe Migrate to new location 2024-04-15 19:05:55 +02:00
Sylvia van Os
6f892e5174 Merge pull request #1831 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-15 17:10:56 +02:00
大王叫我来巡山
187cbb7d67 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (132 of 132 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-04-15 09:23:02 +02:00
Hendrik
b114b6da81 Translated using Weblate (German)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2024-04-15 09:23:02 +02:00
dependabot[bot]
1228d55fcb Bump gradle/wrapper-validation-action from 2 to 3
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 2 to 3.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-15 05:01:40 +00:00
Sylvia van Os
b5c17c9776 Merge pull request #1833 from CatimaLoyalty/dependabot/github_actions/peter-evans/create-pull-request-6.0.3
Bump peter-evans/create-pull-request from 6.0.2 to 6.0.3
2024-04-15 07:01:04 +02:00
dependabot[bot]
27ee52b5c0 Bump peter-evans/create-pull-request from 6.0.2 to 6.0.3
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6.0.2...v6.0.3)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-15 02:07:53 +00:00
Sylvia van Os
ccbbd2555a Merge pull request #1830 from CatimaLoyalty/create-pull-request/patch-1713069410
Update contributors
2024-04-14 10:12:59 +02:00
TheLastProject
d78b7b2fee Update contributors 2024-04-14 04:36:49 +00:00
Sylvia van Os
047639a36e Merge pull request #1829 from CatimaLoyalty/screenshotUpdate
Update screenshots
2024-04-13 18:41:09 +02:00
Sylvia van Os
86b5007ba5 Update screenshots 2024-04-13 18:34:40 +02:00
Sylvia van Os
4879aab701 Merge pull request #1828 from CatimaLoyalty/create-pull-request/patch-1712939446
Update Fastlane changelogs
2024-04-12 18:31:58 +02:00
TheLastProject
da49b651b8 Update Fastlane changelogs 2024-04-12 16:30:45 +00:00
Sylvia van Os
c2e9c0eebc Update CHANGELOG 2024-04-12 18:30:30 +02:00
fynngodau
9ed6bc921d Draw app bar under status bar (#1817)
* Draw app bar under status bar

* Add tint-on-scroll effect to more activites

One remaining problem is the `ListView` in
`barcode_selector_activity.xml`. While it would theoretically be
sufficient to set
`app:layout_behavior="@string/appbar_scrolling_view_behavior"` on
`ListView` if `android:nestedScrollingEnabled="true"` is also set, this
leads to odd visual glitches.

* Appropriate color for tab bar

* Fix remaining tab bar coloring

Remove unused tab group from group activity
2024-04-12 17:22:35 +02:00
Sylvia van Os
d78ecf17e2 Merge pull request #1826 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-11 20:52:34 +02:00
gallegonovato
8aeddf1141 Translated using Weblate (Spanish)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es/
2024-04-11 16:01:52 +02:00
Sylvia van Os
31924276d3 Merge pull request #1819 from fynngodau/about-layout
Improve About layout
2024-04-10 17:18:07 +02:00
Sylvia van Os
3321b11e2a Merge pull request #1821 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-10 08:10:42 +02:00
Sylvia van Os
920379c5af Merge pull request #1822 from CatimaLoyalty/dependabot/gradle/com.android.application-8.3.2
Bump com.android.application from 8.3.1 to 8.3.2
2024-04-10 07:40:23 +02:00
dependabot[bot]
598a4345f0 Bump com.android.application from 8.3.1 to 8.3.2
Bumps com.android.application from 8.3.1 to 8.3.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-10 02:24:46 +00:00
109247019824
ff8013ed44 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bg/
2024-04-10 02:02:09 +02:00
Lionel HANNEQUIN
20b69b4286 Translated using Weblate (French)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fr/
2024-04-10 02:02:09 +02:00
Sylvia van Os
60165bad5c Merge pull request #1820 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-08 23:11:57 +02:00
Balanda Nazarii
149f7ff106 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2024-04-08 23:01:56 +02:00
Julia Deoniziak
ac699a1c76 Translated using Weblate (Polish)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pl/
2024-04-08 23:01:56 +02:00
Fynn Godau
a43c480e0c Improve layout of about screen
* Selectable item ripple background for each row
* Center Donate text in its row
* Don't clip too low when scrolling
2024-04-07 22:48:04 +02:00
Sylvia van Os
6eda7791c6 Merge pull request #1818 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-07 21:16:29 +02:00
Jiri Grönroos
7dc0bf027a Translated using Weblate (Finnish)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fi/
2024-04-07 21:01:58 +02:00
solokot
c218518805 Translated using Weblate (Russian)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2024-04-07 21:01:58 +02:00
Sylvia van Os
0505c51ee8 Merge pull request #1816 from CatimaLoyalty/create-pull-request/patch-1712463357
Update contributors
2024-04-07 09:32:59 +02:00
TheLastProject
f29da33bcf Update contributors 2024-04-07 04:15:57 +00:00
Sylvia van Os
5f8e3069b3 Merge pull request #1815 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-07 00:26:16 +02:00
solokot
8d7abddace Translated using Weblate (Russian)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2024-04-06 20:42:21 +02:00
Evgeniy Khramov
39fe61f57e Translated using Weblate (Russian)
Currently translated at 100.0% (132 of 132 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-04-06 20:42:21 +02:00
Mika
176f7a0cc8 Translated using Weblate (Russian)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2024-04-06 20:42:21 +02:00
Sylvia van Os
e9ec9889d4 Merge pull request #1814 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-06 09:55:45 +02:00
Andre Costa
0a161bdf55 Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_PT/
2024-04-06 07:02:14 +02:00
Andre Costa
e817f190b6 Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (132 of 132 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt_PT/
2024-04-06 07:02:14 +02:00
phat dang thanh
f88a96cd4f Translated using Weblate (Vietnamese)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/vi/
2024-04-06 07:02:13 +02:00
Scrambled777
7cf47935e0 Translated using Weblate (Hindi)
Currently translated at 100.0% (132 of 132 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hi/
2024-04-06 07:02:13 +02:00
Scrambled777
f2844003e8 Translated using Weblate (Hindi)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2024-04-06 07:02:12 +02:00
Oğuz Ersen
9702fd6ce5 Translated using Weblate (Turkish)
Currently translated at 73.4% (97 of 132 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/tr/
2024-04-06 07:02:12 +02:00
Oğuz Ersen
577c3f2990 Translated using Weblate (Turkish)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/tr/
2024-04-06 07:02:12 +02:00
大王叫我来巡山
bf9216168b Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (132 of 132 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-04-06 07:02:11 +02:00
大王叫我来巡山
95dc2f1235 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hans/
2024-04-06 07:02:11 +02:00
Giovanni Donisi
84503253d2 Translated using Weblate (Italian)
Currently translated at 100.0% (312 of 312 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2024-04-06 07:02:10 +02:00
Sylvia van Os
5fd48c6707 Merge pull request #1813 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-04-05 08:32:56 +02:00
Stefan Racic
335668c03a Translated using Weblate (Bosnian)
Currently translated at 45.9% (141 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bs/
2024-04-05 05:50:14 +02:00
Sylvia van Os
cba4b6856c Merge pull request #1811 from CatimaLoyalty/dependabot/gradle/org.robolectric-robolectric-4.12.1
Bump org.robolectric:robolectric from 4.12 to 4.12.1
2024-04-03 08:19:08 +02:00
dependabot[bot]
c345c6cdd1 Bump org.robolectric:robolectric from 4.12 to 4.12.1
Bumps [org.robolectric:robolectric](https://github.com/robolectric/robolectric) from 4.12 to 4.12.1.
- [Release notes](https://github.com/robolectric/robolectric/releases)
- [Commits](https://github.com/robolectric/robolectric/compare/robolectric-4.12...robolectric-4.12.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 02:55:01 +00:00
Sylvia van Os
a1e214e657 Merge pull request #1810 from CatimaLoyalty/dependabot/github_actions/actions/setup-python-5.1.0
Bump actions/setup-python from 5.0.0 to 5.1.0
2024-04-01 07:41:31 +02:00
Sylvia van Os
ff1654b3f7 Merge pull request #1809 from CatimaLoyalty/dependabot/gradle/org.robolectric-robolectric-4.12
Bump org.robolectric:robolectric from 4.11.1 to 4.12
2024-04-01 07:40:06 +02:00
dependabot[bot]
12e24abdd6 Bump actions/setup-python from 5.0.0 to 5.1.0
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5.0.0...v5.1.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-01 02:37:45 +00:00
dependabot[bot]
33a9d7fbcf Bump org.robolectric:robolectric from 4.11.1 to 4.12
Bumps [org.robolectric:robolectric](https://github.com/robolectric/robolectric) from 4.11.1 to 4.12.
- [Release notes](https://github.com/robolectric/robolectric/releases)
- [Commits](https://github.com/robolectric/robolectric/compare/robolectric-4.11.1...robolectric-4.12)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-01 02:16:22 +00:00
Dimitrios Papathanasiou
bdff59e628 Minor cleanups in PDF barcode retrieval (#1807) 2024-03-31 12:08:21 +02:00
Sylvia van Os
c1ef5c346a Merge pull request #1808 from CatimaLoyalty/create-pull-request/patch-1711858517
Update contributors
2024-03-31 10:01:21 +02:00
TheLastProject
a573db1be9 Update contributors 2024-03-31 04:15:16 +00:00
Sylvia van Os
84e3e37a44 Merge pull request #1802 from CatimaLoyalty/create-pull-request/patch-1711486318
Update Fastlane changelogs
2024-03-26 22:38:26 +01:00
TheLastProject
f5724dfca0 Update Fastlane changelogs 2024-03-26 20:51:58 +00:00
Sylvia van Os
f848710afa Merge pull request #1795 from CatimaLoyalty/pdfImport
PDF import + multiple barcode support
2024-03-26 21:51:44 +01:00
Sylvia van Os
1e0dc4f541 Merge pull request #1799 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-03-26 08:45:47 +01:00
Viet Nguyem
470bbf4261 Translated using Weblate (Vietnamese)
Currently translated at 11.4% (15 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/vi/
2024-03-26 07:02:08 +01:00
Sylvia van Os
8519e12aa7 Add page number to barcode selector for PDF scan results 2024-03-24 20:31:03 +01:00
Sylvia van Os
026bfaf7a9 Merge pull request #1798 from CatimaLoyalty/create-pull-request/patch-1711274306
Update locales
2024-03-24 11:30:07 +01:00
TheLastProject
4d4e76960f Update locales 2024-03-24 09:58:25 +00:00
Sylvia van Os
3637c37cca Merge pull request #1797 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-03-24 10:58:14 +01:00
Amir Ghasemi
a5ed6caa5a Added translation using Weblate (Persian) 2024-03-24 10:46:57 +01:00
Sylvia van Os
1429abd94d Update CHANGELOG 2024-03-23 23:55:03 +01:00
Sylvia van Os
0e873b9ea5 Basic selector when multiple barcodes found 2024-03-23 23:54:57 +01:00
Sylvia van Os
cbc8886241 Load barcode from PDF when sharing to Catima 2024-03-23 17:52:07 +01:00
Sylvia van Os
6c7bfb4c50 Initial PDF import through More Options menu 2024-03-23 17:52:07 +01:00
Sylvia van Os
6ed5e52890 Merge pull request #1796 from CatimaLoyalty/create-pull-request/patch-1711174860
Update Gradle to 8.7
2024-03-23 17:51:46 +01:00
TheLastProject
bc1bd88d75 Update Gradle to 8.7 2024-03-23 06:20:59 +00:00
Sylvia van Os
09e1201086 Merge pull request #1794 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-03-22 08:31:46 +01:00
gallegonovato
df829a4956 Translated using Weblate (Spanish)
Currently translated at 46.5% (61 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/es/
2024-03-22 02:02:22 +01:00
Axus Wizix
46dc163e06 Translated using Weblate (Russian)
Currently translated at 100.0% (131 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-03-22 02:02:22 +01:00
Sylvia van Os
e70b2bdbbd Merge pull request #1792 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-03-19 21:56:57 +01:00
Tim Trek
c1f8e930bb Translated using Weblate (German)
Currently translated at 93.8% (123 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-03-19 21:40:22 +01:00
Sylvia van Os
c8dd1d8509 Merge pull request #1791 from CatimaLoyalty/dependabot/gradle/com.android.application-8.3.1
Bump com.android.application from 8.3.0 to 8.3.1
2024-03-19 07:23:04 +01:00
dependabot[bot]
e50adc39c5 Bump com.android.application from 8.3.0 to 8.3.1
Bumps com.android.application from 8.3.0 to 8.3.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-19 02:11:33 +00:00
Sylvia van Os
09948b6a21 Merge pull request #1790 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-03-18 22:11:52 +01:00
solokot
f50e80d24d Translated using Weblate (Russian)
Currently translated at 100.0% (131 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-03-18 21:02:09 +01:00
Sylvia van Os
777512aad7 Merge pull request #1789 from CatimaLoyalty/dependabot/github_actions/peter-evans/create-pull-request-6.0.2
Bump peter-evans/create-pull-request from 6.0.1 to 6.0.2
2024-03-18 18:18:03 +01:00
dependabot[bot]
423fd272d4 Bump peter-evans/create-pull-request from 6.0.1 to 6.0.2
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6.0.1...v6.0.2)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 02:08:29 +00:00
Sylvia van Os
969256f130 Merge pull request #1787 from CatimaLoyalty/create-pull-request/patch-1710648875
Update contributors
2024-03-17 09:33:40 +01:00
TheLastProject
702d4af8d9 Update contributors 2024-03-17 04:14:35 +00:00
Sylvia van Os
02696c1328 Merge pull request #1786 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-03-15 17:53:01 +01:00
Tim Trek
dcffdf3329 Translated using Weblate (German)
Currently translated at 92.3% (121 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-03-15 01:53:02 +01:00
richard01000
4110b5ab48 Translated using Weblate (Romanian)
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ro/
2024-03-15 01:53:02 +01:00
Sylvia van Os
dea96069b0 Merge pull request #1785 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-03-14 18:16:26 +01:00
Allan Nordhøy
04c5cb08f1 Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.7% (297 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nb_NO/
2024-03-14 07:01:56 +01:00
Sylvia van Os
b37f8943c7 Merge pull request #1784 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-03-10 14:18:14 +01:00
ngocanhtve
54d4f8b70b Translated using Weblate (Vietnamese)
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/vi/
2024-03-10 14:02:02 +01:00
unnerving duck
658cc43f86 Translated using Weblate (Finnish)
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fi/
2024-03-10 14:02:01 +01:00
Sylvia van Os
958abe5ed7 Merge pull request #1780 from CatimaLoyalty/fix/shortcutFixes
Several fixes for shortcut handling
2024-03-10 13:20:45 +01:00
Sylvia van Os
fa99c2ef7c Several fixes for shortcut handling
- Update the card priority in the dynamic shortcut manager also when the
  card isn't opened from the main screen
- Remove from dynamic shortcut manager when the card gets archived
- Fix icons disappearing of other cards when one card gets removed
2024-03-10 13:00:41 +01:00
Sylvia van Os
2b38f474fd Merge pull request #1781 from CatimaLoyalty/fix/rb
Fix RB failure
2024-03-10 09:23:05 +01:00
Sylvia van Os
5643814e65 Merge pull request #1783 from CatimaLoyalty/create-pull-request/patch-1710044020
Update contributors
2024-03-10 08:51:01 +01:00
TheLastProject
59b588b797 Update contributors 2024-03-10 04:13:40 +00:00
Sylvia van Os
757321930d Fix RB failure
AGP 8.3 includes the commit hash in the build metadata, so for the
official build to be reproducible it needs to be on the same commit as
third-party builds. This commit reorders the instructions to ensure I
will create the commit before building and thus fixes an RB failure in
AGP 8.3+.
2024-03-09 11:42:55 +01:00
Sylvia van Os
03a5a382e9 Release Catima v2.28.0 2024-03-08 18:17:49 +01:00
Sylvia van Os
66a91db8f0 Merge pull request #1776 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-03-08 18:10:16 +01:00
Marcel Hecko
013dd020c1 Translated using Weblate (Slovak)
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sk/
2024-03-08 18:05:24 +01:00
Julia Sugawara
948e469c05 Translated using Weblate (German)
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2024-03-08 05:01:58 +01:00
Sylvia van Os
d4aff16da8 Merge pull request #1774 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-03-06 19:36:31 +01:00
Sylvia van Os
efa17689b6 Translated using Weblate (Greek)
Currently translated at 89.2% (274 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/el/
2024-03-06 12:37:38 +01:00
Takahiro Namatame
57ab82b2f0 Translated using Weblate (Japanese)
Currently translated at 77.1% (237 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ja/
2024-03-06 10:02:01 +01:00
Giovanni Donisi
4052cec9ba Translated using Weblate (Italian)
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2024-03-06 10:02:00 +01:00
Yohan Denis
3fc1057999 Translated using Weblate (French)
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fr/
2024-03-06 10:01:59 +01:00
ΚΩΝΣΤΑΝΤΙΝΟΣ ΠΑΠΑΣ
8458beaab0 Translated using Weblate (Greek)
Currently translated at 89.2% (274 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/el/
2024-03-06 10:01:59 +01:00
Sylvia van Os
c04c505368 Merge pull request #1773 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-03-05 20:20:57 +01:00
Andre Costa
2ee913c833 Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_PT/
2024-03-05 08:02:17 +01:00
Andre Costa
09074cbc9e Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (131 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt_PT/
2024-03-05 08:02:17 +01:00
ngocanhtve
29b79a010b Translated using Weblate (Vietnamese)
Currently translated at 99.6% (306 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/vi/
2024-03-05 08:02:17 +01:00
H Tamás
992f2e2e44 Translated using Weblate (Hungarian)
Currently translated at 35.1% (46 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hu/
2024-03-05 08:02:17 +01:00
이정희
7cca7154c5 Translated using Weblate (Korean)
Currently translated at 98.3% (302 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ko/
2024-03-05 08:02:17 +01:00
Ranforingus
daa7f7a7e2 Translated using Weblate (Dutch)
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2024-03-05 08:02:17 +01:00
gallegonovato
21c1580513 Translated using Weblate (Spanish)
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es/
2024-03-05 08:02:17 +01:00
Sylvia van Os
9c700eb8d0 Merge pull request #1771 from CatimaLoyalty/dependabot/github_actions/peter-evans/create-pull-request-6.0.1
Bump peter-evans/create-pull-request from 6.0.0 to 6.0.1
2024-03-04 07:31:39 +01:00
dependabot[bot]
be21ba515a Bump peter-evans/create-pull-request from 6.0.0 to 6.0.1
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6.0.0...v6.0.1)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 02:14:36 +00:00
Sylvia van Os
671b0b1228 Merge pull request #1770 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-03-03 18:13:50 +01:00
Odweta
dd455bfabd Translated using Weblate (Czech)
Currently translated at 100.0% (131 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/cs/
2024-03-03 14:02:03 +01:00
solokot
b3294112aa Translated using Weblate (Russian)
Currently translated at 100.0% (131 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-03-03 14:02:02 +01:00
Odweta
baae7ab358 Translated using Weblate (Czech)
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/cs/
2024-03-03 14:02:02 +01:00
Sylvia van Os
d14d5ef83e Merge pull request #1769 from CatimaLoyalty/create-pull-request/patch-1709439294
Update contributors
2024-03-03 09:24:56 +01:00
TheLastProject
9b92882fc5 Update contributors 2024-03-03 04:14:54 +00:00
Sylvia van Os
ebfe0d0b6c Merge pull request #1768 from CatimaLoyalty/feature/viewPasswordImportExport
Make it possible to view password on export/import dialogs
2024-03-02 13:36:15 +01:00
Sylvia van Os
83a35e02ce Make it possible to view password on export/import dialogs 2024-03-02 13:29:20 +01:00
Sylvia van Os
13ae1f5014 Merge pull request #1767 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-03-02 10:00:22 +01:00
Scrambled777
4327c45cd3 Translated using Weblate (Hindi)
Currently translated at 100.0% (131 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hi/
2024-03-02 05:01:13 +01:00
Scrambled777
3f4076bc7d Translated using Weblate (Hindi)
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2024-03-02 05:01:13 +01:00
Roblox Lover
1ae09c3dff Translated using Weblate (Arabic)
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ar/
2024-03-02 05:01:12 +01:00
H Tamás
daa8127f47 Translated using Weblate (Hungarian)
Currently translated at 33.5% (44 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hu/
2024-03-02 05:01:12 +01:00
H Tamás
aadb5334c2 Translated using Weblate (Hungarian)
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hu/
2024-03-02 05:01:11 +01:00
Oğuz Ersen
b5b897f7b9 Translated using Weblate (Turkish)
Currently translated at 73.2% (96 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/tr/
2024-03-02 05:01:11 +01:00
Oğuz Ersen
273035b209 Translated using Weblate (Turkish)
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/tr/
2024-03-02 05:01:10 +01:00
109247019824
6867408d14 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bg/
2024-03-02 05:01:09 +01:00
大王叫我来巡山
bf17d12b08 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (131 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-03-02 05:01:09 +01:00
大王叫我来巡山
523a602442 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hans/
2024-03-02 05:01:08 +01:00
solokot
103beef323 Translated using Weblate (Russian)
Currently translated at 100.0% (307 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2024-03-02 05:01:08 +01:00
Sylvia van Os
e700afac60 Merge pull request #1765 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-03-01 08:18:52 +01:00
Sylvia van Os
4e60bc2029 Merge pull request #1764 from CatimaLoyalty/dependabot/gradle/com.android.application-8.3.0
Bump com.android.application from 8.2.2 to 8.3.0
2024-03-01 08:16:55 +01:00
Anonymous
a233db799d Translated using Weblate (Portuguese (Portugal))
Currently translated at 97.3% (299 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_PT/
2024-03-01 04:12:58 +01:00
Anonymous
c4958ff40d Translated using Weblate (Vietnamese)
Currently translated at 97.3% (299 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/vi/
2024-03-01 04:12:58 +01:00
Anonymous
02329e1176 Translated using Weblate (Hungarian)
Currently translated at 97.7% (300 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hu/
2024-03-01 04:12:57 +01:00
Anonymous
480bf8489e Translated using Weblate (Latvian)
Currently translated at 82.4% (253 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/lv/
2024-03-01 04:12:57 +01:00
Anonymous
6762c342c9 Translated using Weblate (Croatian)
Currently translated at 97.7% (300 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hr/
2024-03-01 04:12:57 +01:00
Anonymous
d760e17095 Translated using Weblate (Indonesian)
Currently translated at 97.7% (300 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/id/
2024-03-01 04:12:57 +01:00
Anonymous
3b6d1e1764 Translated using Weblate (Bengali (India))
Currently translated at 88.5% (272 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bn_IN/
2024-03-01 04:12:57 +01:00
Anonymous
9250b2b3dc Translated using Weblate (Turkish)
Currently translated at 98.6% (303 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/tr/
2024-03-01 04:12:56 +01:00
Anonymous
0c1cdc98e8 Translated using Weblate (Swedish)
Currently translated at 94.7% (291 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sv/
2024-03-01 04:12:56 +01:00
Anonymous
a90f000d46 Translated using Weblate (Bulgarian)
Currently translated at 98.6% (303 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bg/
2024-03-01 04:12:56 +01:00
Anonymous
90fe400069 Translated using Weblate (Finnish)
Currently translated at 98.0% (301 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fi/
2024-03-01 04:12:56 +01:00
Anonymous
de7bc3d7ea Translated using Weblate (Korean)
Currently translated at 97.3% (299 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ko/
2024-03-01 04:12:28 +01:00
Anonymous
46b1040108 Translated using Weblate (Ukrainian)
Currently translated at 98.6% (303 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2024-03-01 04:12:25 +01:00
Anonymous
d42908e163 Translated using Weblate (Slovenian)
Currently translated at 85.3% (262 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sl/
2024-03-01 04:12:25 +01:00
Anonymous
6468491e04 Translated using Weblate (Slovak)
Currently translated at 97.7% (300 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sk/
2024-03-01 04:12:25 +01:00
Anonymous
1e58cfb5f3 Translated using Weblate (Russian)
Currently translated at 98.6% (303 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2024-03-01 04:12:25 +01:00
Anonymous
f01c388f0c Translated using Weblate (Polish)
Currently translated at 97.7% (300 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pl/
2024-03-01 04:12:25 +01:00
Anonymous
0e5c84e8f2 Translated using Weblate (Dutch)
Currently translated at 97.7% (300 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2024-03-01 04:12:25 +01:00
Anonymous
ca733a5404 Translated using Weblate (Norwegian Bokmål)
Currently translated at 95.1% (292 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nb_NO/
2024-03-01 04:12:25 +01:00
Anonymous
59a28ebd62 Translated using Weblate (Lithuanian)
Currently translated at 86.6% (266 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/lt/
2024-03-01 04:12:25 +01:00
Anonymous
d48247f107 Translated using Weblate (Italian)
Currently translated at 98.6% (303 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2024-03-01 04:12:25 +01:00
Anonymous
d084d5f67b Translated using Weblate (French)
Currently translated at 98.6% (303 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fr/
2024-03-01 04:12:25 +01:00
Anonymous
d11483dcf2 Translated using Weblate (Spanish)
Currently translated at 98.6% (303 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es/
2024-03-01 04:12:24 +01:00
Anonymous
2386ee30f7 Translated using Weblate (German)
Currently translated at 97.7% (300 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2024-03-01 04:12:24 +01:00
Anonymous
9899d80719 Translated using Weblate (Czech)
Currently translated at 98.6% (303 of 307 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/cs/
2024-03-01 04:12:24 +01:00
dependabot[bot]
e809392191 Bump com.android.application from 8.2.2 to 8.3.0
Bumps com.android.application from 8.2.2 to 8.3.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-01 02:56:50 +00:00
Sylvia van Os
94d9010731 Merge pull request #1762 from CatimaLoyalty/fix/iconBackground
Fix background colour not being set for images in card view
2024-02-28 19:08:36 +01:00
Sylvia van Os
b160b1dca8 Fix background colour not being set for images in card view 2024-02-28 18:55:28 +01:00
Sylvia van Os
6e2fa6fd22 Merge pull request #1761 from CatimaLoyalty/create-pull-request/patch-1709140863
Update Fastlane changelogs
2024-02-28 18:21:55 +01:00
TheLastProject
2b0a126d3c Update Fastlane changelogs 2024-02-28 17:21:02 +00:00
Sylvia van Os
d8297db010 Merge pull request #1760 from CatimaLoyalty/feature/balanceUpdate
Update spending screen to also support receiving
2024-02-28 18:20:51 +01:00
Sylvia van Os
fd7b72d6e5 Update spending screen to also support receiving 2024-02-28 18:13:59 +01:00
Sylvia van Os
45471910e6 Merge pull request #1759 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-26 10:10:47 +01:00
大王叫我来巡山
bb36804a46 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (131 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-02-26 07:02:37 +01:00
大王叫我来巡山
0e2991cb7f Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (304 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hans/
2024-02-26 07:02:37 +01:00
solokot
efbcd00b55 Translated using Weblate (Russian)
Currently translated at 100.0% (131 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-02-26 07:02:37 +01:00
Sylvia van Os
27e252f68a Merge pull request #1758 from CatimaLoyalty/create-pull-request/patch-1708834494
Update contributors
2024-02-25 09:34:05 +01:00
TheLastProject
d2cdced416 Update contributors 2024-02-25 04:14:54 +00:00
Sylvia van Os
b150ace903 Merge pull request #1757 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-24 16:33:33 +01:00
迎春心情
7697855e0d Translated using Weblate (Chinese (Simplified))
Currently translated at 99.6% (303 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hans/
2024-02-24 16:02:06 +01:00
solokot
08f4cb32a5 Translated using Weblate (Russian)
Currently translated at 100.0% (304 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2024-02-24 16:02:06 +01:00
Sylvia van Os
eef026ff4f Merge pull request #1756 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-23 18:17:46 +01:00
solokot
3fac41e8b1 Translated using Weblate (Russian)
Currently translated at 100.0% (304 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2024-02-23 14:06:11 +01:00
yue weikai
5c01f638be Translated using Weblate (Chinese (Simplified))
Currently translated at 99.3% (302 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hans/
2024-02-23 14:06:10 +01:00
Alexander Ivanov
9e2d41b821 Translated using Weblate (Russian)
Currently translated at 100.0% (304 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2024-02-23 14:06:09 +01:00
Sylvia van Os
472f837f44 Merge pull request #1755 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-21 18:15:09 +01:00
109247019824
f2d1b9b5c9 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (304 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bg/
2024-02-21 17:52:39 +01:00
Jiri Grönroos
621bfa3f99 Translated using Weblate (Finnish)
Currently translated at 99.3% (302 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fi/
2024-02-21 17:52:39 +01:00
Giovanni Donisi
f64703d683 Translated using Weblate (Italian)
Currently translated at 100.0% (304 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2024-02-21 17:52:39 +01:00
Naga
75d1fba8f8 Translated using Weblate (French)
Currently translated at 100.0% (304 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fr/
2024-02-21 17:52:39 +01:00
Sylvia van Os
308a2bbaf3 Merge pull request #1754 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-20 10:09:25 +01:00
Nitin Khalia
4ba752a10e Translated using Weblate (Hindi)
Currently translated at 100.0% (131 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hi/
2024-02-20 09:02:21 +01:00
ikanakova
df826d76e5 Translated using Weblate (Czech)
Currently translated at 100.0% (131 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/cs/
2024-02-20 09:02:20 +01:00
Mauro
f70138cd28 Translated using Weblate (Italian)
Currently translated at 99.6% (303 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2024-02-20 09:02:19 +01:00
ikanakova
ea81304dd5 Translated using Weblate (Czech)
Currently translated at 100.0% (304 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/cs/
2024-02-20 09:02:19 +01:00
Sylvia van Os
683ef8cc49 Merge pull request #1752 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-18 19:18:54 +01:00
Sylvia van Os
f9db51c8d7 Use translated title with default subtext if it exists 2024-02-18 19:13:11 +01:00
Vietto
e5de170887 Translated using Weblate (Vietnamese)
Currently translated at 5.3% (7 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/vi/
2024-02-18 18:09:33 +01:00
Nitin Khalia
c45761f069 Translated using Weblate (Hindi)
Currently translated at 100.0% (304 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2024-02-18 18:09:32 +01:00
Oğuz Ersen
65937be5b2 Translated using Weblate (Turkish)
Currently translated at 73.2% (96 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/tr/
2024-02-18 18:09:32 +01:00
Oğuz Ersen
b249dd141d Translated using Weblate (Turkish)
Currently translated at 100.0% (304 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/tr/
2024-02-18 18:09:31 +01:00
Сергій
f67548d18b Translated using Weblate (Ukrainian)
Currently translated at 100.0% (304 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2024-02-18 18:09:31 +01:00
richard01000
a8b8c10f0f Translated using Weblate (Romanian)
Currently translated at 100.0% (304 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ro/
2024-02-18 18:09:30 +01:00
gallegonovato
3cd0aab25e Translated using Weblate (Spanish)
Currently translated at 100.0% (304 of 304 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es/
2024-02-18 18:09:30 +01:00
Sylvia van Os
4dcafe0abe Merge pull request #1746 from CatimaLoyalty/fix/1744
Fix feature graphic generation
2024-02-18 16:20:24 +01:00
Sylvia van Os
0de1fcbe9b Fix some failing feature graphic generations 2024-02-18 16:17:11 +01:00
Sylvia van Os
2b8214e144 Merge branch 'main' of github.com:CatimaLoyalty/Android 2024-02-18 14:20:08 +01:00
Sylvia van Os
0300aaa850 chmod +x generate_feature_graphic.sh 2024-02-18 14:19:58 +01:00
Sylvia van Os
2605372e5d Merge pull request #1742 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-18 14:16:32 +01:00
Vietto
72b09506dc Translated using Weblate (Vietnamese)
Currently translated at 2.2% (3 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/vi/
2024-02-18 13:54:28 +01:00
Hosted Weblate
14b42e8980 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/
2024-02-18 13:54:28 +01:00
Sylvia van Os
7c25bb9b79 Translated using Weblate (Kannada)
Currently translated at 16.0% (21 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/kn/
2024-02-18 13:54:28 +01:00
Sylvia van Os
f3b2e1e1ac Translated using Weblate (Vietnamese)
Currently translated at 1.5% (2 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/vi/
2024-02-18 13:54:28 +01:00
Vietto
ef4ad0e197 Translated using Weblate (Vietnamese)
Currently translated at 1.5% (2 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/vi/
2024-02-18 13:54:28 +01:00
Vietto
34d8331c50 Translated using Weblate (Vietnamese)
Currently translated at 99.6% (300 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/vi/
2024-02-18 13:54:28 +01:00
Sylvia van Os
8430dff21c Translated using Weblate (Romanian)
Currently translated at 1.5% (2 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ro/
2024-02-18 13:54:28 +01:00
Sylvia van Os
ba87ee739e Merge pull request #1740 from CatimaLoyalty/feature/nudge_away_manual_entry
Nudge users away from manual entry
2024-02-18 11:34:53 +01:00
Sylvia van Os
41503f912f Nudge users away from manual entry
Manual entry is an useful feature for when you don't have a card to
access. However, some stores use a different card ID than barcode value,
causing users to create cards that won't work.

While I don't want to completely remove this feature, I think it is
helpful to nudge users towards scanning with the camera if possible to
reduce the risk of creating cards that won't work.
2024-02-18 11:28:09 +01:00
Sylvia van Os
fd396b8fc7 Merge pull request #1741 from CatimaLoyalty/create-pull-request/patch-1708229608
Update contributors
2024-02-18 09:09:54 +01:00
TheLastProject
2abc8b8f64 Update contributors 2024-02-18 04:13:27 +00:00
Sylvia van Os
160e61ead4 Merge pull request #1739 from CatimaLoyalty/create-pull-request/patch-1708173432
Update Fastlane changelogs
2024-02-17 13:54:46 +01:00
TheLastProject
c2e8577674 Update Fastlane changelogs 2024-02-17 12:37:12 +00:00
Sylvia van Os
66b8f35994 Merge pull request #1738 from CatimaLoyalty/feature/tweak_photos_tab_edit_view
Improve layout of photos tab in card edit view
2024-02-17 13:37:01 +01:00
Sylvia van Os
b141009350 Improve layout of photos tab in card edit view 2024-02-17 13:30:01 +01:00
Sylvia van Os
0e8dd2fd64 Merge pull request #1737 from CatimaLoyalty/create-pull-request/patch-1708164520
Update Fastlane changelogs
2024-02-17 11:10:38 +01:00
TheLastProject
988336cfec Update Fastlane changelogs 2024-02-17 10:08:39 +00:00
Sylvia van Os
5e3668820b Merge pull request #1736 from CatimaLoyalty/feature/open_card_icon_in_gallery
Open card icon in gallery on touch
2024-02-17 11:08:27 +01:00
Sylvia van Os
81c919448e Open card icon in gallery on touch
If a card icon exists, open it in the gallery, like is done with photos.

While the intended behaviour was for users to use the card icon only as
a general... icon and use the photos tab in the card edit screen to set
photos, a 2 star review I just got on Google Play makes it clear some
people put pictures in there they want to be able to zoom.

While the usage seems limited, as icons are quite small, a simple tap
wasn't bound to anything except telling the user to long-press anyway so
this was very easy to add and felt logical enough to support for
consistency with photos.
2024-02-17 10:53:54 +01:00
Sylvia van Os
23ca0802cb Merge pull request #1735 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-14 17:56:00 +01:00
ikanakova
40c2337054 Translated using Weblate (Czech)
Currently translated at 100.0% (131 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/cs/
2024-02-14 12:26:24 +01:00
Sylvia van Os
7db8b1602d Merge pull request #1734 from CatimaLoyalty/dependabot/github_actions/actions/upload-artifact-4.3.1
Bump actions/upload-artifact from 4.3.0 to 4.3.1
2024-02-12 06:55:09 +01:00
dependabot[bot]
32b35382a6 Bump actions/upload-artifact from 4.3.0 to 4.3.1
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.3.0...v4.3.1)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 02:30:41 +00:00
Sylvia van Os
3ec6cbe416 Merge pull request #1733 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-11 11:40:57 +01:00
ngocanhtve
90322f75ce Translated using Weblate (Vietnamese)
Currently translated at 99.6% (300 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/vi/
2024-02-10 17:02:07 +01:00
Sylvia van Os
534c4001c1 Merge pull request #1732 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-09 17:53:17 +01:00
IllusiveMan196
e21030aed3 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (131 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2024-02-09 00:55:55 +01:00
IllusiveMan196
d6d12174d5 Translated using Weblate (Ukrainian)
Currently translated at 99.6% (300 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2024-02-09 00:55:55 +01:00
Sylvia van Os
27e78dbadd Merge pull request #1731 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-08 18:12:15 +01:00
gallegonovato
0d520b48e1 Translated using Weblate (Spanish)
Currently translated at 46.5% (61 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/es/
2024-02-08 04:47:03 +01:00
Sylvia van Os
d7a49013ec Merge pull request #1730 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-07 19:42:07 +01:00
akinobu nishi
fc974e2038 Translated using Weblate (Japanese)
Currently translated at 78.4% (236 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ja/
2024-02-07 19:37:21 +01:00
Nikita Karamov
7144f60340 Translated using Weblate (German)
Currently translated at 91.6% (120 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-02-07 19:37:21 +01:00
J. Lavoie
883af7fd10 Translated using Weblate (French)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fr/
2024-02-07 19:37:21 +01:00
Sylvia van Os
fcb2be604c Optimize imports 2024-02-07 19:27:18 +01:00
Sylvia van Os
d24366a3ba Workaround import/export crash by locking orientation
While https://github.com/CatimaLoyalty/Android/issues/513 needs to be
fixed, this at very least prevents a crash with only mild user
inconvenience in a not commonly used activity
2024-02-07 19:18:46 +01:00
Sylvia van Os
a0aa19f26f Merge pull request #1729 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-06 19:20:38 +01:00
richard01000
589f009a65 Translated using Weblate (Romanian)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ro/
2024-02-06 15:01:54 +01:00
Sylvia van Os
e849fd379e Merge pull request #1728 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-05 19:19:17 +01:00
Sylvia van Os
e28c5e877b Merge pull request #1727 from CatimaLoyalty/dependabot/github_actions/peter-evans/create-pull-request-6.0.0
Bump peter-evans/create-pull-request from 5.0.2 to 6.0.0
2024-02-05 19:04:48 +01:00
Sylvia van Os
ae90b46c05 Merge pull request #1726 from CatimaLoyalty/dependabot/github_actions/gradle/wrapper-validation-action-2
Bump gradle/wrapper-validation-action from 1 to 2
2024-02-05 19:04:26 +01:00
Scrambled777
a8a1158b4b Translated using Weblate (Hindi)
Currently translated at 92.3% (121 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hi/
2024-02-05 09:25:13 +01:00
Scrambled777
8789be5340 Translated using Weblate (Hindi)
Currently translated at 88.5% (116 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hi/
2024-02-05 09:22:27 +01:00
Scrambled777
93af3dbc36 Translated using Weblate (Hindi)
Currently translated at 87.7% (115 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hi/
2024-02-05 09:22:27 +01:00
Scrambled777
96c111f0c8 Translated using Weblate (Hindi)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2024-02-05 09:22:27 +01:00
reimu105
89dca33ce8 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2024-02-05 09:22:27 +01:00
dependabot[bot]
f9f1149bb5 Bump peter-evans/create-pull-request from 5.0.2 to 6.0.0
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 5.0.2 to 6.0.0.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v5.0.2...v6.0.0)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 02:21:12 +00:00
dependabot[bot]
cfd5fbe3ae Bump gradle/wrapper-validation-action from 1 to 2
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 1 to 2.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 02:21:10 +00:00
Sylvia van Os
028905df42 Merge pull request #1725 from CatimaLoyalty/create-pull-request/patch-1707019984
Update contributors
2024-02-04 09:33:52 +01:00
TheLastProject
3dd74fd674 Update contributors 2024-02-04 04:13:04 +00:00
Sylvia van Os
0af9549d02 Merge pull request #1724 from CatimaLoyalty/create-pull-request/patch-1706940956
Update Gradle to 8.6
2024-02-03 10:18:17 +01:00
Sylvia van Os
a367d24125 Merge pull request #1723 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-03 09:35:12 +01:00
TheLastProject
dfa0c36af5 Update Gradle to 8.6 2024-02-03 06:15:56 +00:00
大王叫我来巡山
66fcad7658 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (131 of 131 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-02-03 06:41:24 +01:00
Sylvia van Os
370ec55df1 Merge pull request #1722 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-02 17:32:18 +01:00
Jiri Grönroos
b03ead95ea Translated using Weblate (Finnish)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fi/
2024-02-02 14:02:02 +01:00
大王叫我来巡山
90e6463688 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-02-02 14:02:02 +01:00
Sylvia van Os
80cfb516c0 Merge pull request #1721 from CatimaLoyalty/create-pull-request/patch-1706816801
Update Fastlane changelogs
2024-02-01 20:51:37 +01:00
TheLastProject
989cf31897 Update Fastlane changelogs 2024-02-01 19:46:40 +00:00
Sylvia van Os
caf9e163df Merge pull request #1720 from CatimaLoyalty/android14
Target Android 14
2024-02-01 20:46:26 +01:00
Sylvia van Os
8363115faf Target Android 14 2024-02-01 20:30:28 +01:00
Sylvia van Os
48cc286b14 Merge pull request #1719 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-01 07:02:32 +01:00
Hosted Weblate
07e7b56c9f Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/
2024-02-01 06:07:14 +01:00
Anonymous
4cac19acb9 Translated using Weblate (Lithuanian)
Currently translated at 1.5% (2 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/lt/
2024-02-01 06:07:04 +01:00
しいたけ
ed1db31d62 Translated using Weblate (Japanese)
Currently translated at 78.0% (235 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ja/
2024-02-01 06:07:04 +01:00
しいたけ
2a2a711375 Translated using Weblate (Japanese)
Currently translated at 78.4% (236 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ja/
2024-02-01 04:01:55 +01:00
Sylvia van Os
c96cef5298 Update fastlane 2024-01-31 17:36:48 +01:00
Sylvia van Os
8506c05081 Merge pull request #1718 from CatimaLoyalty/dependabot/gradle/com.google.zxing-core-3.5.3
Bump com.google.zxing:core from 3.5.2 to 3.5.3
2024-01-31 08:24:19 +01:00
dependabot[bot]
9adc6d0704 Bump com.google.zxing:core from 3.5.2 to 3.5.3
Bumps [com.google.zxing:core](https://github.com/zxing/zxing) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/zxing/zxing/releases)
- [Changelog](https://github.com/zxing/zxing/blob/master/CHANGES)
- [Commits](https://github.com/zxing/zxing/compare/zxing-3.5.2...zxing-3.5.3)

---
updated-dependencies:
- dependency-name: com.google.zxing:core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-31 02:16:44 +00:00
Sylvia van Os
ca62d542ef Update supported language count 2024-01-30 20:24:06 +01:00
Sylvia van Os
84c343e41f Release Catima v2.27.0 2024-01-30 19:10:40 +01:00
Sylvia van Os
d12283e75d Merge pull request #1716 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-01-30 18:57:29 +01:00
しいたけ
0297304751 Translated using Weblate (Japanese)
Currently translated at 77.0% (232 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ja/
2024-01-30 18:56:16 +01:00
Sylvia van Os
966846c507 Merge pull request #1714 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-01-29 18:55:38 +01:00
Oğuz Ersen
48de759eb0 Translated using Weblate (Turkish)
Currently translated at 72.3% (94 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/tr/
2024-01-29 14:02:16 +01:00
Sylvia van Os
4e23fb4195 Merge pull request #1713 from CatimaLoyalty/dependabot/github_actions/actions/upload-artifact-4.3.0
Bump actions/upload-artifact from 4.2.0 to 4.3.0
2024-01-29 06:42:53 +01:00
dependabot[bot]
1cfd04ba67 Bump actions/upload-artifact from 4.2.0 to 4.3.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.2.0...v4.3.0)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 02:51:02 +00:00
Sylvia van Os
c6f1e0cffe Merge pull request #1574 from obfusk/refactor-navbar-colour
Refactor navbar colour
2024-01-28 12:50:47 +01:00
Sylvia van Os
027d153747 Don't version-guard the background colour fix
All Android versions seem to need this for the main screen
2024-01-28 12:41:52 +01:00
FC (Fay) Stegerman
bd1376e6bf add activityOverridesNavBarColor to not set colour twice 2024-01-28 12:08:30 +01:00
FC (Fay) Stegerman
7fa8ae8697 refactor nav bar colour & colour patching 2024-01-28 12:08:30 +01:00
Sylvia van Os
0b01604c4e Merge pull request #1712 from CatimaLoyalty/create-pull-request/patch-1706415252
Update contributors
2024-01-28 08:53:53 +01:00
TheLastProject
d37dca7e7d Update contributors 2024-01-28 04:14:12 +00:00
Sylvia van Os
5eb2753168 Merge pull request #1711 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-01-27 23:26:29 +01:00
waffshappen
502e2e5e21 Translated using Weblate (German)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/de/
2024-01-27 21:26:47 +01:00
waffshappen
bbb2c0d81f Translated using Weblate (German)
Currently translated at 92.3% (120 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-01-27 21:26:47 +01:00
waffshappen
59e62c2805 Translated using Weblate (German)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2024-01-27 21:26:47 +01:00
Sylvia van Os
15d9a16ead Merge pull request #1710 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-01-27 17:29:55 +01:00
abdelbasset jabrane
e99cba7fcb Translated using Weblate (Arabic)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ar/
2024-01-27 15:35:52 +01:00
Oğuz Ersen
781b6ecc48 Translated using Weblate (Turkish)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/tr/
2024-01-27 15:35:52 +01:00
akinobu nishi
ec8536976f Translated using Weblate (Japanese)
Currently translated at 4.6% (6 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ja/
2024-01-27 15:35:52 +01:00
akinobu nishi
2f9101e9f2 Translated using Weblate (Japanese)
Currently translated at 76.0% (229 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ja/
2024-01-27 15:35:52 +01:00
Sylvia van Os
0cc2fd44ac Merge pull request #1708 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-01-25 21:12:41 +01:00
Eva Pelko
6db4cbab9b Translated using Weblate (Croatian)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hr/
2024-01-25 21:01:55 +01:00
CPavRou
0b2111b6f0 Translated using Weblate (French)
Currently translated at 99.0% (298 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fr/
2024-01-25 21:01:55 +01:00
Sylvia van Os
b3f118ef15 Merge pull request #1707 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-01-24 17:26:52 +01:00
Irham Mustofa
db8a652e5b Translated using Weblate (Indonesian)
Currently translated at 96.9% (126 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/id/
2024-01-24 16:02:04 +01:00
Irham Mustofa
d7a4f81eba Translated using Weblate (Indonesian)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/id/
2024-01-24 16:02:04 +01:00
Zbigniew Kosowski
d0c0694662 Translated using Weblate (Polish)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pl/
2024-01-24 16:02:04 +01:00
Sylvia van Os
0fdf79449c Merge pull request #1705 from CatimaLoyalty/dependabot/gradle/com.android.application-8.2.2
Bump com.android.application from 8.2.1 to 8.2.2
2024-01-24 08:17:14 +01:00
dependabot[bot]
cbf8b2d5f0 Bump com.android.application from 8.2.1 to 8.2.2
Bumps com.android.application from 8.2.1 to 8.2.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-24 02:07:05 +00:00
Sylvia van Os
e194cca5f1 Merge pull request #1704 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-01-22 18:16:50 +01:00
Giovanni Donisi
5d450852e1 Translated using Weblate (Italian)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2024-01-22 14:01:51 +01:00
gallegonovato
ce86811d7c Translated using Weblate (Spanish)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es/
2024-01-22 14:01:51 +01:00
Sylvia van Os
9fb3b765e7 Merge pull request #1703 from CatimaLoyalty/dependabot/github_actions/actions/upload-artifact-4.2.0
Bump actions/upload-artifact from 4.1.0 to 4.2.0
2024-01-22 07:40:38 +01:00
dependabot[bot]
d02dac2c41 Bump actions/upload-artifact from 4.1.0 to 4.2.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.1.0...v4.2.0)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 02:41:23 +00:00
Sylvia van Os
243536d0d1 Merge pull request #1702 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-01-21 14:04:43 +01:00
Сергій
b258ba8654 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2024-01-21 10:02:31 +01:00
solokot
5ec87a7a3a Translated using Weblate (Russian)
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-01-21 10:02:31 +01:00
Сергій
c84692db35 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2024-01-21 10:02:30 +01:00
Ronon
efe2a720f4 Translated using Weblate (Slovak)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sk/
2024-01-21 10:02:29 +01:00
solokot
8b876f51fc Translated using Weblate (Russian)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2024-01-21 10:02:29 +01:00
Nikita Karamov
033de00ad4 Translated using Weblate (German)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2024-01-21 10:02:28 +01:00
Sylvia van Os
81f0e769b8 Merge pull request #1701 from CatimaLoyalty/create-pull-request/patch-1705810453
Update contributors
2024-01-21 07:29:28 +01:00
TheLastProject
dd14533c6c Update contributors 2024-01-21 04:14:13 +00:00
Sylvia van Os
f7c50caeb1 Merge pull request #1700 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-01-19 17:42:33 +01:00
Nguyễn Xuân Cảm
b00aa74bfe Translated using Weblate (Vietnamese)
Currently translated at 1.5% (2 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/vi/
2024-01-19 12:00:37 +01:00
Nguyễn Xuân Cảm
944089536f Translated using Weblate (Vietnamese)
Currently translated at 99.3% (299 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/vi/
2024-01-19 12:00:36 +01:00
Bálint László
266732f744 Translated using Weblate (Hungarian)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hu/
2024-01-19 12:00:36 +01:00
BananaChad
33ee23a0e1 Translated using Weblate (Dutch)
Currently translated at 13.8% (18 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/nl/
2024-01-19 12:00:35 +01:00
BananaChad
b064851254 Translated using Weblate (Dutch)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2024-01-19 12:00:34 +01:00
Sylvia van Os
19782fdb9c Merge pull request #1699 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-01-18 20:15:08 +01:00
109247019824
eb7658c35a Translated using Weblate (Bulgarian)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bg/
2024-01-18 08:39:27 +01:00
大王叫我来巡山
fff35d7a74 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-01-18 08:39:26 +01:00
大王叫我来巡山
ed5506554a Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hans/
2024-01-18 08:39:26 +01:00
ikanakova
dac7e8cb46 Translated using Weblate (Czech)
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/cs/
2024-01-18 08:39:25 +01:00
ikanakova
5ad27b1b53 Translated using Weblate (Czech)
Currently translated at 100.0% (301 of 301 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/cs/
2024-01-18 08:39:24 +01:00
Sylvia van Os
ca3c29f5e4 Merge pull request #1698 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-01-16 21:47:57 +01:00
Jiri Grönroos
935ef20955 Translated using Weblate (Finnish)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fi/
2024-01-16 20:06:27 +01:00
Sylvia van Os
86ec70ee72 Merge pull request #1696 from CatimaLoyalty/dependabot/github_actions/actions/upload-artifact-4.1.0
Bump actions/upload-artifact from 4.0.0 to 4.1.0
2024-01-15 19:39:08 +01:00
dependabot[bot]
2303caf1be Bump actions/upload-artifact from 4.0.0 to 4.1.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.0.0...v4.1.0)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-15 02:39:56 +00:00
Sylvia van Os
ee1e5c0d0e Merge pull request #1695 from CatimaLoyalty/create-pull-request/patch-1705205686
Update contributors
2024-01-14 12:34:09 +01:00
TheLastProject
4bdb5a86ad Update contributors 2024-01-14 04:14:46 +00:00
Sylvia van Os
92ac59a783 Merge pull request #1692 from CatimaLoyalty/1647-2
Only list contributors with at least 5 commits
2024-01-12 12:27:18 +01:00
Sylvia van Os
89ea86e795 Only include contributors with at least 5 commits 2024-01-12 12:17:03 +01:00
Sylvia van Os
ffe6236c2d Support HTML in credits screen 2024-01-12 12:04:26 +01:00
Sylvia van Os
c057e03e97 Merge pull request #1690 from CatimaLoyalty/create-pull-request/patch-1704816632
Update Fastlane changelogs
2024-01-09 21:00:44 +01:00
TheLastProject
372834f60f Update Fastlane changelogs 2024-01-09 16:10:32 +00:00
Sylvia van Os
1265c6d801 Merge pull request #1689 from CatimaLoyalty/feature/1671
Add option to always rotate
2024-01-09 17:10:20 +01:00
Sylvia van Os
2ae0ddd9e7 Add option to always rotate 2024-01-09 17:00:21 +01:00
Sylvia van Os
fba6f3a111 Merge pull request #1687 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-01-08 19:45:22 +01:00
fsbat0
357b005b15 Translated using Weblate (Tigrinya)
Currently translated at 17.7% (53 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ti/
2024-01-08 14:06:20 +00:00
Sylvia van Os
8df25a301b Merge pull request #1685 from CatimaLoyalty/create-pull-request/patch-1704626162
Update locales
2024-01-07 12:36:46 +01:00
TheLastProject
71c7252458 Update locales 2024-01-07 11:16:02 +00:00
Sylvia van Os
41f8fc2094 Merge pull request #1684 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-01-07 12:15:46 +01:00
fsbat0
b5752967a2 Added translation using Weblate (Tigrinya) 2024-01-07 06:45:30 +01:00
Sylvia van Os
5ee14c2fe8 Merge pull request #1682 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-01-06 10:36:22 +01:00
itshog
a34321c680 Translated using Weblate (Italian)
Currently translated at 95.3% (124 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/it/
2024-01-06 07:15:24 +00:00
Sylvia van Os
56ed2f454d Merge pull request #1680 from CatimaLoyalty/dependabot/gradle/com.android.application-8.2.1
Bump com.android.application from 8.2.0 to 8.2.1
2024-01-04 21:06:31 +01:00
dependabot[bot]
40ac0d83c5 Bump com.android.application from 8.2.0 to 8.2.1
Bumps com.android.application from 8.2.0 to 8.2.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-04 02:56:18 +00:00
Sylvia van Os
b8de73b5b3 Merge pull request #1677 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-01-01 13:10:42 +01:00
Сергій
547af33f40 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2024-01-01 12:09:44 +00:00
Sylvia van Os
f1b525396c Merge pull request #1676 from CatimaLoyalty/create-pull-request/patch-1703996032
Update contributors
2023-12-31 13:00:53 +01:00
TheLastProject
50890c4f31 Update contributors 2023-12-31 04:13:52 +00:00
Sylvia van Os
3322133d1e Merge pull request #1673 from CatimaLoyalty/create-pull-request/patch-1703391228
Update contributors
2023-12-26 13:16:13 +01:00
Sylvia van Os
5b6c6b4466 Merge pull request #1674 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-12-25 14:19:58 +01:00
Sylvia van Os
5f2402dd15 Translated using Weblate (Vietnamese)
Currently translated at 1.5% (2 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/vi/
2023-12-24 18:11:50 +01:00
TheLastProject
b34533a92a Update contributors 2023-12-24 04:13:47 +00:00
ngocanhtve
c521fae4ee Translated using Weblate (Vietnamese)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/vi/
2023-12-23 17:09:55 +01:00
ngocanhtve
ce47efecb0 Translated using Weblate (Vietnamese)
Currently translated at 0.7% (1 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/vi/
2023-12-23 17:09:55 +01:00
ngocanhtve
133da20f93 Translated using Weblate (Vietnamese)
Currently translated at 98.3% (294 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/vi/
2023-12-23 17:09:55 +01:00
Sylvia van Os
cee8074232 Merge pull request #1670 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-12-20 18:21:10 +01:00
Wei-Cheng Yeh (IID)
6f78e2b404 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2023-12-20 15:09:33 +01:00
Sylvia van Os
b05b46f10a Merge pull request #1667 from CatimaLoyalty/dependabot/github_actions/actions/upload-artifact-4.0.0
Bump actions/upload-artifact from 3.1.3 to 4.0.0
2023-12-18 22:56:07 +01:00
Sylvia van Os
1188e58fb0 Merge pull request #1669 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-12-18 20:10:45 +01:00
Allan Nordhøy
575150af9e Translated using Weblate (Norwegian Bokmål)
Currently translated at 97.6% (292 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nb_NO/
2023-12-18 04:10:51 +00:00
dependabot[bot]
d82e0bebb6 Bump actions/upload-artifact from 3.1.3 to 4.0.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.3 to 4.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3.1.3...v4.0.0)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 02:38:21 +00:00
Sylvia van Os
72131a6b2d Merge pull request #1666 from CatimaLoyalty/create-pull-request/patch-1702786546
Update contributors
2023-12-17 11:46:31 +01:00
TheLastProject
b89a13ce70 Update contributors 2023-12-17 04:15:45 +00:00
Sylvia van Os
389a53b2cc Merge pull request #1665 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-12-15 19:02:47 +01:00
Sylvia van Os
be0f534f66 Translated using Weblate (Esperanto)
Currently translated at 36.7% (110 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/eo/
2023-12-15 15:11:33 +00:00
ikanakova
36eee3686c Translated using Weblate (Czech)
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/cs/
2023-12-15 15:11:32 +00:00
H Tamás
5c76cb01bf Translated using Weblate (Hungarian)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/hu/
2023-12-15 15:11:32 +00:00
H Tamás
e57cd9eea3 Translated using Weblate (Hungarian)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hu/
2023-12-15 15:11:31 +00:00
xiawu240
e795ec6907 Translated using Weblate (Esperanto)
Currently translated at 36.7% (110 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/eo/
2023-12-15 15:11:30 +00:00
Patricio Carrau
5e69f18b88 Translated using Weblate (Spanish (Argentina))
Currently translated at 66.5% (199 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es_AR/
2023-12-15 15:11:30 +00:00
Sylvia van Os
6bb6d54b6a Merge pull request #1663 from CatimaLoyalty/dependabot/gradle/androidx.exifinterface-exifinterface-1.3.7
Bump androidx.exifinterface:exifinterface from 1.3.6 to 1.3.7
2023-12-14 21:11:31 +01:00
dependabot[bot]
86f049d9a4 Bump androidx.exifinterface:exifinterface from 1.3.6 to 1.3.7
Bumps androidx.exifinterface:exifinterface from 1.3.6 to 1.3.7.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-14 02:11:45 +00:00
Sylvia van Os
5cb02ae0f2 Merge pull request #1661 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-12-12 17:37:50 +01:00
Mitsos Dream
88380878e0 Translated using Weblate (Greek)
Currently translated at 84.6% (253 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/el/
2023-12-12 07:05:58 +00:00
Sylvia van Os
59c7341aad Merge pull request #1659 from CatimaLoyalty/dependabot/github_actions/actions/setup-python-5.0.0
Bump actions/setup-python from 4.7.1 to 5.0.0
2023-12-11 18:48:27 +01:00
dependabot[bot]
e3596adae4 Bump actions/setup-python from 4.7.1 to 5.0.0
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.7.1 to 5.0.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4.7.1...v5.0.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 02:11:54 +00:00
Sylvia van Os
8d697c3414 Merge pull request #1658 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-12-10 12:21:16 +01:00
Giovanni Donisi
c1b0fead33 Translated using Weblate (Italian)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/it/
2023-12-10 05:02:16 +01:00
Sylvia van Os
228b9ecc4d Merge pull request #1655 from CatimaLoyalty/create-pull-request/patch-1701576833
Update contributors
2023-12-03 10:35:37 +01:00
TheLastProject
7c03469e91 Update contributors 2023-12-03 04:13:53 +00:00
Sylvia van Os
c922e0645d Merge pull request #1654 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-12-02 12:13:02 +01:00
bass python
8015cc65b8 Translated using Weblate (Arabic)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ar/
2023-12-02 11:02:43 +00:00
Sylvia van Os
85240fa3d5 Translated using Weblate (Polish)
Currently translated at 80.7% (105 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pl/
2023-12-02 11:02:42 +00:00
bass python
3ed418166d Translated using Weblate (Arabic)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ar/
2023-12-01 10:46:08 +00:00
Sylvia van Os
b4a173d352 Translated using Weblate (Arabic)
Currently translated at 99.6% (298 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ar/
2023-12-01 10:46:08 +00:00
tfuxu
bd57e11f16 Translated using Weblate (Polish)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/pl/
2023-12-01 10:46:07 +00:00
Abdullah Abdullah
d65141ee92 Translated using Weblate (Arabic)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ar/
2023-12-01 10:46:06 +00:00
tfuxu
fc12efff5e Translated using Weblate (Polish)
Currently translated at 80.7% (105 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pl/
2023-12-01 10:46:06 +00:00
Sylvia van Os
bd0879923c Merge pull request #1652 from CatimaLoyalty/dependabot/gradle/com.android.application-8.2.0
Bump com.android.application from 8.1.4 to 8.2.0
2023-12-01 08:26:51 +01:00
dependabot[bot]
d2df924ba5 Bump com.android.application from 8.1.4 to 8.2.0
Bumps com.android.application from 8.1.4 to 8.2.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-01 03:00:22 +00:00
Sylvia van Os
613c92e8c4 Merge pull request #1650 from CatimaLoyalty/create-pull-request/patch-1701325097
Update Gradle to 8.5
2023-11-30 20:54:42 +01:00
TheLastProject
d8429bf305 Update Gradle to 8.5 2023-11-30 06:18:16 +00:00
Sylvia van Os
1c8926887b Put Izzy first 2023-11-29 22:16:18 +01:00
Sylvia van Os
7f03f371e0 Merge pull request #1646 from CatimaLoyalty/create-pull-request/patch-1700972030
Update contributors
2023-11-26 11:03:52 +01:00
TheLastProject
273a39abb7 Update contributors 2023-11-26 04:13:49 +00:00
Sylvia van Os
562b984029 Merge pull request #1645 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-11-25 09:57:10 +01:00
Vinh Le
74e498c5ab Translated using Weblate (Vietnamese)
Currently translated at 95.3% (285 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/vi/
2023-11-25 06:01:14 +01:00
Sylvia van Os
4c825c703b Deleted translation using Weblate (Portuguese) 2023-11-23 18:48:56 +01:00
Sylvia van Os
c54af65033 Deleted translation using Weblate (Portuguese) 2023-11-23 18:48:55 +01:00
Weblate
f80dbe9073 Added translation using Weblate (Portuguese) 2023-11-23 04:45:18 +00:00
Weblate
e9a48dca41 Added translation using Weblate (Portuguese) 2023-11-23 04:45:04 +00:00
Sylvia van Os
157c428919 Translated using Weblate (Hindi)
Currently translated at 79.2% (237 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2023-11-23 04:45:02 +00:00
sravya
a67aec366a Translated using Weblate (Hindi)
Currently translated at 79.2% (237 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2023-11-22 13:02:26 +01:00
Sylvia van Os
ee12482f6e Merge pull request #1642 from obfusk/fix-pt
fixes for pt -> pt-rPT
2023-11-21 17:42:32 +01:00
Sylvia van Os
c2383fbb40 Merge pull request #1641 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-11-21 17:41:57 +01:00
FC (Fay) Stegerman
65ab14897f fixes for pt -> pt-rPT 2023-11-21 17:30:26 +01:00
solokot
87ecb3c1b9 Translated using Weblate (Russian)
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2023-11-21 17:20:57 +01:00
Sylvia van Os
9dfbc92e92 Move pt to pt-rPT to make Weblate happy 2023-11-21 17:18:36 +01:00
Sylvia van Os
c65303b08b Merge pull request #1638 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-11-21 17:12:16 +01:00
Weblate
fd8c960c58 Added translation using Weblate (Portuguese (Portugal)) 2023-11-21 04:45:05 +00:00
Weblate
7511ea0c2d Added translation using Weblate (Portuguese (Portugal)) 2023-11-21 04:45:01 +00:00
AlexTECPlayz
4810a3cee1 Translated using Weblate (Romanian)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/ro/
2023-11-21 01:04:05 +01:00
Matti O
a230d9f877 Translated using Weblate (Finnish)
Currently translated at 99.3% (297 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fi/
2023-11-21 01:04:05 +01:00
AlexTECPlayz
18e699445c Translated using Weblate (Romanian)
Currently translated at 1.5% (2 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ro/
2023-11-21 01:04:05 +01:00
AlexTECPlayz
4a5106c38c Translated using Weblate (Romanian)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ro/
2023-11-21 01:04:05 +01:00
Sylvia van Os
3afde7049e Merge pull request #1637 from CatimaLoyalty/create-pull-request/patch-1700367277
Update contributors
2023-11-19 09:52:32 +01:00
TheLastProject
82a3ae16a6 Update contributors 2023-11-19 04:14:37 +00:00
Sylvia van Os
31995f4b8b Merge pull request #1636 from CatimaLoyalty/dependabot/gradle/com.android.application-8.1.4
Bump com.android.application from 8.1.3 to 8.1.4
2023-11-17 19:49:09 +01:00
dependabot[bot]
b7c444fd8f Bump com.android.application from 8.1.3 to 8.1.4
Bumps com.android.application from 8.1.3 to 8.1.4.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-17 02:14:59 +00:00
Sylvia van Os
58481c842b Merge pull request #1635 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-11-15 17:21:19 +01:00
SC
5847ff4b7c Translated using Weblate (Portuguese)
Currently translated at 99.2% (129 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt/
2023-11-15 13:07:18 +01:00
Sylvia van Os
056c255aa6 Merge pull request #1634 from obfusk/patch-8
generate_feature_graphic.sh: remove redundant "|| exit 1"
2023-11-15 08:17:16 +01:00
FC (Fay) Stegerman
9c99b9d0ad generate_feature_graphic.sh: remove redundant "|| exit 1" 2023-11-14 22:50:08 +00:00
Sylvia van Os
d4a9197e60 Merge pull request #1633 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-11-13 18:21:22 +01:00
Eric
57d7176ac9 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2023-11-13 14:05:09 +01:00
Sylvia van Os
029fa9b5e8 Merge pull request #1632 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-11-12 13:22:12 +01:00
Denis Shilin
c38a89b48f Translated using Weblate (Russian)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/ru/
2023-11-12 11:03:13 +01:00
Sylvia van Os
21958442bb Merge pull request #1631 from CatimaLoyalty/create-pull-request/patch-1699762504
Update contributors
2023-11-12 10:23:23 +01:00
TheLastProject
f92ae736b4 Update contributors 2023-11-12 04:15:04 +00:00
Sylvia van Os
548714f778 Merge pull request #1630 from CatimaLoyalty/create-pull-request/patch-1699698892
Update Fastlane changelogs
2023-11-11 11:35:16 +01:00
TheLastProject
1d61a7c0eb Update Fastlane changelogs 2023-11-11 10:34:52 +00:00
Sylvia van Os
6c5a06ce5b Update CHANGELOG 2023-11-11 11:34:37 +01:00
Sylvia van Os
1d4e47b832 Merge pull request #1588 from theimpulson/materialDatePicker
LoyaltCardEditActivity: Migrate to materialdatepicker dialog
2023-11-11 11:32:13 +01:00
Sylvia van Os
cd9ef1c231 Fix build 2023-11-11 11:03:00 +01:00
Sylvia van Os
a1011e0668 Support translating Catima app name in feature graphic (#1623)
* Support translating Catima app name in feature graphic

Co-authored-by: FC (Fay) Stegerman <flx@obfusk.net>
2023-11-11 10:44:31 +01:00
Sylvia van Os
9e7d51c36b Merge pull request #1627 from CatimaLoyalty/dependabot/gradle/com.android.application-8.1.3
Bump com.android.application from 8.1.2 to 8.1.3
2023-11-08 17:08:29 +01:00
Sylvia van Os
0e826a654b Merge pull request #1628 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-11-08 17:07:30 +01:00
Claus Kruse
40778dd494 Translated using Weblate (Danish)
Currently translated at 36.1% (108 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/da/
2023-11-08 10:34:16 +00:00
dependabot[bot]
d7b983f1ca Bump com.android.application from 8.1.2 to 8.1.3
Bumps com.android.application from 8.1.2 to 8.1.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-08 02:42:14 +00:00
Sylvia van Os
206f6385ae Merge pull request #1621 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-11-06 21:48:46 +01:00
Oğuz Ersen
18cba2d702 Translated using Weblate (Turkish)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/tr/
2023-11-06 20:34:50 +01:00
Sylvia van Os
847850eeff Merge pull request #1619 from CatimaLoyalty/create-pull-request/patch-1699157613
Update contributors
2023-11-05 09:32:15 +01:00
TheLastProject
107bf5a0f5 Update contributors 2023-11-05 04:13:32 +00:00
Sylvia van Os
d3edde4a43 Merge pull request #1617 from CatimaLoyalty/dependabot/gradle/com.android.tools-desugar_jdk_libs-2.0.4
Bump com.android.tools:desugar_jdk_libs from 2.0.3 to 2.0.4
2023-11-04 11:24:52 +01:00
Sylvia van Os
963f42628f Merge pull request #1618 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-11-04 00:00:20 +01:00
Rohan H
7d83cf1dfd Translated using Weblate (Marathi)
Currently translated at 40.8% (122 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/mr/
2023-11-03 05:04:02 +00:00
ikanakova
5bb2df98cd Translated using Weblate (Czech)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/cs/
2023-11-03 05:04:01 +00:00
dependabot[bot]
2796a15353 Bump com.android.tools:desugar_jdk_libs from 2.0.3 to 2.0.4
Bumps [com.android.tools:desugar_jdk_libs](https://github.com/google/desugar_jdk_libs) from 2.0.3 to 2.0.4.
- [Changelog](https://github.com/google/desugar_jdk_libs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/google/desugar_jdk_libs/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-03 02:10:05 +00:00
Aayush Gupta
55595159be LoyaltyCardEditActivity: Handle configuration changes for MaterialDatePicker
MaterialDatePicker is final and thus cannot be extended to handle loss of callback
on configuration changes. We aren't using ViewModel as well that would help us to persist
changes till lifecycle.

Fallback to how DatePicker was handling this situation with a couple of more hacks.

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-02 14:20:54 +05:30
Aayush Gupta
5cab0e3932 LoyaltyCardViewActivityTest: Update test to handle MaterialDatePicker migration
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-02 11:39:44 +05:30
Aayush Gupta
4d6c08fc73 LoyaltCardEditActivity: Migrate to materialdatepicker dialog
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-02 11:39:44 +05:30
Sylvia van Os
0c147830ee Merge pull request #1616 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-11-01 20:58:10 +01:00
Sylvia van Os
b5a3a4c735 Merge pull request #1615 from CatimaLoyalty/dependabot/gradle/org.robolectric-robolectric-4.11.1
Bump org.robolectric:robolectric from 4.11 to 4.11.1
2023-11-01 20:57:54 +01:00
gemamur
f867e8cb93 Translated using Weblate (Spanish)
Currently translated at 47.6% (62 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/es/
2023-11-01 13:05:06 +01:00
dependabot[bot]
524af89c96 Bump org.robolectric:robolectric from 4.11 to 4.11.1
Bumps [org.robolectric:robolectric](https://github.com/robolectric/robolectric) from 4.11 to 4.11.1.
- [Release notes](https://github.com/robolectric/robolectric/releases)
- [Commits](https://github.com/robolectric/robolectric/compare/robolectric-4.11...robolectric-4.11.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-01 02:46:07 +00:00
Sylvia van Os
3df4d4783f Merge pull request #1613 from CatimaLoyalty/dependabot/gradle/org.robolectric-robolectric-4.11
Bump org.robolectric:robolectric from 4.10.3 to 4.11
2023-10-31 18:27:42 +01:00
Sylvia van Os
d0e7187273 Merge pull request #1614 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-31 17:52:22 +01:00
Brian Bentancour
7819460377 Translated using Weblate (Spanish (Argentina))
Currently translated at 66.2% (198 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es_AR/
2023-10-30 06:49:13 +01:00
dependabot[bot]
4396214e7a Bump org.robolectric:robolectric from 4.10.3 to 4.11
Bumps [org.robolectric:robolectric](https://github.com/robolectric/robolectric) from 4.10.3 to 4.11.
- [Release notes](https://github.com/robolectric/robolectric/releases)
- [Commits](https://github.com/robolectric/robolectric/compare/robolectric-4.10.3...robolectric-4.11)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 02:47:44 +00:00
Sylvia van Os
697c6f3f39 Merge pull request #1611 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-29 10:20:22 +01:00
Sylvia van Os
0239e5a89e Merge pull request #1610 from CatimaLoyalty/create-pull-request/patch-1698552879
Update contributors
2023-10-29 09:53:19 +01:00
Neha Reddy
532fae7de5 Translated using Weblate (Kannada)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/kn/
2023-10-29 05:20:08 +00:00
Neha Reddy
135c4498d8 Translated using Weblate (Kannada)
Currently translated at 15.3% (20 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/kn/
2023-10-29 05:20:07 +00:00
OMCM753
7f0e5d9c59 Translated using Weblate (Spanish)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es/
2023-10-29 05:20:05 +00:00
TheLastProject
cf4eeafce0 Update contributors 2023-10-29 04:14:38 +00:00
Sylvia van Os
8597580d93 Merge pull request #1608 from CatimaLoyalty/create-pull-request/patch-1698425469
Update locales
2023-10-27 18:54:07 +02:00
TheLastProject
e3643328f0 Update locales 2023-10-27 16:51:09 +00:00
Sylvia van Os
e76c8219bb Merge pull request #1607 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-27 18:50:53 +02:00
Rohan H
650ad23e59 Translated using Weblate (Marathi)
Currently translated at 37.1% (111 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/mr/
2023-10-27 09:10:00 +00:00
OMCM753
abc66a0c08 Translated using Weblate (Spanish)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/es/
2023-10-27 09:10:00 +00:00
Abhishek Tiwari
701e1ee5fa Translated using Weblate (Hindi)
Currently translated at 28.4% (37 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hi/
2023-10-27 09:09:59 +00:00
pro maxime
8031a02003 Translated using Weblate (Arabic)
Currently translated at 99.3% (297 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ar/
2023-10-27 09:09:57 +00:00
OMCM753
f383758c7d Translated using Weblate (Spanish)
Currently translated at 47.6% (62 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/es/
2023-10-27 09:09:57 +00:00
Sylvia van Os
eeb7eddff2 Merge pull request #1606 from CatimaLoyalty/create-pull-request/patch-1698163549
Update feature graphic
2023-10-24 18:06:11 +02:00
Sylvia van Os
1df27e2d4a Merge pull request #1603 from obfusk/new-locales
add workflow to add new locales
2023-10-24 18:05:50 +02:00
TheLastProject
66ffe63a62 Update feature graphic 2023-10-24 16:05:48 +00:00
Sylvia van Os
a963ed20d3 Merge pull request #1605 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-24 18:03:46 +02:00
Camila
c057e7a420 Translated using Weblate (Portuguese)
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt/
2023-10-24 15:03:53 +02:00
FC (Fay) Stegerman
10bab6349a update-locales workflow: also add new locales 2023-10-23 21:03:57 +02:00
Sylvia van Os
e89b612c93 Merge pull request #1602 from CatimaLoyalty/dependabot/github_actions/actions/checkout-4.1.1
Bump actions/checkout from 4.1.0 to 4.1.1
2023-10-23 19:01:41 +02:00
Sylvia van Os
2d99c61d78 Merge pull request #1604 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-23 18:54:49 +02:00
Rohan H
ed2a816656 Translated using Weblate (Marathi)
Currently translated at 32.1% (96 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/mr/
2023-10-23 11:02:12 +00:00
Muhammad Khuirul Huda
a73064ae46 Translated using Weblate (Indonesian)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/id/
2023-10-23 11:02:11 +00:00
Fqwe1
b07ac08b69 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/uk/
2023-10-23 11:02:10 +00:00
Mattia Beccari
c5793caaf3 Translated using Weblate (Italian)
Currently translated at 95.3% (124 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/it/
2023-10-23 11:02:10 +00:00
Fqwe1
22fadb1b15 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2023-10-23 11:02:08 +00:00
dependabot[bot]
5cd2cbb1a2 Bump actions/checkout from 4.1.0 to 4.1.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 02:56:04 +00:00
Sylvia van Os
20ec9f5cc3 Merge pull request #1600 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-22 12:19:45 +02:00
Sylvia van Os
93db0669ff Merge pull request #1599 from CatimaLoyalty/create-pull-request/patch-1697948014
Update contributors
2023-10-22 11:48:04 +02:00
Weblate
7c2eebb20c Added translation using Weblate (Marathi) 2023-10-22 06:28:08 +00:00
Ankur Dahiya
e76a63c34b Translated using Weblate (Hindi)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/hi/
2023-10-22 06:28:04 +00:00
olgacveysel
80cab9ba59 Translated using Weblate (Turkish)
Currently translated at 0.0% (0 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/tr/
2023-10-22 06:28:04 +00:00
Ankur Dahiya
c26ddd9342 Translated using Weblate (Hindi)
Currently translated at 79.2% (237 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2023-10-22 06:28:03 +00:00
olgacveysel
78ec649af3 Translated using Weblate (Turkish)
Currently translated at 96.9% (290 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/tr/
2023-10-22 06:28:02 +00:00
Rohan H
1ae61cc0b7 Added translation using Weblate (Marathi) 2023-10-22 06:28:02 +00:00
TheLastProject
5616158ff7 Update contributors 2023-10-22 04:13:34 +00:00
Sylvia van Os
554a60cf95 Merge pull request #1598 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-21 09:58:21 +02:00
Kim Seohyun
737a6272a9 Translated using Weblate (Korean)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/ko/
2023-10-21 06:03:42 +02:00
109247019824
dc7f3573fe Translated using Weblate (Bulgarian)
Currently translated at 38.4% (50 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/bg/
2023-10-21 06:03:42 +02:00
Kim Seohyun
4003faa17f Translated using Weblate (Korean)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ko/
2023-10-21 06:03:41 +02:00
Bernardino
4aecb05e17 Translated using Weblate (Italian)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2023-10-21 06:03:41 +02:00
Sylvia van Os
f58eafd2b6 Merge pull request #1597 from CatimaLoyalty/create-pull-request/patch-1697710291
Update feature graphic
2023-10-19 12:22:15 +02:00
TheLastProject
1061bc691a Update feature graphic 2023-10-19 10:11:31 +00:00
Sylvia van Os
734813c29e Merge pull request #1596 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-19 12:09:49 +02:00
Eric
2cdd0f6678 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/zh_Hans/
2023-10-19 06:06:58 +02:00
Kim Seohyun
c65b30189f Translated using Weblate (Korean)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/ko/
2023-10-19 06:06:58 +02:00
Milo Ivir
93db35396a Translated using Weblate (Croatian)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/hr/
2023-10-19 06:06:58 +02:00
Milo Ivir
3d6cf5883e Translated using Weblate (Croatian)
Currently translated at 2.3% (3 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hr/
2023-10-19 06:06:58 +02:00
Milo Ivir
3c316d1878 Translated using Weblate (Croatian)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hr/
2023-10-19 06:06:58 +02:00
109247019824
be6d3a460d Translated using Weblate (Bulgarian)
Currently translated at 26.9% (35 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/bg/
2023-10-19 06:06:58 +02:00
Kim Seohyun
feb93ccb48 Translated using Weblate (Korean)
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ko/
2023-10-19 06:06:58 +02:00
Kim Seohyun
6ad0dd1f24 Translated using Weblate (Korean)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ko/
2023-10-19 06:06:58 +02:00
Sylvia van Os
1c936b4b2e Merge pull request #1594 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-17 21:01:24 +02:00
Weblate
3c201a9c29 Added translation using Weblate (Hebrew (Israel)) 2023-10-17 04:04:53 +00:00
Weblate
5ccdc349ff Added translation using Weblate (Chinese (Simplified)) 2023-10-17 04:04:52 +00:00
Weblate
a842f01e32 Added translation using Weblate (Chinese (Traditional)) 2023-10-17 04:04:13 +00:00
Weblate
b3b5960725 Added translation using Weblate (Spanish (Argentina)) 2023-10-17 04:04:11 +00:00
Weblate
781318397c Added translation using Weblate (Slovenian) 2023-10-17 04:04:07 +00:00
Weblate
e7e5cdac22 Added translation using Weblate (Kannada) 2023-10-17 04:04:06 +00:00
Weblate
11bce01405 Added translation using Weblate (Korean) 2023-10-17 04:04:05 +00:00
Weblate
ed84b0fcb9 Added translation using Weblate (Finnish) 2023-10-17 04:04:04 +00:00
Weblate
7f82bc9822 Added translation using Weblate (Swedish) 2023-10-17 04:04:02 +00:00
Weblate
2d40ac0111 Added translation using Weblate (Spanish) 2023-10-17 04:04:01 +00:00
Weblate
81ffee2e3b Added translation using Weblate (Bengali (India)) 2023-10-17 04:04:00 +00:00
Weblate
133e1695f6 Added translation using Weblate (Indonesian) 2023-10-17 04:03:59 +00:00
Weblate
78a8a65ae2 Added translation using Weblate (Arabic) 2023-10-17 04:03:57 +00:00
Weblate
8e28b43ecb Added translation using Weblate (Italian) 2023-10-17 04:03:56 +00:00
Weblate
20062db01e Added translation using Weblate (Polish) 2023-10-17 04:03:55 +00:00
Weblate
42e5a15455 Added translation using Weblate (Malayalam) 2023-10-17 04:03:54 +00:00
Weblate
e61c20c66f Added translation using Weblate (Hindi) 2023-10-17 04:03:53 +00:00
Weblate
8e4ca5fa78 Added translation using Weblate (Hungarian) 2023-10-17 04:03:52 +00:00
Weblate
8e08e863d2 Added translation using Weblate (Croatian) 2023-10-17 04:03:51 +00:00
Weblate
6ad16c4e86 Added translation using Weblate (Icelandic) 2023-10-17 04:03:50 +00:00
Weblate
42fa077099 Added translation using Weblate (Vietnamese) 2023-10-17 04:03:49 +00:00
Weblate
079d16020a Added translation using Weblate (Czech) 2023-10-17 04:03:49 +00:00
Weblate
fab6a42069 Added translation using Weblate (Welsh) 2023-10-17 04:03:28 +00:00
Weblate
c461ce133e Added translation using Weblate (Catalan) 2023-10-17 04:03:17 +00:00
Weblate
d8f3e1f1ef Added translation using Weblate (Occitan) 2023-10-17 04:02:55 +00:00
Weblate
107b576db1 Added translation using Weblate (Japanese) 2023-10-17 04:02:37 +00:00
Weblate
e553d50cb7 Added translation using Weblate (Bosnian) 2023-10-17 04:02:34 +00:00
Weblate
ff83a4a4f3 Added translation using Weblate (Asturian) 2023-10-17 04:02:04 +00:00
Weblate
58ad83caef Added translation using Weblate (Ukrainian) 2023-10-17 04:01:56 +00:00
Weblate
380d961ea4 Added translation using Weblate (Bulgarian) 2023-10-17 04:01:39 +00:00
Weblate
ca4a336b6a Added translation using Weblate (Bengali) 2023-10-17 04:01:37 +00:00
Weblate
5205a69041 Added translation using Weblate (Romanian) 2023-10-17 04:01:36 +00:00
Weblate
013f3d2d4c Added translation using Weblate (Russian) 2023-10-17 04:01:35 +00:00
Weblate
ca3f7a7c28 Added translation using Weblate (Esperanto) 2023-10-17 04:01:34 +00:00
Weblate
b9813c9ccb Added translation using Weblate (Greek) 2023-10-17 04:01:33 +00:00
Weblate
7255571f36 Added translation using Weblate (Danish) 2023-10-17 04:01:27 +00:00
Weblate
a9e6e9d75c Added translation using Weblate (German) 2023-10-17 04:01:16 +00:00
Weblate
4bcdbc62c6 Added translation using Weblate (Lithuanian) 2023-10-17 04:01:14 +00:00
Weblate
c91e92b80b Added translation using Weblate (Latvian) 2023-10-17 04:01:12 +00:00
Weblate
ca2f2c349e Added translation using Weblate (Turkish) 2023-10-17 04:01:11 +00:00
Weblate
420179458d Added translation using Weblate (Luxembourgish) 2023-10-17 06:01:10 +02:00
109247019824
20ffc23487 Translated using Weblate (Bulgarian)
Currently translated at 22.3% (29 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/bg/
2023-10-17 06:01:10 +02:00
Sylvia van Os
8de5646d07 Merge pull request #1590 from CatimaLoyalty/dependabot/github_actions/TheLastProject/contributors-to-file-action-3.0.2
Bump TheLastProject/contributors-to-file-action from 3.0.1 to 3.0.2
2023-10-16 10:44:50 +02:00
Sylvia van Os
16dbe1572a Merge pull request #1593 from CatimaLoyalty/create-pull-request/patch-1697444721
Update feature graphic
2023-10-16 10:44:29 +02:00
TheLastProject
18f68cdb24 Update feature graphic 2023-10-16 08:25:20 +00:00
Sylvia van Os
147cf544a3 Merge pull request #1592 from CatimaLoyalty/manual_weblate_update
Manual weblate update
2023-10-16 10:23:47 +02:00
Sylvia van Os
a4763d8ed0 Remove translations failing checks 2023-10-16 10:15:36 +02:00
Hosted Weblate
382d86dce6 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/
2023-10-16 10:04:29 +02:00
Camila
2a2d05dd01 Translated using Weblate (Portuguese)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/pt/
2023-10-16 10:04:29 +02:00
Alyona Akshyata Mohanta
09e6617808 Translated using Weblate (Bengali)
Currently translated at 38.6% (117 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bn/
2023-10-16 10:04:27 +02:00
depimomo
f9190ed915 Translated using Weblate (Indonesian)
Currently translated at 96.9% (126 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/id/
2023-10-16 10:00:10 +02:00
Muhammad Khuirul Huda
ea7ca81f1c Translated using Weblate (Indonesian)
Currently translated at 100.0% (303 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/id/
2023-10-16 10:00:10 +02:00
Camila
68e5c36909 Translated using Weblate (Portuguese)
Currently translated at 100.0% (303 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt/
2023-10-16 10:00:10 +02:00
evelinabe
4e167c79c1 Translated using Weblate (Swedish)
Currently translated at 97.3% (295 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sv/
2023-10-16 10:00:10 +02:00
Francisco J. Martín Fernández
9361487af7 Translated using Weblate (Spanish)
Currently translated at 28.4% (37 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/es/
2023-10-16 10:00:10 +02:00
Kate O
c80107b870 Translated using Weblate (Polish)
Currently translated at 80.7% (105 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pl/
2023-10-16 10:00:10 +02:00
Alex Tan
52a1cc6549 Translated using Weblate (Japanese)
Currently translated at 73.9% (224 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ja/
2023-10-16 10:00:10 +02:00
Kate O
5f34d54b42 Translated using Weblate (Polish)
Currently translated at 100.0% (303 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pl/
2023-10-16 10:00:10 +02:00
Virginie
ec4265504b Translated using Weblate (French)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/fr/
2023-10-16 10:00:10 +02:00
Camila
3f2b140d1f Translated using Weblate (Portuguese)
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt/
2023-10-16 10:00:10 +02:00
Sylvia van Os
4af3695301 Added translation using Weblate (Portuguese) 2023-10-16 10:00:10 +02:00
dependabot[bot]
f5368a4aab Bump TheLastProject/contributors-to-file-action from 3.0.1 to 3.0.2
Bumps [TheLastProject/contributors-to-file-action](https://github.com/thelastproject/contributors-to-file-action) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/thelastproject/contributors-to-file-action/releases)
- [Commits](https://github.com/thelastproject/contributors-to-file-action/compare/v3.0.1...v3.0.2)

---
updated-dependencies:
- dependency-name: TheLastProject/contributors-to-file-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 02:36:13 +00:00
Sylvia van Os
f5059b95d3 Merge pull request #1589 from CatimaLoyalty/removeCopyCardIDs
Remove copy card IDs
2023-10-15 23:57:26 +02:00
Sylvia van Os
85fa0afaa8 Remove copy card IDs 2023-10-15 19:03:33 +02:00
Sylvia van Os
3bcccba6d4 Merge pull request #1587 from CatimaLoyalty/create-pull-request/patch-1697343252
Update contributors
2023-10-15 12:05:54 +02:00
Sylvia van Os
188c2e25a2 Merge pull request #1559 from obfusk/getwindow-null
add null checks for getWindow()
2023-10-15 12:05:15 +02:00
TheLastProject
162622631f Update contributors 2023-10-15 04:14:11 +00:00
FC (Fay) Stegerman
946a426b32 add null checks for getWindow() 2023-10-15 02:55:39 +02:00
Sylvia van Os
354a0f7fc0 Merge pull request #1581 from CatimaLoyalty/feature/updateScreenshots
Update screenshots
2023-10-14 13:13:10 +02:00
Sylvia van Os
6015a944ff Merge pull request #1584 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-14 11:52:41 +02:00
Sylvia van Os
e30320603a Delete broken translation 2023-10-14 11:38:23 +02:00
Muhammad Khuirul Huda
acd644025e Translated using Weblate (Indonesian)
Currently translated at 93.8% (122 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/id/
2023-10-14 11:17:13 +02:00
Muhammad Khuirul Huda
b3e26f532d Translated using Weblate (Indonesian)
Currently translated at 96.0% (291 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/id/
2023-10-14 11:17:12 +02:00
109247019824
3a64b4652f Translated using Weblate (Bulgarian)
Currently translated at 19.2% (25 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/bg/
2023-10-14 11:17:12 +02:00
Virginie
56f691ca53 Translated using Weblate (French)
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/fr/
2023-10-14 11:17:12 +02:00
Sylvia van Os
57c770c9ba Translated using Weblate (Romanian)
Currently translated at 44.2% (134 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ro/
2023-10-14 11:17:10 +02:00
yourfav-raphi
53c3c85e57 Translated using Weblate (German)
Currently translated at 100.0% (303 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2023-10-14 11:17:10 +02:00
Virginie
9a02d1bfbc Added translation using Weblate (French) 2023-10-14 11:17:09 +02:00
Virginie
ffbb138986 Translated using Weblate (French)
Currently translated at 99.2% (129 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/fr/
2023-10-13 10:36:07 +02:00
MUNTEANU ROVELIU
181e9f082c Translated using Weblate (Romanian)
Currently translated at 44.2% (134 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ro/
2023-10-13 10:36:07 +02:00
Virginie
912a4cb955 Translated using Weblate (French)
Currently translated at 100.0% (303 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fr/
2023-10-13 10:36:07 +02:00
Milton Castro
50a1e77500 Translated using Weblate (Spanish)
Currently translated at 100.0% (303 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es/
2023-10-13 10:36:07 +02:00
Sylvia van Os
aef32d2b95 Merge pull request #1580 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-12 13:50:21 +02:00
Sylvia van Os
d091ccb593 Update screenshots 2023-10-12 13:23:46 +02:00
Robin Liu
6fbbae9f0a Translated using Weblate (Chinese (Traditional))
Currently translated at 98.0% (297 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2023-10-12 12:56:55 +02:00
Robin Liu
176aa3880e Translated using Weblate (Chinese (Traditional))
Currently translated at 97.6% (296 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2023-10-12 12:54:36 +02:00
Robin Liu
fcf64c86a6 Translated using Weblate (Chinese (Traditional))
Currently translated at 93.7% (284 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2023-10-12 12:46:40 +02:00
Robin Liu
b5f6742b12 Translated using Weblate (Chinese (Traditional))
Currently translated at 92.4% (280 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2023-10-12 12:42:32 +02:00
Allan Nordhøy
26ae92dc84 Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.6% (293 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nb_NO/
2023-10-12 12:38:30 +02:00
Allan Nordhøy
c65cdc93a7 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/nb_NO/
2023-10-12 12:30:51 +02:00
Robin Liu
bd85590d39 Translated using Weblate (Chinese (Traditional))
Currently translated at 92.0% (279 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2023-10-12 12:30:51 +02:00
Allan Nordhøy
e3942b1737 Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.0% (291 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nb_NO/
2023-10-12 12:30:51 +02:00
Allan Nordhøy
2dc7fd9a45 Added translation using Weblate (Norwegian Bokmål) 2023-10-12 12:29:23 +02:00
Robin Liu
2b7f8b6bf7 Translated using Weblate (Chinese (Traditional))
Currently translated at 91.7% (278 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2023-10-12 10:24:15 +00:00
Sylvia van Os
db0619718c Merge pull request #1579 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-12 12:08:46 +02:00
Sylvia van Os
dd19ea6322 Translated using Weblate (Slovak)
Currently translated at 99.2% (129 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sk/
2023-10-12 11:59:41 +02:00
Milan Šalka
5d656f9681 Translated using Weblate (Slovak)
Currently translated at 99.2% (129 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sk/
2023-10-12 11:56:13 +02:00
109247019824
c2c50664ea Translated using Weblate (Bulgarian)
Currently translated at 10.7% (14 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/bg/
2023-10-12 11:53:20 +02:00
Sylvia van Os
058eb7dd8b Translated using Weblate (Slovak)
Currently translated at 99.2% (129 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sk/
2023-10-12 11:50:26 +02:00
Milan Šalka
7a381f3683 Translated using Weblate (Slovak)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/sk/
2023-10-12 11:16:25 +02:00
Milan Šalka
96b6ca4b3b Translated using Weblate (Slovak)
Currently translated at 99.2% (129 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sk/
2023-10-12 11:13:50 +02:00
Milan Šalka
21815db47d Translated using Weblate (Slovak)
Currently translated at 100.0% (303 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sk/
2023-10-12 11:13:50 +02:00
Milan Šalka
72f62b9211 Added translation using Weblate (Slovak) 2023-10-12 11:13:50 +02:00
Sylvia van Os
0e61a4584e Merge pull request #1576 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-12 10:46:09 +02:00
Heimen Stoffels
ca0ad17e8e Translated using Weblate (Dutch)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/nl/
2023-10-12 08:39:38 +00:00
Heimen Stoffels
20c4e03343 Translated using Weblate (Dutch)
Currently translated at 100.0% (303 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2023-10-12 08:39:37 +00:00
Sylvia van Os
4ec4d8a3a6 Translated using Weblate (Dutch)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/nl/
2023-10-12 08:39:37 +00:00
Anuj Kumar
34d1e94ba4 Translated using Weblate (Hindi)
Currently translated at 66.0% (200 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2023-10-12 08:39:36 +00:00
Eric
3ff6a2c269 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (303 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hans/
2023-10-12 08:39:35 +00:00
solokot
2327c0a940 Translated using Weblate (Russian)
Currently translated at 100.0% (303 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2023-10-12 08:39:35 +00:00
Sylvia van Os
520629c075 Merge pull request #1572 from CatimaLoyalty/fix/newNavigationBarButtonColors
Fix navigation bar button colors
2023-10-12 10:39:12 +02:00
Sylvia van Os
48446cdac6 Merge pull request #1573 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-12 00:05:56 +02:00
Sylvia van Os
0e61908265 Added translation using Weblate (Dutch) 2023-10-11 23:45:14 +02:00
109247019824
ead67942f1 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (303 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bg/
2023-10-11 23:44:18 +02:00
Slávek Banko
43f36a1c99 Translated using Weblate (Czech)
Currently translated at 100.0% (303 of 303 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/cs/
2023-10-11 23:44:17 +02:00
Sylvia van Os
bd7de108b5 Merge pull request #1571 from CatimaLoyalty/fix/appTitleTranslatable
Make app title translatable
2023-10-11 23:13:20 +02:00
Sylvia van Os
ef9a490d0b Make app title translatable 2023-10-11 22:57:29 +02:00
Sylvia van Os
4c26434f41 Fix navigation bar button colors 2023-10-11 21:23:54 +02:00
Sylvia van Os
ffd2eccdbe Merge pull request #1570 from CatimaLoyalty/create-pull-request/patch-1696959980
Update locales
2023-10-10 19:55:15 +02:00
TheLastProject
214ec7d7fb Update locales 2023-10-10 17:46:20 +00:00
Sylvia van Os
269e0a1c2a Merge pull request #1569 from obfusk/add-locales
add locales: vi (enabled), kn (disabled), ml (disabled)
2023-10-10 19:45:59 +02:00
FC (Fay) Stegerman
21c9a63819 add locales: vi (enabled), kn (disabled), ml (disabled) 2023-10-09 23:43:26 +02:00
Sylvia van Os
0121541a9a Merge pull request #1567 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-09 23:24:30 +02:00
Sylvia van Os
48be5390ec Merge pull request #1568 from obfusk/gradle-update-update
update obfusk/gradle-update-action to v2.0.0 & use outputs.version
2023-10-09 23:23:35 +02:00
FC (Fay) Stegerman
ca62ce8bcd update obfusk/gradle-update-action to v2.0.0 & use outputs.version 2023-10-09 22:36:31 +02:00
Yogesh
4ab6d0c5ab Translated using Weblate (Kannada)
Currently translated at 19.8% (60 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/kn/
2023-10-09 16:02:37 +02:00
Sylvia van Os
0c12533a8e Merge pull request #1563 from obfusk/gradle-update
CI: add workflow to update gradle
2023-10-09 09:49:49 +02:00
Sylvia van Os
b983498bbc Merge pull request #1564 from CatimaLoyalty/dependabot/gradle/com.github.spotbugs-5.1.4
Bump com.github.spotbugs from 5.1.3 to 5.1.4
2023-10-09 09:39:22 +02:00
Sylvia van Os
54871a1479 Merge pull request #1565 from CatimaLoyalty/dependabot/github_actions/actions/setup-python-4.7.1
Bump actions/setup-python from 4.7.0 to 4.7.1
2023-10-09 09:39:00 +02:00
dependabot[bot]
5fb911b884 Bump actions/setup-python from 4.7.0 to 4.7.1
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.7.0 to 4.7.1.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4.7.0...v4.7.1)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 02:35:22 +00:00
dependabot[bot]
8f05433ba3 Bump com.github.spotbugs from 5.1.3 to 5.1.4
Bumps com.github.spotbugs from 5.1.3 to 5.1.4.

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 02:08:02 +00:00
FC (Fay) Stegerman
55b5285e62 CI: add workflow to update gradle 2023-10-09 02:22:18 +02:00
Sylvia van Os
4a920e3f83 Merge pull request #1554 from theimpulson/kotlinDSL
Migrate to Kotlin DSL
2023-10-08 16:53:50 +02:00
Sylvia van Os
1979006f2c Merge pull request #1562 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-08 16:02:45 +02:00
Govind S Nair
a2ac7f7c41 Translated using Weblate (Hindi)
Currently translated at 64.5% (195 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2023-10-08 13:09:48 +00:00
redha salah
533930771b Translated using Weblate (Arabic)
Currently translated at 97.3% (294 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ar/
2023-10-08 13:09:47 +00:00
Balázs Meskó
4beceeebf2 Translated using Weblate (Hungarian)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hu/
2023-10-08 13:09:46 +00:00
Yogesh
f17f788d0b Added translation using Weblate (Kannada) 2023-10-08 13:09:45 +00:00
Sylvia van Os
f6c82035f8 Merge pull request #1561 from theimpulson/gradleUpdate
Bump to latest stable Gradle version
2023-10-08 13:39:33 +02:00
Sylvia van Os
fe9fbbfd57 Merge pull request #1560 from CatimaLoyalty/create-pull-request/patch-1696738468
Update contributors
2023-10-08 11:25:29 +02:00
Aayush Gupta
e2cce91360 Bump to latest stable Gradle version
* Enforce sha256Sum verification (https://gradle.org/release-checksums/)
*  Run ./gradlew wrapper as well

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-10-08 11:22:22 +05:30
Aayush Gupta
9981a64bcd gradle.properties: Sync with official template
* Specify JVM memory to avoid OOM errors
* Drop nonTransitiveRClass and nonFinalResIds as they are true by default

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-10-08 11:17:59 +05:30
Aayush Gupta
757a942ecf Migrate to Kotlin DSL
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-10-08 11:17:52 +05:30
TheLastProject
6954090744 Update contributors 2023-10-08 04:14:28 +00:00
Sylvia van Os
24e18473bd Merge pull request #1558 from CatimaLoyalty/updateDonateLink
Update donate link
2023-10-08 00:29:30 +02:00
Sylvia van Os
207e83a582 Update donate link 2023-10-07 23:52:46 +02:00
Sylvia van Os
6ad1d9497c Merge pull request #1557 from CatimaLoyalty/create-pull-request/patch-1696678504
Update feature graphic
2023-10-07 13:38:58 +02:00
TheLastProject
f728866645 Update feature graphic 2023-10-07 11:35:04 +00:00
Sylvia van Os
f6f904ae39 Merge pull request #1556 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-07 13:33:35 +02:00
Eric
4160909a32 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2023-10-07 10:14:12 +02:00
Milan Šalka
c990e40d0c Translated using Weblate (Slovak)
Currently translated at 99.2% (129 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sk/
2023-10-07 10:14:12 +02:00
Max
d4e0b6d3cf Translated using Weblate (Polish)
Currently translated at 51.5% (67 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pl/
2023-10-07 10:14:12 +02:00
Slávek Banko
0197ae2f58 Translated using Weblate (Czech)
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/cs/
2023-10-07 10:14:12 +02:00
Skrripy
dcb94f242f Translated using Weblate (Ukrainian)
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2023-10-07 10:14:12 +02:00
solokot
ab66304c72 Translated using Weblate (Russian)
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2023-10-07 10:14:12 +02:00
Michael Gangolf
ee7d9e2405 Translated using Weblate (German)
Currently translated at 92.3% (120 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2023-10-07 10:14:12 +02:00
Sylvia van Os
146a4676d5 Merge pull request #1552 from CatimaLoyalty/create-pull-request/patch-1696511388
Update feature graphic
2023-10-05 15:35:09 +02:00
TheLastProject
27da7913cb Update feature graphic 2023-10-05 13:09:48 +00:00
Sylvia van Os
cb1cf607f5 Merge pull request #1551 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-05 15:08:13 +02:00
Sylvia van Os
acf94600f8 Delete garbage translations that would crash the app 2023-10-05 15:00:55 +02:00
Đăng Tú
a41124cc7b Translated using Weblate (Vietnamese)
Currently translated at 95.3% (288 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/vi/
2023-10-05 12:13:16 +00:00
Govind S Nair
0d0564b295 Translated using Weblate (Malayalam)
Currently translated at 26.4% (80 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ml/
2023-10-05 12:13:15 +00:00
Mohit ahlawat
ba7a849c18 Translated using Weblate (Hindi)
Currently translated at 5.3% (7 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hi/
2023-10-05 12:13:15 +00:00
Govind S Nair
b3b347cd9b Translated using Weblate (Hindi)
Currently translated at 61.2% (185 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2023-10-05 12:13:14 +00:00
Abdullah khan
2efdb5b9bb Translated using Weblate (Hindi)
Currently translated at 61.2% (185 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2023-10-05 12:13:13 +00:00
Milo Ivir
c7961feb27 Translated using Weblate (Croatian)
Currently translated at 2.3% (3 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hr/
2023-10-05 12:13:12 +00:00
Milo Ivir
43c092915a Translated using Weblate (Croatian)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hr/
2023-10-05 12:13:12 +00:00
Jiri Grönroos
720fbb4eae Translated using Weblate (Finnish)
Currently translated at 98.6% (298 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fi/
2023-10-05 12:13:11 +00:00
Eric
0b888380e5 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2023-10-05 12:13:09 +00:00
Milan Šalka
8b4fc8c76b Translated using Weblate (Slovak)
Currently translated at 99.2% (129 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sk/
2023-10-05 12:13:08 +00:00
Max
b9ade35828 Translated using Weblate (Polish)
Currently translated at 46.1% (60 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pl/
2023-10-05 12:13:05 +00:00
Slávek Banko
c990992f8b Translated using Weblate (Czech)
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/cs/
2023-10-05 12:13:04 +00:00
Skrripy
4a7907f991 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2023-10-05 12:13:03 +00:00
Wonchul Kang
6f3bae96ff Translated using Weblate (Korean)
Currently translated at 97.0% (293 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ko/
2023-10-05 12:13:03 +00:00
Michael Gangolf
1a1ea44902 Translated using Weblate (German)
Currently translated at 100.0% (130 of 130 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2023-10-05 12:13:02 +00:00
Milan Šalka
4c9a560b53 Translated using Weblate (Slovak)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sk/
2023-10-05 12:13:01 +00:00
Viviana Y
5cb822b295 Translated using Weblate (Spanish (Argentina))
Currently translated at 29.8% (90 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es_AR/
2023-10-05 12:13:01 +00:00
Sylvia van Os
df7b2ee4d0 Merge pull request #1550 from CatimaLoyalty/create-pull-request/patch-1696502161
Update Fastlane changelogs
2023-10-05 12:55:23 +02:00
TheLastProject
6871c48c8e Update Fastlane changelogs 2023-10-05 10:36:01 +00:00
Sylvia van Os
497458f04c Update CHANGELOG 2023-10-05 12:35:37 +02:00
Sylvia van Os
a196969a93 Merge pull request #1547 from theimpulson/917
CatimaAppCompatActivity: Set navigation bar color on Android 8.1+
2023-10-05 12:33:05 +02:00
Aayush Gupta
76b65b45bc CatimaAppCompatActivity: Set navigation bar color on Android 8.1+
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-10-05 11:19:16 +05:30
Sylvia van Os
eb9935bb83 Clean up contributor guidelines 2023-10-03 22:07:49 +02:00
Sylvia van Os
98c595696d Merge pull request #1535 from theimpulson/1498
Migrate to from OnBackPressed to OnBackPressedDispatcher
2023-10-02 20:37:23 +02:00
Sylvia van Os
d484e83f47 Merge pull request #1545 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-02 12:56:14 +02:00
Sylvia van Os
19093b462c Merge pull request #1538 from CatimaLoyalty/create-pull-request/patch-1696175280
Update feature graphic
2023-10-02 12:55:50 +02:00
ngdangtu
8488352e77 Added translation using Weblate (Vietnamese) 2023-10-02 12:31:18 +02:00
Mohit ahlawat
38522564cf Translated using Weblate (Hindi)
Currently translated at 3.8% (5 of 129 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hi/
2023-10-02 05:04:56 +00:00
Mohit ahlawat
e8e15b5432 Translated using Weblate (Hindi)
Currently translated at 54.6% (165 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2023-10-02 05:04:55 +00:00
Milo Ivir
a032fc06a3 Translated using Weblate (Croatian)
Currently translated at 92.3% (279 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hr/
2023-10-02 05:04:54 +00:00
Govind S Nair
a9d55f129b Added translation using Weblate (Malayalam) 2023-10-02 05:04:53 +00:00
Sylvia van Os
84b35aa464 Merge pull request #1544 from CatimaLoyalty/dependabot/gradle/com.android.application-8.1.2
Bump com.android.application from 8.1.1 to 8.1.2
2023-10-01 20:47:59 +02:00
Sylvia van Os
54342c4ee0 Merge pull request #1543 from CatimaLoyalty/dependabot/gradle/androidx.preference-preference-1.2.1
Bump androidx.preference:preference from 1.2.0 to 1.2.1
2023-10-01 20:46:16 +02:00
Sylvia van Os
b89050b03c Merge pull request #1542 from CatimaLoyalty/dependabot/github_actions/actions/checkout-4.1.0
Bump actions/checkout from 4.0.0 to 4.1.0
2023-10-01 20:45:24 +02:00
dependabot[bot]
37eac1b9b7 Bump com.android.application from 8.1.1 to 8.1.2
Bumps com.android.application from 8.1.1 to 8.1.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-01 18:38:24 +00:00
dependabot[bot]
e4b287b3c2 Bump androidx.preference:preference from 1.2.0 to 1.2.1
Bumps androidx.preference:preference from 1.2.0 to 1.2.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-01 18:38:19 +00:00
dependabot[bot]
7cef3c4a53 Bump actions/checkout from 4.0.0 to 4.1.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.0.0...v4.1.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-01 18:36:17 +00:00
Sylvia van Os
6b39470890 Merge pull request #1541 from CatimaLoyalty/fix/dependabot
Work around https://github.com/dependabot/dependabot-core/issues/6888
2023-10-01 20:35:52 +02:00
Sylvia van Os
5f184db48d Work around https://github.com/dependabot/dependabot-core/issues/6888 2023-10-01 19:18:08 +02:00
Sylvia van Os
96c430dd8c Merge pull request #1540 from CatimaLoyalty/create-pull-request/patch-1696176353
Update Fastlane changelogs
2023-10-01 18:23:01 +02:00
TheLastProject
be662f2e67 Update Fastlane changelogs 2023-10-01 16:05:52 +00:00
Sylvia van Os
3fdd4559b6 Update CHANGELOG 2023-10-01 18:05:29 +02:00
Sylvia van Os
ecf9c0d1e2 Merge pull request #1526 from CatimaLoyalty/fix/showArchiveGroupBug
Fix incorrect UI updates when toggling showing archive if all cards in group are in archive
2023-10-01 18:04:49 +02:00
TheLastProject
67903c21d4 Update feature graphic 2023-10-01 15:47:59 +00:00
Sylvia van Os
5924c8616c Merge pull request #1537 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-10-01 17:46:46 +02:00
Mohit ahlawat
0f2f430b7f Translated using Weblate (Hindi)
Currently translated at 3.1% (4 of 129 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/hi/
2023-10-01 17:18:45 +02:00
Sajal Agarwal
4a99bad8be Translated using Weblate (Hindi)
Currently translated at 54.3% (164 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2023-10-01 17:18:45 +02:00
Michael Gangolf
9964fa5943 Translated using Weblate (German)
Currently translated at 100.0% (129 of 129 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2023-10-01 17:18:44 +02:00
Eryk Michalak
b6860a8634 Translated using Weblate (Polish)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pl/
2023-10-01 17:18:44 +02:00
Ziad OUALHADJ
cc0ef2dc0e Translated using Weblate (Italian)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2023-10-01 17:18:43 +02:00
Michael Gangolf
351504dc5f Translated using Weblate (German)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2023-10-01 17:18:43 +02:00
Aayush Gupta
b2494d8fdc test: Migrate to from OnBackPressed to OnBackPressedDispatcher
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-10-01 19:32:16 +05:30
Aayush Gupta
aea1ea0cbf Migrate to from OnBackPressed to OnBackPressedDispatcher
Closes: https://github.com/CatimaLoyalty/Android/issues/1498

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-10-01 18:51:06 +05:30
Sajal Agarwal
ff9f22e4bd Translated using Weblate (Hindi)
Currently translated at 53.9% (163 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hi/
2023-10-01 08:40:43 +00:00
Sylvia van Os
fb13e0ab30 Translated using Weblate (Ukrainian)
Currently translated at 99.6% (301 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2023-10-01 08:40:42 +00:00
Sylvia van Os
443685c26e Translated using Weblate (English)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/en/
2023-10-01 08:40:41 +00:00
Skrripy
bd362f1ac0 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2023-10-01 08:40:41 +00:00
Shams Sami
b23606ed3b Translated using Weblate (English)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/en/
2023-10-01 08:40:40 +00:00
Sylvia van Os
2344b6367f Merge pull request #1533 from CatimaLoyalty/create-pull-request/patch-1696133596
Update contributors
2023-10-01 10:37:20 +02:00
TheLastProject
394f15bed8 Update contributors 2023-10-01 04:13:15 +00:00
Sylvia van Os
83d7422b9c Merge pull request #1532 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-09-30 17:44:50 +02:00
Slávek Banko
a7246cf786 Translated using Weblate (Czech)
Currently translated at 100.0% (129 of 129 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/cs/
2023-09-30 13:01:13 +00:00
Slávek Banko
7abcd5b0cd Translated using Weblate (Czech)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/cs/
2023-09-30 13:01:12 +00:00
Sylvia van Os
a2b224df9b Merge pull request #1529 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-09-29 17:22:16 +02:00
solokot
4542da4c38 Translated using Weblate (Russian)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2023-09-29 14:00:25 +02:00
Heimen Stoffels
3c92c53164 Translated using Weblate (Dutch)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2023-09-29 14:00:25 +02:00
Sylvia van Os
b326778219 Merge pull request #1527 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-09-28 17:51:25 +02:00
Mateus Souza
81e16d95ac Translated using Weblate (Portuguese)
Currently translated at 100.0% (129 of 129 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt/
2023-09-28 06:44:59 +02:00
Mateus Souza
ef18bbdf7c Translated using Weblate (Portuguese)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt/
2023-09-28 06:44:58 +02:00
109247019824
6562a0177b Translated using Weblate (Bulgarian)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bg/
2023-09-28 06:44:58 +02:00
Eric
275a427355 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hans/
2023-09-28 06:44:57 +02:00
Skrripy
ce6a79f03d Translated using Weblate (Ukrainian)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2023-09-28 06:44:57 +02:00
solokot
dc792c8425 Translated using Weblate (Russian)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2023-09-28 06:44:57 +02:00
J. Lavoie
680d2173d1 Translated using Weblate (French)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fr/
2023-09-28 06:44:57 +02:00
gallegonovato
e95a20b971 Translated using Weblate (Spanish)
Currently translated at 100.0% (302 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es/
2023-09-28 06:44:57 +02:00
kb01guy
56de06abac Translated using Weblate (German)
Currently translated at 98.6% (298 of 302 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2023-09-28 06:44:57 +02:00
Sylvia van Os
d66176e628 Fix incorrect UI updates when toggling showing archive if all cards in group are in archive
The callback used by the display options menu bypassed the card counter.
This used to work fine as the visible count used to remain the same but
when toggling the visibility of archived cards was added to the display
menu this caused the UI to get stuck with a wrong idea of how many cards
are visible.
2023-09-27 17:52:44 +02:00
Sylvia van Os
488c542cd5 Merge remote-tracking branch 'weblate/main' 2023-09-26 20:05:45 +02:00
Sylvia van Os
0e0693bdad Fix changelog to fastlane action 2023-09-26 19:57:12 +02:00
TheScientistPT
86267a2e38 Translated using Weblate (Portuguese)
Currently translated at 98.3% (294 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt/
2023-09-26 19:55:16 +02:00
Sylvia van Os
e2171856ff Update CHANGELOG 2023-09-26 19:32:39 +02:00
Sylvia van Os
3c3a37a9e8 Merge pull request #1524 from CatimaLoyalty/betterDefaultCardColours
Better default card colours
2023-09-26 19:30:59 +02:00
Sylvia van Os
573da1e4ff New add card workflow (#1512) 2023-09-26 19:30:35 +02:00
Sylvia van Os
1f70446bce Fix typo
Co-authored-by: FC (Fay) Stegerman <flx@obfusk.net>
2023-09-25 22:22:40 +02:00
TheScientistPT
ff4ef15dfc Translated using Weblate (Portuguese)
Currently translated at 98.3% (294 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt/
2023-09-25 22:01:46 +02:00
Sylvia van Os
926f3adb18 Remove default card colour which uses wrong foreground colour 2023-09-24 15:44:26 +02:00
Sylvia van Os
4b2d981cc6 Add test to ensure colours have white foreground 2023-09-24 15:44:22 +02:00
Sylvia van Os
93d5c5e03e Link feature graphic to homepage 2023-09-24 15:13:11 +02:00
Sylvia van Os
475f071575 Merge pull request #1522 from CatimaLoyalty/create-pull-request/patch-1695546611
Update feature graphic
2023-09-24 11:18:57 +02:00
TheLastProject
f77fa88ced Update feature graphic 2023-09-24 09:10:11 +00:00
Sand Smith
7fe5c18cb8 Translated using Weblate (Chinese (Traditional))
Currently translated at 94.9% (284 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2023-09-24 11:03:13 +02:00
109247019824
7e16798b33 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bg/
2023-09-24 11:03:13 +02:00
Jiri Grönroos
3edfb68bd7 Translated using Weblate (Finnish)
Currently translated at 99.3% (297 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fi/
2023-09-24 11:03:13 +02:00
Eric
4f307af6bd Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hans/
2023-09-24 11:03:13 +02:00
Skrripy
08848af908 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (129 of 129 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2023-09-24 11:03:13 +02:00
Skrripy
f4e9b85ae3 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2023-09-24 11:03:12 +02:00
HudobniVolk
73ccb0ce65 Translated using Weblate (Slovenian)
Currently translated at 91.6% (274 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sl/
2023-09-24 11:02:27 +02:00
Sylvia van Os
15c5ee7f2c Merge pull request #1521 from CatimaLoyalty/create-pull-request/patch-1695528761
Update contributors
2023-09-24 09:42:31 +02:00
Sand Smith
f08be0d13f Translated using Weblate (Chinese (Traditional))
Currently translated at 94.9% (284 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2023-09-24 06:03:21 +00:00
109247019824
aa115e36fd Translated using Weblate (Bulgarian)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bg/
2023-09-24 06:03:20 +00:00
Jiri Grönroos
cfa45013f4 Translated using Weblate (Finnish)
Currently translated at 99.3% (297 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fi/
2023-09-24 06:03:19 +00:00
Eric
cca01ae5a3 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hans/
2023-09-24 06:03:18 +00:00
Skrripy
44af31f6d4 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (129 of 129 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2023-09-24 06:03:17 +00:00
Skrripy
8fb076421a Translated using Weblate (Ukrainian)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2023-09-24 06:03:05 +00:00
HudobniVolk
89f8ca1387 Translated using Weblate (Slovenian)
Currently translated at 91.6% (274 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sl/
2023-09-24 06:03:04 +00:00
TheLastProject
fddb462618 Update contributors 2023-09-24 04:12:40 +00:00
Sylvia van Os
97343515a3 Consistency: may not/cannot -> must not 2023-09-23 18:11:42 +02:00
Sylvia van Os
dcbd2aa390 Merge pull request #1514 from CatimaLoyalty/improveValidation
Improve validation
2023-09-22 22:32:21 +02:00
Sylvia van Os
12e7aaa615 Trim spaces in store name 2023-09-22 22:02:15 +02:00
Sylvia van Os
50f93b87f5 Cleanups 2023-09-22 21:18:52 +02:00
Sylvia van Os
b4cefbc15e Merge pull request #1517 from CatimaLoyalty/returnToLastViewAfterEdit
Return to last view after edit
2023-09-22 21:04:17 +02:00
Sylvia van Os
4ce17c3742 Merge pull request #1520 from obfusk/rm-unused-setgroupnameerror
ManageGroupsActivity: rm unused setGroupNameError()
2023-09-22 20:55:57 +02:00
FC Stegerman
5035b83ae1 ManageGroupsActivity: rm unused setGroupNameError() 2023-09-22 20:13:32 +02:00
Sylvia van Os
dc327a3e24 Merge pull request #1519 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-09-21 19:03:08 +02:00
solokot
4ddceb83d5 Translated using Weblate (Russian)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2023-09-21 15:44:20 +02:00
Heimen Stoffels
31048218af Translated using Weblate (Dutch)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2023-09-21 15:44:20 +02:00
Slávek Banko
6e3a9ca380 Translated using Weblate (Czech)
Currently translated at 100.0% (299 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/cs/
2023-09-21 15:44:20 +02:00
lassr8
09134f4c5f Translated using Weblate (Spanish)
Currently translated at 28.6% (37 of 129 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/es/
2023-09-21 05:03:56 +02:00
Sylvia van Os
89c9271726 Improve permission string 2023-09-20 18:11:08 +02:00
Sylvia van Os
473f8e6b72 Fix barcode not showing when returning and changing from none to some barcode 2023-09-19 20:45:34 +02:00
Sylvia van Os
8310f09641 Hide keyboard when switching back to view view 2023-09-19 19:40:13 +02:00
Sylvia van Os
31b9123a8f Don't close view activity when entering edit activity 2023-09-19 19:39:33 +02:00
Sylvia van Os
cc4aed6773 Update Fastlane 2023-09-18 19:30:20 +02:00
Sylvia van Os
a868aac579 Merge pull request #1515 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2023-09-18 19:24:37 +02:00
Áron Dubovszky
da48eec787 Translated using Weblate (Hungarian)
Currently translated at 98.6% (295 of 299 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hu/
2023-09-18 19:00:19 +02:00
Sylvia van Os
4aa56a55fe Balance validation fixes
Remove old string which may sometimes display "does not seem like a
valid balance." and default to 0 as balance if field is emptied.
2023-09-17 17:59:42 +02:00
Sylvia van Os
c3daa1cc86 Remove no longer used strings 2023-09-17 17:37:24 +02:00
Sylvia van Os
00d08d741c Don't regenerate barcode if value is empty 2023-09-17 17:37:24 +02:00
Sylvia van Os
2f33be6b3c Improve validation
If a field is empty when it shouldn't be, show it at the correct UI
element and focus
2023-09-17 17:37:21 +02:00
Sylvia van Os
d54a3127a6 Improve create group dialog
Don't show error from the start, disable OK button unless state is okay
2023-09-17 16:39:57 +02:00
Sylvia van Os
40ecf46b40 Merge branch 'main' of github.com:CatimaLoyalty/Android 2023-09-17 12:21:09 +02:00
Sylvia van Os
dd9b6a8fed Update fastlane 2023-09-17 12:21:02 +02:00
Sylvia van Os
194e1d5c26 Merge pull request #1513 from CatimaLoyalty/create-pull-request/patch-1694923968
Update contributors
2023-09-17 10:10:28 +02:00
TheLastProject
9360f2a1e0 Update contributors 2023-09-17 04:12:47 +00:00
1068 changed files with 8512 additions and 2991 deletions

View File

@@ -2,9 +2,29 @@ version: 2
updates:
- package-ecosystem: "gradle"
directory: "/"
registries:
- google
- gradlePluginPortal
- jitpack
- mavenCentral
schedule:
interval: "daily"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
# Workaround for https://github.com/dependabot/dependabot-core/issues/6888
registries:
google:
type: maven-repository
url: "https://dl.google.com/dl/android/maven2/"
gradlePluginPortal:
type: maven-repository
url: "https://plugins.gradle.org/m2/"
jitpack:
type: maven-repository
url: "https://jitpack.io/"
mavenCentral:
type: maven-repository
url: "https://repo1.maven.org/maven2/"

View File

@@ -28,11 +28,14 @@ env:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
api-level: [ 21, 34 ]
steps:
- uses: actions/checkout@v4.0.0
- uses: actions/checkout@v4.1.7
- 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/wrapper-validation-action@v1
- uses: gradle/actions/wrapper-validation@v4
- name: set up OpenJDK 17
run: |
sudo apt-get update
@@ -44,11 +47,22 @@ jobs:
run: ./gradlew lintRelease
- name: Run unit tests
run: timeout 5m ./gradlew testReleaseUnitTest || { ./gradlew --stop && timeout 5m ./gradlew testReleaseUnitTest; }
- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Run instrumented tests
uses: ReactiveCircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
arch: x86_64
script: ./gradlew connectedCheck
- name: SpotBugs
run: ./gradlew spotbugsRelease
- name: Archive test results
if: always()
uses: actions/upload-artifact@v3.1.3
uses: actions/upload-artifact@v4.3.6
with:
name: test-results
name: test-results-api${{ matrix.api-level }}
path: app/build/reports

View File

@@ -9,7 +9,7 @@ on:
permissions:
actions: none
checks: none
contents: read
contents: write
deployments: none
discussions: none
id-token: none
@@ -27,15 +27,15 @@ jobs:
steps:
- name: Checkout repo
id: checkout
uses: actions/checkout@v4.0.0
uses: actions/checkout@v4.1.7
- name: Setup Python
uses: actions/setup-python@v4.7.0
uses: actions/setup-python@v5.1.1
with:
python-version: '3.x'
- name: Run converter script
run: python .scripts/changelog_to_fastlane.py
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5.0.2
uses: peter-evans/create-pull-request@v6.1.0
with:
title: "Update Fastlane changelogs"
commit-message: "Update Fastlane changelogs"

View File

@@ -25,14 +25,15 @@ jobs:
steps:
- name: Checkout repo
id: checkout
uses: actions/checkout@v4.0.0
uses: actions/checkout@v4.1.7
- name: Update contributors
id: update_contributors
uses: TheLastProject/contributors-to-file-action@v3.0.1
uses: TheLastProject/contributors-to-file-action@v3.2.0
with:
file_in_repo: app/src/main/res/raw/contributors.txt
min_commit_count: 5
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5.0.2
uses: peter-evans/create-pull-request@v6.1.0
with:
title: "Update contributors"
commit-message: "Update contributors"

View File

@@ -6,6 +6,7 @@ on:
- main
paths:
- 'fastlane/**/title.txt'
- '.scripts/generate_feature_graphic/**'
permissions:
actions: none
checks: none
@@ -24,7 +25,7 @@ jobs:
generate-feature-graphic:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.0.0
- uses: actions/checkout@v4.1.7
- name: Install requirements
run: |
sudo apt-get update
@@ -36,41 +37,9 @@ jobs:
find .scripts/generate_feature_graphic/fonts -name '*.ttf' -exec cp {} "$HOME/.fonts" \;
fc-cache
- name: Generate featureGraphic.png for each language
run: |
for lang in fastlane/metadata/android/*; do
pushd "$lang"
# Place temporary copy for editing if needed
cp ../../../../.scripts/generate_feature_graphic/featureGraphic.svg featureGraphic.svg
# Extract text after 'Catima - '
export subtext="$(grep -oP '(?<=Catima \S ).*' title.txt || true)"
# If there is subtext, change the .svg accordingly
if [ -n "$subtext" ]; then
perl -pi -e 's/Loyalty Card Wallet/$ENV{subtext}/' featureGraphic.svg
# Set correct font for language if needed (Lexend Deca has limited support)
# We specifically need the Serif version because of the 200 weight
case "$(basename "$lang")" in
bg|el-GR|ru-RU|uk) sed -i "s/Lexend Deca/Noto Serif/" featureGraphic.svg ;;
ja-JP) sed -i "s/Lexend Deca/Noto Serif CJK JP/" featureGraphic.svg ;;
ko) sed -i "s/Lexend Deca/Noto Serif CJK KR/" featureGraphic.svg ;;
zh-CN) sed -i "s/Lexend Deca/Noto Serif CJK SC/" featureGraphic.svg ;;
zh-TW) sed -i "s/Lexend Deca/Noto Serif CJK TC/" featureGraphic.svg ;;
*) ;;
esac
fi
# Ensure images directory exists
mkdir -p images
# Generate .png
convert featureGraphic.svg images/featureGraphic.png
# Optimize .png
optipng images/featureGraphic.png
# Remove metadata (timestamps) from .png
mat2 --inplace images/featureGraphic.png
# Remove temporary .svg
rm featureGraphic.svg
popd
done
run: .scripts/generate_feature_graphic/generate_feature_graphic.sh
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5.0.2
uses: peter-evans/create-pull-request@v6.1.0
with:
title: "Update feature graphic"
commit-message: "Update feature graphic"

33
.github/workflows/gradle-update.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
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.1.7
- 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@v6.1.0
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

@@ -5,6 +5,7 @@ on:
branches:
- main
paths:
- app/src/main/res/values-*/strings.xml
- app/src/main/res/values/settings.xml
permissions:
actions: none
@@ -24,11 +25,13 @@ jobs:
update-locales:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.0.0
- uses: actions/checkout@v4.1.7
- name: Add new locales
run: .scripts/new-locales.py
- name: Update locales
run: .scripts/locales.py
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5.0.2
uses: peter-evans/create-pull-request@v6.1.0
with:
title: "Update locales"
commit-message: "Update locales"

26
.gitignore vendored
View File

@@ -1,13 +1,25 @@
# Android Studio generated (superseded/unused rules commented out)
*.iml
.gradle
local.properties
.idea/
/local.properties
#/.idea/caches
#/.idea/libraries
#/.idea/modules.xml
#/.idea/workspace.xml
#/.idea/navEditor.xml
#/.idea/assetWizardSettings.xml
.DS_Store
build/
captures/
**/release
**/debug
app/*.log
/build
/captures
.externalNativeBuild
.cxx
#local.properties
# Android extras
/app/*.log
/app/build
/app/release
/.idea
# Bundle
/.bundle/

View File

@@ -0,0 +1,55 @@
#!/bin/bash
set -euo pipefail
script_location="$(dirname "$(readlink -f "$0")")"
for lang in "$script_location/../../fastlane/metadata/android/"*; do
pushd "$lang"
# Place temporary copy for editing if needed
cp "$script_location/featureGraphic.svg" featureGraphic.svg
if grep -q — title.txt; then
# Try splitting title.txt on — (em dash)
IFS='—' read -r appname subtext < title.txt
elif grep -q title.txt; then
# No result, try splitting title.txt on (en dash)
IFS='' read -r appname subtext < title.txt
elif grep -q - title.txt; then
# No result, try splitting on - (dash)
IFS='-' read -r appname subtext < title.txt
else
# No result, use the full title as app name and default subtext
appname=$(< title.txt)
subtext="Loyalty Card Wallet"
fi
export appname=${appname%% }
export subtext=${subtext## }
# If the appname isn't Catima or there is subtext, change the .svg accordingly
if [ "$appname" != "Catima" ] || [ -n "$subtext" ]; then
perl -pi -e 's/Catima/$ENV{appname}/' featureGraphic.svg
perl -pi -e 's/Loyalty Card Wallet/$ENV{subtext}/' featureGraphic.svg
# Set correct font or font size for language if needed
# (Lexend Deca has limited support and some characters are big)
# We specifically need the Serif version because of the 200 weight
case "$(basename "$lang")" in
bg|el-GR|ru-RU|uk) sed -i "s/Lexend Deca/Noto Serif/" featureGraphic.svg ;;
hi-IN) sed -i -e "s/Yesteryear/Noto Serif Devanagari/" -e "s/Lexend Deca/Noto Serif Devanagari/" featureGraphic.svg ;;
ja-JP) sed -i "s/Lexend Deca/Noto Serif CJK JP/" featureGraphic.svg ;;
kn-IN) sed -i -e 's/font-size="150"/font-size="100"/' -e "s/Yesteryear/Noto Serif Kannada/" featureGraphic.svg ;;
ko) sed -i "s/Lexend Deca/Noto Serif CJK KR/" featureGraphic.svg ;;
zh-CN) sed -i "s/Lexend Deca/Noto Serif CJK SC/" featureGraphic.svg ;;
zh-TW) sed -i "s/Lexend Deca/Noto Serif CJK TC/" featureGraphic.svg ;;
*) ;;
esac
fi
# Ensure images directory exists
mkdir -p images
# Generate .png
convert featureGraphic.svg images/featureGraphic.png
# Optimize .png
optipng images/featureGraphic.png
# Remove metadata (timestamps) from .png
mat2 --inplace images/featureGraphic.png
# Remove temporary .svg
rm featureGraphic.svg
popd
done

View File

@@ -19,12 +19,12 @@ res = ", ".join(f'"{loc}"' for loc in locales)
sed = [
"sed",
"-i",
f"s/resourceConfigurations .*/resourceConfigurations += [{res}]/",
"app/build.gradle"
f"s/resourceConfigurations .*/resourceConfigurations += listOf({res})/",
"app/build.gradle.kts"
]
subprocess.run(sed, check=True)
with open("app/src/main/res/xml/locales_config.xml", "w") as fh:
with open("app/src/main/res/xml/locales_config.xml", "w", encoding="utf-8") as fh:
fh.write('<?xml version="1.0" encoding="utf-8"?>\n')
fh.write('<locale-config xmlns:android="http://schemas.android.com/apk/res/android">\n')
fh.write(' <locale android:name="en-US" />\n')

132
.scripts/new-locales.py Executable file
View File

@@ -0,0 +1,132 @@
#!/usr/bin/python3
import glob
import re
from typing import Iterator, List, Tuple
import requests
MIN_PERCENT = 90
NOT_LANGS = ("night", "w600dp")
REPLACE_CODES = {
"el": "el-rGR",
"id": "in-rID",
"ro": "ro-rRO",
"zh_Hans": "zh-rCN",
"zh_Hant": "zh-rTW",
}
STATS_URL = "https://hosted.weblate.org/api/components/catima/catima/statistics/"
class Error(Exception):
pass
def get_weblate_langs() -> List[Tuple[str, int]]:
url = STATS_URL
results = []
for _ in range(16): # avoid endless loops just in case
r = requests.get(url, timeout=5)
r.raise_for_status()
data = r.json()
for lang in data["results"]:
if lang["code"] != "en":
code = REPLACE_CODES.get(lang["code"], lang["code"]).replace("_", "-r")
results.append((code, round(lang["translated_percent"])))
url = data["next"]
if not url:
return sorted(results)
if not url.split("?")[0] == STATS_URL:
raise Error(f"Unexpected next URL: {url}")
raise Error("Too many pages")
def get_dir_langs() -> List[str]:
results = []
for d in glob.glob("app/src/main/res/values-*"):
code = d.split("-", 1)[1]
if code not in NOT_LANGS:
results.append(code)
return sorted(results)
def get_xml_langs() -> List[Tuple[str, bool]]:
results = []
in_section = False
with open("app/src/main/res/values/settings.xml", encoding="utf-8") as fh:
for line in fh:
if not in_section and 'name="locale_values"' in line:
in_section = True
elif in_section:
if "string-array" in line:
break
disabled = "<!--" in line
if m := re.search(r">(.*)<", line):
if m[1] != "en":
results.append((m[1], disabled))
return sorted(results)
def update_xml_langs(langs: List[Tuple[str, bool]]) -> None:
lines: List[str] = []
in_section = False
with open("app/src/main/res/values/settings.xml", encoding="utf-8") as fh:
for line in fh:
if not in_section and 'name="locale_values"' in line:
in_section = True
elif in_section:
if "string-array" in line:
in_section = False
lines.extend(_lang_lines(langs))
else:
continue
lines.append(line)
with open("app/src/main/res/values/settings.xml", "w", encoding="utf-8") as fh:
for line in lines:
fh.write(line)
def _lang_lines(langs: List[Tuple[str, bool]]) -> Iterator[str]:
yield " <item />\n"
for lang, disabled in sorted(langs + [("en", False)]):
if disabled:
yield f" <!-- <item>{lang}</item> -->\n"
else:
yield f" <item>{lang}</item>\n"
def main() -> None:
web_langs = get_weblate_langs()
dir_langs = get_dir_langs()
xml_langs = get_xml_langs()
web_codes = set(code for code, _ in web_langs)
dir_codes = set(dir_langs)
xml_codes = set(code for code, _ in xml_langs)
if diff := web_codes - dir_codes:
print(f"WARNING: Weblate codes w/o dir: {diff}")
if diff := xml_codes - dir_codes:
print(f"WARNING: XML codes w/o dir: {diff}")
percentages = dict(web_langs)
all_langs = xml_langs[:]
# add new langs as disabled
for code in dir_codes - xml_codes:
all_langs.append((code, True))
# enable disabled langs if they are at least MIN_PERCENT translated now
updated_langs = sorted(
(code, percentages[code] < MIN_PERCENT if disabled else disabled)
for code, disabled in all_langs
)
if updated_langs != xml_langs:
print("Updating...")
update_xml_langs(updated_langs)
if __name__ == "__main__":
main()

View File

@@ -1,5 +1,49 @@
# Changelog
## v2.31.1 - 138 (2024-08-24)
- Fix back gesture on main screen dismissing keyboard and search on Android 13+
## v2.31.0 - 137 (2024-07-26)
- Allow long store names in preview to split over multiple lines
- Option to use front of back image in thumbnail menu
- Minor import/export fixes
- Minor UI fixes
## v2.30.0 - 136 (2024-06-18)
- Support for creating a card when sharing plain text
- Display image type instead of barcode below images
- Fix possible crash when trying to import a backup from the Nextcloud app
- Improved support for devices without camera
## v2.29.1 - 135 (2024-05-19)
- Various fixes and improvements to balance handling
## v2.29.0 - 134 (2024-04-19)
- Support for scanning PDF files for barcodes
- Support for image files with multiple barcodes
- Minor UI fixes
## v2.28.0 - 133 (2024-03-08)
- Target Android 14
- Open card icon in gallery on touch
- Improve design of Photos tab in edit view
- Update spending screen to also support receiving
## v2.27.0 - 132 (2024-01-30)
- Refine "Add card" workflow
- Validation flow improvements
- Fix edge case causing invalid UI state when toggling showing archive
- Use theme or card colour for navigation bar (Android 8.1+)
- Updated validity and expiry date selector
- Add option to always rotate (ignoring system settings)
## v2.26.0 - 131 (2023-09-14)
- Move "Archive mode" into "Display options" (previously "Show details") menu

View File

@@ -1,13 +1,15 @@
How to Submit Patches to the Catima Project
===============================================================================
https://github.com/TheLastProject/Catima
# How to Submit Patches to the Catima Project
This document is intended to act as a guide to help you contribute to the
Catima project. It is not perfect, and there will always be exceptions
Catima project. It is not perfect, and there will always be exceptions
to the rules described here, but by following the instructions below you
should have a much easier time getting your work merged with the upstream
project.
When contributing, you certify that you agree to and have the rights to submit
your contribution under the project's license and understand that git will
store your name and email address in project history indefinitely.
## Translation Changes
Translation changes are managed through [Weblate](https://hosted.weblate.org/projects/catima/).
@@ -57,44 +59,6 @@ if you can describe/include a reproducer for the problem in the description as
well as instructions on how to test for the bug and verify that it has been
fixed.
### Sign Your Work
The sign-off is a simple line at the end of the patch description, which
certifies that you wrote it or otherwise have the right to pass it on as an
open-source patch. The "Developer's Certificate of Origin" pledge is taken
from the Linux Kernel and the rules are pretty simple:
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
... then you just add a line to the bottom of your patch description, with
your real name, saying:
Signed-off-by: Random J Developer <random@developer.example.org>
### Submit Patch(es) for Review
Finally, you will need to submit your patches so that they can be reviewed

View File

@@ -1,29 +1,32 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.6)
CFPropertyList (3.0.7)
base64
nkf
rexml
addressable (2.8.4)
public_suffix (>= 2.0.2, < 6.0)
artifactory (3.0.15)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.2.0)
aws-partitions (1.793.0)
aws-sdk-core (3.180.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-eventstream (1.3.0)
aws-partitions (1.958.0)
aws-sdk-core (3.201.3)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
aws-sigv4 (~> 1.8)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.71.0)
aws-sdk-core (~> 3, >= 3.177.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.132.0)
aws-sdk-core (~> 3, >= 3.179.0)
aws-sdk-kms (1.88.0)
aws-sdk-core (~> 3, >= 3.201.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.156.0)
aws-sdk-core (~> 3, >= 3.201.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.6)
aws-sigv4 (1.6.0)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.9.0)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.2.0)
claide (1.1.0)
colored (1.2)
colored2 (3.1.2)
@@ -32,11 +35,10 @@ GEM
declarative (0.0.20)
digest-crc (0.6.5)
rake (>= 12.0.0, < 14.0.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
domain_name (0.6.20240107)
dotenv (2.8.1)
emoji_regex (3.2.3)
excon (0.100.0)
excon (0.111.0)
faraday (1.10.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
@@ -58,22 +60,22 @@ GEM
faraday-httpclient (1.0.1)
faraday-multipart (1.0.4)
multipart-post (~> 2)
faraday-net_http (1.0.1)
faraday-net_http (1.0.2)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
faraday-retry (1.0.3)
faraday_middleware (1.2.0)
faraday (~> 1.0)
fastimage (2.2.7)
fastlane (2.214.0)
fastimage (2.3.1)
fastlane (2.222.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
aws-sdk-s3 (~> 1.0)
babosa (>= 1.0.3, < 2.0.0)
bundler (>= 1.12.0, < 3.0.0)
colored
colored (~> 1.2)
commander (~> 4.6)
dotenv (>= 2.1.1, < 3.0.0)
emoji_regex (>= 0.1, < 4.0)
@@ -85,30 +87,32 @@ GEM
gh_inspector (>= 1.1.2, < 2.0.0)
google-apis-androidpublisher_v3 (~> 0.3)
google-apis-playcustomapp_v1 (~> 0.1)
google-cloud-env (>= 1.6.0, < 2.0.0)
google-cloud-storage (~> 1.31)
highline (~> 2.0)
http-cookie (~> 1.0.5)
json (< 3.0.0)
jwt (>= 2.1.0, < 3)
mini_magick (>= 4.9.4, < 5.0.0)
multipart-post (>= 2.0.0, < 3.0.0)
naturally (~> 2.2)
optparse (~> 0.1.1)
optparse (>= 0.1.1, < 1.0.0)
plist (>= 3.1.0, < 4.0.0)
rubyzip (>= 2.0.0, < 3.0.0)
security (= 0.1.3)
security (= 0.1.5)
simctl (~> 1.6.3)
terminal-notifier (>= 2.0.0, < 3.0.0)
terminal-table (>= 1.4.5, < 2.0.0)
terminal-table (~> 3)
tty-screen (>= 0.6.3, < 1.0.0)
tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0)
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3)
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.46.0)
google-apis-androidpublisher_v3 (0.54.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-core (0.11.1)
google-apis-core (0.11.3)
addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a)
@@ -116,64 +120,64 @@ GEM
representable (~> 3.0)
retriable (>= 2.0, < 4.a)
rexml
webrick
google-apis-iamcredentials_v1 (0.17.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-playcustomapp_v1 (0.13.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-storage_v1 (0.19.0)
google-apis-core (>= 0.9.0, < 2.a)
google-cloud-core (1.6.0)
google-cloud-env (~> 1.0)
google-apis-storage_v1 (0.31.0)
google-apis-core (>= 0.11.0, < 2.a)
google-cloud-core (1.7.0)
google-cloud-env (>= 1.0, < 3.a)
google-cloud-errors (~> 1.0)
google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.3.1)
google-cloud-storage (1.44.0)
google-cloud-errors (1.4.0)
google-cloud-storage (1.47.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
google-apis-iamcredentials_v1 (~> 0.1)
google-apis-storage_v1 (~> 0.19.0)
google-apis-storage_v1 (~> 0.31.0)
google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
googleauth (1.7.0)
googleauth (1.8.1)
faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
highline (2.0.3)
http-cookie (1.0.5)
http-cookie (1.0.6)
domain_name (~> 0.5)
httpclient (2.8.3)
jmespath (1.6.2)
json (2.6.3)
jwt (2.7.1)
memoist (0.16.2)
mini_magick (4.12.0)
mini_mime (1.1.2)
json (2.7.2)
jwt (2.8.2)
base64
mini_magick (4.13.2)
mini_mime (1.1.5)
multi_json (1.15.0)
multipart-post (2.3.0)
multipart-post (2.4.1)
nanaimo (0.3.0)
naturally (2.2.1)
optparse (0.1.1)
nkf (0.2.0)
optparse (0.5.0)
os (1.1.4)
plist (3.7.0)
public_suffix (5.0.3)
rake (13.0.6)
plist (3.7.1)
public_suffix (6.0.1)
rake (13.2.1)
representable (3.2.0)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0)
retriable (3.1.2)
rexml (3.2.6)
rexml (3.2.9)
strscan
rouge (2.0.7)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
security (0.1.3)
signet (0.17.0)
security (0.1.5)
signet (0.19.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0)
@@ -181,22 +185,19 @@ GEM
simctl (1.6.10)
CFPropertyList
naturally
strscan (3.1.0)
terminal-notifier (2.0.0)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
trailblazer-option (0.1.2)
tty-cursor (0.7.1)
tty-screen (0.8.1)
tty-screen (0.8.2)
tty-spinner (0.9.3)
tty-cursor (~> 0.7)
uber (0.1.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.8.2)
unicode-display_width (1.8.0)
webrick (1.8.1)
unicode-display_width (2.5.0)
word_wrap (1.0.0)
xcodeproj (1.22.0)
xcodeproj (1.24.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
@@ -215,4 +216,4 @@ DEPENDENCIES
fastlane
BUNDLED WITH
2.3.26
2.5.11

View File

@@ -1,146 +0,0 @@
import com.github.spotbugs.snom.SpotBugsTask
plugins {
id 'com.android.application'
id 'com.github.spotbugs'
}
spotbugs {
ignoreFailures = false
effort = 'max'
excludeFilter = file("./config/spotbugs/exclude.xml")
reportsDir = file("$buildDir/reports/spotbugs/")
}
android {
compileSdk 33
defaultConfig {
applicationId "me.hackerchick.catima"
minSdk 21
targetSdk 33
versionCode 131
versionName "2.26.0"
vectorDrawables.useSupportLibrary true
multiDexEnabled true
resourceConfigurations += ["ar", "bg", "bn", "bn-rIN", "bs", "cs", "da", "de", "el-rGR", "en", "eo", "es", "es-rAR", "fi", "fr", "he-rIL", "hi", "hr", "hu", "in-rID", "is", "it", "ja", "ko", "lt", "lv", "nb-rNO", "nl", "oc", "pl", "pt", "ro-rRO", "ru", "sk", "sl", "sv", "tr", "uk", "zh-rTW", "zh-rCN"]
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
resValue "string", "app_name", "Catima"
}
debug {
applicationIdSuffix ".debug"
resValue "string", "app_name", "Catima Debug"
}
}
buildFeatures {
viewBinding true
}
bundle {
language {
enableSplit = false
}
}
compileOptions {
encoding "UTF-8"
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
sourceSets {
test {
resources.srcDirs += ['src/test/res']
}
}
// Starting with Android Studio 3 Robolectric is unable to find resources.
// The following allows it to find the resources.
testOptions {
unitTests {
all {
testLogging {
events 'started', 'passed', 'skipped', 'failed'
}
}
includeAndroidResources true
}
}
lint {
lintConfig file('lint.xml')
}
namespace 'protect.card_locker'
}
dependencies {
// AndroidX
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.exifinterface:exifinterface:1.3.6'
implementation 'androidx.palette:palette:1.0.0'
implementation 'androidx.preference:preference:1.2.0'
implementation 'com.google.android.material:material:1.9.0'
implementation 'com.github.yalantis:ucrop:2.2.8'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
// Splash Screen
implementation 'androidx.core:core-splashscreen:1.0.1'
// Third-party
implementation 'com.journeyapps:zxing-android-embedded:4.3.0@aar'
implementation 'com.google.zxing:core:3.5.2'
implementation 'org.apache.commons:commons-csv:1.9.0'
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
testImplementation 'androidx.test:core:1.5.0'
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.robolectric:robolectric:4.10.3'
}
tasks.withType(SpotBugsTask) {
description 'Run spotbugs'
group 'verification'
//classes = fileTree('build/intermediates/javac/debug/compileDebugJavaWithJavac/classes')
//source = fileTree('src/main/java')
//classpath = files()
reports {
xml.enabled = false
html.enabled = true
}
}
tasks.register('copyRawResFiles', Copy) {
from layout.projectDirectory.file("../CHANGELOG.md"),
layout.projectDirectory.file("../PRIVACY.md")
into layout.projectDirectory.dir("src/main/res/raw")
rename { String fileName -> fileName.toLowerCase() }
}
project.afterEvaluate {
tasks.each { task ->
if (task != copyRawResFiles) {
task.dependsOn(copyRawResFiles)
}
}
}

156
app/build.gradle.kts Normal file
View File

@@ -0,0 +1,156 @@
import com.android.build.gradle.internal.tasks.factory.dependsOn
import com.github.spotbugs.snom.SpotBugsTask
plugins {
id("com.android.application")
id("com.github.spotbugs")
}
spotbugs {
ignoreFailures.set(false)
setEffort("max")
excludeFilter.set(file("./config/spotbugs/exclude.xml"))
reportsDir.set(layout.buildDirectory.file("reports/spotbugs/").get().asFile)
}
android {
namespace = "protect.card_locker"
compileSdk = 34
defaultConfig {
applicationId = "me.hackerchick.catima"
minSdk = 21
targetSdk = 34
versionCode = 138
versionName = "2.31.1"
vectorDrawables.useSupportLibrary = true
multiDexEnabled = true
resourceConfigurations += listOf("ar", "bg", "bn", "bn-rIN", "bs", "cs", "da", "de", "el-rGR", "en", "eo", "es", "es-rAR", "et", "fi", "fr", "he-rIL", "hi", "hr", "hu", "in-rID", "is", "it", "ja", "ko", "lt", "lv", "nb-rNO", "nl", "oc", "pl", "pt-rBR", "pt-rPT", "ro-rRO", "ru", "sk", "sl", "sr", "sv", "tr", "uk", "vi", "zh-rCN", "zh-rTW")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android.txt"),
"proguard-rules.pro"
)
}
debug {
applicationIdSuffix = ".debug"
}
}
buildFeatures {
buildConfig = true
viewBinding = true
}
bundle {
language {
enableSplit = false
}
}
compileOptions {
encoding = "UTF-8"
// Flag to enable support for the new language APIs
isCoreLibraryDesugaringEnabled = true
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
sourceSets {
getByName("test") {
resources.srcDirs("src/test/res")
}
}
// Starting with Android Studio 3 Robolectric is unable to find resources.
// The following allows it to find the resources.
testOptions.unitTests.isIncludeAndroidResources = true
tasks.withType<Test>().configureEach {
testLogging {
events("started", "passed", "skipped", "failed")
}
}
lint {
lintConfig = file("lint.xml")
}
}
dependencies {
// AndroidX
implementation("androidx.appcompat:appcompat:1.7.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
implementation("androidx.exifinterface:exifinterface:1.3.7")
implementation("androidx.palette:palette:1.0.0")
implementation("androidx.preference:preference:1.2.1")
implementation("com.google.android.material:material:1.12.0")
implementation("com.github.yalantis:ucrop:2.2.9")
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4")
// Splash Screen
implementation("androidx.core:core-splashscreen:1.0.1")
// Third-party
implementation("com.journeyapps:zxing-android-embedded:4.3.0@aar")
implementation("com.google.zxing:core:3.5.3")
implementation("org.apache.commons:commons-csv:1.9.0")
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 junitVersion = "4.13.2"
testImplementation("androidx.test:core:$androidXTestVersion")
testImplementation("junit:junit:$junitVersion")
testImplementation("org.robolectric:robolectric:4.13")
androidTestImplementation("androidx.test:core:$androidXTestVersion")
androidTestImplementation("junit:junit:$junitVersion")
androidTestImplementation("androidx.test.ext:junit:1.2.1")
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)
}
tasks.register("copyRawResFiles", Copy::class) {
from(
layout.projectDirectory.file("../CHANGELOG.md"),
layout.projectDirectory.file("../PRIVACY.md")
)
into(layout.projectDirectory.dir("src/main/res/raw"))
rename { it.lowercase() }
}.also {
tasks.preBuild.dependsOn(it)
tasks.getByName<Delete>("clean") {
val filesNamesToDelete = listOf("CHANGELOG", "PRIVACY")
filesNamesToDelete.forEach { fileName ->
delete(layout.projectDirectory.file("src/main/res/raw/${fileName.lowercase()}.md"))
}
}
}

View File

@@ -2,7 +2,7 @@
# By default, the flags in this file are appended to flags specified
# in /Users/brarcher/Library/Android/sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
# directive in build.gradle.kts.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html

View File

@@ -0,0 +1,67 @@
package protect.card_locker;
import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.action.ViewActions.typeText;
import static androidx.test.espresso.assertion.ViewAssertions.matches;
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
import static androidx.test.espresso.matcher.ViewMatchers.withChild;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not;
import static org.junit.Assert.assertEquals;
import androidx.appcompat.widget.Toolbar;
import androidx.test.core.app.ActivityScenario;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.uiautomator.UiDevice;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
public class MainActivitySearchViewTest {
@Test
public void whenSearchViewIsExpandedAndBackIsPressedThenMenuItemShouldNotBeCollapsed() {
String query = "random arbitrary text";
try (ActivityScenario<MainActivity> mainActivityScenario = ActivityScenario.launch(MainActivity.class)) {
mainActivityScenario.onActivity(this::makeSearchMenuItemVisible);
onView(withId(R.id.action_search)).perform(click());
onView(withId(androidx.appcompat.R.id.search_src_text)).perform(typeText(query));
pressBack();
onView(withId(androidx.appcompat.R.id.search_src_text)).check(matches(withText(query)));
mainActivityScenario.onActivity(activity -> assertEquals(query, activity.mFilter));
}
}
@Test
public void whenSearchViewIsExpandedThenItShouldOnlyBeCollapsedWhenBackIsPressedTwice() {
try (ActivityScenario<MainActivity> mainActivityScenario = ActivityScenario.launch(MainActivity.class)) {
mainActivityScenario.onActivity(this::makeSearchMenuItemVisible);
onView(withId(R.id.action_search)).perform(click());
pressBack();
onView(withId(androidx.appcompat.R.id.search_src_text)).check(matches(isDisplayed()));
pressBack();
onView(withId(android.R.id.content)).check(matches(is(not(withChild(withId(androidx.appcompat.R.id.search_src_text))))));
}
}
private void makeSearchMenuItemVisible(MainActivity activity) {
Toolbar toolbar = activity.findViewById(R.id.toolbar);
toolbar.getMenu().findItem(R.id.action_search).setVisible(true);
}
private void pressBack() {
UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()).pressBack();
}
}

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">تصحيح Catima</string>
</resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima Debug</string>
</resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima Debug</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Αποσφαλμάτωση Catima</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima Debug</string>
</resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Depuración de Catima</string>
</resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Débogage de Catima</string>
</resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">कैटिमा डीबग</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima Debug</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima Debug</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima Debug</string>
</resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima Debug</string>
</resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">ಕ್ಯಾಟಿಮಾ ಡೀಬಗ್</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima 디버그</string>
</resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima-avlusing</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima-foutopsporing</string>
</resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima Debug</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Depuração do Catima</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Depuração Catima</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Depanare Catima</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Отладка Catima</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima Debug</string>
</resources>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima Debug</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima Hata Ayaklama</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima Debug</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Gỡ lỗi Catima</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima 调试</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Catima 除錯版</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name">Catima Debug</string>
</resources>

View File

@@ -16,7 +16,7 @@
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
android:required="false" />
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
@@ -24,6 +24,7 @@
<application
android:name=".LoyaltyCardLockerApplication"
android:allowBackup="true"
android:enableOnBackInvokedCallback="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
@@ -32,7 +33,6 @@
<activity
android:name=".MainActivity"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.App.Starting">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -43,7 +43,9 @@
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
<data android:mimeType="image/*" />
<data android:mimeType="application/pdf" />
</intent-filter>
</activity>
<activity
@@ -111,10 +113,12 @@
android:name=".preferences.SettingsActivity"
android:label="@string/settings"
android:theme="@style/AppTheme.NoActionBar" />
<!-- FIXME: locked screenOrientation is a workaround for https://github.com/CatimaLoyalty/Android/issues/1715, remove when https://github.com/CatimaLoyalty/Android/issues/513 is fixed -->
<activity
android:name=".ImportExportActivity"
android:label="@string/importExport"
android:exported="true"
android:screenOrientation="locked"
android:theme="@style/AppTheme.NoActionBar">
<!-- ZIP Intent Filter -->

View File

@@ -7,11 +7,11 @@ import android.view.View;
import android.widget.ScrollView;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import protect.card_locker.databinding.AboutActivityBinding;
public class AboutActivity extends CatimaAppCompatActivity {
@@ -43,7 +43,7 @@ public class AboutActivity extends CatimaAppCompatActivity {
binding.privacy.setTag("https://catima.app/privacy-policy/");
binding.reportError.setTag("https://github.com/CatimaLoyalty/Android/issues");
binding.rate.setTag("https://play.google.com/store/apps/details?id=me.hackerchick.catima");
binding.donate.setTag("https://catima.app/contribute/#donating");
binding.donate.setTag("https://catima.app/donate");
boolean installedFromGooglePlay = Utils.installedFromGooglePlay(this);
// Hide Google Play rate button if not on Google Play
@@ -98,11 +98,7 @@ public class AboutActivity extends CatimaAppCompatActivity {
}
private void showCredits() {
new MaterialAlertDialogBuilder(this)
.setTitle(R.string.credits)
.setMessage(content.getContributorInfo())
.setPositiveButton(R.string.ok, null)
.show();
showHTML(R.string.credits, content.getContributorInfo(), null);
}
private void showHistory(View view) {
@@ -117,7 +113,7 @@ public class AboutActivity extends CatimaAppCompatActivity {
showHTML(R.string.privacy_policy, content.getPrivacyInfo(), view);
}
private void showHTML(@StringRes int title, final Spanned text, View view) {
private void showHTML(@StringRes int title, final Spanned text, @Nullable View view) {
int dialogContentPadding = getResources().getDimensionPixelSize(R.dimen.alert_dialog_content_padding);
TextView textView = new TextView(this);
textView.setText(text);
@@ -125,12 +121,21 @@ public class AboutActivity extends CatimaAppCompatActivity {
ScrollView scrollView = new ScrollView(this);
scrollView.addView(textView);
scrollView.setPadding(dialogContentPadding, dialogContentPadding / 2, dialogContentPadding, 0);
new MaterialAlertDialogBuilder(this)
// Create dialog
MaterialAlertDialogBuilder materialAlertDialogBuilder = new MaterialAlertDialogBuilder(this);
materialAlertDialogBuilder
.setTitle(title)
.setView(scrollView)
.setPositiveButton(R.string.ok, null)
.setNeutralButton(R.string.view_online, (dialog, which) -> openExternalBrowser(view))
.show();
.setPositiveButton(R.string.ok, null);
// Add View online button if an URL is linked to this view
if (view != null && view.getTag() != null) {
materialAlertDialogBuilder.setNeutralButton(R.string.view_online, (dialog, which) -> openExternalBrowser(view));
}
// Show dialog
materialAlertDialogBuilder.show();
}
private void openExternalBrowser(View view) {

View File

@@ -129,19 +129,19 @@ public class AboutContent {
return result.toString();
}
public String getContributorInfo() {
public Spanned getContributorInfo() {
StringBuilder contributorInfo = new StringBuilder();
contributorInfo.append(getCopyright());
contributorInfo.append("\n\n");
contributorInfo.append("<br/><br/>");
contributorInfo.append(context.getString(R.string.app_copyright_old));
contributorInfo.append("\n\n");
contributorInfo.append(HtmlCompat.fromHtml(String.format(context.getString(R.string.app_contributors), getContributors()), HtmlCompat.FROM_HTML_MODE_COMPACT));
contributorInfo.append("\n\n");
contributorInfo.append(HtmlCompat.fromHtml(String.format(context.getString(R.string.app_libraries), getThirdPartyLibraries()), HtmlCompat.FROM_HTML_MODE_COMPACT));
contributorInfo.append("\n\n");
contributorInfo.append(HtmlCompat.fromHtml(String.format(context.getString(R.string.app_resources), getUsedThirdPartyAssets()), HtmlCompat.FROM_HTML_MODE_COMPACT));
contributorInfo.append("<br/><br/>");
contributorInfo.append(String.format(context.getString(R.string.app_contributors), getContributors()));
contributorInfo.append("<br/><br/>");
contributorInfo.append(String.format(context.getString(R.string.app_libraries), getThirdPartyLibraries()));
contributorInfo.append("<br/><br/>");
contributorInfo.append(String.format(context.getString(R.string.app_resources), getUsedThirdPartyAssets()));
return contributorInfo.toString();
return HtmlCompat.fromHtml(contributorInfo.toString(), HtmlCompat.FROM_HTML_MODE_COMPACT);
}
public Spanned getHistoryInfo() {

View File

@@ -12,13 +12,12 @@ 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 androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.Toolbar;
import protect.card_locker.databinding.BarcodeSelectorActivityBinding;
/**
@@ -66,10 +65,6 @@ public class BarcodeSelectorActivity extends CatimaAppCompatActivity implements
runOnUiThread(() -> {
generateBarcodes(s.toString());
View noBarcodeButtonView = binding.noBarcode;
setButtonListener(noBarcodeButtonView, s.toString());
noBarcodeButtonView.setEnabled(s.length() > 0);
});
}, INPUT_DELAY);
}
@@ -95,17 +90,6 @@ public class BarcodeSelectorActivity extends CatimaAppCompatActivity implements
mAdapter.setBarcodes(barcodes);
}
private void setButtonListener(final View button, final String cardId) {
button.setOnClickListener(view -> {
Log.d(TAG, "Selected no barcode");
Intent result = new Intent();
result.putExtra(BARCODE_FORMAT, "");
result.putExtra(BARCODE_CONTENTS, cardId);
BarcodeSelectorActivity.this.setResult(RESULT_OK, result);
finish();
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {

View File

@@ -3,12 +3,17 @@ package protect.card_locker;
public class BarcodeValues {
private final String mFormat;
private final String mContent;
private String mNote;
public BarcodeValues(String format, String content) {
mFormat = format;
mContent = content;
}
public void setNote(String note) {
mNote = note;
}
public String format() {
return mFormat;
}
@@ -17,7 +22,5 @@ public class BarcodeValues {
return mContent;
}
public boolean isEmpty() {
return mFormat == null && mContent == null;
}
}
public String note() { return mNote; }
}

View File

@@ -0,0 +1,6 @@
package protect.card_locker;
public interface BarcodeValuesListDisambiguatorCallback {
void onUserChoseBarcode(BarcodeValues barcodeValues);
void onUserDismissedSelector();
}

View File

@@ -15,13 +15,13 @@ import android.service.controls.actions.ControlAction;
import android.service.controls.templates.StatelessTemplate;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import java.util.List;
import java.util.concurrent.Flow;
import java.util.function.Consumer;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
@RequiresApi(Build.VERSION_CODES.R)
public class CardsOnPowerScreenService extends ControlsProviderService {

View File

@@ -5,6 +5,7 @@ import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -13,6 +14,8 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.core.view.WindowInsetsControllerCompat;
public class CatimaAppCompatActivity extends AppCompatActivity {
protected boolean activityOverridesNavBarColor = false;
@Override
protected void attachBaseContext(Context base) {
// Apply chosen language
@@ -30,20 +33,31 @@ public class CatimaAppCompatActivity extends AppCompatActivity {
super.onPostCreate(savedInstanceState);
// material 3 designer does not consider status bar colors
// XXX changing this in onCreate causes issues with the splash screen activity, so doing this here
boolean darkMode = Utils.isDarkModeEnabled(this);
if (Build.VERSION.SDK_INT >= 23) {
View decorView = getWindow().getDecorView();
WindowInsetsControllerCompat wic = new WindowInsetsControllerCompat(getWindow(), decorView);
wic.setAppearanceLightStatusBars(!darkMode);
getWindow().setStatusBarColor(Color.TRANSPARENT);
} else {
// icons are always white back then
getWindow().setStatusBarColor(darkMode ? Color.TRANSPARENT : Color.argb(127, 0, 0, 0));
Window window = getWindow();
if (window != null) {
boolean darkMode = Utils.isDarkModeEnabled(this);
if (Build.VERSION.SDK_INT >= 23) {
View decorView = window.getDecorView();
WindowInsetsControllerCompat wic = new WindowInsetsControllerCompat(window, decorView);
wic.setAppearanceLightStatusBars(!darkMode);
window.setStatusBarColor(Color.TRANSPARENT);
} else {
// icons are always white back then
window.setStatusBarColor(darkMode ? Color.TRANSPARENT : Color.argb(127, 0, 0, 0));
}
}
// XXX android 9 and below has a nasty rendering bug if the theme was patched earlier
Utils.postPatchColors(this);
}
@Override
protected void onResume() {
super.onResume();
if (!activityOverridesNavBarColor) {
Utils.setNavigationBarColor(this, null, Utils.resolveBackgroundColor(this), !Utils.isDarkModeEnabled(this));
}
}
protected void enableToolbarBackButton() {
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {

View File

@@ -4,22 +4,24 @@ import android.app.Activity;
import android.content.Context;
import android.widget.Toast;
import androidx.core.util.Consumer;
import com.journeyapps.barcodescanner.CaptureManager;
import com.journeyapps.barcodescanner.DecoratedBarcodeView;
public class CatimaCaptureManager extends CaptureManager {
private final Context mContext;
private final Consumer<String> mErrorCallback;
public CatimaCaptureManager(Activity activity, DecoratedBarcodeView barcodeView) {
public CatimaCaptureManager(Activity activity, DecoratedBarcodeView barcodeView, Consumer<String> errorCallback) {
super(activity, barcodeView);
mContext = activity.getApplicationContext();
mErrorCallback = errorCallback;
}
@Override
protected void displayFrameworkBugMessageAndExit(String message) {
// We don't want to exit, as we also have a enter from card image and add manually button here
// So we show a toast instead
Toast.makeText(mContext, message, Toast.LENGTH_LONG).show();
// So, instead, we call our error callback
mErrorCallback.accept(message);
}
}

View File

@@ -8,14 +8,12 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import protect.card_locker.databinding.GroupLayoutBinding;
import protect.card_locker.preferences.Settings;
public class GroupCursorAdapter extends BaseCursorAdapter<GroupCursorAdapter.GroupListItemViewHolder> {
public final Context mContext;

View File

@@ -1,38 +1,36 @@
package protect.card_locker;
import android.Manifest;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.text.InputType;
import android.util.Log;
import android.view.MenuItem;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.Toast;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.textfield.TextInputLayout;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import protect.card_locker.async.TaskHandler;
import protect.card_locker.databinding.ImportExportActivityBinding;
import protect.card_locker.importexport.DataFormat;
@@ -83,15 +81,21 @@ public class ImportExportActivity extends CatimaAppCompatActivity {
Log.e(TAG, "Activity returned NULL uri");
return;
}
try {
OutputStream writer = getContentResolver().openOutputStream(uri);
Log.e(TAG, "Starting file export with: " + result.toString());
startExport(writer, uri, exportPassword.toCharArray(), true);
} catch (IOException e) {
Log.e(TAG, "Failed to export file: " + result.toString(), e);
onExportComplete(new ImportExportResult(ImportExportResultType.GenericFailure, result.toString()), uri);
}
// Running this in a thread prevents Android from throwing a NetworkOnMainThreadException for large files
// FIXME: This is still suboptimal, because showing that the export started is delayed until the network request finishes
new Thread() {
@Override
public void run() {
try {
OutputStream writer = getContentResolver().openOutputStream(uri);
Log.d(TAG, "Starting file export with: " + result);
startExport(writer, uri, exportPassword.toCharArray(), true);
} catch (IOException e) {
Log.e(TAG, "Failed to export file: " + result, e);
onExportComplete(new ImportExportResult(ImportExportResultType.GenericFailure, result.toString()), uri);
}
}
}.start();
});
fileOpenLauncher = registerForActivityResult(new ActivityResultContracts.GetContent(), result -> {
if (result == null) {
@@ -126,16 +130,19 @@ public class ImportExportActivity extends CatimaAppCompatActivity {
builder.setTitle(R.string.exportPassword);
FrameLayout container = new FrameLayout(ImportExportActivity.this);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin = 50;
params.rightMargin = 50;
final TextInputLayout textInputLayout = new TextInputLayout(ImportExportActivity.this);
textInputLayout.setEndIconMode(TextInputLayout.END_ICON_PASSWORD_TOGGLE);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.setMargins(50, 10, 50, 0);
textInputLayout.setLayoutParams(params);
final EditText input = new EditText(ImportExportActivity.this);
input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
input.setLayoutParams(params);
input.setHint(R.string.exportPasswordHint);
container.addView(input);
textInputLayout.addView(input);
container.addView(textInputLayout);
builder.setView(container);
builder.setPositiveButton(R.string.ok, (dialogInterface, i) -> {
exportPassword = input.getText().toString();
@@ -148,7 +155,6 @@ public class ImportExportActivity extends CatimaAppCompatActivity {
});
builder.setNegativeButton(R.string.cancel, (dialogInterface, i) -> dialogInterface.cancel());
builder.show();
});
// Check that there is a file manager available
@@ -158,17 +164,28 @@ public class ImportExportActivity extends CatimaAppCompatActivity {
// Check that there is an app that data can be imported from
Button importApplication = binding.importOptionApplicationButton;
importApplication.setOnClickListener(v -> chooseImportType(true, null));
// FIXME: The importer/exporter is currently quite broken
// To prevent the screen from turning off during import/export and some devices killing Catima as it's no longer foregrounded, force the screen to stay on here
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
private void openFileForImport(Uri uri, char[] password) {
try {
InputStream reader = getContentResolver().openInputStream(uri);
Log.e(TAG, "Starting file import with: " + uri.toString());
startImport(reader, uri, importDataFormat, password, true);
} catch (IOException e) {
Log.e(TAG, "Failed to import file: " + uri.toString(), e);
onImportComplete(new ImportExportResult(ImportExportResultType.GenericFailure, e.toString()), uri, importDataFormat);
}
// Running this in a thread prevents Android from throwing a NetworkOnMainThreadException for large files
// FIXME: This is still suboptimal, because showing that the import started is delayed until the network request finishes
new Thread() {
@Override
public void run() {
try {
InputStream reader = getContentResolver().openInputStream(uri);
Log.d(TAG, "Starting file import with: " + uri);
startImport(reader, uri, importDataFormat, password, true);
} catch (IOException e) {
Log.e(TAG, "Failed to import file: " + uri, e);
onImportComplete(new ImportExportResult(ImportExportResultType.GenericFailure, e.toString()), uri, importDataFormat);
}
}
}.start();
}
private void chooseImportType(boolean choosePicker,
@@ -320,9 +337,21 @@ public class ImportExportActivity extends CatimaAppCompatActivity {
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
builder.setTitle(R.string.passwordRequired);
final EditText input = new EditText(this);
FrameLayout container = new FrameLayout(ImportExportActivity.this);
final TextInputLayout textInputLayout = new TextInputLayout(ImportExportActivity.this);
textInputLayout.setEndIconMode(TextInputLayout.END_ICON_PASSWORD_TOGGLE);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.setMargins(50, 10, 50, 0);
textInputLayout.setLayoutParams(params);
final EditText input = new EditText(ImportExportActivity.this);
input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
builder.setView(input);
input.setHint(R.string.exportPasswordHint);
textInputLayout.addView(input);
container.addView(textInputLayout);
builder.setView(container);
builder.setPositiveButton(R.string.ok, (dialogInterface, i) -> {
openFileForImport(uri, input.getText().toString().toCharArray());

View File

@@ -6,6 +6,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import android.widget.Toast;
import java.io.IOException;
import java.io.InputStream;
@@ -90,16 +91,20 @@ public class ImportExportTask implements CompatCallable<ImportExportResult> {
progress = new ProgressDialog(activity);
progress.setTitle(doImport ? R.string.importing : R.string.exporting);
progress.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
ImportExportTask.this.stop();
}
});
progress.setOnCancelListener(dialog -> cancel(doImport, true));
progress.setOnDismissListener(dialog -> cancel(doImport, true));
progress.show();
}
private void cancel(boolean isImport, boolean showToast) {
ImportExportTask.this.stop();
if (showToast) {
Toast.makeText(activity, isImport ? R.string.importCancelled : R.string.exportCancelled, Toast.LENGTH_LONG).show();
}
}
protected ImportExportResult doInBackground(Void... nothing) {
final SQLiteDatabase database = new DBHelper(activity).getWritableDatabase();
ImportExportResult result;

View File

@@ -4,13 +4,13 @@ import android.database.Cursor;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.math.BigDecimal;
import java.util.Currency;
import java.util.Date;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class LoyaltyCard implements Parcelable {
public final int id;
public final String store;
@@ -164,7 +164,7 @@ public class LoyaltyCard implements Parcelable {
@Override
public int describeContents() {
return id;
return 0;
}
@NonNull

View File

@@ -15,13 +15,6 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.google.android.material.card.MaterialCardView;
import com.google.android.material.color.MaterialColors;
import java.math.BigDecimal;
import java.text.DateFormat;
import java.util.ArrayList;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
@@ -29,6 +22,13 @@ import androidx.core.graphics.BlendModeColorFilterCompat;
import androidx.core.graphics.BlendModeCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.card.MaterialCardView;
import com.google.android.material.color.MaterialColors;
import java.math.BigDecimal;
import java.text.DateFormat;
import java.util.ArrayList;
import protect.card_locker.databinding.LoyaltyCardLayoutBinding;
public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCursorAdapter.LoyaltyCardListItemViewHolder> {
@@ -123,8 +123,7 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
}
inputHolder.mCardIcon.setContentDescription(loyaltyCard.store);
Utils.setIconOrTextWithBackground(mContext, loyaltyCard, icon, inputHolder.mCardIcon, inputHolder.mCardText);
inputHolder.setIconBackgroundColor(Utils.getHeaderColor(mContext, loyaltyCard));
inputHolder.mIconBackgroundColor = Utils.setIconOrTextWithBackground(mContext, loyaltyCard, icon, inputHolder.mCardIcon, inputHolder.mCardText);
inputHolder.toggleCardStateIcon(loyaltyCard.starStatus != 0, loyaltyCard.archiveStatus != 0, itemSelected(inputCursor.getPosition()));
@@ -339,11 +338,6 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
mArchivedBackground.invalidate();
}
public void setIconBackgroundColor(int color) {
mIconBackgroundColor = color;
mCardIcon.setBackgroundColor(color);
}
}
public int dpToPx(int dp, Context mContext) {

View File

@@ -2,8 +2,6 @@ package protect.card_locker;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
@@ -29,33 +27,34 @@ import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.OnBackPressedCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import androidx.core.content.FileProvider;
import androidx.exifinterface.media.ExifInterface;
import androidx.fragment.app.DialogFragment;
import com.google.android.material.chip.Chip;
import com.google.android.material.chip.ChipGroup;
import com.google.android.material.color.MaterialColors;
import com.google.android.material.datepicker.CalendarConstraints;
import com.google.android.material.datepicker.DateValidatorPointBackward;
import com.google.android.material.datepicker.DateValidatorPointForward;
import com.google.android.material.datepicker.MaterialDatePicker;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
import com.google.android.material.tabs.TabLayout;
import com.jaredrummler.android.colorpicker.ColorPickerDialog;
import com.jaredrummler.android.colorpicker.ColorPickerDialogListener;
@@ -74,7 +73,6 @@ import java.util.Calendar;
import java.util.Collections;
import java.util.Currency;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
@@ -94,6 +92,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
private final String STATE_TAB_INDEX = "savedTab";
private final String STATE_TEMP_CARD = "tempLoyaltyCard";
private final String STATE_TEMP_CARD_FIELD = "tempLoyaltyCardField";
private final String STATE_REQUESTED_IMAGE = "requestedImage";
private final String STATE_FRONT_IMAGE_UNSAVED = "frontImageUnsaved";
private final String STATE_BACK_IMAGE_UNSAVED = "backImageUnsaved";
@@ -105,6 +104,9 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
private final String STATE_ICON_REMOVED = "iconRemoved";
private final String STATE_OPEN_SET_ICON_MENU = "openSetIconMenu";
private static final String PICK_DATE_REQUEST_KEY = "pick_date_request";
private static final String NEWLY_PICKED_DATE_ARGUMENT_KEY = "newly_picked_date";
private final String TEMP_CAMERA_IMAGE_NAME = LoyaltyCardEditActivity.class.getSimpleName() + "_camera_image.jpg";
private final String TEMP_CROP_IMAGE_NAME = LoyaltyCardEditActivity.class.getSimpleName() + "_crop_image.png";
private final Bitmap.CompressFormat TEMP_CROP_IMAGE_FORMAT = Bitmap.CompressFormat.PNG;
@@ -182,6 +184,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
HashMap<String, String> currencySymbols = new HashMap<>();
LoyaltyCard tempLoyaltyCard;
LoyaltyCardField tempLoyaltyCardField;
ActivityResultLauncher<Uri> mPhotoTakerLauncher;
ActivityResultLauncher<Intent> mPhotoPickerLauncher;
@@ -261,13 +264,13 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
+ ", updateLoyaltyCard=" + updateLoyaltyCard);
}
@Override
public void onSaveInstanceState(@NonNull Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
tabs = binding.tabs;
savedInstanceState.putInt(STATE_TAB_INDEX, tabs.getSelectedTabPosition());
savedInstanceState.putParcelable(STATE_TEMP_CARD, tempLoyaltyCard);
savedInstanceState.putSerializable(STATE_TEMP_CARD_FIELD, tempLoyaltyCardField);
savedInstanceState.putInt(STATE_REQUESTED_IMAGE, mRequestedImage);
Object cardImageFrontObj = cardImageFront.getTag();
@@ -303,6 +306,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
public void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
onRestoring = true;
tempLoyaltyCard = savedInstanceState.getParcelable(STATE_TEMP_CARD);
tempLoyaltyCardField = (LoyaltyCardField) savedInstanceState.getSerializable(STATE_TEMP_CARD_FIELD);
super.onRestoreInstanceState(savedInstanceState);
tabs = binding.tabs;
tabs.selectTab(tabs.getTabAt(savedInstanceState.getInt(STATE_TAB_INDEX)));
@@ -365,8 +369,15 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
storeFieldEdit.addTextChangedListener(new SimpleTextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
updateTempState(LoyaltyCardField.store, s.toString());
generateIcon(s.toString());
String storeName = s.toString().trim();
updateTempState(LoyaltyCardField.store, storeName);
generateIcon(storeName);
if (storeName.length() == 0) {
storeFieldEdit.setError(getString(R.string.field_must_not_be_empty));
} else {
storeFieldEdit.setError(null);
}
}
});
@@ -381,23 +392,14 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
addDateFieldTextChangedListener(expiryField, R.string.never, R.string.chooseExpiryDate, LoyaltyCardField.expiry);
DatePickerFragment.registerDatePickListener(this, (textFieldToEdit, newDate) -> {
switch (textFieldToEdit) {
case validFrom:
formatDateField(this, validFromField, newDate);
updateTempState(LoyaltyCardField.validFrom, newDate);
break;
case expiry:
formatDateField(this, expiryField, newDate);
updateTempState(LoyaltyCardField.expiry, newDate);
break;
default:
throw new AssertionError("Unexpected field: " + textFieldToEdit);
}
});
setMaterialDatePickerResultListener();
balanceField.setOnFocusChangeListener((v, hasFocus) -> {
if (!hasFocus && !onResuming && !onRestoring) {
if (balanceField.getText().toString().isEmpty()) {
updateTempState(LoyaltyCardField.balance, BigDecimal.valueOf(0));
}
balanceField.setText(Utils.formatBalanceWithoutCurrencySymbol(tempLoyaltyCard.balance, tempLoyaltyCard.balanceType));
}
});
@@ -409,10 +411,12 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
try {
BigDecimal balance = Utils.parseBalance(s.toString(), tempLoyaltyCard.balanceType);
updateTempState(LoyaltyCardField.balance, balance);
balanceField.setError(null);
validBalance = true;
} catch (ParseException e) {
validBalance = false;
e.printStackTrace();
balanceField.setError(getString(R.string.balanceParsingFailed));
validBalance = false;
}
}
});
@@ -488,6 +492,12 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
updateTempState(LoyaltyCardField.cardId, s.toString());
if (s.length() == 0) {
cardIdFieldView.setError(getString(R.string.field_must_not_be_empty));
} else {
cardIdFieldView.setError(null);
}
}
});
@@ -636,11 +646,22 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
Log.d("barcode card id editor", "barcode and card id editor picker returned without an intent");
return;
}
BarcodeValues barcodeValues = Utils.parseSetBarcodeActivityResult(Utils.BARCODE_SCAN, result.getResultCode(), intent, getApplicationContext());
cardId = barcodeValues.content();
barcodeType = barcodeValues.format();
barcodeId = "";
List<BarcodeValues> barcodeValuesList = Utils.parseSetBarcodeActivityResult(Utils.BARCODE_SCAN, result.getResultCode(), intent, getApplicationContext());
Utils.makeUserChooseBarcodeFromList(this, barcodeValuesList, new BarcodeValuesListDisambiguatorCallback() {
@Override
public void onUserChoseBarcode(BarcodeValues barcodeValues) {
cardId = barcodeValues.content();
barcodeType = barcodeValues.format();
barcodeId = "";
}
@Override
public void onUserDismissedSelector() {
}
});
}
});
@@ -660,16 +681,17 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
if (bitmap != null) {
if (requestedFrontImage()) {
mFrontImageRemoved = false;
mFrontImageUnsaved = true;
setCardImage(cardImageFront, Utils.resizeBitmap(bitmap, Utils.BITMAP_SIZE_BIG), true);
} else if (requestedBackImage()) {
mBackImageRemoved = false;
mBackImageUnsaved = true;
setCardImage(cardImageBack, Utils.resizeBitmap(bitmap, Utils.BITMAP_SIZE_BIG), true);
} else {
mIconRemoved = false;
mIconUnsaved = true;
setCardImage(thumbnail, Utils.resizeBitmap(bitmap, Utils.BITMAP_SIZE_SMALL), false);
thumbnail.setBackgroundColor(Color.TRANSPARENT);
setColorFromIcon();
setThumbnailImage(Utils.resizeBitmap(bitmap, Utils.BITMAP_SIZE_SMALL));
}
Log.d("cropper", "mRequestedImage: " + mRequestedImage);
mCropperFinishedType = mRequestedImage;
@@ -687,6 +709,13 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
});
mCropperOptions = new UCrop.Options();
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
@Override
public void handleOnBackPressed() {
askBeforeQuitIfChanged();
}
});
}
// ucrop 2.2.6 initial aspect ratio is glitched when 0x0 is used as the initial ratio option
@@ -760,7 +789,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
@SuppressLint("DefaultLocale")
@Override
public void onResume() {
protected void onResume() {
super.onResume();
Log.i(TAG, "To view card: " + loyaltyCardId);
@@ -806,7 +835,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
setCardImage(cardImageBack, Utils.retrieveCardImage(this, tempLoyaltyCard.id, ImageLocationType.back), true);
}
if (!mIconUnsaved && !croppedIcon() && !mIconRemoved) {
setCardImage(thumbnail, Utils.retrieveCardImage(this, tempLoyaltyCard.id, ImageLocationType.icon), false);
setThumbnailImage(Utils.retrieveCardImage(this, tempLoyaltyCard.id, ImageLocationType.icon));
}
} else {
setTitle(R.string.addCardTitle);
@@ -819,7 +848,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
setCardImage(cardImageBack, Utils.loadTempImage(this, TEMP_UNSAVED_BACK_IMAGE_NAME), true);
}
if (mIconUnsaved && !croppedIcon()) {
setCardImage(thumbnail, Utils.loadTempImage(this, TEMP_UNSAVED_ICON_NAME), false);
setThumbnailImage(Utils.loadTempImage(this, TEMP_UNSAVED_ICON_NAME));
}
}
@@ -933,7 +962,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
saveButton.setOnClickListener(v -> doSave());
saveButton.bringToFront();
generateIcon(storeFieldEdit.getText().toString());
generateIcon(storeFieldEdit.getText().toString().trim());
// It can't be null because we set it in updateTempState but SpotBugs insists it can be
// NP_NULL_ON_SOME_PATH: Possible null pointer dereference and
@@ -970,6 +999,22 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
}
}
protected void setThumbnailImage(@Nullable Bitmap bitmap) {
setCardImage(thumbnail, bitmap, false);
if (bitmap == null) {
generateIcon(storeFieldEdit.getText().toString().trim());
} else {
thumbnail.setBackgroundColor(Color.TRANSPARENT);
setColorFromIcon();
}
if (tempLoyaltyCard.headerColor != null) {
thumbnailEditIcon.setBackgroundColor(Utils.needsDarkForeground(tempLoyaltyCard.headerColor) ? Color.BLACK : Color.WHITE);
thumbnailEditIcon.setColorFilter(Utils.needsDarkForeground(tempLoyaltyCard.headerColor) ? Color.WHITE : Color.BLACK);
}
}
protected void setCardImage(ImageView imageView, Bitmap bitmap, boolean applyFallback) {
imageView.setTag(bitmap);
@@ -998,14 +1043,14 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
if (!lastValue.toString().equals(getString(chooseDateOptionStringId))) {
dateField.setText(lastValue);
}
DialogFragment datePickerFragment = DatePickerFragment.newInstance(
showDatePicker(
loyaltyCardField,
(Date) dateField.getTag(),
// if the expiry date is being set, set date picker's minDate to the 'valid from' date
loyaltyCardField == LoyaltyCardField.expiry ? (Date) validFromField.getTag() : null,
// if the 'valid from' date is being set, set date picker's maxDate to the expiry date
loyaltyCardField == LoyaltyCardField.validFrom ? (Date) expiryField.getTag() : null);
datePickerFragment.show(getSupportFragmentManager(), "datePicker");
loyaltyCardField == LoyaltyCardField.validFrom ? (Date) expiryField.getTag() : null
);
}
}
@@ -1046,11 +1091,6 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
}
}
@Override
public void onBackPressed() {
askBeforeQuitIfChanged();
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
@@ -1302,6 +1342,28 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
return null;
});
if (v.getId() == R.id.thumbnail) {
if (cardImageFront.getTag() instanceof Bitmap) {
cardOptions.put(getString(R.string.useFrontImage), () -> {
mIconRemoved = false;
mIconUnsaved = true;
setThumbnailImage(Utils.resizeBitmap((Bitmap) cardImageFront.getTag(), Utils.BITMAP_SIZE_SMALL));
return null;
});
}
if (cardImageBack.getTag() instanceof Bitmap) {
cardOptions.put(getString(R.string.useBackImage), () -> {
mIconRemoved = false;
mIconUnsaved = true;
setThumbnailImage(Utils.resizeBitmap((Bitmap) cardImageBack.getTag(), Utils.BITMAP_SIZE_SMALL));
return null;
});
}
}
int titleResource;
if (v.getId() == R.id.frontImageHolder) {
@@ -1342,17 +1404,13 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
// We don't need to set or check the dialogId since it's only used for that single dialog
@Override
public void onColorSelected(int dialogId, int color) {
// Unset image if set
setCardImage(thumbnail, null, false);
mIconRemoved = true;
mIconUnsaved = false;
// Save new colour
updateTempState(LoyaltyCardField.headerColor, color);
thumbnailEditIcon.setBackgroundColor(Utils.needsDarkForeground(color) ? Color.BLACK : Color.WHITE);
thumbnailEditIcon.setColorFilter(Utils.needsDarkForeground(color) ? Color.WHITE : Color.BLACK);
generateIcon(storeFieldEdit.getText().toString());
// Unset image if set
mIconRemoved = true;
mIconUnsaved = false;
setThumbnailImage(null);
}
// ColorPickerDialogListener callback
@@ -1361,103 +1419,106 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
// Nothing to do, no change made
}
public static class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {
private void showDatePicker(
LoyaltyCardField loyaltyCardField,
@Nullable Date selectedDate,
@Nullable Date minDate,
@Nullable Date maxDate
) {
// Create a new instance of MaterialDatePicker and return it
long startDate = minDate != null ? minDate.getTime() : getDefaultMinDateOfDatePicker();
long endDate = maxDate != null ? maxDate.getTime() : getDefaultMaxDateOfDatePicker();
public interface OnDatePickListener {
void onDatePicked(@NonNull LoyaltyCardField textFieldToEdit, @NonNull Date newDate);
CalendarConstraints.DateValidator dateValidator;
switch (loyaltyCardField) {
case validFrom:
dateValidator = DateValidatorPointBackward.before(endDate);
break;
case expiry:
dateValidator = DateValidatorPointForward.from(startDate);
break;
default:
throw new AssertionError("Unexpected field: " + loyaltyCardField);
}
private static final String TEXT_FIELD_TO_EDIT_ARGUMENT_KEY = "text_field_to_edit";
private static final String CURRENT_DATE_ARGUMENT_KEY = "current_date";
private static final String MIN_DATE_ARGUMENT_KEY = "min_date";
private static final String MAX_DATE_ARGUMENT_KEY = "max_date";
private static final String PICK_DATE_REQUEST_KEY = "pick_date_request";
private static final String NEWLY_PICKED_DATE_ARGUMENT_KEY = "newly_picked_date";
CalendarConstraints calendarConstraints = new CalendarConstraints.Builder()
.setValidator(dateValidator)
.setStart(startDate)
.setEnd(endDate)
.build();
LoyaltyCardField textFieldEdit;
@Nullable
Date minDate;
@Nullable
Date maxDate;
public static DatePickerFragment newInstance(@NonNull LoyaltyCardField textField, @Nullable Date currentDate, @Nullable Date minDate, @Nullable Date maxDate) {
Bundle args = new Bundle();
args.putSerializable(TEXT_FIELD_TO_EDIT_ARGUMENT_KEY, textField);
args.putSerializable(CURRENT_DATE_ARGUMENT_KEY, currentDate);
args.putSerializable(MIN_DATE_ARGUMENT_KEY, minDate);
args.putSerializable(MAX_DATE_ARGUMENT_KEY, maxDate);
DatePickerFragment fragment = new DatePickerFragment();
fragment.setArguments(args);
return fragment;
// Use the selected date as the default date in the picker
final Calendar calendar = Calendar.getInstance();
if (selectedDate != null) {
calendar.setTime(selectedDate);
}
public static void registerDatePickListener(@NonNull AppCompatActivity activity, @NonNull OnDatePickListener listener) {
activity.getSupportFragmentManager().setFragmentResultListener(
PICK_DATE_REQUEST_KEY,
activity,
(requestKey, result) -> listener.onDatePicked(
(LoyaltyCardField) Objects.requireNonNull(result.getSerializable(TEXT_FIELD_TO_EDIT_ARGUMENT_KEY)),
(Date) Objects.requireNonNull(result.getSerializable(NEWLY_PICKED_DATE_ARGUMENT_KEY))));
}
MaterialDatePicker<Long> materialDatePicker = MaterialDatePicker.Builder.datePicker()
.setSelection(calendar.getTimeInMillis())
.setCalendarConstraints(calendarConstraints)
.build();
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Bundle args = requireArguments();
textFieldEdit = (LoyaltyCardField) args.getSerializable(TEXT_FIELD_TO_EDIT_ARGUMENT_KEY);
minDate = (Date) args.getSerializable(MIN_DATE_ARGUMENT_KEY);
maxDate = (Date) args.getSerializable(MAX_DATE_ARGUMENT_KEY);
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
Date date = (Date) args.getSerializable(CURRENT_DATE_ARGUMENT_KEY);
if (date != null) {
c.setTime(date);
// Required to handle configuration changes
// See https://github.com/material-components/material-components-android/issues/1688
tempLoyaltyCardField = loyaltyCardField;
getSupportFragmentManager().addFragmentOnAttachListener((fragmentManager, fragment) -> {
if (fragment instanceof MaterialDatePicker && Objects.equals(fragment.getTag(), PICK_DATE_REQUEST_KEY)) {
((MaterialDatePicker<Long>) fragment).addOnPositiveButtonClickListener(selection -> {
Bundle args = new Bundle();
args.putLong(NEWLY_PICKED_DATE_ARGUMENT_KEY, selection);
getSupportFragmentManager().setFragmentResult(PICK_DATE_REQUEST_KEY, args);
});
}
});
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
materialDatePicker.show(getSupportFragmentManager(), PICK_DATE_REQUEST_KEY);
}
// Create a new instance of DatePickerDialog and return it
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), this, year, month, day);
datePickerDialog.getDatePicker().setMinDate(minDate != null ? minDate.getTime() : getDefaultMinDateOfDatePicker());
datePickerDialog.getDatePicker().setMaxDate(maxDate != null ? maxDate.getTime() : getDefaultMaxDateOfDatePicker());
return datePickerDialog;
// Required to handle configuration changes
// See https://github.com/material-components/material-components-android/issues/1688
private void setMaterialDatePickerResultListener() {
MaterialDatePicker<Long> fragment = (MaterialDatePicker<Long>) getSupportFragmentManager().findFragmentByTag(PICK_DATE_REQUEST_KEY);
if (fragment != null) {
fragment.addOnPositiveButtonClickListener(selection -> {
Bundle args = new Bundle();
args.putLong(NEWLY_PICKED_DATE_ARGUMENT_KEY, selection);
getSupportFragmentManager().setFragmentResult(PICK_DATE_REQUEST_KEY, args);
});
}
private long getDefaultMinDateOfDatePicker() {
Calendar minDateCalendar = Calendar.getInstance();
minDateCalendar.set(1970, 0, 1);
return minDateCalendar.getTimeInMillis();
}
getSupportFragmentManager().setFragmentResultListener(
PICK_DATE_REQUEST_KEY,
this,
(requestKey, result) -> {
long selection = result.getLong(NEWLY_PICKED_DATE_ARGUMENT_KEY);
private long getDefaultMaxDateOfDatePicker() {
Calendar maxDateCalendar = Calendar.getInstance();
maxDateCalendar.set(2100, 11, 31);
return maxDateCalendar.getTimeInMillis();
}
Date newDate = new Date(selection);
switch (tempLoyaltyCardField) {
case validFrom:
formatDateField(LoyaltyCardEditActivity.this, validFromField, newDate);
updateTempState(LoyaltyCardField.validFrom, newDate);
break;
case expiry:
formatDateField(LoyaltyCardEditActivity.this, expiryField, newDate);
updateTempState(LoyaltyCardField.expiry, newDate);
break;
default:
throw new AssertionError("Unexpected field: " + tempLoyaltyCardField);
}
}
);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
Calendar c = new GregorianCalendar();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, day);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
private long getDefaultMinDateOfDatePicker() {
Calendar minDateCalendar = Calendar.getInstance();
minDateCalendar.set(1970, 0, 1);
return minDateCalendar.getTimeInMillis();
}
long unixTime = c.getTimeInMillis();
Date date = new Date(unixTime);
Bundle result = new Bundle();
result.putSerializable(TEXT_FIELD_TO_EDIT_ARGUMENT_KEY, textFieldEdit);
result.putSerializable(NEWLY_PICKED_DATE_ARGUMENT_KEY, date);
getParentFragmentManager().setFragmentResult(PICK_DATE_REQUEST_KEY, result);
}
private long getDefaultMaxDateOfDatePicker() {
Calendar maxDateCalendar = Calendar.getInstance();
maxDateCalendar.set(2100, 11, 31);
return maxDateCalendar.getTimeInMillis();
}
private void doSave() {
@@ -1471,18 +1532,41 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
return;
}
boolean hasError = false;
if (tempLoyaltyCard.store.isEmpty()) {
Snackbar.make(storeFieldEdit, R.string.noStoreError, Snackbar.LENGTH_LONG).show();
return;
storeFieldEdit.setError(getString(R.string.field_must_not_be_empty));
// Focus element
tabs.selectTab(tabs.getTabAt(0));
storeFieldEdit.requestFocus();
hasError = true;
}
if (tempLoyaltyCard.cardId.isEmpty()) {
Snackbar.make(cardIdFieldView, R.string.noCardIdError, Snackbar.LENGTH_LONG).show();
return;
cardIdFieldView.setError(getString(R.string.field_must_not_be_empty));
// Focus element if first error element
if (!hasError) {
tabs.selectTab(tabs.getTabAt(0));
cardIdFieldView.requestFocus();
hasError = true;
}
}
if (!validBalance) {
Snackbar.make(balanceField, getString(R.string.parsingBalanceFailed, balanceField.getText().toString()), Snackbar.LENGTH_LONG).show();
balanceField.setError(getString(R.string.balanceParsingFailed));
// Focus element if first error element
if (!hasError) {
tabs.selectTab(tabs.getTabAt(1));
balanceField.requestFocus();
hasError = true;
}
}
if (hasError) {
return;
}
@@ -1618,7 +1702,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
String cardIdString = tempLoyaltyCard.barcodeId != null ? tempLoyaltyCard.barcodeId : tempLoyaltyCard.cardId;
CatimaBarcode barcodeFormat = tempLoyaltyCard.barcodeType;
if (cardIdString == null || barcodeFormat == null) {
if (cardIdString == null || cardIdString.isEmpty() || barcodeFormat == null) {
barcodeImageLayout.setVisibility(View.GONE);
return;
}

View File

@@ -3,6 +3,7 @@ package protect.card_locker;
import android.app.Application;
import androidx.appcompat.app.AppCompatDelegate;
import protect.card_locker.preferences.Settings;
public class LoyaltyCardLockerApplication extends Application {

View File

@@ -1,7 +1,6 @@
package protect.card_locker;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.res.ColorStateList;
@@ -20,7 +19,6 @@ import android.text.method.DigitsKeyListener;
import android.text.style.ForegroundColorSpan;
import android.text.util.Linkify;
import android.util.Log;
import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
@@ -38,19 +36,17 @@ import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.OnBackPressedCallback;
import androidx.annotation.StringRes;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.FileProvider;
import androidx.core.graphics.BlendModeColorFilterCompat;
import androidx.core.graphics.BlendModeCompat;
import androidx.core.graphics.ColorUtils;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.core.widget.TextViewCompat;
import com.google.android.material.color.MaterialColors;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@@ -63,7 +59,6 @@ import java.text.DateFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Currency;
import java.util.Date;
import java.util.List;
import java.util.function.Predicate;
@@ -98,7 +93,6 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
ImageView barcodeRenderTarget;
int mainImageIndex = 0;
List<ImageType> imageTypes;
boolean isBarcodeSupported = true;
static final String STATE_IMAGEINDEX = "imageIndex";
static final String STATE_FULLSCREEN = "isFullscreen";
@@ -113,22 +107,25 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
return;
}
ImageType imageType = imageTypes.get(mainImageIndex);
// If the barcode is shown, switch to fullscreen layout
if (imageTypes.get(mainImageIndex) == ImageType.BARCODE) {
if (imageType == ImageType.BARCODE) {
setFullscreen(true);
return;
}
// If this is an image, open it in the gallery.
openCurrentMainImageInGallery();
openImageInGallery(imageType);
}
private void openCurrentMainImageInGallery() {
ImageType wantedImageType = imageTypes.get(mainImageIndex);
private void openImageInGallery(ImageType imageType) {
File file = null;
switch (wantedImageType) {
switch (imageType) {
case ICON:
file = Utils.retrieveCardImageAsFile(this, loyaltyCardId, ImageLocationType.icon);
break;
case IMAGE_FRONT:
file = Utils.retrieveCardImageAsFile(this, loyaltyCardId, ImageLocationType.front);
break;
@@ -176,6 +173,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
enum ImageType {
NONE,
ICON,
BARCODE,
IMAGE_FRONT,
IMAGE_BACK
@@ -229,7 +227,9 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
settings = new Settings(this);
String cardOrientation = settings.getCardViewOrientation();
if (cardOrientation.equals(getString(R.string.settings_key_lock_on_opening_orientation))) {
if (cardOrientation.equals(getString(R.string.settings_key_follow_sensor_orientation))) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
} else if (cardOrientation.equals(getString(R.string.settings_key_lock_on_opening_orientation))) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
} else if (cardOrientation.equals(getString(R.string.settings_key_portrait_orientation))) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
@@ -293,7 +293,6 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
bundle.putBoolean(LoyaltyCardEditActivity.BUNDLE_UPDATE, true);
intent.putExtras(bundle);
startActivity(intent);
finish();
});
binding.fabEdit.bringToFront();
@@ -302,7 +301,13 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
binding.bottomAppBarNextButton.setOnClickListener(view -> prevNextCard(true));
binding.bottomAppBarUpdateBalanceButton.setOnClickListener(view -> showBalanceUpdateDialog());
binding.iconContainer.setOnClickListener(view -> Toast.makeText(LoyaltyCardViewActivity.this, R.string.icon_header_click_text, Toast.LENGTH_LONG).show());
binding.iconContainer.setOnClickListener(view -> {
if (Utils.retrieveCardImage(this, loyaltyCard.id, ImageLocationType.icon) != null) {
openImageInGallery(ImageType.ICON);
} else {
Toast.makeText(LoyaltyCardViewActivity.this, R.string.icon_header_click_text, Toast.LENGTH_LONG).show();
}
});
binding.iconContainer.setOnLongClickListener(view -> {
Intent intent = new Intent(getApplicationContext(), LoyaltyCardEditActivity.class);
Bundle bundle = new Bundle();
@@ -324,6 +329,17 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
return true;
});
binding.fullscreenImage.setOnClickListener(view -> onMainImageTap());
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
@Override
public void handleOnBackPressed() {
if (isFullscreen) {
setFullscreen(false);
} else {
finish();
}
}
});
}
private SpannableStringBuilder padSpannableString(SpannableStringBuilder spannableStringBuilder) {
@@ -402,7 +418,11 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
private void showBalanceUpdateDialog() {
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
// Header
builder.setTitle(R.string.updateBalanceTitle);
// Layout
FrameLayout container = new FrameLayout(this);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
@@ -420,61 +440,91 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
currentTextview.setText(getString(R.string.currentBalanceSentence, Utils.formatBalance(this, loyaltyCard.balance, loyaltyCard.balanceType)));
layout.addView(currentTextview);
TextView updateTextView = new TextView(this);
updateTextView.setText(getString(R.string.newBalanceSentence, Utils.formatBalance(this, loyaltyCard.balance, loyaltyCard.balanceType)));
layout.addView(updateTextView);
final TextInputEditText input = new TextInputEditText(this);
Context dialogContext = this;
input.setInputType(InputType.TYPE_CLASS_NUMBER);
input.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
input.setKeyListener(DigitsKeyListener.getInstance("0123456789,."));
input.setHint(R.string.updateBalanceHint);
input.addTextChangedListener(new SimpleTextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
BigDecimal newBalance;
try {
newBalance = calculateNewBalance(loyaltyCard.balance, loyaltyCard.balanceType, s.toString());
} catch (ParseException e) {
input.setTag(null);
updateTextView.setText(getString(R.string.newBalanceSentence, Utils.formatBalance(dialogContext, loyaltyCard.balance, loyaltyCard.balanceType)));
return;
}
// Save new balance into this element
input.setTag(newBalance);
updateTextView.setText(getString(R.string.newBalanceSentence, Utils.formatBalance(dialogContext, newBalance, loyaltyCard.balanceType)));
}
});
layout.addView(input);
layout.setLayoutParams(params);
container.addView(layout);
// Set layout
builder.setView(container);
builder.setPositiveButton(R.string.ok, (dialogInterface, i) -> {
// Grab calculated balance from input field
BigDecimal newBalance = (BigDecimal) input.getTag();
if (newBalance == null) {
return;
// Buttons
builder.setPositiveButton(R.string.spend, (dialogInterface, i) -> {
// Calculate and update balance
try {
BigDecimal balanceChange = Utils.parseBalance(input.getText().toString(), loyaltyCard.balanceType);
BigDecimal newBalance = loyaltyCard.balance.subtract(balanceChange).max(new BigDecimal(0));
DBHelper.updateLoyaltyCardBalance(database, loyaltyCardId, newBalance);
} catch (ParseException e) {
Toast.makeText(getApplicationContext(), R.string.amountParsingFailed, Toast.LENGTH_LONG).show();
}
// Actually update balance
DBHelper.updateLoyaltyCardBalance(database, loyaltyCardId, newBalance);
// Reload UI
// Reload state
this.onResume();
// Show new balance
Toast.makeText(getApplicationContext(), getString(R.string.newBalanceSentence, Utils.formatBalance(this, loyaltyCard.balance, loyaltyCard.balanceType)), Toast.LENGTH_LONG).show();
});
builder.setNegativeButton(getString(R.string.cancel), (dialog, which) -> dialog.cancel());
builder.setNegativeButton(R.string.receive, (dialogInterface, i) -> {
// Calculate and update balance
try {
BigDecimal balanceChange = Utils.parseBalance(input.getText().toString(), loyaltyCard.balanceType);
BigDecimal newBalance = loyaltyCard.balance.add(balanceChange);
DBHelper.updateLoyaltyCardBalance(database, loyaltyCardId, newBalance);
} catch (ParseException e) {
Toast.makeText(getApplicationContext(), R.string.amountParsingFailed, Toast.LENGTH_LONG).show();
}
// Reload state
this.onResume();
// Show new balance
Toast.makeText(getApplicationContext(), getString(R.string.newBalanceSentence, Utils.formatBalance(this, loyaltyCard.balance, loyaltyCard.balanceType)), Toast.LENGTH_LONG).show();
});
builder.setNeutralButton(getString(R.string.cancel), (dialog, which) -> dialog.cancel());
AlertDialog dialog = builder.create();
// Now that the dialog exists, we can bind something that affects the buttons
input.addTextChangedListener(new SimpleTextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
BigDecimal balanceChange;
try {
balanceChange = Utils.parseBalance(s.toString(), loyaltyCard.balanceType);
} catch (ParseException e) {
input.setError(getString(R.string.amountParsingFailed));
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setEnabled(false);
return;
}
input.setError(null);
if (balanceChange.equals(new BigDecimal(0))) {
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setEnabled(false);
} else {
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(true);
dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setEnabled(true);
}
}
});
dialog.show();
// Disable buttons (must be done **after** dialog is shown to prevent crash
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setEnabled(false);
// Set focus on input field
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
input.requestFocus();
}
private BigDecimal calculateNewBalance(BigDecimal currentBalance, Currency currency, String unparsedSubtraction) throws ParseException {
BigDecimal subtraction = Utils.parseBalance(unparsedSubtraction, currency);
return currentBalance.subtract(subtraction).max(new BigDecimal(0));
}
private void setBottomAppBarButtonState() {
if (!loyaltyCard.note.isEmpty() || !loyaltyCardGroups.isEmpty() || hasBalance(loyaltyCard) || loyaltyCard.validFrom != null || loyaltyCard.expiry != null) {
binding.bottomAppBarInfoButton.setVisibility(View.VISIBLE);
@@ -546,18 +596,24 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
@Override
public void onResume() {
protected void onResume() {
activityOverridesNavBarColor = true;
super.onResume();
Log.i(TAG, "To view card: " + loyaltyCardId);
// The brightness value is on a scale from [0, ..., 1], where
// '1' is the brightest. We attempt to maximize the brightness
// to help barcode readers scan the barcode.
Window window = getWindow();
if (window != null) {
// Hide the keyboard if still shown (could be the case when returning from edit activity
window.setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN
);
WindowManager.LayoutParams attributes = window.getAttributes();
// The brightness value is on a scale from [0, ..., 1], where
// '1' is the brightest. We attempt to maximize the brightness
// to help barcode readers scan the barcode.
if (settings.useMaxBrightnessDisplayingBarcode()) {
attributes.screenBrightness = 1F;
}
@@ -595,10 +651,15 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
cardIdString = loyaltyCard.cardId;
barcodeIdString = loyaltyCard.barcodeId;
binding.cardIdView.setText(loyaltyCard.cardId);
binding.mainImageDescription.setText(loyaltyCard.cardId);
// Display full text on click in case it doesn't fit in a single line
binding.cardIdView.setOnClickListener(v -> {
binding.mainImageDescription.setOnClickListener(v -> {
if (mainImageIndex != 0) {
// Don't show cardId dialog, we're displaying something else
return;
}
TextView cardIdView = new TextView(LoyaltyCardViewActivity.this);
cardIdView.setText(loyaltyCard.cardId);
cardIdView.setTextIsSelectable(true);
@@ -619,7 +680,11 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
int darkenedColor = ColorUtils.blendARGB(backgroundHeaderColor, Color.BLACK, 0.1f);
binding.barcodeScaler.setProgressTintList(ColorStateList.valueOf(darkenedColor));
binding.barcodeScaler.setThumbTintList(ColorStateList.valueOf(darkenedColor));
// Set bottomAppBar and system navigation bar color
binding.bottomAppBar.setBackgroundColor(darkenedColor);
Utils.setNavigationBarColor(null, window, darkenedColor, Utils.needsDarkForeground(darkenedColor));
int complementaryColor = Utils.getComplementaryColor(darkenedColor);
binding.fabEdit.setBackgroundTintList(ColorStateList.valueOf(complementaryColor));
Drawable editButtonIcon = binding.fabEdit.getDrawable();
@@ -639,12 +704,15 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
fixBottomAppBarImageButtonColor(binding.bottomAppBarUpdateBalanceButton);
setBottomAppBarButtonState();
boolean isBarcodeSupported;
if (format != null && !format.isSupported()) {
isBarcodeSupported = false;
Toast.makeText(this, getString(R.string.unsupportedBarcodeType), Toast.LENGTH_LONG).show();
} else if (format == null) {
isBarcodeSupported = false;
} else {
isBarcodeSupported = true;
}
imageTypes = new ArrayList<>();
@@ -670,6 +738,8 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
DBHelper.updateLoyaltyCardLastUsed(database, loyaltyCard.id);
invalidateOptionsMenu();
ShortcutHelper.updateShortcuts(this, loyaltyCard);
}
private void setStateBasedOnImageTypes() {
@@ -698,16 +768,6 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
imageButton.setColorFilter(BlendModeColorFilterCompat.createBlendModeColorFilterCompat(backgroundNeedsDarkIcons ? Color.BLACK : Color.WHITE, BlendModeCompat.SRC_ATOP));
}
@Override
public void onBackPressed() {
if (isFullscreen) {
setFullscreen(false);
return;
}
super.onBackPressed();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.card_view_menu, menu);
@@ -779,6 +839,8 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
DBHelper.updateLoyaltyCardArchiveStatus(database, loyaltyCardId, 1);
Toast.makeText(LoyaltyCardViewActivity.this, R.string.archived, Toast.LENGTH_LONG).show();
ShortcutHelper.removeShortcut(LoyaltyCardViewActivity.this, loyaltyCardId);
// Re-init loyaltyCard with new data from DB
onResume();
invalidateOptionsMenu();
@@ -870,7 +932,9 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
if (imageTypes.isEmpty()) {
barcodeRenderTarget.setVisibility(View.GONE);
binding.mainCardView.setCardBackgroundColor(Color.TRANSPARENT);
binding.cardIdView.setTextColor(MaterialColors.getColor(binding.cardIdView, com.google.android.material.R.attr.colorOnSurfaceVariant));
binding.mainImageDescription.setTextColor(MaterialColors.getColor(binding.mainImageDescription, com.google.android.material.R.attr.colorOnSurfaceVariant));
binding.mainImageDescription.setText(loyaltyCard.cardId);
return;
}
@@ -879,7 +943,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
if (wantedImageType == ImageType.BARCODE) {
barcodeRenderTarget.setBackgroundColor(Color.WHITE);
binding.mainCardView.setCardBackgroundColor(Color.WHITE);
binding.cardIdView.setTextColor(getResources().getColor(R.color.md_theme_light_onSurfaceVariant));
binding.mainImageDescription.setTextColor(getResources().getColor(R.color.md_theme_light_onSurfaceVariant));
if (waitForResize) {
redrawBarcodeAfterResize(!isFullscreen);
@@ -887,18 +951,23 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
drawBarcode(!isFullscreen);
}
binding.mainImageDescription.setText(loyaltyCard.cardId);
barcodeRenderTarget.setContentDescription(getString(R.string.barcodeImageDescriptionWithType, format.prettyName()));
} else if (wantedImageType == ImageType.IMAGE_FRONT) {
barcodeRenderTarget.setImageBitmap(frontImageBitmap);
barcodeRenderTarget.setBackgroundColor(Color.TRANSPARENT);
binding.mainCardView.setCardBackgroundColor(Color.TRANSPARENT);
binding.cardIdView.setTextColor(MaterialColors.getColor(binding.cardIdView, com.google.android.material.R.attr.colorOnSurfaceVariant));
binding.mainImageDescription.setTextColor(MaterialColors.getColor(binding.mainImageDescription, com.google.android.material.R.attr.colorOnSurfaceVariant));
binding.mainImageDescription.setText(getString(R.string.frontImageDescription));
barcodeRenderTarget.setContentDescription(getString(R.string.frontImageDescription));
} else if (wantedImageType == ImageType.IMAGE_BACK) {
barcodeRenderTarget.setImageBitmap(backImageBitmap);
barcodeRenderTarget.setBackgroundColor(Color.TRANSPARENT);
binding.mainCardView.setCardBackgroundColor(Color.TRANSPARENT);
binding.cardIdView.setTextColor(MaterialColors.getColor(binding.cardIdView, com.google.android.material.R.attr.colorOnSurfaceVariant));
binding.mainImageDescription.setTextColor(MaterialColors.getColor(binding.mainImageDescription, com.google.android.material.R.attr.colorOnSurfaceVariant));
binding.mainImageDescription.setText(getString(R.string.backImageDescription));
barcodeRenderTarget.setContentDescription(getString(R.string.backImageDescription));
} else {
throw new IllegalArgumentException("Unknown image type: " + wantedImageType);
@@ -1049,10 +1118,14 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
// Set Android to fullscreen mode
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
getWindow().setDecorFitsSystemWindows(false);
if (getWindow().getInsetsController() != null) {
getWindow().getInsetsController().hide(WindowInsets.Type.statusBars() | WindowInsets.Type.navigationBars());
getWindow().getInsetsController().setSystemBarsBehavior(WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);
Window window = getWindow();
if (window != null) {
window.setDecorFitsSystemWindows(false);
WindowInsetsController wic = window.getInsetsController();
if (wic != null) {
wic.hide(WindowInsets.Type.statusBars() | WindowInsets.Type.navigationBars());
wic.setSystemBarsBehavior(WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);
}
}
} else {
setFullscreenModeSdkLessThan30();
@@ -1079,10 +1152,14 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
// Unset fullscreen mode
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
getWindow().setDecorFitsSystemWindows(true);
if (getWindow().getInsetsController() != null) {
getWindow().getInsetsController().show(WindowInsets.Type.statusBars() | WindowInsets.Type.navigationBars());
getWindow().getInsetsController().setSystemBarsBehavior(WindowInsetsController.BEHAVIOR_DEFAULT);
Window window = getWindow();
if (window != null) {
window.setDecorFitsSystemWindows(true);
WindowInsetsController wic = window.getInsetsController();
if (wic != null) {
wic.show(WindowInsets.Type.statusBars() | WindowInsets.Type.navigationBars());
wic.setSystemBarsBehavior(WindowInsetsController.BEHAVIOR_DEFAULT);
}
}
} else {
unsetFullscreenModeSdkLessThan30();
@@ -1094,19 +1171,25 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
@SuppressWarnings("deprecation")
private void unsetFullscreenModeSdkLessThan30() {
getWindow().getDecorView().setSystemUiVisibility(
getWindow().getDecorView().getSystemUiVisibility()
& ~View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
& ~View.SYSTEM_UI_FLAG_FULLSCREEN
);
Window window = getWindow();
if (window != null) {
window.getDecorView().setSystemUiVisibility(
window.getDecorView().getSystemUiVisibility()
& ~View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
& ~View.SYSTEM_UI_FLAG_FULLSCREEN
);
}
}
@SuppressWarnings("deprecation")
private void setFullscreenModeSdkLessThan30() {
getWindow().getDecorView().setSystemUiVisibility(
getWindow().getDecorView().getSystemUiVisibility()
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_FULLSCREEN
);
Window window = getWindow();
if (window != null) {
window.getDecorView().setSystemUiVisibility(
window.getDecorView().getSystemUiVisibility()
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_FULLSCREEN
);
}
}
}

View File

@@ -2,15 +2,12 @@ package protect.card_locker;
import android.app.Activity;
import android.app.SearchManager;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.CursorIndexOutOfBoundsException;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
@@ -22,8 +19,10 @@ import android.view.View;
import android.widget.CheckBox;
import android.widget.Toast;
import androidx.activity.OnBackPressedCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.view.ActionMode;
import androidx.appcompat.widget.SearchView;
@@ -34,10 +33,10 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.tabs.TabLayout;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
@@ -70,7 +69,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
private View mNoGroupCardsText;
private TabLayout groupsTabLayout;
private Runnable mSwapLoyaltyCardListCursor;
private Runnable mUpdateLoyaltyCardListRunnable;
private ActivityResultLauncher<Intent> mBarcodeScannerLauncher;
private ActivityResultLauncher<Intent> mSettingsLauncher;
@@ -89,35 +88,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
@Override
public boolean onActionItemClicked(ActionMode inputMode, MenuItem inputItem) {
if (inputItem.getItemId() == R.id.action_copy_to_clipboard) {
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
String clipboardData;
int cardCount = mAdapter.getSelectedItemCount();
if (cardCount == 1) {
clipboardData = mAdapter.getSelectedItems().get(0).cardId;
} else {
StringBuilder cardIds = new StringBuilder();
for (int i = 0; i < cardCount; i++) {
LoyaltyCard loyaltyCard = mAdapter.getSelectedItems().get(i);
cardIds.append(loyaltyCard.store + ": " + loyaltyCard.cardId);
if (i < (cardCount - 1)) {
cardIds.append("\n");
}
}
clipboardData = cardIds.toString();
}
ClipData clip = ClipData.newPlainText(getString(R.string.card_ids_copied), clipboardData);
clipboard.setPrimaryClip(clip);
Toast.makeText(MainActivity.this, cardCount > 1 ? R.string.copy_to_clipboard_multiple_toast : R.string.copy_to_clipboard_toast, Toast.LENGTH_LONG).show();
inputMode.finish();
return true;
} else if (inputItem.getItemId() == R.id.action_share) {
if (inputItem.getItemId() == R.id.action_share) {
final ImportURIHelper importURIHelper = new ImportURIHelper(MainActivity.this);
try {
importURIHelper.startShareIntent(mAdapter.getSelectedItems());
@@ -179,6 +150,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
for (LoyaltyCard loyaltyCard : mAdapter.getSelectedItems()) {
Log.d(TAG, "Archiving card: " + loyaltyCard.id);
DBHelper.updateLoyaltyCardArchiveStatus(mDatabase, loyaltyCard.id, 1);
ShortcutHelper.removeShortcut(MainActivity.this, loyaltyCard.id);
updateLoyaltyCardList(false);
inputMode.finish();
invalidateOptionsMenu();
@@ -223,12 +195,13 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
@Override
protected void onCreate(Bundle inputSavedInstanceState) {
extractIntentFields(getIntent());
SplashScreen.installSplashScreen(this);
super.onCreate(inputSavedInstanceState);
// We should extract the share intent after we called the super.onCreate as it may need to spawn a dialog window and the app needs to be initialized to not crash
extractIntentFields(getIntent());
binding = MainActivityBinding.inflate(getLayoutInflater());
setTitle(R.string.app_name);
setContentView(binding.getRoot());
setSupportActionBar(binding.toolbar);
groupsTabLayout = binding.groups;
@@ -236,13 +209,8 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
mDatabase = new DBHelper(this).getWritableDatabase();
mSwapLoyaltyCardListCursor = () -> {
Group group = null;
if (mGroup != null) {
group = (Group) mGroup;
}
mAdapter.swapCursor(DBHelper.getLoyaltyCardCursor(mDatabase, mFilter, group, mOrder, mOrderDirection, mAdapter.showingArchivedCards() ? DBHelper.LoyaltyCardArchiveFilter.All : DBHelper.LoyaltyCardArchiveFilter.Unarchived));
mUpdateLoyaltyCardListRunnable = () -> {
updateLoyaltyCardList(false);
};
groupsTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@@ -277,44 +245,13 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
mNoGroupCardsText = contentMainBinding.noGroupCardsText;
mCardList = contentMainBinding.list;
mAdapter = new LoyaltyCardCursorAdapter(this, null, this, mSwapLoyaltyCardListCursor);
mAdapter = new LoyaltyCardCursorAdapter(this, null, this, mUpdateLoyaltyCardListRunnable);
mCardList.setAdapter(mAdapter);
registerForContextMenu(mCardList);
mGroup = null;
updateLoyaltyCardList(true);
/*
* This was added for Huawei, but Huawei is just too much of a fucking pain.
* Just leaving this commented out if needed for the future idk
* https://twitter.com/SylvieLorxu/status/1379437902741012483
*
// Show privacy policy on first run
SharedPreferences privacyPolicyShownPref = getApplicationContext().getSharedPreferences(
getString(R.string.sharedpreference_privacy_policy_shown),
Context.MODE_PRIVATE);
if (privacyPolicyShownPref.getInt(getString(R.string.sharedpreference_privacy_policy_shown), 0) == 0) {
SharedPreferences.Editor privacyPolicyShownPrefEditor = privacyPolicyShownPref.edit();
privacyPolicyShownPrefEditor.putInt(getString(R.string.sharedpreference_privacy_policy_shown), 1);
privacyPolicyShownPrefEditor.apply();
new AlertDialog.Builder(this)
.setTitle(R.string.privacy_policy)
.setMessage(R.string.privacy_policy_popup_text)
.setPositiveButton(R.string.accept, null)
.setNegativeButton(R.string.privacy_policy, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
openPrivacyPolicy();
}
})
.setIcon(android.R.drawable.ic_dialog_info)
.show();
}
*/
mBarcodeScannerLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
// Exit early if the user cancelled the scan (pressed back/home)
if (result.getResultCode() != RESULT_OK) {
@@ -322,11 +259,11 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
}
Intent intent = result.getData();
BarcodeValues barcodeValues = Utils.parseSetBarcodeActivityResult(Utils.BARCODE_SCAN, result.getResultCode(), intent, this);
List<BarcodeValues> barcodeValuesList = Utils.parseSetBarcodeActivityResult(Utils.BARCODE_SCAN, result.getResultCode(), intent, this);
Bundle inputBundle = intent.getExtras();
String group = inputBundle != null ? inputBundle.getString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP) : null;
processBarcodeValues(barcodeValues, group);
processBarcodeValuesList(barcodeValuesList, group, false);
});
mSettingsLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
@@ -337,6 +274,17 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
}
}
});
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
@Override
public void handleOnBackPressed() {
if (mSearchView != null && !mSearchView.isIconified()) {
mSearchView.setIconified(true);
} else {
finish();
}
}
});
}
@Override
@@ -411,16 +359,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
addButton.bringToFront();
}
@Override
public void onBackPressed() {
if (mSearchView != null && !mSearchView.isIconified()) {
mSearchView.setIconified(true);
return;
}
super.onBackPressed();
}
private void displayCardSetupOptions(Menu menu, boolean shouldShow) {
for (int id : new int[]{R.id.action_search, R.id.action_display_options, R.id.action_sort}) {
menu.findItem(id).setVisible(shouldShow);
@@ -432,7 +370,12 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
}
private void updateLoyaltyCardList(boolean updateCount) {
mSwapLoyaltyCardListCursor.run();
Group group = null;
if (mGroup != null) {
group = (Group) mGroup;
}
mAdapter.swapCursor(DBHelper.getLoyaltyCardCursor(mDatabase, mFilter, group, mOrder, mOrderDirection, mAdapter.showingArchivedCards() ? DBHelper.LoyaltyCardArchiveFilter.All : DBHelper.LoyaltyCardArchiveFilter.Unarchived));
if (updateCount) {
updateLoyaltyCardCount();
@@ -475,63 +418,59 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
}
}
private void processBarcodeValues(BarcodeValues barcodeValues, String group) {
if (barcodeValues.isEmpty()) {
private void processBarcodeValuesList(List<BarcodeValues> barcodeValuesList, String group, boolean closeAppOnNoBarcode) {
if (barcodeValuesList.isEmpty()) {
throw new IllegalArgumentException("barcodesValues may not be empty");
}
Intent newIntent = new Intent(getApplicationContext(), LoyaltyCardEditActivity.class);
Bundle newBundle = new Bundle();
newBundle.putString(LoyaltyCardEditActivity.BUNDLE_BARCODETYPE, barcodeValues.format());
newBundle.putString(LoyaltyCardEditActivity.BUNDLE_CARDID, barcodeValues.content());
if (group != null) {
newBundle.putString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP, group);
}
newIntent.putExtras(newBundle);
startActivity(newIntent);
Utils.makeUserChooseBarcodeFromList(MainActivity.this, barcodeValuesList, new BarcodeValuesListDisambiguatorCallback() {
@Override
public void onUserChoseBarcode(BarcodeValues barcodeValues) {
Intent newIntent = new Intent(getApplicationContext(), LoyaltyCardEditActivity.class);
Bundle newBundle = new Bundle();
newBundle.putString(LoyaltyCardEditActivity.BUNDLE_BARCODETYPE, barcodeValues.format());
newBundle.putString(LoyaltyCardEditActivity.BUNDLE_CARDID, barcodeValues.content());
if (group != null) {
newBundle.putString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP, group);
}
newIntent.putExtras(newBundle);
startActivity(newIntent);
}
@Override
public void onUserDismissedSelector() {
if (closeAppOnNoBarcode) {
finish();
}
}
});
}
private void onSharedIntent(Intent intent) {
String receivedAction = intent.getAction();
String receivedType = intent.getType();
// Check if an image was shared to us
// Check if an image or file was shared to us
if (Intent.ACTION_SEND.equals(receivedAction)) {
if (!receivedType.startsWith("image/")) {
List<BarcodeValues> barcodeValuesList;
if (receivedType.equals("text/plain")) {
barcodeValuesList = Collections.singletonList(new BarcodeValues(null, intent.getStringExtra(Intent.EXTRA_TEXT)));
} else if (receivedType.startsWith("image/")) {
barcodeValuesList = Utils.retrieveBarcodesFromImage(this, intent.getParcelableExtra(Intent.EXTRA_STREAM));
} else if (receivedType.equals("application/pdf")) {
barcodeValuesList = Utils.retrieveBarcodesFromPdf(this, intent.getParcelableExtra(Intent.EXTRA_STREAM));
} else {
Log.e(TAG, "Wrong mime-type");
return;
}
BarcodeValues barcodeValues;
Bitmap bitmap;
Uri data = intent.getParcelableExtra(Intent.EXTRA_STREAM);
if (data == null) {
Toast.makeText(this, R.string.errorReadingImage, Toast.LENGTH_LONG).show();
if (barcodeValuesList.isEmpty()) {
finish();
return;
}
try {
bitmap = Utils.retrieveImageFromUri(this, data);
} catch (IOException e) {
Log.e(TAG, "Error getting data from image file");
e.printStackTrace();
Toast.makeText(this, R.string.errorReadingImage, Toast.LENGTH_LONG).show();
finish();
return;
}
barcodeValues = Utils.getBarcodeFromBitmap(bitmap);
if (barcodeValues.isEmpty()) {
Log.i(TAG, "No barcode found in image file");
Toast.makeText(this, R.string.noBarcodeFound, Toast.LENGTH_LONG).show();
finish();
return;
}
processBarcodeValues(barcodeValues, null);
processBarcodeValuesList(barcodeValuesList, null, true);
}
}
@@ -574,7 +513,8 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
if (searchManager != null) {
mSearchView = (SearchView) inputMenu.findItem(R.id.action_search).getActionView();
MenuItem searchMenuItem = inputMenu.findItem(R.id.action_search);
mSearchView = (SearchView) searchMenuItem.getActionView();
mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
mSearchView.setSubmitButtonEnabled(false);
@@ -583,6 +523,30 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
return false;
});
/*
* On Android 13 and later, pressing Back while the search view is open hides the keyboard
* and collapses the search view at the same time.
* This brings back the old behavior on Android 12 and lower: pressing Back once
* hides the keyboard, press again while keyboard is hidden to collapse the search view.
*/
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
searchMenuItem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(@NonNull MenuItem item) {
return true;
}
@Override
public boolean onMenuItemActionCollapse(@NonNull MenuItem item) {
if (mSearchView.hasFocus()) {
mSearchView.clearFocus();
return false;
}
return true;
}
});
}
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
@@ -611,7 +575,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
int id = inputItem.getItemId();
if (id == android.R.id.home) {
onBackPressed();
getOnBackPressedDispatcher().onBackPressed();
}
if (id == R.id.action_display_options) {
@@ -827,8 +791,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
b.putIntegerArrayList("cardList", cardList);
intent.putExtras(b);
ShortcutHelper.updateShortcuts(MainActivity.this, loyaltyCard);
startActivity(intent);
}
}

View File

@@ -13,6 +13,12 @@ import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.OnBackPressedCallback;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
@@ -20,11 +26,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.RecyclerView;
import protect.card_locker.databinding.ActivityManageGroupBinding;
public class ManageGroupActivity extends CatimaAppCompatActivity implements ManageGroupCursorAdapter.CardAdapterListener {
@@ -133,6 +134,13 @@ public class ManageGroupActivity extends CatimaAppCompatActivity implements Mana
// this setText is here because content_main.xml is reused from main activity
noGroupCardsText.setText(getResources().getText(R.string.noGiftCardsGroup));
updateLoyaltyCardList();
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
@Override
public void handleOnBackPressed() {
leaveWithoutSaving();
}
});
}
private ArrayList<Integer> adapterStateToIntegerArray(HashMap<Integer, Boolean> adapterState) {
@@ -210,14 +218,9 @@ public class ManageGroupActivity extends CatimaAppCompatActivity implements Mana
}
}
@Override
public void onBackPressed() {
leaveWithoutSaving();
}
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
getOnBackPressedDispatcher().onBackPressed();
return true;
}

View File

@@ -11,22 +11,20 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.List;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.List;
import protect.card_locker.databinding.ManageGroupsActivityBinding;
public class ManageGroupsActivity extends CatimaAppCompatActivity implements GroupCursorAdapter.GroupAdapterListener {
@@ -73,11 +71,6 @@ public class ManageGroupsActivity extends CatimaAppCompatActivity implements Gro
updateGroupList();
}
@Override
public void onBackPressed() {
super.onBackPressed();
}
private void updateGroupList() {
mAdapter.swapCursor(DBHelper.getGroupCursor(mDatabase));
@@ -112,41 +105,16 @@ public class ManageGroupsActivity extends CatimaAppCompatActivity implements Gro
return super.onOptionsItemSelected(item);
}
private void setGroupNameError(EditText input) {
String string = sanitizeAddGroupNameField(input.getText());
if (string.length() == 0) {
input.setError(getString(R.string.group_name_is_empty));
return;
}
if (DBHelper.getGroup(mDatabase, string) != null) {
input.setError(getString(R.string.group_name_already_in_use));
return;
}
input.setError(null);
}
private String sanitizeAddGroupNameField(CharSequence s) {
return s.toString().trim();
}
private void createGroup() {
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
builder.setTitle(R.string.enter_group_name);
final EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_TEXT);
input.addTextChangedListener(new SimpleTextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
setGroupNameError(input);
}
});
setGroupNameError(input);
// Add spacing to EditText
FrameLayout container = new FrameLayout(this);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
// Header
builder.setTitle(R.string.enter_group_name);
// Layout
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT
);
@@ -154,25 +122,51 @@ public class ManageGroupsActivity extends CatimaAppCompatActivity implements Gro
params.leftMargin = contentPadding;
params.topMargin = contentPadding / 2;
params.rightMargin = contentPadding;
// EditText with spacing
final EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_TEXT);
input.setLayoutParams(params);
container.addView(input);
layout.addView(input);
builder.setView(container);
// Set layout
builder.setView(layout);
// Buttons
builder.setPositiveButton(getString(R.string.ok), (dialog, which) -> {
CharSequence error = input.getError();
if (error != null) {
Toast.makeText(getApplicationContext(), error.toString(), Toast.LENGTH_SHORT).show();
return;
}
DBHelper.insertGroup(mDatabase, sanitizeAddGroupNameField(input.getText()));
DBHelper.insertGroup(mDatabase, input.getText().toString().trim());
updateGroupList();
});
builder.setNegativeButton(getString(R.string.cancel), (dialog, which) -> dialog.cancel());
AlertDialog dialog = builder.create();
// Now that the dialog exists, we can bind something that affects the OK button
input.addTextChangedListener(new SimpleTextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
String groupName = s.toString().trim();
if (groupName.length() == 0) {
input.setError(getString(R.string.group_name_is_empty));
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
return;
}
if (DBHelper.getGroup(mDatabase, groupName) != null) {
input.setError(getString(R.string.group_name_already_in_use));
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
return;
}
input.setError(null);
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(true);
}
});
dialog.show();
// Disable button (must be done **after** dialog is shown to prevent crash
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
// Set focus on input field
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
input.requestFocus();
}
@@ -249,4 +243,4 @@ public class ManageGroupsActivity extends CatimaAppCompatActivity implements Gro
AlertDialog dialog = builder.create();
dialog.show();
}
}
}

View File

@@ -1,5 +1,8 @@
package protect.card_locker;
import static protect.card_locker.BarcodeSelectorActivity.BARCODE_CONTENTS;
import static protect.card_locker.BarcodeSelectorActivity.BARCODE_FORMAT;
import android.Manifest;
import android.app.Activity;
import android.content.ActivityNotFoundException;
@@ -9,6 +12,7 @@ import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Settings;
import android.text.InputType;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.TypedValue;
@@ -16,15 +20,21 @@ import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.zxing.ResultPoint;
import com.google.zxing.client.android.Intents;
import com.journeyapps.barcodescanner.BarcodeCallback;
@@ -44,7 +54,6 @@ import protect.card_locker.databinding.ScanActivityBinding;
* originally licensed under Apache 2.0
*/
public class ScanActivity extends CatimaAppCompatActivity {
private ScanActivityBinding binding;
private CustomBarcodeScannerBinding customBarcodeScannerBinding;
private static final String TAG = "Catima";
@@ -53,6 +62,7 @@ public class ScanActivity extends CatimaAppCompatActivity {
private static final int COMPAT_SCALE_FACTOR_DIP = 320;
private static final int PERMISSION_SCAN_ADD_FROM_IMAGE = 100;
private static final int PERMISSION_SCAN_ADD_FROM_PDF = 101;
private CaptureManager capture;
private DecoratedBarcodeView barcodeScannerView;
@@ -64,6 +74,11 @@ public class ScanActivity extends CatimaAppCompatActivity {
private ActivityResultLauncher<Intent> manualAddLauncher;
// can't use the pre-made contract because that launches the file manager for image type instead of gallery
private ActivityResultLauncher<Intent> photoPickerLauncher;
private ActivityResultLauncher<Intent> pdfPickerLauncher;
static final String STATE_SCANNER_ACTIVE = "scannerActive";
private boolean mScannerActive = true;
private boolean mHasError = false;
private void extractIntentFields(Intent intent) {
final Bundle b = intent.getExtras();
@@ -87,14 +102,47 @@ public class ScanActivity extends CatimaAppCompatActivity {
manualAddLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> handleActivityResult(Utils.SELECT_BARCODE_REQUEST, result.getResultCode(), result.getData()));
photoPickerLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> handleActivityResult(Utils.BARCODE_IMPORT_FROM_IMAGE_FILE, result.getResultCode(), result.getData()));
customBarcodeScannerBinding.addFromImage.setOnClickListener(this::addFromImage);
customBarcodeScannerBinding.addManually.setOnClickListener(this::addManually);
pdfPickerLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> handleActivityResult(Utils.BARCODE_IMPORT_FROM_PDF_FILE, result.getResultCode(), result.getData()));
customBarcodeScannerBinding.fabOtherOptions.setOnClickListener(view -> {
setScannerActive(false);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(ScanActivity.this);
builder.setTitle(getString(R.string.add_a_card_in_a_different_way));
builder.setItems(
new CharSequence[]{
getString(R.string.addWithoutBarcode),
getString(R.string.addManually),
getString(R.string.addFromImage),
getString(R.string.addFromPdfFile)
},
(dialogInterface, i) -> {
switch (i) {
case 0:
addWithoutBarcode();
break;
case 1:
addManually();
break;
case 2:
addFromImage();
break;
case 3:
addFromPdfFile();
break;
default:
throw new IllegalArgumentException("Unknown 'Add a card in a different way' dialog option");
}
}
);
builder.setOnCancelListener(dialogInterface -> setScannerActive(true));
builder.show();
});
barcodeScannerView = binding.zxingBarcodeScanner;
// Even though we do the actual decoding with the barcodeScannerView
// CaptureManager needs to be running to show the camera and scanning bar
capture = new CatimaCaptureManager(this, barcodeScannerView);
capture = new CatimaCaptureManager(this, barcodeScannerView, this::onCaptureManagerError);
Intent captureIntent = new Intent();
Bundle captureIntentBundle = new Bundle();
captureIntentBundle.putBoolean(Intents.Scan.BEEP_ENABLED, false);
@@ -106,8 +154,8 @@ public class ScanActivity extends CatimaAppCompatActivity {
public void barcodeResult(BarcodeResult result) {
Intent scanResult = new Intent();
Bundle scanResultBundle = new Bundle();
scanResultBundle.putString(BarcodeSelectorActivity.BARCODE_CONTENTS, result.getText());
scanResultBundle.putString(BarcodeSelectorActivity.BARCODE_FORMAT, result.getBarcodeFormat().name());
scanResultBundle.putString(BARCODE_CONTENTS, result.getText());
scanResultBundle.putString(BARCODE_FORMAT, result.getBarcodeFormat().name());
if (addGroup != null) {
scanResultBundle.putString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP, addGroup);
}
@@ -126,10 +174,19 @@ public class ScanActivity extends CatimaAppCompatActivity {
@Override
protected void onResume() {
super.onResume();
capture.onResume();
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
showCameraPermissionMissingText(false);
if (mScannerActive) {
capture.onResume();
}
if (!Utils.deviceHasCamera(this)) {
showCameraError(getString(R.string.noCameraFoundGuideText), false);
} else if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
showCameraPermissionMissingText();
} else {
hideCameraError();
}
scaleScreen();
}
@@ -146,9 +203,18 @@ public class ScanActivity extends CatimaAppCompatActivity {
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
capture.onSaveInstanceState(outState);
protected void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
capture.onSaveInstanceState(savedInstanceState);
savedInstanceState.putBoolean(STATE_SCANNER_ACTIVE, mScannerActive);
}
@Override
public void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
mScannerActive = savedInstanceState.getBoolean(STATE_SCANNER_ACTIVE);
}
@Override
@@ -190,19 +256,20 @@ public class ScanActivity extends CatimaAppCompatActivity {
return super.onOptionsItemSelected(item);
}
private void handleActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
BarcodeValues barcodeValues = Utils.parseSetBarcodeActivityResult(requestCode, resultCode, intent, this);
if (barcodeValues.isEmpty()) {
return;
private void setScannerActive(boolean isActive) {
if (isActive) {
barcodeScannerView.resume();
} else {
barcodeScannerView.pause();
}
mScannerActive = isActive;
}
private void returnResult(String barcodeContents, String barcodeFormat) {
Intent manualResult = new Intent();
Bundle manualResultBundle = new Bundle();
manualResultBundle.putString(BarcodeSelectorActivity.BARCODE_CONTENTS, barcodeValues.content());
manualResultBundle.putString(BarcodeSelectorActivity.BARCODE_FORMAT, barcodeValues.format());
manualResultBundle.putString(BARCODE_CONTENTS, barcodeContents);
manualResultBundle.putString(BARCODE_FORMAT, barcodeFormat);
if (addGroup != null) {
manualResultBundle.putString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP, addGroup);
}
@@ -211,42 +278,167 @@ public class ScanActivity extends CatimaAppCompatActivity {
finish();
}
public void addManually(View view) {
Intent i = new Intent(getApplicationContext(), BarcodeSelectorActivity.class);
if (cardId != null) {
final Bundle b = new Bundle();
b.putString("initialCardId", cardId);
i.putExtras(b);
private void handleActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
List<BarcodeValues> barcodeValuesList = Utils.parseSetBarcodeActivityResult(requestCode, resultCode, intent, this);
if (barcodeValuesList.isEmpty()) {
setScannerActive(true);
return;
}
manualAddLauncher.launch(i);
Utils.makeUserChooseBarcodeFromList(this, barcodeValuesList, new BarcodeValuesListDisambiguatorCallback() {
@Override
public void onUserChoseBarcode(BarcodeValues barcodeValues) {
returnResult(barcodeValues.content(), barcodeValues.format());
}
@Override
public void onUserDismissedSelector() {
setScannerActive(true);
}
});
}
public void addFromImage(View view) {
private void addWithoutBarcode() {
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
builder.setOnCancelListener(dialogInterface -> setScannerActive(true));
// Header
builder.setTitle(R.string.addWithoutBarcode);
// Layout
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT
);
int contentPadding = getResources().getDimensionPixelSize(R.dimen.alert_dialog_content_padding);
params.leftMargin = contentPadding;
params.topMargin = contentPadding / 2;
params.rightMargin = contentPadding;
// Description
TextView currentTextview = new TextView(this);
currentTextview.setText(getString(R.string.enter_card_id));
currentTextview.setLayoutParams(params);
layout.addView(currentTextview);
// EditText with spacing
final EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_TEXT);
input.setLayoutParams(params);
layout.addView(input);
// Set layout
builder.setView(layout);
// Buttons
builder.setPositiveButton(getString(R.string.ok), (dialog, which) -> {
returnResult(input.getText().toString(), "");
});
builder.setNegativeButton(getString(R.string.cancel), (dialog, which) -> dialog.cancel());
AlertDialog dialog = builder.create();
// Now that the dialog exists, we can bind something that affects the OK button
input.addTextChangedListener(new SimpleTextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.length() == 0) {
input.setError(getString(R.string.card_id_must_not_be_empty));
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
} else {
input.setError(null);
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(true);
}
}
});
dialog.show();
// Disable button (must be done **after** dialog is shown to prevent crash
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
// Set focus on input field
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
input.requestFocus();
}
public void addManually() {
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(ScanActivity.this);
builder.setTitle(R.string.add_manually_warning_title);
builder.setMessage(R.string.add_manually_warning_message);
builder.setPositiveButton(R.string.continue_, (dialog, which) -> {
Intent i = new Intent(getApplicationContext(), BarcodeSelectorActivity.class);
if (cardId != null) {
final Bundle b = new Bundle();
b.putString("initialCardId", cardId);
i.putExtras(b);
}
manualAddLauncher.launch(i);
});
builder.setNegativeButton(R.string.cancel, (dialog, which) -> setScannerActive(true));
builder.setOnCancelListener(dialog -> setScannerActive(true));
builder.show();
}
public void addFromImage() {
PermissionUtils.requestStorageReadPermission(this, PERMISSION_SCAN_ADD_FROM_IMAGE);
}
private void addFromImageAfterPermission() {
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
Intent contentIntent = new Intent(Intent.ACTION_GET_CONTENT);
contentIntent.setType("image/*");
public void addFromPdfFile() {
PermissionUtils.requestStorageReadPermission(this, PERMISSION_SCAN_ADD_FROM_PDF);
}
Intent chooserIntent = Intent.createChooser(photoPickerIntent, getString(R.string.addFromImage));
private void addFromImageOrFileAfterPermission(String mimeType, ActivityResultLauncher<Intent> launcher, int chooserText, int errorMessage) {
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType(mimeType);
Intent contentIntent = new Intent(Intent.ACTION_GET_CONTENT);
contentIntent.setType(mimeType);
Intent chooserIntent = Intent.createChooser(photoPickerIntent, getString(chooserText));
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { contentIntent });
try {
photoPickerLauncher.launch(chooserIntent);
launcher.launch(chooserIntent);
} catch (ActivityNotFoundException e) {
Toast.makeText(getApplicationContext(), R.string.failedLaunchingPhotoPicker, Toast.LENGTH_LONG).show();
setScannerActive(true);
Toast.makeText(getApplicationContext(), errorMessage, Toast.LENGTH_LONG).show();
Log.e(TAG, "No activity found to handle intent", e);
}
}
private void showCameraPermissionMissingText(boolean show) {
customBarcodeScannerBinding.cameraPermissionDeniedLayout.cameraPermissionDeniedClickableArea.setOnClickListener(show ? v -> {
public void onCaptureManagerError(String errorMessage) {
if (mHasError) {
// We're already showing an error, ignore this new error
return;
}
showCameraError(errorMessage, false);
}
private void showCameraPermissionMissingText() {
showCameraError(getString(R.string.noCameraPermissionDirectToSystemSetting), true);
}
private void showCameraError(String message, boolean setOnClick) {
customBarcodeScannerBinding.cameraErrorLayout.cameraErrorMessage.setText(message);
setCameraErrorState(true, setOnClick);
}
private void hideCameraError() {
setCameraErrorState(false, false);
}
private void setCameraErrorState(boolean visible, boolean setOnClick) {
mHasError = visible;
customBarcodeScannerBinding.cameraErrorLayout.cameraErrorClickableArea.setOnClickListener(visible && setOnClick ? v -> {
navigateToSystemPermissionSetting();
} : null);
customBarcodeScannerBinding.cardInputContainer.setBackgroundColor(show ? obtainThemeAttribute(com.google.android.material.R.attr.colorSurface) : Color.TRANSPARENT);
customBarcodeScannerBinding.cameraPermissionDeniedLayout.getRoot().setVisibility(show ? View.VISIBLE : View.GONE);
customBarcodeScannerBinding.cardInputContainer.setBackgroundColor(visible ? obtainThemeAttribute(com.google.android.material.R.attr.colorSurface) : Color.TRANSPARENT);
customBarcodeScannerBinding.cameraErrorLayout.getRoot().setVisibility(visible ? View.VISIBLE : View.GONE);
}
private void scaleScreen() {
@@ -256,8 +448,8 @@ public class ScanActivity extends CatimaAppCompatActivity {
float mediumSizePx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,MEDIUM_SCALE_FACTOR_DIP,getResources().getDisplayMetrics());
boolean shouldScaleSmaller = screenHeight < mediumSizePx;
customBarcodeScannerBinding.cameraPermissionDeniedLayout.cameraPermissionDeniedIcon.setVisibility(shouldScaleSmaller ? View.GONE : View.VISIBLE);
customBarcodeScannerBinding.cameraPermissionDeniedLayout.cameraPermissionDeniedTitle.setVisibility(shouldScaleSmaller ? View.GONE : View.VISIBLE);
customBarcodeScannerBinding.cameraErrorLayout.cameraErrorIcon.setVisibility(shouldScaleSmaller ? View.GONE : View.VISIBLE);
customBarcodeScannerBinding.cameraErrorLayout.cameraErrorTitle.setVisibility(shouldScaleSmaller ? View.GONE : View.VISIBLE);
}
private int obtainThemeAttribute(int attribute) {
@@ -283,11 +475,20 @@ public class ScanActivity extends CatimaAppCompatActivity {
boolean granted = grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED;
if (requestCode == CaptureManager.getCameraPermissionReqCode()) {
showCameraPermissionMissingText(!granted);
} else if (requestCode == PERMISSION_SCAN_ADD_FROM_IMAGE) {
if (granted) {
addFromImageAfterPermission();
hideCameraError();
} else {
showCameraPermissionMissingText();
}
} else if (requestCode == PERMISSION_SCAN_ADD_FROM_IMAGE || requestCode == PERMISSION_SCAN_ADD_FROM_PDF) {
if (granted) {
if (requestCode == PERMISSION_SCAN_ADD_FROM_IMAGE) {
addFromImageOrFileAfterPermission("image/*", photoPickerLauncher, R.string.addFromImage, R.string.failedLaunchingPhotoPicker);
} else {
addFromImageOrFileAfterPermission("application/pdf", pdfPickerLauncher, R.string.addFromPdfFile, R.string.failedLaunchingFileManager);
}
} else {
setScannerActive(true);
Toast.makeText(this, R.string.storageReadPermissionRequired, Toast.LENGTH_LONG).show();
}
}

View File

@@ -8,6 +8,11 @@ import android.graphics.Canvas;
import android.graphics.Color;
import android.os.Bundle;
import androidx.core.content.pm.ShortcutInfoCompat;
import androidx.core.content.pm.ShortcutManagerCompat;
import androidx.core.graphics.ColorUtils;
import androidx.core.graphics.drawable.IconCompat;
import org.jetbrains.annotations.NotNull;
import java.util.Collections;
@@ -15,11 +20,6 @@ import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import androidx.core.content.pm.ShortcutInfoCompat;
import androidx.core.content.pm.ShortcutManagerCompat;
import androidx.core.graphics.ColorUtils;
import androidx.core.graphics.drawable.IconCompat;
class ShortcutHelper {
// Android documentation says that no more than 5 shortcuts
// are supported. However, that may be too many, as not all
@@ -43,6 +43,11 @@ class ShortcutHelper {
* used card shortcut is discarded.
*/
static void updateShortcuts(Context context, LoyaltyCard card) {
if (card.archiveStatus == 1) {
// Don't add archived card to menu
return;
}
LinkedList<ShortcutInfoCompat> list = new LinkedList<>(ShortcutManagerCompat.getDynamicShortcuts(context));
SQLiteDatabase database = new DBHelper(context).getReadableDatabase();
@@ -108,18 +113,7 @@ class ShortcutHelper {
* shortcut exists.
*/
static void removeShortcut(Context context, int cardId) {
List<ShortcutInfoCompat> list = ShortcutManagerCompat.getDynamicShortcuts(context);
String shortcutId = Integer.toString(cardId);
for (int index = 0; index < list.size(); index++) {
if (list.get(index).getId().equals(shortcutId)) {
list.remove(index);
break;
}
}
ShortcutManagerCompat.setDynamicShortcuts(context, list);
ShortcutManagerCompat.removeDynamicShortcuts(context, Collections.singletonList(Integer.toString(cardId)));
}
static @NotNull

View File

@@ -7,19 +7,20 @@ import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import com.google.android.material.color.MaterialColors;
import com.google.android.material.textview.MaterialTextView;
import com.yalantis.ucrop.UCropActivity;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.ColorUtils;
import androidx.core.view.WindowInsetsControllerCompat;
import com.google.android.material.color.MaterialColors;
import com.google.android.material.textview.MaterialTextView;
import com.yalantis.ucrop.UCropActivity;
public class UCropWrapper extends UCropActivity {
public static final String UCROP_TOOLBAR_TYPEFACE_STYLE = "ucop_toolbar_typeface_style";
@@ -27,15 +28,18 @@ public class UCropWrapper extends UCropActivity {
protected void onPostCreate(@Nullable Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
boolean darkMode = Utils.isDarkModeEnabled(this);
Window window = getWindow();
// setup status bar to look like the rest of the app
if (Build.VERSION.SDK_INT >= 23) {
View decorView = getWindow().getDecorView();
WindowInsetsControllerCompat wic = new WindowInsetsControllerCompat(getWindow(), decorView);
wic.setAppearanceLightStatusBars(!darkMode);
if (window != null) {
View decorView = window.getDecorView();
WindowInsetsControllerCompat wic = new WindowInsetsControllerCompat(window, decorView);
wic.setAppearanceLightStatusBars(!darkMode);
}
} else {
// icons are always white back then
if (!darkMode) {
getWindow().setStatusBarColor(ColorUtils.compositeColors(Color.argb(127, 0, 0, 0), getWindow().getStatusBarColor()));
if (window != null && !darkMode) {
window.setStatusBarColor(ColorUtils.compositeColors(Color.argb(127, 0, 0, 0), window.getStatusBarColor()));
}
}

View File

@@ -12,8 +12,12 @@ import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.ImageDecoder;
import android.graphics.Matrix;
import android.graphics.pdf.PdfRenderer;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraManager;
import android.net.Uri;
import android.os.Build;
import android.os.ParcelFileDescriptor;
import android.provider.MediaStore;
import android.text.Layout;
import android.text.Spanned;
@@ -22,20 +26,25 @@ import android.util.Log;
import android.util.TypedValue;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RawRes;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.graphics.ColorUtils;
import androidx.core.os.LocaleListCompat;
import androidx.core.view.WindowInsetsControllerCompat;
import androidx.core.widget.TextViewCompat;
import androidx.exifinterface.media.ExifInterface;
import androidx.palette.graphics.Palette;
import com.google.android.material.color.DynamicColors;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
@@ -43,6 +52,8 @@ import com.google.zxing.NotFoundException;
import com.google.zxing.RGBLuminanceSource;
import com.google.zxing.Result;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.multi.GenericMultipleBarcodeReader;
import com.google.zxing.multi.MultipleBarcodeReader;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
@@ -57,10 +68,13 @@ import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.DecimalFormatSymbols;
import java.text.NumberFormat;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Currency;
import java.util.Date;
import java.util.GregorianCalendar;
@@ -80,12 +94,13 @@ public class Utils {
public static final int SELECT_BARCODE_REQUEST = 2;
public static final int BARCODE_SCAN = 3;
public static final int BARCODE_IMPORT_FROM_IMAGE_FILE = 4;
public static final int CARD_IMAGE_FROM_CAMERA_FRONT = 5;
public static final int CARD_IMAGE_FROM_CAMERA_BACK = 6;
public static final int CARD_IMAGE_FROM_CAMERA_ICON = 7;
public static final int CARD_IMAGE_FROM_FILE_FRONT = 8;
public static final int CARD_IMAGE_FROM_FILE_BACK = 9;
public static final int CARD_IMAGE_FROM_FILE_ICON = 10;
public static final int BARCODE_IMPORT_FROM_PDF_FILE = 5;
public static final int CARD_IMAGE_FROM_CAMERA_FRONT = 6;
public static final int CARD_IMAGE_FROM_CAMERA_BACK = 7;
public static final int CARD_IMAGE_FROM_CAMERA_ICON = 8;
public static final int CARD_IMAGE_FROM_FILE_FRONT = 9;
public static final int CARD_IMAGE_FROM_FILE_BACK = 10;
public static final int CARD_IMAGE_FROM_FILE_ICON = 11;
public static final String CARD_IMAGE_FILENAME_REGEX = "^(card_)(\\d+)(_(?:front|back|icon)\\.png)$";
@@ -128,6 +143,91 @@ public class Utils {
return ColorUtils.calculateLuminance(backgroundColor) > LUMINANCE_MIDPOINT;
}
static public List<BarcodeValues> retrieveBarcodesFromImage(Context context, Uri uri) {
Log.i(TAG, "Received image file with possible barcode");
if (uri == null) {
Log.e(TAG, "Uri did not contain any data");
Toast.makeText(context, R.string.errorReadingImage, Toast.LENGTH_LONG).show();
return new ArrayList<>();
}
Bitmap bitmap;
try {
bitmap = retrieveImageFromUri(context, uri);
} catch (IOException e) {
Log.e(TAG, "Error getting data from image file");
e.printStackTrace();
Toast.makeText(context, R.string.errorReadingImage, Toast.LENGTH_LONG).show();
return new ArrayList<>();
}
List<BarcodeValues> barcodesFromBitmap = getBarcodesFromBitmap(bitmap);
if (barcodesFromBitmap.isEmpty()) {
Log.i(TAG, "No barcode found in image file");
Toast.makeText(context, R.string.noBarcodeFound, Toast.LENGTH_LONG).show();
}
return barcodesFromBitmap;
}
static public List<BarcodeValues> retrieveBarcodesFromPdf(Context context, Uri uri) {
Log.i(TAG, "Received PDF file with possible barcode");
if (uri == null) {
Log.e(TAG, "Uri did not contain any data");
Toast.makeText(context, R.string.errorReadingFile, Toast.LENGTH_LONG).show();
return new ArrayList<>();
}
ParcelFileDescriptor parcelFileDescriptor = null;
PdfRenderer renderer = null;
List<BarcodeValues> barcodesFromPdfPages = new ArrayList<>();
try {
parcelFileDescriptor = context.getContentResolver().openFileDescriptor(uri, "r");
if (parcelFileDescriptor != null) {
renderer = new PdfRenderer(parcelFileDescriptor);
// Loop over all pages to find barcodes
Bitmap renderedPage;
for (int i = 0; i < renderer.getPageCount(); i++) {
PdfRenderer.Page page = renderer.openPage(i);
renderedPage = Bitmap.createBitmap(page.getWidth(), page.getHeight(), Bitmap.Config.ARGB_8888);
page.render(renderedPage, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);
page.close();
List<BarcodeValues> barcodesFromPage = getBarcodesFromBitmap(renderedPage);
for (BarcodeValues barcodeValues : barcodesFromPage) {
barcodeValues.setNote(String.format(context.getString(R.string.pageWithNumber), i+1));
barcodesFromPdfPages.add(barcodeValues);
}
}
}
} catch (IOException e) {
Log.e(TAG, "Error reading PDF file", e);
Toast.makeText(context, R.string.errorReadingFile, Toast.LENGTH_LONG).show();
} finally {
// Resource handling
if (renderer != null) {
renderer.close();
}
if (parcelFileDescriptor != null) {
try {
parcelFileDescriptor.close();
} catch (IOException e) {
Log.e(TAG, "Error closing ParcelFileDescriptor", e);
}
}
}
if (barcodesFromPdfPages.isEmpty()) {
Log.i(TAG, "No barcode found in pdf file");
Toast.makeText(context, R.string.noBarcodeFound, Toast.LENGTH_LONG).show();
}
return barcodesFromPdfPages;
}
/**
* Returns the Barcode format and content based on the result of an activity.
* It shows toasts to notify the end-user as needed itself and will return an empty
@@ -139,45 +239,20 @@ public class Utils {
* @param context
* @return BarcodeValues
*/
static public BarcodeValues parseSetBarcodeActivityResult(int requestCode, int resultCode, Intent intent, Context context) {
static public List<BarcodeValues> parseSetBarcodeActivityResult(int requestCode, int resultCode, Intent intent, Context context) {
String contents;
String format;
if (resultCode != Activity.RESULT_OK) {
return new BarcodeValues(null, null);
return new ArrayList<>();
}
if (requestCode == Utils.BARCODE_IMPORT_FROM_IMAGE_FILE) {
Log.i(TAG, "Received image file with possible barcode");
return retrieveBarcodesFromImage(context, intent.getData());
}
Uri data = intent.getData();
if (data == null) {
Log.e(TAG, "Intent did not contain any data");
Toast.makeText(context, R.string.errorReadingImage, Toast.LENGTH_LONG).show();
return new BarcodeValues(null, null);
}
Bitmap bitmap;
try {
bitmap = retrieveImageFromUri(context, data);
} catch (IOException e) {
Log.e(TAG, "Error getting data from image file");
e.printStackTrace();
Toast.makeText(context, R.string.errorReadingImage, Toast.LENGTH_LONG).show();
return new BarcodeValues(null, null);
}
BarcodeValues barcodeFromBitmap = getBarcodeFromBitmap(bitmap);
if (barcodeFromBitmap.isEmpty()) {
Log.i(TAG, "No barcode found in image file");
Toast.makeText(context, R.string.noBarcodeFound, Toast.LENGTH_LONG).show();
}
Log.i(TAG, "Read barcode id: " + barcodeFromBitmap.content());
Log.i(TAG, "Read format: " + barcodeFromBitmap.format());
return barcodeFromBitmap;
if (requestCode == Utils.BARCODE_IMPORT_FROM_PDF_FILE) {
return retrieveBarcodesFromPdf(context, intent.getData());
}
if (requestCode == Utils.BARCODE_SCAN || requestCode == Utils.SELECT_BARCODE_REQUEST) {
@@ -193,7 +268,7 @@ public class Utils {
Log.i(TAG, "Read barcode id: " + contents);
Log.i(TAG, "Read format: " + format);
return new BarcodeValues(format, contents);
return Collections.singletonList(new BarcodeValues(format, contents));
}
throw new UnsupportedOperationException("Unknown request code for parseSetBarcodeActivityResult");
@@ -213,22 +288,22 @@ public class Utils {
return MediaStore.Images.Media.getBitmap(context.getContentResolver(), data);
}
static public BarcodeValues getBarcodeFromBitmap(Bitmap bitmap) {
static public List<BarcodeValues> getBarcodesFromBitmap(Bitmap bitmap) {
// This function is vulnerable to OOM, so we try again with a smaller bitmap is we get OOM
for (int i = 0; i < 10; i++) {
try {
return Utils.getBarcodeFromBitmapReal(bitmap);
return Utils.getBarcodesFromBitmapReal(bitmap);
} catch (OutOfMemoryError e) {
Log.w(TAG, "Ran OOM in getBarcodeFromBitmap! Trying again with smaller picture! Retry " + i + " of 10.");
Log.w(TAG, "Ran OOM in getBarcodesFromBitmap! Trying again with smaller picture! Retry " + i + " of 10.");
bitmap = Bitmap.createScaledBitmap(bitmap, (int) Math.round(0.75 * bitmap.getWidth()), (int) Math.round(0.75 * bitmap.getHeight()), false);
}
}
// Give up
return new BarcodeValues(null, null);
return new ArrayList<>();
}
static private BarcodeValues getBarcodeFromBitmapReal(Bitmap bitmap) {
static private List<BarcodeValues> getBarcodesFromBitmapReal(Bitmap bitmap) {
// In order to decode it, the Bitmap must first be converted into a pixel array...
int[] intArray = new int[bitmap.getWidth() * bitmap.getHeight()];
bitmap.getPixels(intArray, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
@@ -237,15 +312,63 @@ public class Utils {
LuminanceSource source = new RGBLuminanceSource(bitmap.getWidth(), bitmap.getHeight(), intArray);
BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(source));
List<BarcodeValues> barcodeValuesList = new ArrayList<>();
try {
Result barcodeResult = new MultiFormatReader().decode(binaryBitmap);
MultiFormatReader multiFormatReader = new MultiFormatReader();
MultipleBarcodeReader multipleBarcodeReader = new GenericMultipleBarcodeReader(multiFormatReader);
return new BarcodeValues(barcodeResult.getBarcodeFormat().name(), barcodeResult.getText());
Result[] barcodeResults = multipleBarcodeReader.decodeMultiple(binaryBitmap);
for (Result barcodeResult : barcodeResults) {
Log.i(TAG, "Read barcode id: " + barcodeResult.getText());
Log.i(TAG, "Read format: " + barcodeResult.getBarcodeFormat().name());
barcodeValuesList.add(new BarcodeValues(barcodeResult.getBarcodeFormat().name(), barcodeResult.getText()));
}
return barcodeValuesList;
} catch (NotFoundException e) {
return new BarcodeValues(null, null);
return barcodeValuesList;
}
}
static public void makeUserChooseBarcodeFromList(Context context, List<BarcodeValues> barcodeValuesList, BarcodeValuesListDisambiguatorCallback callback) {
// If there is only one choice, consider it chosen
if (barcodeValuesList.size() == 1) {
callback.onUserChoseBarcode(barcodeValuesList.get(0));
return;
}
// Ask user to choose a barcode
// TODO: This should contain an image of the barcode in question to help users understand the choice they're making
CharSequence[] barcodeDescriptions = new CharSequence[barcodeValuesList.size()];
for (int i = 0; i < barcodeValuesList.size(); i++) {
BarcodeValues barcodeValues = barcodeValuesList.get(i);
CatimaBarcode catimaBarcode = CatimaBarcode.fromName(barcodeValues.format());
String barcodeContent = barcodeValues.content();
// Shorten overly long barcodes
if (barcodeContent.length() > 22) {
barcodeContent = barcodeContent.substring(0, 20) + "";
}
if (barcodeValues.note() != null) {
barcodeDescriptions[i] = String.format("%s: %s (%s)", barcodeValues.note(), catimaBarcode.prettyName(), barcodeContent);
} else {
barcodeDescriptions[i] = String.format("%s (%s)", catimaBarcode.prettyName(), barcodeContent);
}
}
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context);
builder.setTitle(context.getString(R.string.multipleBarcodesFoundPleaseChooseOne));
builder.setItems(
barcodeDescriptions,
(dialogInterface, i) -> callback.onUserChoseBarcode(barcodeValuesList.get(i))
);
builder.setOnCancelListener(dialogInterface -> callback.onUserDismissedSelector());
builder.show();
}
static public Boolean isNotYetValid(Date validFromDate) {
// The note in `hasExpired` does not apply here, since the bug was fixed before this feature was added.
return validFromDate.after(getStartOfToday().getTime());
@@ -273,6 +396,7 @@ public class Utils {
static public String formatBalance(Context context, BigDecimal value, Currency currency) {
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setGroupingUsed(false);
if (currency == null) {
numberFormat.setMaximumFractionDigits(0);
@@ -280,6 +404,7 @@ public class Utils {
}
NumberFormat currencyFormat = NumberFormat.getCurrencyInstance();
currencyFormat.setGroupingUsed(false);
currencyFormat.setCurrency(currency);
currencyFormat.setMinimumFractionDigits(currency.getDefaultFractionDigits());
currencyFormat.setMaximumFractionDigits(currency.getDefaultFractionDigits());
@@ -289,6 +414,7 @@ public class Utils {
static public String formatBalanceWithoutCurrencySymbol(BigDecimal value, Currency currency) {
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setGroupingUsed(false);
if (currency == null) {
numberFormat.setMaximumFractionDigits(0);
@@ -301,19 +427,72 @@ public class Utils {
return numberFormat.format(value);
}
private static final double LargestPreciseDouble = (double) (1l << 53);
static{
assert (LargestPreciseDouble + 1.0) == LargestPreciseDouble;
assert (LargestPreciseDouble - 1.0) != LargestPreciseDouble;
}
private static BigDecimal fromParsed(Number parsed){
if(parsed instanceof BigDecimal)
return (BigDecimal) parsed;
final double d = parsed.doubleValue();
if(d >= LargestPreciseDouble)
return new BigDecimal(parsed.longValue());
return new BigDecimal(d);
}
static public BigDecimal parseBalance(String value, Currency currency) throws ParseException {
// This function expects the input string to not have any grouping (thousand separators).
// It will refuse to work otherwise
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setGroupingUsed(false);
if (numberFormat instanceof DecimalFormat) {
((DecimalFormat) numberFormat).setParseBigDecimal(true);
}
if (currency == null) {
numberFormat.setMaximumFractionDigits(0);
} else {
numberFormat.setMinimumFractionDigits(currency.getDefaultFractionDigits());
numberFormat.setMaximumFractionDigits(currency.getDefaultFractionDigits());
int fractionDigits = currency.getDefaultFractionDigits();
numberFormat.setMinimumFractionDigits(fractionDigits);
numberFormat.setMaximumFractionDigits(fractionDigits);
if (numberFormat instanceof DecimalFormat) {
// If the string contains both thousand separators and decimals separators, fail hard
DecimalFormatSymbols decimalFormatSymbols = ((DecimalFormat) numberFormat).getDecimalFormatSymbols();
char decimalSeparator = decimalFormatSymbols.getDecimalSeparator();
// Translate all non-digits to decimal separators, failing if we find more than 1.
// We loop over the codepoints to make sure eastern arabic numerals are not mistakenly
// treated as a separator.
boolean separatorFound = false;
StringBuilder translatedValue = new StringBuilder();
for (int i = 0; i < value.length();) {
int character = value.codePointAt(i);
if (Character.isDigit(character)) {
translatedValue.append(value.charAt(i));
} else {
if (separatorFound) {
throw new ParseException("Contains multiple separators", i);
}
separatorFound = true;
translatedValue.append(decimalSeparator);
}
i += Character.charCount(character);
}
value = translatedValue.toString();
}
}
Log.d(TAG, numberFormat.parse(value).toString());
return new BigDecimal(numberFormat.parse(value).toString());
return fromParsed(numberFormat.parse(value));
}
static public byte[] bitmapToByteArray(Bitmap bitmap) {
@@ -663,13 +842,31 @@ public class Utils {
}
}
// XXX android 9 and below has issues with patched theme where the background becomes a
// rendering mess
// use after views are inflated
// Force correct color
// Fixes OLED dark mode in MainActivity
public static void postPatchColors(AppCompatActivity activity) {
activity.findViewById(android.R.id.content).setBackgroundColor(resolveBackgroundColor(activity));
}
// Either pass an Activity on which to call getWindow() or an existing Window (may be null) returned by that function.
public static void setNavigationBarColor(@Nullable AppCompatActivity activity, @Nullable Window window, int color, boolean useLightBars) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
if (window == null && activity != null) {
window = activity.getWindow();
}
if (window != null) {
View decorView = window.getDecorView();
WindowInsetsControllerCompat wic = new WindowInsetsControllerCompat(window, decorView);
wic.setAppearanceLightNavigationBars(useLightBars);
window.setNavigationBarColor(color);
}
}
}
public static int resolveBackgroundColor(AppCompatActivity activity) {
TypedValue typedValue = new TypedValue();
activity.getTheme().resolveAttribute(android.R.attr.colorBackground, typedValue, true);
activity.findViewById(android.R.id.content).setBackgroundColor(typedValue.data);
return typedValue.data;
}
public static int getHeaderColorFromImage(Bitmap image, int fallback) {
@@ -727,23 +924,46 @@ public class Utils {
.replaceAll("(?<!href=\")\\b(https?://[\\w@#%&+=:?/.-]*[\\w@#%&+=:?/-])", "<a href=\"$1\">$1</a>");
}
public static void setIconOrTextWithBackground(Context context, LoyaltyCard loyaltyCard, Bitmap icon, ImageView backgroundOrIcon, TextView textWhenNoImage) {
/**
* Sets an icon or text with background on the given ImageView and/or TextView, including background colour.
*
* @param context Android context
* @param loyaltyCard Loyalty Card
* @param icon Bitmap of the icon to set, or null
* @param backgroundOrIcon ImageView to draw the icon and background on to
* @param textWhenNoImage TextView to write the loyalty card name into if icon is null
* @return background colour
*/
public static int setIconOrTextWithBackground(Context context, LoyaltyCard loyaltyCard, Bitmap icon, ImageView backgroundOrIcon, TextView textWhenNoImage) {
int headerColor = getHeaderColor(context, loyaltyCard);
backgroundOrIcon.setImageBitmap(icon);
backgroundOrIcon.setBackgroundColor(headerColor);
if (icon != null) {
Log.d("onResume", "setting icon image");
textWhenNoImage.setVisibility(View.GONE);
backgroundOrIcon.setImageBitmap(icon);
backgroundOrIcon.setBackgroundColor(Color.TRANSPARENT);
} else {
// Manually calculate how many lines will be needed
// This is necessary because Android's auto sizing will split over lines way before reaching the minimum font size and store names split over multiple lines are harder to scan with a quick glance so we should try to prevent it
// Because we have to write the text before we can actually know the exact laid out size (trying to delay this causes bugs where the autosize fails) we have to take some... weird shortcuts
// At this point textWhenNoImage.getWidth() still returns 0, so we cheat by calculating the whole width of the screen and then dividing it by the amount of columns
int textviewWidth = Resources.getSystem().getDisplayMetrics().widthPixels / context.getResources().getInteger(R.integer.main_view_card_columns);
// Calculate how wide a character is and calculate how many characters fit in a line
int characterWidth = TextViewCompat.getAutoSizeMinTextSize(textWhenNoImage);
int maxWidthPerLine = textviewWidth - textWhenNoImage.getPaddingStart() - textWhenNoImage.getPaddingEnd();
// Set amount of lines based on what could fit at most
int maxLines = ((loyaltyCard.store.length() * characterWidth) / maxWidthPerLine) + 1;
textWhenNoImage.setMaxLines(maxLines);
// Actually set the text and colour
textWhenNoImage.setVisibility(View.VISIBLE);
int headerColor = getHeaderColor(context, loyaltyCard);
backgroundOrIcon.setImageBitmap(null);
backgroundOrIcon.setBackgroundColor(headerColor);
textWhenNoImage.setText(loyaltyCard.store);
textWhenNoImage.setTextColor(Utils.needsDarkForeground(headerColor) ? Color.BLACK : Color.WHITE);
}
return headerColor;
}
public static boolean installedFromGooglePlay(Context context) {
@@ -814,4 +1034,12 @@ public class Utils {
return false;
});
}
public static boolean deviceHasCamera(Context context) {
try {
return ((CameraManager) context.getSystemService(Context.CAMERA_SERVICE)).getCameraIdList().length > 0;
} catch (CameraAccessException e) {
return false;
}
}
}

View File

@@ -3,12 +3,13 @@ package protect.card_locker.preferences;
import android.content.Context;
import android.content.SharedPreferences;
import java.util.Locale;
import androidx.annotation.IntegerRes;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.preference.PreferenceManager;
import java.util.Locale;
import protect.card_locker.R;
import protect.card_locker.Utils;

View File

@@ -1,12 +1,12 @@
package protect.card_locker.preferences;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.MenuItem;
import androidx.activity.OnBackPressedCallback;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.appcompat.widget.Toolbar;
@@ -56,6 +56,13 @@ public class SettingsActivity extends CatimaAppCompatActivity {
if (savedInstanceState != null) {
fragment.mReloadMain = savedInstanceState.getBoolean(RELOAD_MAIN_STATE);
}
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
@Override
public void handleOnBackPressed() {
finishSettingsActivity();
}
});
}
@Override
@@ -76,11 +83,6 @@ public class SettingsActivity extends CatimaAppCompatActivity {
return super.onOptionsItemSelected(item);
}
@Override
public void onBackPressed() {
finishSettingsActivity();
}
private void finishSettingsActivity() {
if (fragment.mReloadMain) {
Intent intent = new Intent();

View File

@@ -1,5 +0,0 @@
<vector android:height="24dp" android:tint="?attr/colorControlNormal"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M7.41,18.59L8.83,20 12,16.83 15.17,20l1.41,-1.41L12,14l-4.59,4.59zM16.59,5.41L15.17,4 12,7.17 8.83,4 7.41,5.41 12,10l4.59,-4.59z"/>
</vector>

View File

@@ -1,10 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM19,5L8,5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h11c1.1,0 2,-0.9 2,-2L21,7c0,-1.1 -0.9,-2 -2,-2zM19,21L8,21L8,7h11v14z"/>
</vector>

View File

@@ -10,7 +10,8 @@
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
@@ -20,11 +21,12 @@
</com.google.android.material.appbar.AppBarLayout>
<ScrollView
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?attr/actionBarSize"
android:padding="10dp">
android:paddingVertical="8dp"
android:clipToPadding="false">
<LinearLayout
android:layout_width="match_parent"
@@ -35,7 +37,9 @@
android:id="@+id/version_history"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
android:paddingVertical="8dp"
android:paddingHorizontal="16dp"
android:background="?android:selectableItemBackground">
<TextView
android:id="@+id/version_history_main"
@@ -74,7 +78,9 @@
android:id="@+id/credits"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
android:paddingVertical="8dp"
android:paddingHorizontal="16dp"
android:background="?android:selectableItemBackground">
<TextView
android:id="@+id/credits_main"
@@ -113,7 +119,9 @@
android:id="@+id/translate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
android:paddingVertical="8dp"
android:paddingHorizontal="16dp"
android:background="?android:selectableItemBackground">
<TextView
android:id="@+id/translate_main"
@@ -153,7 +161,9 @@
android:id="@+id/license"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
android:paddingVertical="8dp"
android:paddingHorizontal="16dp"
android:background="?android:selectableItemBackground">
<TextView
android:id="@+id/license_main"
@@ -193,7 +203,9 @@
android:id="@+id/repo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
android:paddingVertical="8dp"
android:paddingHorizontal="16dp"
android:background="?android:selectableItemBackground">
<TextView
android:id="@+id/repo_main"
@@ -233,7 +245,9 @@
android:id="@+id/privacy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
android:paddingVertical="8dp"
android:paddingHorizontal="16dp"
android:background="?android:selectableItemBackground">
<TextView
android:id="@+id/privacy_main"
@@ -273,7 +287,9 @@
android:id="@+id/donate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
android:paddingVertical="8dp"
android:paddingHorizontal="16dp"
android:background="?android:selectableItemBackground">
<TextView
android:id="@+id/donate_main"
@@ -284,6 +300,7 @@
android:text="@string/donate"
android:textSize="18sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
@@ -303,7 +320,9 @@
android:id="@+id/rate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
android:paddingVertical="8dp"
android:paddingHorizontal="16dp"
android:background="?android:selectableItemBackground">
<TextView
android:id="@+id/rate_main"
@@ -340,10 +359,12 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:padding="8dp"
android:id="@+id/report_error"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:paddingVertical="8dp"
android:paddingHorizontal="16dp"
android:background="?android:selectableItemBackground">
<TextView
android:id="@+id/report_error_main"
@@ -379,5 +400,5 @@
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</ScrollView>
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -31,13 +31,6 @@
android:layout_height="?attr/actionBarSize"
style="?attr/toolbarStyle" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/groups"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
app:tabMode="scrollable" />
</com.google.android.material.appbar.AppBarLayout>

View File

@@ -34,7 +34,7 @@
app:layout_constraintBottom_toTopOf="@+id/barcodeIdLayout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:text="@string/enterBarcodeInstructions" />
android:text="@string/manually_enter_barcode_instructions" />
<LinearLayout
android:id="@+id/barcodeIdLayout"
android:orientation="horizontal"
@@ -42,7 +42,7 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/explanationText"
app:layout_constraintBottom_toTopOf="@+id/noBarcode"
app:layout_constraintBottom_toTopOf="@+id/barcodes"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<TextView android:textSize="16.0sp"
@@ -65,21 +65,11 @@
android:minHeight="48dp"
tools:ignore="ContentDescription" />
</LinearLayout>
<Button
android:id="@+id/noBarcode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/barcodeIdLayout"
app:layout_constraintBottom_toTopOf="@+id/barcodes"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:text="@string/barcodeNoBarcode"
android:enabled="false" />
<ListView
android:id="@+id/barcodes"
android:layout_width="match_parent"
android:layout_height="fill_parent"
app:layout_constraintTop_toBottomOf="@+id/noBarcode"
app:layout_constraintTop_toBottomOf="@+id/barcodeIdLayout"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"

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