Compare commits

...

110 Commits

Author SHA1 Message Date
Sylvia van Os
a74c4f822e Release Catima 2.33.0 2024-11-19 17:48:48 +01:00
Sylvia van Os
c228d274b5 Merge pull request #2181 from CatimaLoyalty/create-pull-request/patch-1731953537
Update locales
2024-11-18 18:35:52 +00:00
TheLastProject
d8e0e03aa5 Update locales 2024-11-18 18:12:17 +00:00
Sylvia van Os
171dd7af59 Merge pull request #2179 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-11-18 18:12:02 +00:00
Sylvia van Os
10bf27a246 Merge pull request #2180 from CatimaLoyalty/dependabot/gradle/org.robolectric-robolectric-4.14
Bump org.robolectric:robolectric from 4.13 to 4.14
2024-11-18 06:09:35 +00:00
dependabot[bot]
199c243eb0 Bump org.robolectric:robolectric from 4.13 to 4.14
Bumps [org.robolectric:robolectric](https://github.com/robolectric/robolectric) from 4.13 to 4.14.
- [Release notes](https://github.com/robolectric/robolectric/releases)
- [Commits](https://github.com/robolectric/robolectric/compare/robolectric-4.13...robolectric-4.14)

---
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-11-18 02:42:36 +00:00
josé m
11b0143b1c Translated using Weblate (Galician)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/gl/
2024-11-17 16:01:42 +01:00
josé m
f2e20eaea3 Added translation using Weblate (Galician) 2024-11-17 16:00:17 +01:00
josé m
c8725a4588 Translated using Weblate (Galician)
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/gl/
2024-11-17 16:00:15 +01:00
josé m
f881965485 Added translation using Weblate (Galician) 2024-11-17 16:00:14 +01:00
ritchierope
3e16d0daf6 Translated using Weblate (Hungarian)
Currently translated at 97.8% (322 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hu/
2024-11-17 16:00:12 +01:00
Sylvia van Os
7068f57443 Merge pull request #2178 from CatimaLoyalty/create-pull-request/patch-1731817092
Update contributors
2024-11-17 11:42:06 +00:00
TheLastProject
8b611511f5 Update contributors 2024-11-17 04:18:12 +00:00
Sylvia van Os
1c9f0ee724 Merge pull request #2175 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-11-16 12:30:41 +00:00
Giovanni Donisi
2d816b39f6 Translated using Weblate (Italian)
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2024-11-15 22:01:04 +01:00
Sylvia van Os
c0b13bf040 Merge pull request #2174 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-11-14 17:31:23 +00:00
B o d o
e40d98f386 Translated using Weblate (German)
Currently translated at 100.0% (139 of 139 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-11-14 18:01:34 +01:00
Sylvia van Os
8af295a72b Translated using Weblate (Dutch)
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2024-11-14 18:01:33 +01:00
Sylvia van Os
ac4dde1f8b Merge pull request #2173 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-11-13 16:48:00 +00:00
大王叫我来巡山
2dc87fd37c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (139 of 139 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-11-13 16:18:15 +01:00
Максим Горпиніч
aebceec1f6 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (139 of 139 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2024-11-13 16:18:15 +01:00
solokot
95b59a9cc3 Translated using Weblate (Russian)
Currently translated at 100.0% (139 of 139 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-11-13 16:18:15 +01:00
B o d o
4ff72b66a8 Translated using Weblate (German)
Currently translated at 100.0% (139 of 139 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-11-13 16:18:15 +01:00
Sylvia van Os
d1162d0272 Merge pull request #2172 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-11-12 17:37:25 +00:00
Sylvia van Os
794ac2bab2 Merge pull request #2171 from CatimaLoyalty/create-pull-request/patch-1731392619
Update Gradle to 8.11
2024-11-12 17:36:13 +00:00
Lassi Määttä
7b76fe86b2 Translated using Weblate (Finnish)
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fi/
2024-11-12 14:00:36 +01:00
TheLastProject
4387c7ed1e Update Gradle to 8.11 2024-11-12 06:23:38 +00:00
Sylvia van Os
f819fc7db9 Merge pull request #2170 from CatimaLoyalty/create-pull-request/patch-1731347745
Update Fastlane changelogs
2024-11-11 17:57:33 +00:00
TheLastProject
fb5a882fdb Update Fastlane changelogs 2024-11-11 17:55:44 +00:00
Sylvia van Os
be8c0a6787 Update CHANGELOG 2024-11-11 18:55:31 +01:00
Sylvia van Os
5dc84fbd77 Merge pull request #2169 from CatimaLoyalty/fix/note_line_limit
Limit max line count to 5 on main view
2024-11-11 17:54:33 +00:00
Sylvia van Os
0c37827fb0 Limit max line count to 5 on main view
This prevents cards with very long notes to take up the entire screen or
more. This effect is worse with more columns.
2024-11-11 18:43:30 +01:00
Sylvia van Os
cee5d39b27 Merge pull request #2168 from CatimaLoyalty/fix/shorter_date_on_main_screen
Use MEDIUM instead of FULL date format on main screen
2024-11-11 17:21:07 +00:00
Sylvia van Os
9c5603eae6 Use MEDIUM instead of FULL date format on main screen
This improves the display of high column counts
2024-11-11 17:50:14 +01:00
Sylvia van Os
dd42c99ca7 Merge pull request #2167 from CatimaLoyalty/create-pull-request/patch-1731212204
Update contributors
2024-11-10 10:42:11 +00:00
TheLastProject
403c60ec6c Update contributors 2024-11-10 04:16:44 +00:00
Sylvia van Os
7c7e6d3b45 Merge pull request #2166 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-11-09 21:20:07 +00:00
大王叫我来巡山
316e51efb2 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (139 of 139 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-11-09 20:01:50 +01:00
Максим Горпиніч
9e838e266b Translated using Weblate (Ukrainian)
Currently translated at 100.0% (139 of 139 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2024-11-09 20:01:49 +01:00
solokot
a56b984c53 Translated using Weblate (Russian)
Currently translated at 100.0% (139 of 139 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-11-09 20:01:48 +01:00
B o d o
4040b270a8 Translated using Weblate (German)
Currently translated at 100.0% (139 of 139 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-11-09 20:01:47 +01:00
Sylvia van Os
eab8614bcc Merge pull request #2165 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-11-08 18:36:27 +00:00
kowih83264
ef8befe0cd Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_BR/
2024-11-08 19:00:56 +01:00
gallegonovato
860b79fc9b Translated using Weblate (Spanish)
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/es/
2024-11-08 19:00:55 +01:00
Sylvia van Os
93341fc4ec Merge pull request #2164 from CatimaLoyalty/dependabot/gradle/com.android.tools-desugar_jdk_libs-2.1.3
Bump com.android.tools:desugar_jdk_libs from 2.1.2 to 2.1.3
2024-11-08 16:59:02 +00:00
dependabot[bot]
51f123bc41 Bump com.android.tools:desugar_jdk_libs from 2.1.2 to 2.1.3
Bumps [com.android.tools:desugar_jdk_libs](https://github.com/google/desugar_jdk_libs) from 2.1.2 to 2.1.3.
- [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>
2024-11-08 02:24:08 +00:00
Sylvia van Os
f0512fbeca Merge pull request #2162 from CatimaLoyalty/create-pull-request/patch-1730917344
Update Fastlane changelogs
2024-11-06 18:22:51 +00:00
TheLastProject
71f6fcd2e6 Update Fastlane changelogs 2024-11-06 18:22:24 +00:00
Sylvia van Os
d1a244efa0 Update CHANGELOG 2024-11-06 19:22:10 +01:00
Sylvia van Os
075478db17 Merge pull request #2092 from vp193dt/main
#1962: Refactoring of Search Behavior: Restoring of Previous Search Query After Coming Back from Card Interaction or Screen Rotation on Search
2024-11-06 18:21:08 +00:00
vp193dt
6f4582eec9 Refactoring of Search Behavior: Restoring of Previous Search Query After Coming Back from Card Interaction or Screen Rotation on Search 2024-11-06 19:12:01 +01:00
Sylvia van Os
91f5f9a8b4 Merge pull request #2161 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-11-06 17:03:05 +00:00
Marnick L'Eau
f04adc0901 Translated using Weblate (Dutch)
Currently translated at 51.7% (72 of 139 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/nl/
2024-11-06 13:01:02 +01:00
Augustin LAVILLE
f184ee7e58 Translated using Weblate (French)
Currently translated at 99.2% (138 of 139 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/fr/
2024-11-06 13:01:01 +01:00
min7-i
9abeec578e Translated using Weblate (German)
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2024-11-06 13:01:00 +01:00
Sylvia van Os
8deab5f94f Merge pull request #2160 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-11-05 18:53:00 +00:00
Priit Jõerüüt
50fca74267 Translated using Weblate (Estonian)
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/et/
2024-11-05 12:36:58 +01:00
Davi Souza
9e7bf97cc9 Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/pt_PT/
2024-11-05 12:36:58 +01:00
Hasan Cesur
96be72b4c6 Translated using Weblate (Turkish)
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/tr/
2024-11-05 12:36:58 +01:00
Kristoffer Grundström
5c31ac6d00 Translated using Weblate (Swedish)
Currently translated at 5.0% (7 of 139 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/sv/
2024-11-05 12:36:57 +01:00
Kristoffer Grundström
1675d591dd Translated using Weblate (Swedish)
Currently translated at 95.4% (314 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sv/
2024-11-05 12:36:57 +01:00
109247019824
361495dfed Translated using Weblate (Bulgarian)
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/bg/
2024-11-05 12:36:57 +01:00
大王叫我来巡山
2b81e861f6 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (139 of 139 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-11-05 12:36:57 +01:00
大王叫我来巡山
657a761c3a Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hans/
2024-11-05 12:36:55 +01:00
Максим Горпиніч
6d401c4234 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (139 of 139 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2024-11-05 12:36:55 +01:00
solokot
8a33d2e5ed Translated using Weblate (Russian)
Currently translated at 100.0% (139 of 139 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-11-05 12:36:53 +01:00
B o d o
66e994be60 Translated using Weblate (German)
Currently translated at 100.0% (139 of 139 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-11-05 12:36:52 +01:00
Максим Горпиніч
4e50ca9340 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2024-11-05 12:36:50 +01:00
solokot
af064d1cda Translated using Weblate (Russian)
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2024-11-05 12:36:50 +01:00
Marnick L'Eau
585c444f2d Translated using Weblate (Dutch)
Currently translated at 97.8% (322 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nl/
2024-11-05 12:36:49 +01:00
Augustin LAVILLE
85683a0b3f Translated using Weblate (French)
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fr/
2024-11-05 12:36:49 +01:00
Vasilis K
4c7aa2b26b Translated using Weblate (Greek)
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/el/
2024-11-05 12:36:49 +01:00
B o d o
af236e1099 Translated using Weblate (German)
Currently translated at 100.0% (329 of 329 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/de/
2024-11-05 12:36:49 +01:00
Sylvia van Os
79f6014e26 Merge pull request #2157 from CatimaLoyalty/create-pull-request/patch-1730607506
Update contributors
2024-11-03 08:28:03 +00:00
TheLastProject
0fa3de40ba Update contributors 2024-11-03 04:18:25 +00:00
Sylvia van Os
d77f938107 Merge pull request #2155 from CatimaLoyalty/create-pull-request/patch-1730584271
Update Fastlane changelogs
2024-11-02 21:54:41 +00:00
TheLastProject
e44aaa6618 Update Fastlane changelogs 2024-11-02 21:51:10 +00:00
Sylvia van Os
96d88bb08c Update CHANGELOG 2024-11-02 22:50:53 +01:00
Sylvia van Os
b502f89da6 Merge pull request #2147 from leaumar/feat/1952-columns
resolve #1952 custom column count
2024-11-02 21:47:48 +00:00
Sylvia van Os
d7b8cd7e03 More consistant naming and column edge case bugfix for shortcut picker 2024-11-02 13:45:25 +01:00
Sylvia van Os
61681bdc2b Set default card columns to 4 on big screens 2024-11-01 22:36:12 +01:00
Sylvia van Os
dc65030a63 Padding fixes to ensure the cards scale well without changing text size in LoyaltyCardViewActivity 2024-11-01 22:35:33 +01:00
Sylvia van Os
328c110a97 General cleanups 2024-11-01 22:32:05 +01:00
Sylvia van Os
0b7cd32209 Merge pull request #2152 from CatimaLoyalty/dependabot/gradle/com.android.application-8.7.2
Bump com.android.application from 8.7.1 to 8.7.2
2024-11-01 19:25:10 +00:00
Sylvia van Os
b1c0ab74d7 Merge pull request #2151 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-11-01 19:25:00 +00:00
Marnes
faee01cde2 implement #1952: better values between portrait and landscape 2024-11-01 18:51:26 +01:00
Marnes
6f456437f7 implement #1952: custom column count 2024-11-01 18:27:41 +01:00
Marnes
1b0fd94a8c misc. linting 2024-11-01 18:27:33 +01:00
dependabot[bot]
268d04841f Bump com.android.application from 8.7.1 to 8.7.2
Bumps com.android.application from 8.7.1 to 8.7.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-11-01 03:00:22 +00:00
大王叫我来巡山
9408ac5d9f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (138 of 138 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-11-01 02:02:45 +01:00
Sylvia van Os
45d2b6206e Merge pull request #2149 from CatimaLoyalty/dependabot/gradle/androidx.constraintlayout-constraintlayout-2.2.0
Bump androidx.constraintlayout:constraintlayout from 2.1.4 to 2.2.0
2024-10-31 16:49:45 +00:00
dependabot[bot]
a943fdcc5a Bump androidx.constraintlayout:constraintlayout from 2.1.4 to 2.2.0
Bumps androidx.constraintlayout:constraintlayout from 2.1.4 to 2.2.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-31 02:18:56 +00:00
Sylvia van Os
06e02f0b0f Update fastlane 2024-10-30 19:42:10 +01:00
Sylvia van Os
5b29dc66a9 Merge pull request #2148 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-10-30 18:38:23 +00:00
大王叫我来巡山
5187916fd3 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (138 of 138 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-10-30 18:10:54 +00:00
Максим Горпиніч
d6e444c6e9 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (138 of 138 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2024-10-30 18:10:54 +00:00
solokot
59f4ef1091 Translated using Weblate (Russian)
Currently translated at 100.0% (138 of 138 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-10-30 18:10:53 +00:00
B o d o
bab1b3e9df Translated using Weblate (German)
Currently translated at 100.0% (138 of 138 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-10-30 18:10:53 +00:00
Kachelkaiser
4e8cbdc93b Translated using Weblate (German)
Currently translated at 100.0% (138 of 138 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-10-30 18:10:52 +00:00
Vasilis K
d3e5c5b335 Translated using Weblate (Greek)
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/el/
2024-10-30 18:10:51 +00:00
Sylvia van Os
2b4b38ddc6 Merge pull request #2145 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-10-29 17:25:47 +00:00
B o d o
d3e6d775e8 Translated using Weblate (German)
Currently translated at 100.0% (138 of 138 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-10-29 17:18:28 +00:00
Sylvia van Os
ecf3b57679 Release Catima 2.32.1 2024-10-29 18:18:09 +01:00
Sylvia van Os
115981ecc6 Merge pull request #2144 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-10-29 16:44:32 +00:00
大王叫我来巡山
009f297f59 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (137 of 137 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-10-29 16:36:14 +00:00
Максим Горпиніч
f539fb1acf Translated using Weblate (Ukrainian)
Currently translated at 100.0% (137 of 137 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2024-10-29 16:36:14 +00:00
solokot
297e1e79c2 Translated using Weblate (Russian)
Currently translated at 100.0% (137 of 137 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-10-29 16:36:13 +00:00
B o d o
d8a95d9d48 Translated using Weblate (German)
Currently translated at 100.0% (137 of 137 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-10-29 16:36:13 +00:00
Vasilis K
1d8e87981b Translated using Weblate (Greek)
Currently translated at 100.0% (315 of 315 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/el/
2024-10-29 16:36:12 +00:00
Sylvia van Os
5c97f9c89a Merge pull request #2143 from CatimaLoyalty/create-pull-request/patch-1730153137
Update Fastlane changelogs
2024-10-28 23:03:04 +00:00
64 changed files with 901 additions and 129 deletions

View File

@@ -1,6 +1,13 @@
# Changelog
## Unreleased - 140
## v2.33.0 - 141 (2024-11-19)
- Change default column on wide screens to 4
- Allow overriding column counts for portrait and landscape in settings
- Keep main screen search filter when rotating screen or opening a card
- Limit max length of note display on main screen
## v2.32.1 - 140 (2024-10-29)
- Fix text wrapping on add dialog

View File

@@ -10,20 +10,20 @@ GEM
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.0)
aws-partitions (1.958.0)
aws-sdk-core (3.201.3)
aws-partitions (1.998.0)
aws-sdk-core (3.211.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.8)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.88.0)
aws-sdk-core (~> 3, >= 3.201.0)
aws-sdk-kms (1.95.0)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.156.0)
aws-sdk-core (~> 3, >= 3.201.0)
aws-sdk-s3 (1.169.0)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.9.0)
aws-sigv4 (1.10.1)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.2.0)
@@ -38,8 +38,8 @@ GEM
domain_name (0.6.20240107)
dotenv (2.8.1)
emoji_regex (3.2.3)
excon (0.111.0)
faraday (1.10.3)
excon (0.112.0)
faraday (1.10.4)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
@@ -65,10 +65,10 @@ GEM
faraday-patron (1.0.0)
faraday-rack (1.0.0)
faraday-retry (1.0.3)
faraday_middleware (1.2.0)
faraday_middleware (1.2.1)
faraday (~> 1.0)
fastimage (2.3.1)
fastlane (2.222.0)
fastlane (2.225.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
@@ -84,6 +84,7 @@ GEM
faraday-cookie_jar (~> 0.0.6)
faraday_middleware (~> 1.0)
fastimage (>= 2.1.0, < 3.0.0)
fastlane-sirp (>= 1.0.0)
gh_inspector (>= 1.1.2, < 2.0.0)
google-apis-androidpublisher_v3 (~> 0.3)
google-apis-playcustomapp_v1 (~> 0.1)
@@ -109,6 +110,8 @@ GEM
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
fastlane-sirp (1.0.0)
sysrandom (~> 1.0)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.54.0)
google-apis-core (>= 0.11.0, < 2.a)
@@ -126,7 +129,7 @@ GEM
google-apis-core (>= 0.11.0, < 2.a)
google-apis-storage_v1 (0.31.0)
google-apis-core (>= 0.11.0, < 2.a)
google-cloud-core (1.7.0)
google-cloud-core (1.7.1)
google-cloud-env (>= 1.0, < 3.a)
google-cloud-errors (~> 1.0)
google-cloud-env (1.6.0)
@@ -147,18 +150,18 @@ GEM
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
highline (2.0.3)
http-cookie (1.0.6)
http-cookie (1.0.7)
domain_name (~> 0.5)
httpclient (2.8.3)
jmespath (1.6.2)
json (2.7.2)
jwt (2.8.2)
json (2.7.5)
jwt (2.9.3)
base64
mini_magick (4.13.2)
mini_mime (1.1.5)
multi_json (1.15.0)
multipart-post (2.4.1)
nanaimo (0.3.0)
nanaimo (0.4.0)
naturally (2.2.1)
nkf (0.2.0)
optparse (0.5.0)
@@ -171,8 +174,7 @@ GEM
trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0)
retriable (3.1.2)
rexml (3.2.9)
strscan
rexml (3.3.9)
rouge (2.0.7)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
@@ -185,7 +187,7 @@ GEM
simctl (1.6.10)
CFPropertyList
naturally
strscan (3.1.0)
sysrandom (1.0.5)
terminal-notifier (2.0.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
@@ -195,15 +197,15 @@ GEM
tty-spinner (0.9.3)
tty-cursor (~> 0.7)
uber (0.1.0)
unicode-display_width (2.5.0)
unicode-display_width (2.6.0)
word_wrap (1.0.0)
xcodeproj (1.24.0)
xcodeproj (1.26.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.3.0)
rexml (~> 3.2.4)
nanaimo (~> 0.4.0)
rexml (>= 3.3.6, < 4.0)
xcpretty (0.3.0)
rouge (~> 2.0.7)
xcpretty-travis-formatter (1.0.1)
@@ -216,4 +218,4 @@ DEPENDENCIES
fastlane
BUNDLED WITH
2.5.11
2.5.16

View File

@@ -21,13 +21,13 @@ android {
applicationId = "me.hackerchick.catima"
minSdk = 21
targetSdk = 34
versionCode = 139
versionName = "2.32.0"
versionCode = 141
versionName = "2.33.0"
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")
resourceConfigurations += listOf("ar", "bg", "bn", "bn-rIN", "bs", "cs", "da", "de", "el-rGR", "en", "eo", "es", "es-rAR", "et", "fi", "fr", "gl", "he-rIL", "hi", "hr", "hu", "in-rID", "is", "it", "ja", "ko", "lt", "lv", "nb-rNO", "nl", "oc", "pl", "pt-rBR", "pt-rPT", "ro-rRO", "ru", "sk", "sl", "sr", "sv", "tr", "uk", "vi", "zh-rCN", "zh-rTW")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
@@ -90,13 +90,13 @@ dependencies {
// AndroidX
implementation("androidx.appcompat:appcompat:1.7.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
implementation("androidx.constraintlayout:constraintlayout:2.2.0")
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.1.2")
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.3")
// Splash Screen
implementation("androidx.core:core-splashscreen:1.0.1")
@@ -116,7 +116,7 @@ dependencies {
val junitVersion = "4.13.2"
testImplementation("androidx.test:core:$androidXTestVersion")
testImplementation("junit:junit:$junitVersion")
testImplementation("org.robolectric:robolectric:4.13")
testImplementation("org.robolectric:robolectric:4.14")
androidTestImplementation("androidx.test:core:$androidXTestVersion")
androidTestImplementation("junit:junit:$junitVersion")

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

@@ -12,15 +12,15 @@ import androidx.appcompat.widget.Toolbar;
import androidx.core.content.pm.ShortcutInfoCompat;
import androidx.core.content.pm.ShortcutManagerCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import protect.card_locker.databinding.SimpleToolbarListActivityBinding;
import protect.card_locker.databinding.CardShortcutConfigureActivityBinding;
import protect.card_locker.preferences.Settings;
/**
* The configuration screen for creating a shortcut.
*/
public class CardShortcutConfigure extends CatimaAppCompatActivity implements LoyaltyCardCursorAdapter.CardAdapterListener {
private SimpleToolbarListActivityBinding binding;
private CardShortcutConfigureActivityBinding binding;
static final String TAG = "Catima";
private SQLiteDatabase mDatabase;
private LoyaltyCardCursorAdapter mAdapter;
@@ -28,7 +28,7 @@ public class CardShortcutConfigure extends CatimaAppCompatActivity implements Lo
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
binding = SimpleToolbarListActivityBinding.inflate(getLayoutInflater());
binding = CardShortcutConfigureActivityBinding.inflate(getLayoutInflater());
mDatabase = new DBHelper(this).getReadableDatabase();
// Set the result to CANCELED. This will cause nothing to happen if the
@@ -47,15 +47,20 @@ public class CardShortcutConfigure extends CatimaAppCompatActivity implements Lo
finish();
}
final RecyclerView cardList = binding.list;
GridLayoutManager layoutManager = (GridLayoutManager) cardList.getLayoutManager();
if (layoutManager != null) {
layoutManager.setSpanCount(getResources().getInteger(R.integer.main_view_card_columns));
}
Cursor cardCursor = DBHelper.getLoyaltyCardCursor(mDatabase, DBHelper.LoyaltyCardArchiveFilter.All);
mAdapter = new LoyaltyCardCursorAdapter(this, cardCursor, this, null);
cardList.setAdapter(mAdapter);
binding.list.setAdapter(mAdapter);
}
@Override
protected void onResume() {
super.onResume();
var layoutManager = (GridLayoutManager) binding.list.getLayoutManager();
if (layoutManager != null) {
var settings = new Settings(this);
layoutManager.setSpanCount(settings.getPreferredColumnCount());
}
}
private void onClickAction(int position) {

View File

@@ -30,6 +30,7 @@ import java.text.DateFormat;
import java.util.ArrayList;
import protect.card_locker.databinding.LoyaltyCardLayoutBinding;
import protect.card_locker.preferences.Settings;
public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCursorAdapter.LoyaltyCardListItemViewHolder> {
private int mCurrentSelectedIndex = -1;
@@ -111,19 +112,19 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
}
if (mLoyaltyCardListDisplayOptions.showingValidity() && loyaltyCard.validFrom != null) {
inputHolder.setExtraField(inputHolder.mValidFromField, DateFormat.getDateInstance(DateFormat.LONG).format(loyaltyCard.validFrom), Utils.isNotYetValid(loyaltyCard.validFrom) ? Color.RED : null, showDivider);
inputHolder.setExtraField(inputHolder.mValidFromField, DateFormat.getDateInstance(DateFormat.MEDIUM).format(loyaltyCard.validFrom), Utils.isNotYetValid(loyaltyCard.validFrom) ? Color.RED : null, showDivider);
} else {
inputHolder.setExtraField(inputHolder.mValidFromField, null, null, false);
}
if (mLoyaltyCardListDisplayOptions.showingValidity() && loyaltyCard.expiry != null) {
inputHolder.setExtraField(inputHolder.mExpiryField, DateFormat.getDateInstance(DateFormat.LONG).format(loyaltyCard.expiry), Utils.hasExpired(loyaltyCard.expiry) ? Color.RED : null, showDivider);
inputHolder.setExtraField(inputHolder.mExpiryField, DateFormat.getDateInstance(DateFormat.MEDIUM).format(loyaltyCard.expiry), Utils.hasExpired(loyaltyCard.expiry) ? Color.RED : null, showDivider);
} else {
inputHolder.setExtraField(inputHolder.mExpiryField, null, null, false);
}
inputHolder.mCardIcon.setContentDescription(loyaltyCard.store);
inputHolder.mIconBackgroundColor = Utils.setIconOrTextWithBackground(mContext, loyaltyCard, icon, inputHolder.mCardIcon, inputHolder.mCardText);
inputHolder.mIconBackgroundColor = Utils.setIconOrTextWithBackground(mContext, loyaltyCard, icon, inputHolder.mCardIcon, inputHolder.mCardText, new Settings(mContext).getPreferredColumnCount());
inputHolder.toggleCardStateIcon(loyaltyCard.starStatus != 0, loyaltyCard.archiveStatus != 0, itemSelected(inputCursor.getPosition()));
@@ -339,10 +340,4 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
}
}
public int dpToPx(int dp, Context mContext) {
Resources r = mContext.getResources();
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, r.getDisplayMetrics());
return px;
}
}

View File

@@ -720,7 +720,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
binding.fabEdit.setImageDrawable(editButtonIcon);
Bitmap icon = Utils.retrieveCardImage(this, loyaltyCard.id, ImageLocationType.icon);
Utils.setIconOrTextWithBackground(this, loyaltyCard, icon, binding.iconImage, binding.iconText);
Utils.setIconOrTextWithBackground(this, loyaltyCard, icon, binding.iconImage, binding.iconText, 1);
// If the background is very bright, we should use dark icons
backgroundNeedsDarkIcons = Utils.needsDarkForeground(backgroundHeaderColor);

View File

@@ -27,6 +27,7 @@ import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.view.ActionMode;
import androidx.appcompat.widget.SearchView;
import androidx.core.splashscreen.SplashScreen;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@@ -43,6 +44,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import protect.card_locker.databinding.ContentMainBinding;
import protect.card_locker.databinding.MainActivityBinding;
import protect.card_locker.databinding.SortingOptionBinding;
import protect.card_locker.preferences.Settings;
import protect.card_locker.preferences.SettingsActivity;
public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCardCursorAdapter.CardAdapterListener {
@@ -52,6 +54,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
public static final String RESTART_ACTIVITY_INTENT = "restart_activity_intent";
private static final int MEDIUM_SCALE_FACTOR_DIP = 460;
static final String STATE_SEARCH_QUERY = "SEARCH_QUERY";
private SQLiteDatabase mDatabase;
private LoyaltyCardCursorAdapter mAdapter;
@@ -59,6 +62,8 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
private SearchView mSearchView;
private int mLoyaltyCardCount = 0;
protected String mFilter = "";
private String currentQuery = "";
private String finalQuery = "";
protected Object mGroup = null;
protected DBHelper.LoyaltyCardOrder mOrder = DBHelper.LoyaltyCardOrder.Alpha;
protected DBHelper.LoyaltyCardOrderDirection mOrderDirection = DBHelper.LoyaltyCardOrderDirection.Ascending;
@@ -68,9 +73,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
private View mNoMatchingCardsText;
private View mNoGroupCardsText;
private TabLayout groupsTabLayout;
private Runnable mUpdateLoyaltyCardListRunnable;
private ActivityResultLauncher<Intent> mBarcodeScannerLauncher;
private ActivityResultLauncher<Intent> mSettingsLauncher;
@@ -197,7 +200,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
protected void onCreate(Bundle inputSavedInstanceState) {
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());
@@ -249,9 +251,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
mCardList.setAdapter(mAdapter);
registerForContextMenu(mCardList);
mGroup = null;
updateLoyaltyCardList(true);
mBarcodeScannerLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
// Exit early if the user cancelled the scan (pressed back/home)
if (result.getResultCode() != RESULT_OK) {
@@ -299,7 +298,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
if (mSearchView != null && !mSearchView.isIconified()) {
mFilter = mSearchView.getQuery().toString();
}
// Start of active tab logic
updateTabGroups(groupsTabLayout);
@@ -357,6 +355,12 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
mBarcodeScannerLauncher.launch(intent);
});
addButton.bringToFront();
var layoutManager = (GridLayoutManager) mCardList.getLayoutManager();
if (layoutManager != null) {
var settings = new Settings(this);
layoutManager.setSpanCount(settings.getPreferredColumnCount());
}
}
private void displayCardSetupOptions(Menu menu, boolean shouldShow) {
@@ -508,6 +512,24 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
}
@Override
// Saving currentQuery to finalQuery for user, this will be used to restore search history, happens when user clicks a card from list
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
finalQuery = currentQuery;
// Putting the query also into outState for later use in onRestoreInstanceState when rotating screen
if (mSearchView != null) {
outState.putString(STATE_SEARCH_QUERY, finalQuery);
}
}
@Override
// Restoring instance state when rotation of screen happens with the goal to restore search query for user
protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
finalQuery = savedInstanceState.getString(STATE_SEARCH_QUERY, "");
}
@Override
public boolean onCreateOptionsMenu(Menu inputMenu) {
getMenuInflater().inflate(R.menu.main_menu, inputMenu);
@@ -520,7 +542,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
mSearchView = (SearchView) searchMenuItem.getActionView();
mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
mSearchView.setSubmitButtonEnabled(false);
mSearchView.setOnCloseListener(() -> {
invalidateOptionsMenu();
return false;
@@ -545,6 +566,9 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
mSearchView.clearFocus();
return false;
}
currentQuery = "";
mFilter = "";
updateLoyaltyCardList(false);
return true;
}
});
@@ -559,7 +583,21 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
@Override
public boolean onQueryTextChange(String newText) {
mFilter = newText;
// New logic to ensure search history after coming back from picked card - user will see the last search query
if (newText.isEmpty()) {
if(!finalQuery.isEmpty()){
// Setting the query text for user after coming back from picked card from finalQuery
mSearchView.setQuery(finalQuery, false);
}
else if(!currentQuery.isEmpty()){
// Else if is needed in case user deletes search - expected behaviour is to show all cards
currentQuery = "";
mSearchView.setQuery(currentQuery, false);
}
} else {
// Setting search query each time user changes the text in search to temporary variable to be used later in finalQuery String which will be used to restore search history
currentQuery = newText;
}
TabLayout.Tab currentTab = groupsTabLayout.getTabAt(groupsTabLayout.getSelectedTabPosition());
mGroup = currentTab != null ? currentTab.getTag() : null;
@@ -568,6 +606,14 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
return true;
}
});
// Check if we came from a picked card back to search, in that case we want to show the search view with previous search query
if(!finalQuery.isEmpty()){
// Expand the search view to show the query
searchMenuItem.expandActionView();
// Setting the query text to empty String due to behaviour of onQueryTextChange after coming back from picked card - onQueryTextChange is called automatically without users interaction
finalQuery = "";
mSearchView.setQuery(currentQuery, false);
}
}
return super.onCreateOptionsMenu(inputMenu);

View File

@@ -934,7 +934,7 @@ public class Utils {
* @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) {
public static int setIconOrTextWithBackground(Context context, LoyaltyCard loyaltyCard, Bitmap icon, ImageView backgroundOrIcon, TextView textWhenNoImage, int columnCount) {
int headerColor = getHeaderColor(context, loyaltyCard);
backgroundOrIcon.setImageBitmap(icon);
backgroundOrIcon.setBackgroundColor(headerColor);
@@ -947,14 +947,16 @@ public class Utils {
// 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);
int columnWidth = Resources.getSystem().getDisplayMetrics().widthPixels / columnCount;
// Calculate how wide a character is and calculate how many characters fit in a line
// text size is generally based on height, so setting 1:1 as width may be fishy
int characterWidth = TextViewCompat.getAutoSizeMinTextSize(textWhenNoImage);
int maxWidthPerLine = textviewWidth - textWhenNoImage.getPaddingStart() - textWhenNoImage.getPaddingEnd();
int maxWidthPerLine = columnWidth - textWhenNoImage.getPaddingStart() - textWhenNoImage.getPaddingEnd();
// Set amount of lines based on what could fit at most
int maxLines = ((loyaltyCard.store.length() * characterWidth) / maxWidthPerLine) + 1;
// Set number of lines based on what could fit at most
int fullTextWidth = loyaltyCard.store.length() * characterWidth;
int maxLines = (fullTextWidth / maxWidthPerLine) + 1;
textWhenNoImage.setMaxLines(maxLines);
// Actually set the text and colour

View File

@@ -1,9 +1,13 @@
package protect.card_locker.preferences;
import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
import android.content.Context;
import android.content.SharedPreferences;
import android.util.Log;
import androidx.annotation.IntegerRes;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.preference.PreferenceManager;
@@ -14,8 +18,9 @@ import protect.card_locker.R;
import protect.card_locker.Utils;
public class Settings {
private static final String TAG = "Catima";
private final Context mContext;
private SharedPreferences mSettings;
private final SharedPreferences mSettings;
public Settings(Context context) {
mContext = context.getApplicationContext();
@@ -42,10 +47,11 @@ public class Settings {
return mSettings.getBoolean(getResString(keyId), defaultValue);
}
@Nullable
public Locale getLocale() {
String value = getString(R.string.settings_key_locale, "");
if (value.length() == 0) {
if (value.isEmpty()) {
return null;
}
@@ -92,6 +98,21 @@ public class Settings {
return getString(R.string.setting_key_theme_color, mContext.getResources().getString(R.string.settings_key_system_theme));
}
public int getPreferredColumnCount() {
var defaultSymbol = mContext.getResources().getString(R.string.settings_key_automatic_column_count);
var defaultColumnCount = mContext.getResources().getInteger(R.integer.main_view_card_columns);
var orientation = mContext.getResources().getConfiguration().orientation;
var columnCountPrefKey = orientation == ORIENTATION_PORTRAIT ? R.string.setting_key_column_count_portrait : R.string.setting_key_column_count_landscape;
var columnCountSetting = getString(columnCountPrefKey, defaultSymbol);
try {
// the pref may be unset or explicitly set to default
return columnCountSetting.equals(defaultSymbol) ? defaultColumnCount : Integer.parseInt(columnCountSetting);
} catch (NumberFormatException nfe) {
Log.e(TAG, "Failed to parseInt the column count pref", nfe);
return defaultColumnCount;
}
}
public boolean useVolumeKeysForNavigation() {
return getBoolean(R.string.settings_key_use_volume_keys_navigation, false);
}

View File

@@ -27,7 +27,7 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/list"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:spanCount="1"
app:spanCount="@integer/main_view_card_columns"
android:layout_height="match_parent"
android:layout_width="match_parent" />
</RelativeLayout>

View File

@@ -41,9 +41,10 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textStyle="bold"
app:autoSizeMinTextSize="6sp"
app:autoSizeTextType="uniform"
android:gravity="center"
android:padding="20dp" />
android:padding="10dp" />
<ImageView
android:importantForAccessibility="no"
@@ -150,6 +151,8 @@
android:layout_marginEnd="8dp"
android:layout_marginBottom="4dp"
android:textAppearance="?attr/textAppearanceBody2"
android:maxLines="5"
android:ellipsize="end"
android:visibility="gone"
tools:visibility="visible"
app:layout_constraintTop_toBottomOf="@+id/store"

View File

@@ -12,56 +12,60 @@ SlavekB
mondstern
IllusiveMan196
Altonss
大王叫我来巡山
Michael Moroni
Eric
GM
Petr Novák
laralem
大王叫我来巡山
Joel A
Taco
pfaffenrodt
Aayush Gupta
Scrambled777
Aayush Gupta
HudobniVolk
Giovanni Donisi
Nyatsuki
Jiri Grönroos
Giovanni Donisi
Priit Jõerüüt
Samantaz Fox
Balázs Meskó
Milo Ivir
Arno-github
Ankit Tiwari
Sergio Paredes
Cliff Heraldo
Sergio Paredes
Ankit Tiwari
Arno-github
Milo Ivir
Balázs Meskó
Jose Delvani
B o d o
mdvhimself
Milan Šalka
ikanakova
Skrripy
Максим Горпиніч
huuhaa
waffshappen
Silvério Santos
ngocanhtve
Quentin PAGÈS
Skrripy
Projjal Moitra
Denis Shilin
Robin Liu
Quentin PAGÈS
ngocanhtve
Silvério Santos
Marnick L'Eau
waffshappen
Ziad OUALHADJ
Robin Liu
Kachelkaiser
Denis Shilin
しいたけ
Alexander Ivanov
Viet Nguyen Hoang
Miha Frangež
Viet Nguyen Hoang
stavpup
ehrt74
Virginie
Tim Trek
Renko
Michael Gangolf
rudy3
Kim Seohyun
Govind S Nair
Freddo espresso
arshbeerSingh
MisterCosta96
arshbeerSingh
Freddo espresso
Govind S Nair
Kim Seohyun
Renko
rudy3
Michael Gangolf

View File

@@ -258,7 +258,7 @@
<string name="settings_disable_lockscreen_while_viewing_card_summary">Без заключване на екрана при преглед на карта</string>
<string name="settings_allow_content_provider_read_summary">Приложенията ще искат разрешение, за да получат достъп</string>
<string name="settings_oled_dark_summary">Намалява разхода на батерия от OLED дисплеи</string>
<string name="settings_category_title_cards">Изглед с карти</string>
<string name="settings_category_title_cards">Преглед на карта</string>
<string name="settings_category_title_general">Общи</string>
<string name="settings_category_title_privacy">Поверителност</string>
<string name="settings_keep_screen_on_summary">Спира автоматичното заключване на екрана при преглед на карти</string>
@@ -294,4 +294,15 @@
<string name="useBackImage">Използване на задната страна</string>
<string name="settings_use_volume_keys_navigation">Сменяне на картите с бутоните за звука</string>
<string name="settings_use_volume_keys_navigation_summary">Бутоните за силата на звука сменят видимата карта</string>
<string name="settings_automatic_column_count">Автоматично</string>
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_7">7</string>
<string name="settings_column_count_landscape">Колони в пейзажен изглед</string>
<string name="settings_column_count_portrait">Колони в портретен изглед</string>
<string name="settings_category_title_cards_overview">Списък с карти</string>
</resources>

View File

@@ -291,4 +291,15 @@
<string name="useBackImage">Rückseite verwenden</string>
<string name="settings_use_volume_keys_navigation">Karten mit Lautstärketasten wechseln</string>
<string name="settings_use_volume_keys_navigation_summary">Wähle mit den Lautstärketasten, welche Karte angezeigt werden soll</string>
<string name="settings_column_count_portrait">Spalten im Hochformat</string>
<string name="settings_column_count_landscape">Spalten im Querformat</string>
<string name="settings_automatic_column_count">Automatisch</string>
<string name="settings_column_count_2">2</string>
<string name="settings_category_title_cards_overview">Kartenübersicht</string>
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_7">7</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_6">6</string>
</resources>

View File

@@ -4,7 +4,7 @@
<string name="noGiftCards">Κάντε κλικ στο + κουμπί για να προσθέσετε μία κάρτα ή προσθέστε από το ⋮ μενού.</string>
<string name="storeName">Όνομα</string>
<string name="note">Σημείωση</string>
<string name="cardId">Κωδικός Κάρτας</string>
<string name="cardId">Κωδικός κάρτας</string>
<string name="cancel">Άκυρο</string>
<string name="save">Αποθήκευση</string>
<string name="edit">Επεξεργασία</string>
@@ -54,7 +54,7 @@
<item quantity="other"><xliff:g>%d</xliff:g> επιλέγχθηκαν</item>
</plurals>
<string name="noGiftCardsGroup">Δημιούργησε κάρτες και βάλτες σε αυτή την ομάδα.</string>
<string name="addManually">Εισαγάγετε τον γραμμωτό κώδικα με μη αυτόματο τρόπο</string>
<string name="addManually">Εισαγωγή γραμμωτού κώδικα με μη αυτόματο τρόπο</string>
<string name="never">Ποτέ</string>
<string name="share">Κοινοποίηση</string>
<plurals name="balancePoints">
@@ -71,12 +71,12 @@
<string name="accept">Αποδοχή</string>
<string name="yes">Ναι</string>
<string name="no">Όχι</string>
<string name="addFromImage">Επιλέξτε μια εικόνα από τη συλλογή</string>
<string name="addFromImage">Επιλογή εικόνας από τη συλλογή</string>
<string name="expiryStateSentence">Λήγει: <xliff:g>%s</xliff:g></string>
<string name="expiryDate">Ημερομηνία λήξης</string>
<string name="settings_keep_screen_on">Κράτα την οθόνη ανοιχτή</string>
<string name="settings_keep_screen_on">Διατήρηση ενεργής οθόνης</string>
<string name="leaveWithoutSaveTitle">Έξοδος</string>
<string name="reverse">... σε αντίθετη σειρά</string>
<string name="reverse">...σε αντίστροφη σειρά</string>
<string name="version_history">Ιστορικό έκδοσης</string>
<string name="sort_by">Ταξινόμηση κατά</string>
<string name="credits">Πιστώσεις</string>
@@ -91,8 +91,7 @@
<string name="importLoyaltyCardKeychainMessage">Επιλέξτε την <i>LoyaltyCardKeychain.csv</i> εξαγωγή από το Loyalty Card Keychain για εισαγωγή.
\nΔημιουργήστε το από το μενού Εισαγωγής/Εξαγωγής στο Loyalty Card Keychain επιλέγοντας Εξαγωγή.</string>
<string name="importFidme">Εισαγωγή από FidMe</string>
<string name="importFidmeMessage">Επιλέξτε την <i>fidme-export-request-xxxxxx.zip</i> εξαγωγή από το FidMe για εισαγωγή και επιλέξτε χειροκίνητα τους τύπους γραμμωτού κώδικα μετέπειτα.
\nΔημιουργήστε το από το FidMe προφίλ επιλέγοντας Προστασία Δεδομένων και πατώντας Εξαγωγή δεδομένων πρώτα.</string>
<string name="importFidmeMessage">Επιλέξτε την <i>fidme-export-request-xxxxxx.zip</i> εξαγωγή από το FidMe για εισαγωγή και επιλέξτε χειροκίνητα τους τύπους γραμμωτού κώδικα μετέπειτα.\nΔημιουργήστε το από το FidMe προφίλ επιλέγοντας Προστασία Δεδομένων και πατώντας Εξαγωγή δεδομένων πρώτα.</string>
<string name="setBarcodeId">Επιλέξτε τιμή γραμμωτού κώδικα</string>
<string name="wrongValueForBarcodeType">Η τιμή δεν είναι έγκυρη για τον επιλεγμένο γραμμωτό κώδικα</string>
<string name="setBackImage">Επιλογή οπίσθιας εικόνας</string>
@@ -101,7 +100,7 @@
<string name="updateBarcodeQuestionText">Αλλάξατε τον κωδικό. Θέλετε να ενημερώσετε και τον γραμμωτό κώδικα στην ίδια τιμή;</string>
<string name="options">Επιλογές</string>
<string name="noGroupCards">Αυτή η ομάδα είναι άδεια</string>
<string name="settings_display_barcode_max_brightness">Επιπλέον φωτισμός γραμμωτού κώδικα</string>
<string name="settings_display_barcode_max_brightness">Επιπλέον φωτισμός οθόνης</string>
<string name="group_name_is_empty">Το όνομα της ομάδας δεν πρέπει να είναι κενό</string>
<string name="group_edit">Επεξεργασία ομάδας</string>
<string name="star">Προσθήκη στα αγαπημένα</string>
@@ -125,16 +124,16 @@
\nΠάρτε το στέλνοντας email στο: support@stocardapp.com ζητώντας μια εξαγωγή αρχείων των δεδομένων σας.</string>
<string name="intent_import_card_from_url_share_multiple_text">Θέλω να μοιραστώ μερικές κάρτες μαζί σου</string>
<string name="editGroup">Επεξεργασία Ομάδας: <xliff:g>%s</xliff:g></string>
<string name="setFrontImage">Επιλογή μπροστινής εικόνας</string>
<string name="setFrontImage">Επιλογή εμπρόσθιας εικόνας</string>
<string name="importVoucherVaultMessage">Επιλέξτε την <i>vouchervault.json</i> εξαγωγή από το Voucher Vault για εισαγωγή.
\nΔημιουργήστε το επιλέγοντας Εξαγωγή στο Voucher Vault.</string>
<string name="unsupportedBarcodeType">Ο τύπος γραμμωτού κώδικα δεν μπορεί να εμφανιστεί ακόμα. Μπορεί να υποστηρίζεται σε μια μελλοντική έκδοση της εφαρμογής.</string>
<string name="frontImageDescription">Μπροστινή εικόνα</string>
<string name="frontImageDescription">Εμπρόσθια</string>
<string name="photos">Φωτογραφίες</string>
<string name="backImageDescription">Οπίσθια εικόνα</string>
<string name="backImageDescription">Οπίσθια</string>
<string name="updateBarcodeQuestionTitle">Ενημέρωση τιμής γραμμωτού κώδικα;</string>
<string name="passwordRequired">Παρακαλώ εισάγετε τον κωδικό</string>
<string name="sort_by_most_recently_used">Χρησιμοποιήθηκαν πρόσφατα</string>
<string name="sort_by_most_recently_used">Χρήση</string>
<string name="shortcutSelectCard">Επιλέξτε μία κάρτα</string>
<string name="barcodeImageDescriptionWithType">Εικόνα <xliff:g>%s</xliff:g> γραμμωτού κώδικα</string>
<string name="app_libraries">Ελεύθερες βιβλιοθήκες τρίτων: <xliff:g id="app_libraries_list">%s</xliff:g></string>
@@ -169,11 +168,11 @@
<string name="app_copyright_old">Βασισμένο στο Loyalty Card Keychain
\nπνευματικά δικαιώματα © 2016-2020 Branden Archer</string>
<string name="settings_follow_system_orientation">Ακολούθηση συστήματος</string>
<string name="settings_card_orientation">Προσανατολισμός γραμμωτού κώδικα</string>
<string name="settings_card_orientation">Προσανατολισμός οθόνης</string>
<string name="settings_portrait_orientation">Πορτραίτο</string>
<string name="settings_landscape_orientation">Οριζόντια</string>
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Πνευματικά δικαιώματα © 2019-<xliff:g>%d</xliff:g> Sylvia van Os</string>
<string name="settings_lock_on_opening_orientation">Κλείδωμα τωρινού προσανατολισμού όταν ανοίγει μία κάρτα</string>
<string name="settings_lock_on_opening_orientation">Κλείδωμα τρέχοντος προσανατολισμού όταν ανοίγει μία κάρτα</string>
<string name="intent_import_card_from_url_share_text">Θέλω να μοιραστώ μία κάρτα μαζί σου</string>
<string name="enter_group_name">Εισάγετε όνομα ομάδας</string>
<string name="groups">Ομάδες</string>
@@ -214,7 +213,7 @@
<string name="and_data_usage">και δεδομένα χρήσης</string>
<string name="rate_this_app">Βαθμολογήστε την εφαρμογή</string>
<string name="duplicateCard">Αντίγραφο</string>
<string name="archive">Αρχειοθετήστε</string>
<string name="archive">Αρχειοθέτηση</string>
<string name="archived">Η κάρτα αρχειοθετήθηκε</string>
<string name="unarchived">Η κάρτα αφαιρέθηκε από το αρχείο</string>
<string name="unarchive">Αφαίρεση από το αρχείο</string>
@@ -238,16 +237,16 @@
<string name="settings_allow_content_provider_read_title">Να επιτρέπεται σε άλλες εφαρμογές να έχουν πρόσβαση στα δεδομένα μου</string>
<string name="app_copyright_short">Πνευματικά δικαιώματα © Sylvia van Os και συνεργάτες</string>
<string name="height">Ύψος:</string>
<string name="switchToFrontImage">Μετάβαση στην μπροστινή εικόνα</string>
<string name="switchToFrontImage">Μετάβαση στην εμπρόσθια εικόνα</string>
<string name="switchToBackImage">Μετάβαση στην οπίσθια εικόνα</string>
<string name="switchToBarcode">Μετάβαση σε γραμμωτό κώδικα</string>
<string name="validFromSentence">Ισχύει από: <xliff:g>%s</xliff:g></string>
<string name="permissionReadCardsLabel">Διαβάστε τις κάρτες Catima</string>
<string name="openBackImageInGalleryApp">Ανοίξτε την οπίσθια εικόνα στην εφαρμογή γκαλερί</string>
<string name="openBackImageInGalleryApp">Ανοίξτε την οπίσθια εικόνα στη συλλογή εικόνων</string>
<string name="permissionReadCardsDescription">Διάβασε τις Κάρτες σου Catima και όλες τους τις λεπτομέρειες, συμπεριλαμβανομένων των σημειώσεων και των εικόνων</string>
<string name="donate">Δωρεά</string>
<string name="icon_header_click_text">Πατήστε παρατεταμένα για επεξεργασία του εικονιδίου</string>
<string name="openFrontImageInGalleryApp">Ανοίξτε την μπροστινή εικόνα στην εφαρμογή γκαλερί</string>
<string name="openFrontImageInGalleryApp">Ανοίξτε την εμπρόσθια εικόνα στη συλλογή εικόνων</string>
<string name="storageReadPermissionRequired">Δικαίωμα ανάγνωσης του χώρου αποθήκευσης απαραίτητο για αυτήν την ενέργεια…</string>
<string name="settings_follow_sensor_orientation">Πάντα σε περιστροφή (αγνοεί τις ρυθμίσεις του συστήματος)</string>
<string name="validFromDate">Ισχύει από</string>
@@ -264,7 +263,7 @@
<string name="amountParsingFailed">Μη έγκυρο ποσό</string>
<string name="show_balance">Προβολή υπολοίπου</string>
<string name="action_display_options">Επιλογές εμφάνισης</string>
<string name="settings_category_title_cards">Κάρτες</string>
<string name="settings_category_title_cards">Εμφάνιση καρτών</string>
<string name="settings_category_title_general">Γενικά</string>
<string name="show_archived_cards">Προβολή αρχειοθετημένων καρτών</string>
<string name="addWithoutBarcode">Προσθήκη κάρτας χωρίς γραμμωτό κώδικα</string>
@@ -279,17 +278,30 @@
<string name="settings_oled_dark_summary">Μειώνει τη χρήση της μπαταρίας στις οθόνες OLED</string>
<string name="show_note">Εμφάνιση σημείωσης</string>
<string name="action_more_options">Περισσότερες επιλογές</string>
<string name="enter_card_id">Εισαγάγετε τον κωδικό αριθμό ή το κείμενο στην κάρτα σας</string>
<string name="enter_card_id">Εισάγετε τον κωδικό αριθμό ή το κείμενο στην κάρτα σας</string>
<string name="show_validity">Εμφάνιση εγκυρότητας</string>
<string name="add_a_card_in_a_different_way">Προσθέστε μια κάρτα με διαφορετικό τρόπο</string>
<string name="card_id_must_not_be_empty">Ο κωδικός αριθμός της κάρτας δεν πρέπει να είναι κενός</string>
<string name="settings_allow_content_provider_read_summary">Οι εφαρμογές θα πρέπει ακόμα να ζητήσουν άδεια για να τους δοθεί πρόσβαση</string>
<string name="settings_allow_content_provider_read_summary">Οι εφαρμογές θα πρέπει ωστόσο να ζητήσουν άδεια για να τους δοθεί πρόσβαση</string>
<string name="field_must_not_be_empty">Το πεδίο δεν πρέπει να είναι κενό</string>
<string name="manually_enter_barcode_instructions">Εισαγάγετε τον κωδικό αριθμό ή το κείμενο στην κάρτα σας και πατήστε τον γραμμωτό κώδικα που μοιάζει με αυτόν της κάρτας σας.</string>
<string name="manually_enter_barcode_instructions">Εισάγετε τον κωδικό αριθμό ή το κείμενο στην κάρτα σας και πατήστε τον γραμμωτό κώδικα που μοιάζει με αυτόν της κάρτας σας.</string>
<string name="add_manually_warning_title">Συνιστάται η σάρωση</string>
<string name="noCameraFoundGuideText">Η συσκευή σας δεν φαίνεται να διαθέτει κάμερα. Αν έχει, δοκιμάστε να κάνετε επανεκκίνηση της συσκευής. Διαφορετικά, χρησιμοποιήστε το κουμπί Περισσότερες επιλογές παρακάτω για να προσθέσετε έναν γραμμωτό κώδικα με άλλο τρόπο.</string>
<string name="importCancelled">Η εισαγωγή ακυρώθηκε</string>
<string name="exportCancelled">Η εξαγωγή ακυρώθηκε</string>
<string name="useFrontImage">Χρήση μπροστινής εικόνας</string>
<string name="useFrontImage">Χρήση εμπρόσθιας εικόνας</string>
<string name="useBackImage">Χρήση οπίσθιας εικόνας</string>
<string name="settings_use_volume_keys_navigation">Εναλλαγή καρτών με τα κουμπιά έντασης</string>
<string name="settings_use_volume_keys_navigation_summary">Χρησιμοποιήστε τα κουμπιά έντασης ήχου για να αλλάξετε την κάρτα που εμφανίζεται</string>
<string name="settings_column_count_landscape">Στήλες σε οριζόντια λειτουργία</string>
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_4">4</string>
<string name="settings_category_title_cards_overview">Επισκόπηση καρτών</string>
<string name="settings_column_count_portrait">Στήλες σε κατακόρυφη λειτουργία</string>
<string name="settings_automatic_column_count">Αυτόματα</string>
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_7">7</string>
</resources>

View File

@@ -300,4 +300,15 @@
<string name="useBackImage">Utilice la imagen trasera</string>
<string name="settings_use_volume_keys_navigation_summary">Utiliza los botones de volumen para cambiar que tarjeta se muestra</string>
<string name="settings_use_volume_keys_navigation">Cambiar de tarjetas usando los botones de volumen</string>
<string name="settings_automatic_column_count">Automático</string>
<string name="settings_column_count_portrait">Columnas en modo vertical</string>
<string name="settings_column_count_2">2</string>
<string name="settings_category_title_cards_overview">Visión general de las tarjetas</string>
<string name="settings_column_count_landscape">Columnas en modo horizontal</string>
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_7">7</string>
</resources>

View File

@@ -289,4 +289,15 @@
<string name="useBackImage">Kasuta tagakülje pilti</string>
<string name="settings_use_volume_keys_navigation">Vaheta kaarte helivaljuse nuppudega</string>
<string name="settings_use_volume_keys_navigation_summary">Vaheta kuvatavaid vahekaarte helivaljuse nuppudega</string>
<string name="settings_column_count_1">1</string>
<string name="settings_category_title_cards_overview">Kaartide ülevaade</string>
<string name="settings_column_count_landscape">Veerge rõhtvaates</string>
<string name="settings_automatic_column_count">Automaatne</string>
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_portrait">Veerge püstvaates</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_7">7</string>
</resources>

View File

@@ -143,7 +143,7 @@
</plurals>
<plurals name="selectedCardCount">
<item quantity="one"><xliff:g>%d</xliff:g> valittu</item>
<item quantity="other"><xliff:g>%d</xliff:g> valittu</item>
<item quantity="other"><xliff:g>%d</xliff:g> valitut</item>
</plurals>
<string name="importStocard">Tuo Stocardista</string>
<string name="importStocardMessage">Valitse tuotava <i>***.zip</i>-vienti Stocardista.
@@ -294,4 +294,15 @@
<string name="useFrontImage">Käytä etukuvaa</string>
<string name="settings_use_volume_keys_navigation">Vaihtele korttien välillä äänenvoimakkuuspainikkeilla</string>
<string name="settings_use_volume_keys_navigation_summary">Käytä äänenvoimakkuuspainikkeita vaihtaaksesi näytettävän kortin</string>
<string name="settings_automatic_column_count">Automaattinen</string>
<string name="settings_column_count_6">6</string>
<string name="settings_category_title_cards_overview">Korttinäkymä</string>
<string name="settings_column_count_portrait">Saraketta pystytilassa</string>
<string name="settings_column_count_landscape">Saraketta vaakatilassa</string>
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_7">7</string>
</resources>

View File

@@ -300,4 +300,15 @@
<string name="useBackImage">Utiliser l\'image arrière</string>
<string name="settings_use_volume_keys_navigation">Changer de cartes avec les boutons de volume</string>
<string name="settings_use_volume_keys_navigation_summary">Utilisez les boutons de volume pour changer la carte affichée</string>
<string name="settings_category_title_cards_overview">Aperçu des cartes</string>
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_portrait">Colonnes en mode portrait</string>
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_landscape">Colonnes en mode paysage</string>
<string name="settings_automatic_column_count">Automatique</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_7">7</string>
</resources>

View File

@@ -0,0 +1,302 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
<string name="app_name">Catima</string>
<string name="action_add">Engadir</string>
<string name="noGiftCards">Preme no botón + para engadir unha tarxeta ou desde o menú ⋮.</string>
<string name="noGiftCardsGroup">Crear tarxetas e despois engádeas aquí ao grupo.</string>
<string name="noMatchingGiftCards">Sen resultados. Intenta cambiar a busca.</string>
<string name="storeName">Nome</string>
<string name="barcodeType">Tipo de código de barras</string>
<string name="noBarcode">Sen código de barras</string>
<string name="star">Engadir a favoritas</string>
<string name="save">Gardar</string>
<string name="edit">Editar</string>
<string name="cancel">Desbotar</string>
<string name="delete">Eliminar</string>
<string name="confirm">Confirmar</string>
<plurals name="deleteCardsTitle">
<item quantity="one">Eliminar <xliff:g>%d</xliff:g> tarxeta</item>
<item quantity="other">Eliminar <xliff:g>%d</xliff:g> tarxetas</item>
</plurals>
<string name="deleteConfirmation">Eliminar definitivamente esta tarxeta?</string>
<string name="ok">OK</string>
<string name="share">Compartir</string>
<string name="sendLabel">Enviar…</string>
<string name="editCardTitle">Editar Tarxeta</string>
<string name="addCardTitle">Engadir Tarxeta</string>
<string name="scanCardBarcode">Escanear Código de Barras</string>
<string name="cardShortcut">Atallo á Tarxeta</string>
<string name="noCardsMessage">Primeiro engade a tarxeta</string>
<string name="barcodeImageDescriptionWithType">Imaxe do código de barras de <xliff:g>%s</xliff:g></string>
<string name="failedParsingImportUriError">Non se puido procesar o URI de importación</string>
<string name="importExport">Importar/Exportar</string>
<string name="exportName">Exportar</string>
<string name="importExportHelp">Facendo copia de apoio dos datos podes movelos a outro dispositivo.</string>
<string name="importSuccessfulTitle">Importados</string>
<string name="importFailedTitle">Fallou a importación</string>
<string name="exportSuccessfulTitle">Exportado</string>
<string name="exportFailedTitle">Fallou a exportación</string>
<string name="exportFailed">Non se puido exportar</string>
<string name="importFailed">Non se puido importar</string>
<string name="importing">Importando…</string>
<string name="exporting">Exportando…</string>
<string name="storageReadPermissionRequired">O preciso o permiso de lectura para realizar esta acción…</string>
<string name="cameraPermissionRequired">O preciso o acceso á cámara para realizar esta acción…</string>
<string name="permissionReadCardsLabel">Ler Tarxetas Catima</string>
<string name="permissionReadCardsDescription">ler as tarxetas Catima e os seus detalles, incluíndo notas e imaxes</string>
<string name="cameraPermissionDeniedTitle">Non puido acceder á cámara</string>
<string name="noCameraPermissionDirectToSystemSetting">Catima precisa acceso á cámara para escanear códigos de barras. Toca aquí para cambiar os axustes do permiso.</string>
<string name="exportOptionExplanation">Os datos vanse escribir na localización que elixas.</string>
<string name="importOptionFilesystemTitle">Importar desde o sistema de ficheiros</string>
<string name="importOptionApplicationExplanation">Usa outra app ou o xestor de ficheiros favorito para abrir un ficheiro.</string>
<string name="importOptionApplicationButton">Usar outra app</string>
<string name="about">Sobre</string>
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019<xliff:g>%d</xliff:g> Sylvia van Os e colaboradoras</string>
<string name="app_copyright_short">Copyright © Sylvia van Os e colaboradoras</string>
<string name="app_copyright_old">Baseada en Loyalty Card Keychain\ncopyright © 20162020 Branden Archer</string>
<string name="app_license">Software Libre con Copyleft, licenza GPLv3+</string>
<string name="about_title_fmt">Sobre <xliff:g id="app_name">%s</xliff:g></string>
<string name="debug_version_fmt">Versión: <xliff:g id="version">%s</xliff:g></string>
<string name="app_libraries">Bibliotecas libres alleas: <xliff:g id="app_libraries_list">%s</xliff:g></string>
<string name="app_resources">Recursos alleos libres: <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="selectBarcodeTitle">Elixir Código de barras</string>
<string name="settings">Axustes</string>
<string name="settings_theme">Decorado</string>
<string name="settings_follow_sensor_orientation">Rotar sempre (ignora o axuste do sistema)</string>
<string name="settings_portrait_orientation">Retrato</string>
<string name="settings_landscape_orientation">Paisaxe</string>
<string name="settings_lock_on_opening_orientation">Fixar a orientación ao abrir a tarxeta</string>
<string name="settings_display_barcode_max_brightness">Brillo da pantalla</string>
<string name="settings_keep_screen_on_summary">Evita que se apague a pantalla cando se ve unha tarxeta</string>
<string name="settings_disable_lockscreen_while_viewing_card">Evitar bloqueo da pantalla</string>
<string name="settings_disable_lockscreen_while_viewing_card_summary">Desactiva o bloqueo da pantalla cando se ve unha tarxeta</string>
<string name="settings_allow_content_provider_read_title">Permitir a outras apps acceder aos meus datos</string>
<string name="settings_allow_content_provider_read_summary">As app terán que solicitar igualmente o permiso para acceder aos datos</string>
<string name="settings_use_volume_keys_navigation">Cambiar de tarxeta cos botóns de volume</string>
<string name="settings_use_volume_keys_navigation_summary">Usar os botóns de volume para cambiar a tarxeta que se mostra</string>
<string name="intent_import_card_from_url_share_text">Quero compartir unha tarxeta contigo</string>
<string name="importSuccessful">Datos importados</string>
<string name="exportSuccessful">Datos exportados</string>
<string name="enter_group_name">Escribe o nome do grupo</string>
<string name="groups">Grupos</string>
<string name="group_edit">Editar Grupo</string>
<string name="noGroups">Preme no botón + para engadir grupos por categorías.</string>
<string name="noGroupCards">O grupo está baleiro</string>
<plurals name="groupCardCount">
<item quantity="one"><xliff:g>%d</xliff:g> tarxeta</item>
<item quantity="other"><xliff:g>%d</xliff:g> tarxetas</item>
</plurals>
<string name="group_name_already_in_use">O nome xa se está a usar</string>
<string name="group_name_is_empty">O nome do grupo non pode estar baleiro</string>
<string name="moveUp">Mover arriba</string>
<string name="moveDown">Mover abaixo</string>
<string name="leaveWithoutSaveTitle">Saír</string>
<string name="leaveWithoutSaveConfirmation">Saír antes de gardar?</string>
<string name="addManually">Escribir manualmente o código</string>
<string name="addFromImage">Elixe unha imaxe desde a galería</string>
<string name="groupsList">Grupos: <xliff:g>%s</xliff:g></string>
<string name="editGroup">Editando o Grupo: <xliff:g>%s</xliff:g></string>
<string name="expiryStateSentence">Caducidade: <xliff:g>%s</xliff:g></string>
<string name="expiryStateSentenceExpired">Caducou: <xliff:g>%s</xliff:g></string>
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
<plurals name="balancePoints">
<item quantity="one"><xliff:g>%s</xliff:g> punto</item>
<item quantity="other"><xliff:g>%s</xliff:g> puntos</item>
</plurals>
<string name="card">Tarxeta</string>
<string name="editBarcode">Editar código</string>
<string name="expiryDate">Data de caducidade</string>
<string name="never">Nunca</string>
<string name="chooseExpiryDate">Elixir data de caducidade</string>
<string name="moveBarcodeToTopOfScreen">Mover o código de barra á parte superior da pantalla</string>
<string name="noBarcodeFound">Non se atopou un código de barras</string>
<string name="errorReadingImage">Non se puido ler a imaxe</string>
<string name="balance">Saldo</string>
<string name="currency">Divisa</string>
<string name="points">Puntos</string>
<string name="balanceParsingFailed">Saldo non válido</string>
<string name="chooseImportType">Importar datos desde</string>
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
<string name="privacy_policy">Política de Privacidade</string>
<string name="accept">Aceptar</string>
<string name="importCatima">Importar desde Catima</string>
<string name="importCatimaMessage">Selecciona o ficheiro de exportación <i>catima.zip</i> para importalo.\nCréao no menú Importar/Exportar noutra app Catima premendo en Exportar.</string>
<string name="importFidme">Importar desde FidMe</string>
<string name="importFidmeMessage">Elixe o ficheiro exportado <i>fidme-export-request-xxxxxx.zip</i> desde FidMe, e despois elixe manualmente o tipo de código de barras.\nCréao no teu perfil FidMe en Protección de Datos e despois premendo en Extraer os meus datos.</string>
<string name="importLoyaltyCardKeychain">Importar desde Loyalty Card Keychain</string>
<string name="importLoyaltyCardKeychainMessage">Elixe o ficheiro de exportación <i>LoyaltyCardKeychain.csv</i> desde Loyalty Card Keychain \nCréao no menú Importar/Exportar en Loyalty Card Keychain premendo en Exportar.</string>
<string name="importStocard">Importar desde Stocard</string>
<string name="importStocardMessage">Elixe o ficheiro <i>***.zip</i> desde Stocard. \nPodes obtelo escribindo un correo a support@stocardapp.com e pedindo a exportación dos datos.</string>
<string name="importVoucherVault">Importar desde Voucher Vault</string>
<string name="importVoucherVaultMessage">Selecciona o ficheiro de exportación <i>vouchervault.json</i> desde Voucher Vault. \nCréao premendo en Exportar en Voucher Vault.</string>
<string name="barcodeId">Valor do código de barras</string>
<string name="sameAsCardId">Igual que o ID</string>
<string name="setBarcodeId">Establecer valor do código de barras</string>
<string name="unsupportedBarcodeType">Este tipo de código de barras aínda non se pode mostrar. Intentaremos engadir a compatibilidade no futuro.</string>
<string name="wrongValueForBarcodeType">O valor non é válido para o tipo de código de barras seleccionado</string>
<string name="intent_import_card_from_url_share_multiple_text">Quero compartir unhas tarxetas contigo</string>
<string name="frontImageDescription">Imaxe frontal</string>
<string name="backImageDescription">Imaxe posterior</string>
<string name="photos">Fotos</string>
<string name="setFrontImage">Establecer imaxe frontal</string>
<string name="setBackImage">Establecer imaxe posterior</string>
<string name="removeImage">Retirar a imaxe</string>
<string name="takePhoto">Facer unha foto</string>
<string name="updateBarcodeQuestionTitle">Actualizar o valor do código?</string>
<string name="updateBarcodeQuestionText">Cambiaches o ID. Queres cambiar tamén o código de barras para que use o mesmo valor?</string>
<string name="yes">Si</string>
<string name="no">Non</string>
<string name="failedGeneratingShareURL">Non se puido crear un URL para compartir. Informa sobre o fallo.</string>
<string name="turn_flashlight_on">Acender o flash</string>
<string name="turn_flashlight_off">Apagar o flash</string>
<string name="settings_oled_dark">Fondo en negro puro para o decorado escuro</string>
<string name="settings_oled_dark_summary">Diminúe o uso da batería nas pantallas OLED</string>
<string name="settings_system_locale">Sistema</string>
<string name="selectColor">Elixir cor</string>
<string name="settings_theme_color">Cor do decorado</string>
<string name="settings_catima_theme">Catima</string>
<string name="settings_pink_theme">Rosa</string>
<string name="settings_magenta_theme">Maxenta</string>
<string name="settings_violet_theme">Violeta</string>
<string name="settings_sky_blue_theme">Azul celeste</string>
<string name="settings_green_theme">Verde</string>
<string name="settings_brown_theme">Marrón</string>
<string name="app_contributors">Creada grazas a: <xliff:g id="app_contributors">%s</xliff:g></string>
<string name="sort">Orde</string>
<string name="showMoreInfo">Ver info</string>
<string name="updateBalance">Actualizar saldo</string>
<string name="failedToRetrieveImageFile">Fallou a obtención do ficheiro de imaxe</string>
<string name="barcodeLongPressMessage">Só imaxes que se abren na app de galería</string>
<string name="sort_by_name">Nome</string>
<string name="sort_by_most_recently_used">Usadas recentemente</string>
<string name="sort_by_expiry">Caducidade</string>
<string name="reverse">…orde inversa</string>
<string name="sort_by">Orde por</string>
<string name="version_history">Historial das versións</string>
<string name="credits">Recoñecementos</string>
<string name="help_translate_this_app">Axuda a traducir a app</string>
<string name="license">Licenza</string>
<string name="source_repository">Repositorio do código</string>
<string name="on_github">en GitHub</string>
<string name="and_data_usage">e uso de datos</string>
<string name="rate_this_app">Valora esta app</string>
<string name="on_google_play">en Google Play</string>
<string name="report_error">Informar de fallo</string>
<string name="translate_platform">en Weblate</string>
<string name="shortcutSelectCard">Elixe unha tarxeta</string>
<string name="options">Opcións</string>
<string name="starred">Con estrela</string>
<string name="include_if_asking_support">Se queres pedir axuda, inclúe esta información:</string>
<string name="duplicateCard">Duplicar</string>
<string name="archive">Arquivar</string>
<string name="unarchive">Sacar do arquivo</string>
<string name="archived">Arquivouse a tarxeta</string>
<string name="unarchived">Sacouse do arquivo</string>
<plurals name="groupCardCountWithArchived">
<item quantity="one"><xliff:g>%1$d</xliff:g> tarxeta (<xliff:g id="archivedCount">%2$d</xliff:g> arquivada)</item>
<item quantity="other"><xliff:g>%1$d</xliff:g> tarxetas (<xliff:g id="archivedCount">%2$d</xliff:g> arquivadas)</item>
</plurals>
<string name="previousCard">Anterior</string>
<string name="nextCard">Seguinte</string>
<string name="failedToOpenUrl">Primeiro instala un navegador web</string>
<string name="welcome">Ben vida a Catima</string>
<string name="updateBalanceTitle">Canto gastaches ou recibiches?</string>
<string name="updateBalanceHint">Escribe a cantidade</string>
<string name="currentBalanceSentence">Saldo actual: <xliff:g>%s</xliff:g></string>
<string name="newBalanceSentence">Novo saldo: <xliff:g>%s</xliff:g></string>
<string name="anyDate">Calquera data</string>
<string name="chooseValidFromDate">Elixe data de inicio válida</string>
<string name="validFromSentence">Válida desde: <xliff:g>%s</xliff:g></string>
<string name="height">Alto:</string>
<string name="switchToFrontImage">Cambiar á imaxe frontal</string>
<string name="switchToBackImage">Cambiar á imaxe posterior</string>
<string name="openFrontImageInGalleryApp">Abrir imaxe frontal na app de galería</string>
<string name="openBackImageInGalleryApp">Abrir imaxe posterior na app de galería</string>
<string name="setBarcodeHeight">Establecer altura do código de barras</string>
<string name="icon_header_click_text">Pulsación longa para editar a miniatura</string>
<string name="show_name_below_image_thumbnail">Mostrar nome debaixo da miniatura</string>
<string name="show_note">Ver nota</string>
<string name="show_balance">Ver saldo</string>
<string name="settings_category_title_cards">Vista de tarxeta</string>
<string name="settings_category_title_cards_overview">Vista xeral de tarxetas</string>
<string name="settings_column_count_portrait">Columnas no modo retrato</string>
<string name="settings_automatic_column_count">Automático</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_5">5</string>
<string name="settings_category_title_general">Xeral</string>
<string name="settings_category_title_privacy">Privacidade</string>
<string name="action_display_options">Opcións ao mostrar</string>
<string name="show_archived_cards">Mostrar tarxetas arquivadas</string>
<string name="view_online">Ver en liña</string>
<string name="action_more_options">Máis opcións</string>
<string name="addWithoutBarcode">Engadir unha tarxeta sen código de barras</string>
<string name="enter_card_id">Escribe o número ID ou texto na túa tarxeta</string>
<string name="card_id_must_not_be_empty">O ID da tarxeta non pode estar baleiro</string>
<string name="add_a_card_in_a_different_way">Engadir unha tarxeta doutro xeito</string>
<string name="field_must_not_be_empty">O campo non pode quedar baleiro</string>
<string name="manually_enter_barcode_instructions">Escribe o número ID ou texto na túa tarxeta e preme no código de barras que se pareza ao da túa tarxeta.</string>
<string name="add_manually_warning_title">Recomendamos escanear</string>
<string name="add_manually_warning_message">Nalgunhas tendas o código de barras é diferente ao número escrito na tarxeta. Debido a isto escribir o código de barras manualmente non sempre funciona. Recomendamos que escanees o código de barras coa cámara. Queres continuar igualmente?</string>
<string name="continue_">Continuar</string>
<string name="spend">Gastar</string>
<string name="receive">Recibir</string>
<string name="amountParsingFailed">Cantidade non válida</string>
<string name="failedLaunchingFileManager">Non se atopa un xestor de ficheiros compatible</string>
<string name="multipleBarcodesFoundPleaseChooseOne">Cal destes códigos de barras atopados queres usar?</string>
<string name="pageWithNumber">Páxina <xliff:g>%d</xliff:g></string>
<string name="noCameraFoundGuideText">Parece que o teu dispositivo non ten cámara. Se a ten, intenta reiniciar o dispositivo. Se non, usa o botón inferior de Máis Opcións para engadir o código de barras doutro xeito.</string>
<string name="importCancelled">Cancelouse a importación</string>
<string name="exportCancelled">Cancelouse a exportación</string>
<string name="useFrontImage">Usar imaxe frontal</string>
<string name="useBackImage">Usar imaxe posterior</string>
<plurals name="selectedCardCount">
<item quantity="one"><xliff:g>%d</xliff:g> seleccionado</item>
<item quantity="other"><xliff:g>%d</xliff:g> seleccionados</item>
</plurals>
<string name="action_search">Buscar</string>
<string name="note">Nota</string>
<string name="cardId">ID da tarxeta</string>
<string name="unstar">Retirar das favoritas</string>
<string name="deleteTitle">Eliminar tarxeta</string>
<plurals name="deleteCardsConfirmation">
<item quantity="one">Eliminar definitivamente <xliff:g>%d</xliff:g> tarxeta?</item>
<item quantity="other">Eliminar definitivamente as <xliff:g>%d</xliff:g> tarxetas?</item>
</plurals>
<string name="noCardExistsError">Non atopamos esa tarxeta</string>
<string name="settings_light_theme">Claro</string>
<string name="importOptionFilesystemButton">Desde sistema de ficheiros</string>
<string name="importOptionFilesystemExplanation">Elixe un ficheiro concreto no sistema de ficheiros.</string>
<string name="importOptionApplicationTitle">Usar outra app</string>
<string name="thumbnailDescription">Miniatura</string>
<string name="starImage">Estrela de favorita</string>
<string name="settings_system_theme">Sistema</string>
<string name="settings_follow_system_orientation">Seguir ao sistema</string>
<string name="settings_display_barcode_max_brightness_summary">Preciso para que algúns escáneres funcionen</string>
<string name="settings_keep_screen_on">Manter pantalla acendida</string>
<string name="settings_dark_theme">Escuro</string>
<string name="settings_card_orientation">Orientación da pantalla</string>
<string name="group_updated">Grupo actualizado</string>
<string name="all">Todo</string>
<string name="deleteConfirmationGroup">Eliminar grupo?</string>
<string name="failedOpeningFileManager">Primeiro instala un xestor de ficheiros.</string>
<string name="settings_locale">Idioma</string>
<string name="settings_blue_theme">Azul</string>
<string name="passwordRequired">Escribe o contrasinal</string>
<string name="exportPassword">Establece un contrasinal para protexer a exportación (optativo)</string>
<string name="exportPasswordHint">Escribe o contrasinal</string>
<string name="setIcon">Establecer miniatura</string>
<string name="failedLaunchingPhotoPicker">Non se atopa unha app de galería compatible</string>
<string name="importCards">Importar tarxetas</string>
<string name="validFromDate">Válida desde</string>
<string name="switchToBarcode">Cambiar ao código de barras</string>
<string name="donate">Doar</string>
<string name="show_validity">Ver validez</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_landscape">Columnas no modo paisaxe</string>
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_7">7</string>
<string name="addFromPdfFile">Elixe un ficheiro PDF</string>
<string name="errorReadingFile">Non se puido ler o ficheiro</string>
</resources>

View File

@@ -294,4 +294,8 @@
<string name="settings_use_volume_keys_navigation_summary">A hangerőgombok használata a megjelenített kártya átváltásához</string>
<string name="useFrontImage">Elülső kép használata</string>
<string name="useBackImage">Hátsó kép használata</string>
<string name="settings_category_title_cards_overview">Kártyák áttekintése</string>
<string name="settings_column_count_landscape">Oszlopok fekvő módban</string>
<string name="settings_automatic_column_count">Automatikus</string>
<string name="settings_column_count_portrait">Oszlopok álló módban</string>
</resources>

View File

@@ -300,4 +300,15 @@
<string name="useFrontImage">Usa l\'immagine anteriore</string>
<string name="settings_use_volume_keys_navigation">Cambia carte con i pulsanti di volume</string>
<string name="settings_use_volume_keys_navigation_summary">Utilizza i pulsanti di volume per modificare la carta visualizzata</string>
<string name="settings_column_count_portrait">Colonne in modalità verticale</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_landscape">Colonne in modalità orizzontale</string>
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_7">7</string>
<string name="settings_automatic_column_count">Automatico</string>
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_5">5</string>
<string name="settings_category_title_cards_overview">Panoramica delle carte</string>
</resources>

View File

@@ -260,7 +260,7 @@
<string name="settings_display_barcode_max_brightness_summary">Benodigd voor de werking van sommige scanners</string>
<string name="settings_disable_lockscreen_while_viewing_card_summary">Schakelt schermvergrendeling uit tijdens het bekijken van een kaart</string>
<string name="settings_oled_dark_summary">Verlaagt het accuverbruik op oledschermen</string>
<string name="settings_category_title_cards">Kaartenoverzicht</string>
<string name="settings_category_title_cards">Kaart</string>
<string name="settings_category_title_general">Algemeen</string>
<string name="app_copyright_short">Auteursrecht © Sylvia van Os en bijdragers</string>
<string name="action_display_options">Weergave-instellingen</string>
@@ -294,4 +294,15 @@
<string name="useBackImage">Gebruik achterzijde van kaart</string>
<string name="settings_use_volume_keys_navigation">Verwissel kaart met de volume knoppen</string>
<string name="settings_use_volume_keys_navigation_summary">Gebruik de volume knoppen om te wisselen van getoonde kaart</string>
<string name="settings_category_title_cards_overview">Kaartenoverzicht</string>
<string name="settings_column_count_landscape">Kolommen in landschapmodus</string>
<string name="settings_automatic_column_count">Automatisch</string>
<string name="settings_column_count_portrait">Kolommen in portretmodus</string>
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_7">7</string>
</resources>

View File

@@ -300,4 +300,15 @@
<string name="useFrontImage">Usar imagem frontal</string>
<string name="settings_use_volume_keys_navigation_summary">Use os botões de volume para alterar qual cartão é exibido</string>
<string name="settings_use_volume_keys_navigation">Trocar de cartão usando botões de volume</string>
<string name="settings_category_title_cards_overview">Resumo dos cartões</string>
<string name="settings_column_count_portrait">Colunas em modo retrato</string>
<string name="settings_automatic_column_count">Automático</string>
<string name="settings_column_count_landscape">Colunas em modo paisagem</string>
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_7">7</string>
</resources>

View File

@@ -300,4 +300,15 @@
<string name="useBackImage">Utilizar imagem do verso</string>
<string name="settings_use_volume_keys_navigation">Mudar de cartão usando os botões de volume</string>
<string name="settings_use_volume_keys_navigation_summary">Utilize os botões de volume para alterar o cartão que é apresentado</string>
<string name="settings_category_title_cards_overview">Resumo dos cartões</string>
<string name="settings_column_count_portrait">Colunas no modo vertical</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_landscape">Colunas no modo horizontal</string>
<string name="settings_automatic_column_count">Automático</string>
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_7">7</string>
</resources>

View File

@@ -306,4 +306,15 @@
<string name="useBackImage">Использовать заднюю сторону</string>
<string name="settings_use_volume_keys_navigation_summary">Использовать кнопки регулировки громкости для смены отображаемой карты</string>
<string name="settings_use_volume_keys_navigation">Переключать карты кнопками громкости</string>
<string name="settings_column_count_portrait">Столбцы в портретном режиме</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_7">7</string>
<string name="settings_category_title_cards_overview">Список карт</string>
<string name="settings_column_count_landscape">Столбцы в альбомном режиме</string>
<string name="settings_automatic_column_count">Автовыбор</string>
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_6">6</string>
</resources>

View File

@@ -276,4 +276,31 @@
<string name="field_must_not_be_empty">Obligatoriskt fält</string>
<string name="app_name">Catima</string>
<string name="settings_follow_sensor_orientation">Rotera automatiskt (ignorerar systeminställningar)</string>
<string name="continue_">Fortsätt</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_6">6</string>
<string name="settings_automatic_column_count">Automatiskt</string>
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_7">7</string>
<string name="add_manually_warning_title">Skanning rekommenderas</string>
<string name="noCameraFoundGuideText">Din enhet verkar inte ha en kamera. Om den har det, prova att starta om enheten. Annars, använd knappen Fler alternativ nedan för att lägga till en streckkod på ett annat sätt.</string>
<string name="importCancelled">Importeringen avbröts</string>
<string name="exportCancelled">Exporteringen avbröts</string>
<string name="addFromPdfFile">Välj en PDF-fil</string>
<string name="errorReadingFile">Kunde inte läsa filen</string>
<string name="failedLaunchingFileManager">Kunde inte hitta en filhanterare som stöds</string>
<string name="spend">Spendera</string>
<string name="receive">Ta emot</string>
<string name="amountParsingFailed">Ogiltig summa</string>
<string name="settings_use_volume_keys_navigation">Byt kort genom att använda volymknapparna</string>
<string name="settings_use_volume_keys_navigation_summary">Använd volymknapparna för att byta vilket kort som visas</string>
<string name="settings_column_count_portrait">Kolumner i porträttläge</string>
<string name="settings_column_count_landscape">Kolumner i landskapsläge</string>
<string name="pageWithNumber">Sida <xliff:g>%d</xliff:g></string>
<string name="useFrontImage">Använd bilden på framsidan</string>
<string name="useBackImage">Använd bilden på baksidan</string>
<string name="multipleBarcodesFoundPleaseChooseOne">Vilka av de hittade streckkoderna vill du använda?</string>
</resources>

View File

@@ -294,4 +294,15 @@
<string name="useBackImage">Arka resmi kullan</string>
<string name="settings_use_volume_keys_navigation_summary">Hangi kartın görüntüleneceğini değiştirmek için ses düğmelerini kullanın</string>
<string name="settings_use_volume_keys_navigation">Ses düğmelerini kullanarak kartları değiştir</string>
<string name="settings_category_title_cards_overview">Kartları gözden geçir</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_landscape">Yatay alan modundaki sutunlar</string>
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_7">7</string>
<string name="settings_automatic_column_count">Otomatik</string>
<string name="settings_column_count_portrait">Portre modundaki sutunlar</string>
</resources>

View File

@@ -305,4 +305,15 @@
<string name="useBackImage">Використати зворотне зображення</string>
<string name="settings_use_volume_keys_navigation">Перемикайте карти за допомогою кнопок гучності</string>
<string name="settings_use_volume_keys_navigation_summary">Використовуйте кнопки гучності, щоб змінити картку, яка відображається</string>
<string name="settings_automatic_column_count">Автоматичний</string>
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_7">7</string>
<string name="settings_category_title_cards_overview">Огляд карток</string>
<string name="settings_column_count_portrait">Стовпці в портретному режимі</string>
<string name="settings_column_count_landscape">Стовпці в ландшафтному режимі</string>
<string name="settings_column_count_1">1</string>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="main_view_card_columns">3</integer>
<integer name="main_view_card_columns">4</integer>
</resources>

View File

@@ -288,4 +288,15 @@
<string name="useBackImage">使用背面图</string>
<string name="settings_use_volume_keys_navigation">用音量按钮切换卡片</string>
<string name="settings_use_volume_keys_navigation_summary">是用音量按钮改变展示的卡片</string>
<string name="settings_category_title_cards_overview">卡片概览</string>
<string name="settings_column_count_2">2</string>
<string name="settings_automatic_column_count">自动</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_portrait">竖屏模式下的列数</string>
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_7">7</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_landscape">横屏模式下的列数</string>
</resources>

View File

@@ -36,6 +36,40 @@
<item>@string/settings_brown_theme</item>
</string-array>
<string-array name="column_count_portrait_values">
<item>@string/settings_key_automatic_column_count</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</string-array>
<string-array name="column_count_portrait_value_strings">
<item>@string/settings_automatic_column_count</item>
<item>@string/settings_column_count_1</item>
<item>@string/settings_column_count_2</item>
<item>@string/settings_column_count_3</item>
<item>@string/settings_column_count_4</item>
</string-array>
<string-array name="column_count_landscape_values">
<item>@string/settings_key_automatic_column_count</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
</string-array>
<string-array name="column_count_landscape_value_strings">
<item>@string/settings_automatic_column_count</item>
<item>@string/settings_column_count_3</item>
<item>@string/settings_column_count_4</item>
<item>@string/settings_column_count_5</item>
<item>@string/settings_column_count_6</item>
<item>@string/settings_column_count_7</item>
</string-array>
<string-array name="color_values_no_dynamic">
<item>@string/settings_key_system_theme</item>
<item>@string/settings_key_pink_theme</item>
@@ -86,6 +120,7 @@
<item>fi</item>
<!-- <item>fil</item> -->
<item>fr</item>
<item>gl</item>
<item>he-rIL</item>
<item>hi</item>
<item>hr</item>

View File

@@ -318,6 +318,20 @@
<string name="sharedpreference_card_details_show_validity" translatable="false">sharedpreference_card_details_show_validity</string>
<string name="sharedpreference_card_details_show_archived_cards" translatable="false">sharedpreference_card_details_show_archived_cards</string>
<string name="settings_category_title_cards">Card view</string>
<string name="settings_category_title_cards_overview">Cards overview</string>
<string name="settings_column_count_portrait">Columns in portrait mode</string>
<string name="settings_column_count_landscape">Columns in landscape mode</string>
<string name="settings_automatic_column_count">Automatic</string>
<string name="settings_key_automatic_column_count" translatable="false">default</string>
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_7">7</string>
<string name="setting_key_column_count_portrait" translatable="false">pref_column_count_portrait</string>
<string name="setting_key_column_count_landscape" translatable="false">pref_column_count_landscape</string>
<string name="settings_category_title_general">General</string>
<string name="settings_category_title_privacy">Privacy</string>
<string name="action_display_options">Display options</string>

View File

@@ -16,6 +16,7 @@
<locale android:name="et" />
<locale android:name="fi" />
<locale android:name="fr" />
<locale android:name="gl" />
<locale android:name="he-IL" />
<locale android:name="hi" />
<locale android:name="hr" />

View File

@@ -46,6 +46,31 @@
app:useSimpleSummaryProvider="true" />
</PreferenceCategory>
<PreferenceCategory
android:title="@string/settings_category_title_cards_overview"
app:iconSpaceReserved="false">
<ListPreference
android:key="@string/setting_key_column_count_portrait"
android:title="@string/settings_column_count_portrait"
android:defaultValue="@string/settings_key_automatic_column_count"
android:entries="@array/column_count_portrait_value_strings"
android:entryValues="@array/column_count_portrait_values"
app:iconSpaceReserved="false"
app:singleLineTitle="false"
app:useSimpleSummaryProvider="true" />
<ListPreference
android:key="@string/setting_key_column_count_landscape"
android:title="@string/settings_column_count_landscape"
android:defaultValue="@string/settings_key_automatic_column_count"
android:entries="@array/column_count_landscape_value_strings"
android:entryValues="@array/column_count_landscape_values"
app:iconSpaceReserved="false"
app:singleLineTitle="false"
app:useSimpleSummaryProvider="true" />
</PreferenceCategory>
<PreferenceCategory
android:title="@string/settings_category_title_cards"
app:iconSpaceReserved="false">
@@ -112,4 +137,4 @@
</PreferenceCategory>
</PreferenceScreen>
</PreferenceScreen>

View File

@@ -3,18 +3,22 @@ package protect.card_locker;
import static android.os.Looper.getMainLooper;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.robolectric.Shadows.shadowOf;
import android.app.Activity;
import android.content.ComponentName;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.appcompat.widget.SearchView;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.tabs.TabLayout;
@@ -210,9 +214,12 @@ public class MainActivityTest {
@Test
public void testFiltering() {
// FIXME: This test directly sets mFilter instead of using mSearchView, making it not test the search flow correctly
// It may falsely succeed or fail, but we're leaving it here so we at least test something instead of nothing
ActivityController activityController = Robolectric.buildActivity(MainActivity.class).create();
MainActivity mainActivity = (MainActivity) activityController.get();
activityController.start();
activityController.resume();
@@ -244,6 +251,16 @@ public class MainActivityTest {
activityController.pause();
activityController.resume();
Configuration configuration = mainActivity.getResources().getConfiguration();
configuration.orientation = Configuration.ORIENTATION_LANDSCAPE;
mainActivity.onConfigurationChanged(configuration);
configuration.orientation = Configuration.ORIENTATION_PORTRAIT;
mainActivity.onConfigurationChanged(configuration);
configuration.orientation = Configuration.ORIENTATION_LANDSCAPE;
mainActivity.onConfigurationChanged(configuration);
assertEquals(View.GONE, helpSection.getVisibility());
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
assertEquals(View.VISIBLE, list.getVisibility());
@@ -337,6 +354,12 @@ public class MainActivityTest {
mainActivity.mFilter = "second";
configuration.orientation = Configuration.ORIENTATION_LANDSCAPE;
mainActivity.onConfigurationChanged(configuration);
configuration.orientation = Configuration.ORIENTATION_PORTRAIT;
mainActivity.onConfigurationChanged(configuration);
activityController.pause();
activityController.resume();
@@ -371,6 +394,10 @@ public class MainActivityTest {
mainActivity.mFilter = "company";
// Rotate to landscape (right)
configuration.orientation = Configuration.ORIENTATION_LANDSCAPE;
mainActivity.onConfigurationChanged(configuration);
activityController.pause();
activityController.resume();
@@ -443,4 +470,43 @@ public class MainActivityTest {
database.close();
}
@Test
public void testSearchQueryRestorationAfterNavigatingBack() {
ActivityController activityController = Robolectric.buildActivity(MainActivity.class).create();
MainActivity mainActivity = (MainActivity) activityController.get();
activityController.start();
activityController.resume();
final Menu menu = shadowOf(Robolectric.setupActivity(MainActivity.class)).getOptionsMenu();
MenuItem searchMenuItem = menu.findItem(R.id.action_search);
SearchView mSearchView = (SearchView) searchMenuItem.getActionView();
SQLiteDatabase database = TestHelpers.getEmptyDb(mainActivity).getWritableDatabase();
DBHelper.insertLoyaltyCard(database, "The First Store", "Initial note", null, null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), Color.BLACK, 0, null,0);
DBHelper.insertLoyaltyCard(database, "The Second Store", "Secondary note", null, null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), Color.BLACK, 0, null,0);
String finalQuery = "store";
assert mSearchView != null;
mSearchView.setQuery(finalQuery, false);
activityController.pause();
activityController.resume();
// Simulation of what happens when users comes back after picking up card
// We simulate expanding and setting the Query that we want to restore (in code it is from finalQuery String)
searchMenuItem.expandActionView();
mSearchView.setQuery(finalQuery, false);
activityController.pause();
activityController.resume();
assertTrue(searchMenuItem.isActionViewExpanded());
assertEquals("store", mSearchView.getQuery().toString());
database.close();
}
}

View File

@@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id("com.android.application") version "8.7.1" apply false
id("com.android.application") version "8.7.2" apply false
id("com.github.spotbugs") version "5.1.4" apply false
}

View File

@@ -1,2 +1,3 @@
- Möglichkeit, mit den Lautstärketasten durch die Karten zu navigieren
- Stocard Importfehler behoben
- Korrigiert Stocard Import
- Behebt die Meldung „Import abgebrochen“ nach erfolgreichem Import

View File

@@ -0,0 +1 @@
- Textumbruch im Dialog „Hinzufügen“ korrigiert

View File

@@ -0,0 +1,4 @@
- Voreingestellte Spaltenanzahl für breite Bildschirme auf 4 geändert
- Spaltenanzahl für Hoch- und Querformat kann in den Einstellungen überschrieben werden
- Suchfilter im Hauptbildschirm aktiv halten, wenn der Bildschirm gedreht oder eine Karte geöffnet wird
- Begrenzung der maximalen Länge, der im Hauptbildschirm angezeigten Notiz

View File

@@ -1,2 +1,2 @@
- Unterstützung für App-Verknüpfungen hinzufügen (Android 7.1+), wobei die zuletzt verwendeten Karten als Verknüpfungen erscheinen. (Pull #145 (https://github.com/brarcher/loyalty-card-locker/pull/145))
- Unterstützung für App-Verknüpfungen hinzugefügt (Android 7.1+), wobei die zuletzt verwendeten Karten als Verknüpfungen erscheinen. (Pull #145 (https://github.com/brarcher/loyalty-card-locker/pull/145))
- Hinzufügen eines Widgets, das wie eine angeheftete App-Verknüpfung funktioniert, um Geräte zu unterstützen, die unter Android 7.1 laufen (pull #142 (https://github.com/brarcher/loyalty-card-locker/pull/142))

View File

@@ -0,0 +1,4 @@
- Change default column on wide screens to 4
- Allow overriding column counts for portrait and landscape in settings
- Keep main screen search filter when rotating screen or opening a card
- Limit max length of note display on main screen

View File

@@ -1,3 +1,4 @@
- Permettre aux noms de magasins longs dans l'aperçu d'être divisés sur plusieurs lignes
- Possibilité d'utiliser l'image avant ou arrière dans le menu des vignettes
- Corrections mineures pour l'importation et l'exportation
- Corrections mineures dans l'interface utilisateur

View File

@@ -0,0 +1 @@
- Correction du geste de retour sur l'écran principal qui rejette le clavier et la recherche sur Android 13+

View File

@@ -0,0 +1,3 @@
- Option pour naviguer sur les cartes en utilisant les boutons de volume
- Correction de l'importation de Stocard
- Correction du message « Import annulé » apparaissant après l'importation réussie

View File

@@ -0,0 +1,2 @@
- Modifier la colonne par défaut sur les écrans larges à 4
- Permet de surcharger le nombre de colonnes pour le portrait et le paysage dans les paramètres

View File

@@ -0,0 +1,2 @@
- toon standaard 4 kolommen op brede schermen
- laat toe het aantal kolommen in portret- en landschapmodus te veranderen in de instellingen

View File

@@ -1,2 +1,3 @@
- Возможность навигации по картам с помощью кнопок громкости
- Исправлен импорт из Stocard
- Исправлено ошибочное появление сообщения "Импорт отменён" после успешного импортирования

View File

@@ -0,0 +1 @@
- Исправлена ошибка переноса текста в диалоговом окне добавления

View File

@@ -0,0 +1,4 @@
- Количество столбцов на широких экранах по умолчанию изменено на 4
- Добавлена возможность переопределять количество столбцов для портретной и альбомной ориентации в настройках
- Поисковый фильтр на главном экране сохраняется при повороте устройства или открытии просмотра карты
- Ограничение максимальной длины отображения заметок на главном экране

View File

@@ -0,0 +1 @@
- Importingsfixar för Stocard

View File

@@ -0,0 +1 @@
- Uppdatering för använda bibliotek

View File

@@ -0,0 +1 @@
- Olika RTL-lösningar

View File

@@ -0,0 +1 @@
- Fix för sällsynt krasch

View File

@@ -0,0 +1 @@
- Uppdatera och lägg till översättningar

View File

@@ -0,0 +1 @@
- Uppdatering för översättningar till Ryska

View File

@@ -1,2 +1,3 @@
Можливість навігації картками за допомогою кнопок гучності
Можливість навігації картками за допомогою кнопок гучності
Виправлено імпорт Stocard
Виправлено повідомлення «Імпорт скасовано», яке з’являлося після успішного імпорту

View File

@@ -0,0 +1 @@
— Виправлено обтікання текстом у діалоговому вікні додавання

View File

@@ -0,0 +1,4 @@
- Змінити стовпець за замовчуванням на широких екранах на 4
— Дозволити заміну кількості стовпців для книжкової та альбомної орієнтації в налаштуваннях
- Зберігайте фільтр пошуку на головному екрані під час обертання екрана або відкриття картки
- Обмежити максимальну довжину відображення нотаток на головному екрані

View File

@@ -1,2 +1,3 @@
- 使用音量按钮切换卡片的选项
- 修复存储卡导入
- 修复成功导入后出现“导入被取消”消息的问题

View File

@@ -0,0 +1 @@
- 修复“添加”对话框文本换行的问题

View File

@@ -0,0 +1,4 @@
- 更改宽屏上的默认列数为4
- 允许在设置中自行设置横屏和竖屏的列数
- 旋转屏幕或打开卡片时保留主屏幕搜索筛选器
- 限制主屏幕显示注释的最大长度

View File

@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=31c55713e40233a8303827ceb42ca48a47267a0ad4bab9177123121e71524c26
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
distributionSha256Sum=57dafb5c2622c6cc08b993c85b7c06956a2f53536432a30ead46166dbca0f1e9
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME