Compare commits

...

87 Commits

Author SHA1 Message Date
TheLastProject
07b59f090e Update feature graphic 2025-04-17 20:24:48 +00:00
Sylvia van Os
df807d5548 Fix Persian feature graphic generation 2025-04-17 22:21:24 +02:00
Sylvia van Os
d5c03f9d36 Merge pull request #2428 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-04-06 17:24:15 +02:00
Sylvia van Os
6ed2ff849a Translated using Weblate (Persian)
Currently translated at 63.3% (211 of 333 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fa/
2025-04-06 17:03:08 +02:00
ssantos
2945450186 Translated using Weblate (Portuguese)
Currently translated at 99.3% (144 of 145 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt/
2025-04-06 17:03:08 +02:00
KING APPS
8944c6d5dc Translated using Weblate (Persian)
Currently translated at 22.7% (33 of 145 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/fa/
2025-04-06 04:37:03 +02:00
KING APPS
97db8ee025 Translated using Weblate (Persian)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/fa/
2025-04-06 04:37:03 +02:00
KING APPS
777a3cce28 Translated using Weblate (Persian)
Currently translated at 63.3% (211 of 333 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fa/
2025-04-06 04:37:03 +02:00
Sylvia van Os
91386df0f7 Merge pull request #2426 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-04-04 17:57:07 +02:00
XblateX
9f95812d32 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (333 of 333 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2025-04-04 16:24:48 +02:00
Sylvia van Os
361b011205 Merge pull request #2425 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-04-04 10:43:46 +02:00
Tachibana Saza
ac45a5cdfe Translated using Weblate (Japanese)
Currently translated at 100.0% (1 of 1 strings)

Translation: Catima/Android (Debug)
Translate-URL: https://hosted.weblate.org/projects/catima/android-debug/ja/
2025-04-04 01:21:09 +02:00
Tachibana Saza
e892f5d57c Translated using Weblate (Japanese)
Currently translated at 81.6% (272 of 333 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ja/
2025-04-04 01:21:08 +02:00
Sylvia van Os
a3d24ebe3b Merge pull request #2424 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-04-02 20:19:30 +02:00
Sylvia van Os
29ce8e63b3 Translated using Weblate (Persian)
Currently translated at 46.2% (154 of 333 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fa/
2025-04-01 21:03:20 +02:00
alpha chart
223d6d1d35 Translated using Weblate (Persian)
Currently translated at 46.2% (154 of 333 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fa/
2025-04-01 19:46:49 +02:00
alpha chart
e712765f0b Translated using Weblate (Persian)
Currently translated at 46.2% (154 of 333 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fa/
2025-04-01 19:24:21 +02:00
alpha chart
ad68c43857 Added translation using Weblate (Persian) 2025-04-01 19:11:23 +02:00
alpha chart
626c25b781 Translated using Weblate (Persian)
Currently translated at 45.9% (153 of 333 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fa/
2025-04-01 19:11:23 +02:00
Sylvia van Os
0e9366e0ce Merge pull request #2423 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-04-01 07:31:25 +02:00
Branislav Veljkovic
cccffe9543 Translated using Weblate (Serbian)
Currently translated at 94.2% (314 of 333 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/sr/
2025-04-01 03:27:29 +02:00
Sylvia van Os
821e81303c Merge pull request #2421 from CatimaLoyalty/dependabot/github_actions/actions/setup-python-5.5.0
Bump actions/setup-python from 5.4.0 to 5.5.0
2025-03-31 07:03:14 +02:00
dependabot[bot]
d3ba0ff93f Bump actions/setup-python from 5.4.0 to 5.5.0
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.4.0 to 5.5.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5.4.0...v5.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 02:44:55 +00:00
Sylvia van Os
2bf9f58054 Merge pull request #2420 from CatimaLoyalty/create-pull-request/patch-1743308358
Update contributors
2025-03-30 12:16:15 +02:00
TheLastProject
07ba380c21 Update contributors 2025-03-30 04:19:17 +00:00
Sylvia van Os
6e523dff7e Merge pull request #2419 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-03-30 00:33:20 +01:00
abdelbasset jabrane
702cc17bd5 Translated using Weblate (Arabic)
Currently translated at 100.0% (333 of 333 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ar/
2025-03-30 00:02:03 +01:00
Sylvia van Os
6b9c452de7 Merge pull request #2418 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-03-26 10:32:27 +01:00
mohamad jamshidi
5d9a670225 Translated using Weblate (Persian)
Currently translated at 45.6% (152 of 333 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fa/
2025-03-26 01:10:20 +01:00
Sylvia van Os
4cb939ab6b Merge pull request #2416 from CatimaLoyalty/dependabot/gradle/com.android.application-8.9.1
Bump com.android.application from 8.9.0 to 8.9.1
2025-03-25 07:14:36 +01:00
dependabot[bot]
f14b2dffcd Bump com.android.application from 8.9.0 to 8.9.1
Bumps com.android.application from 8.9.0 to 8.9.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-25 03:03:46 +00:00
Sylvia van Os
55b0ee7a63 Merge pull request #2415 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-03-24 22:01:08 +01:00
ar djeb
4adfb0d292 Translated using Weblate (Arabic)
Currently translated at 99.3% (331 of 333 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ar/
2025-03-24 20:18:52 +00:00
Sylvia van Os
948ee26852 Bump fastlane 2025-03-24 18:44:34 +01:00
Sylvia van Os
a652d3fd9a Merge pull request #2413 from CatimaLoyalty/dependabot/github_actions/actions/upload-artifact-4.6.2
Bump actions/upload-artifact from 4.6.1 to 4.6.2
2025-03-24 13:21:21 +01:00
Sylvia van Os
18e530f3a0 Merge pull request #2414 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-03-24 13:13:47 +01:00
Edgars Andersons
a55dcd760c Translated using Weblate (Latvian)
Currently translated at 8.2% (12 of 145 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/lv/
2025-03-24 13:04:38 +01:00
Максим Горпиніч
2bbcad03ef Translated using Weblate (Ukrainian)
Currently translated at 100.0% (145 of 145 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2025-03-24 13:04:38 +01:00
solokot
cc9c50032c Translated using Weblate (Russian)
Currently translated at 100.0% (145 of 145 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2025-03-24 13:04:38 +01:00
dependabot[bot]
06cf3e9288 Bump actions/upload-artifact from 4.6.1 to 4.6.2
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.6.1...v4.6.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-24 03:02:10 +00:00
Sylvia van Os
a25e91dede Merge pull request #2412 from CatimaLoyalty/create-pull-request/patch-1742767250
Update feature graphic
2025-03-23 23:04:21 +01:00
TheLastProject
57086649f4 Update feature graphic 2025-03-23 22:00:50 +00:00
Sylvia van Os
7d2fc03248 Merge pull request #2410 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-03-23 22:59:38 +01:00
ssantos
b2ad30d1ae Translated using Weblate (Portuguese)
Currently translated at 97.9% (142 of 145 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt/
2025-03-23 19:40:12 +00:00
ssantos
8970a0a031 Translated using Weblate (Portuguese (Portugal))
Currently translated at 97.9% (142 of 145 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/pt_PT/
2025-03-23 19:40:06 +00:00
Sylvia van Os
c9e713cf7f Merge pull request #2409 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-03-23 17:58:01 +01:00
Fjuro
64e315f0b0 Translated using Weblate (Czech)
Currently translated at 100.0% (145 of 145 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/cs/
2025-03-23 16:18:27 +00:00
Sylvia van Os
f60cf0e674 Merge pull request #2408 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-03-23 15:50:42 +01:00
大王叫我来巡山
5d2a1b0263 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (145 of 145 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2025-03-23 15:36:48 +01:00
Sylvia van Os
77860441ad Merge pull request #2406 from CatimaLoyalty/create-pull-request/patch-1742703483
Update contributors
2025-03-23 10:33:48 +01:00
Sylvia van Os
f46ec1ec51 Merge pull request #2405 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-03-23 10:32:38 +01:00
TheLastProject
e644c347ec Update contributors 2025-03-23 04:18:03 +00:00
B o d o
0b28df9999 Translated using Weblate (German)
Currently translated at 100.0% (145 of 145 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2025-03-23 00:34:29 +01:00
Sylvia van Os
dddb3e3a11 Merge pull request #2404 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-03-22 20:56:27 +01:00
Edgars Andersons
0518821341 Translated using Weblate (Latvian)
Currently translated at 7.5% (11 of 145 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/lv/
2025-03-22 19:42:43 +00:00
B o d o
2eefcf1270 Translated using Weblate (German)
Currently translated at 100.0% (145 of 145 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2025-03-22 19:42:42 +00:00
Sylvia van Os
93c3705207 Merge pull request #2403 from CatimaLoyalty/create-pull-request/patch-1742664270
Update Fastlane changelogs
2025-03-22 19:16:44 +01:00
TheLastProject
9fcf9e4dd9 Update Fastlane changelogs 2025-03-22 17:24:29 +00:00
Sylvia van Os
392ce9bc79 Fix typo 2025-03-22 18:24:16 +01:00
Sylvia van Os
da3eaf36f1 Release Catima 2.34.5 2025-03-22 18:18:24 +01:00
Sylvia van Os
0458c501c8 Merge pull request #2394 from CatimaLoyalty/create-pull-request/patch-1742235107
Update Fastlane changelogs
2025-03-17 19:12:06 +01:00
TheLastProject
632ef8b3a8 Update Fastlane changelogs 2025-03-17 18:11:47 +00:00
Sylvia van Os
40e5014cc6 Update changelog 2025-03-17 19:11:31 +01:00
Sylvia van Os
ba09eb4ca3 Merge pull request #2393 from CatimaLoyalty/fix/2317
Support pkpass files without any extra data
2025-03-17 19:10:57 +01:00
Sylvia van Os
2c77dcadb5 Support pkpass files without any extra data
Previously, the code assumed one of "boardingPass", "coupon", "eventTicket", "generic" existed and refused to pass a pkpass file without any of them
2025-03-17 18:37:28 +01:00
Sylvia van Os
99eaaebf1c Merge pull request #2392 from CatimaLoyalty/bump/tests_35
Run tests on API 35
2025-03-16 18:41:22 +01:00
Sylvia van Os
f2e77cdf09 Run tests on API 35 2025-03-16 18:31:53 +01:00
Sylvia van Os
8f00b17315 Merge pull request #2391 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-03-16 00:50:42 +01:00
Fajar Shiddiq
3a17756532 Translated using Weblate (Indonesian)
Currently translated at 100.0% (333 of 333 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/id/
2025-03-16 00:41:45 +01:00
Sylvia van Os
cff3fff971 Merge pull request #2390 from CatimaLoyalty/create-pull-request/patch-1741987875
Update Fastlane changelogs
2025-03-14 22:32:17 +01:00
TheLastProject
2763635f17 Update Fastlane changelogs 2025-03-14 21:31:14 +00:00
Sylvia van Os
1dd1a1273f Update CHANGELOG 2025-03-14 22:31:01 +01:00
Sylvia van Os
3f5b953c16 Merge pull request #2388 from CatimaLoyalty/create-pull-request/patch-1741984134
Update Fastlane changelogs
2025-03-14 22:30:47 +01:00
Sylvia van Os
1539d88d78 Merge pull request #2389 from CatimaLoyalty/fix/pkpassCrash
Fix pkpass reading crashing Catima
2025-03-14 22:30:11 +01:00
Sylvia van Os
91ee846054 Fix pkpass reading crashing Catima 2025-03-14 22:09:04 +01:00
TheLastProject
c5cecee7b1 Update Fastlane changelogs 2025-03-14 20:28:54 +00:00
Sylvia van Os
1e0a52d780 Update CHANGELOG 2025-03-14 21:28:40 +01:00
Sylvia van Os
0792bb1407 Merge pull request #2378 from CatimaLoyalty/feature/android15
Target Android 15
2025-03-14 21:26:58 +01:00
Sylvia van Os
6e9a05389a Merge pull request #2384 from CatimaLoyalty/dependabot/github_actions/peter-evans/create-pull-request-7.0.8
Bump peter-evans/create-pull-request from 7.0.7 to 7.0.8
2025-03-10 12:11:59 +01:00
dependabot[bot]
68833a7ff1 Bump peter-evans/create-pull-request from 7.0.7 to 7.0.8
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 7.0.7 to 7.0.8.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v7.0.7...v7.0.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 02:58:22 +00:00
Sylvia van Os
cc7553850a Target Android 15
We apply window insets to basically not draw behind the top and bottom
bar. While this is a slight visual downgrade (we used to draw behind the
top bar before), it at least allows us to target Android 15.
2025-03-09 16:51:06 +01:00
Sylvia van Os
e66277d665 Merge pull request #2382 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2025-03-09 12:06:50 +01:00
Sylvia van Os
caea63ea32 Merge pull request #2383 from CatimaLoyalty/create-pull-request/patch-1741493688
Update contributors
2025-03-09 09:55:44 +01:00
TheLastProject
1761465532 Update contributors 2025-03-09 04:14:48 +00:00
Pixiii
8218cc63c7 Translated using Weblate (Lithuanian)
Currently translated at 93.3% (311 of 333 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/lt/
2025-03-08 18:30:12 +01:00
Sylvia van Os
c2ff763311 Merge pull request #2375 from CatimaLoyalty/create-pull-request/patch-1741191680
Update locales
2025-03-07 20:07:08 +01:00
TheLastProject
d66066c195 Update locales 2025-03-05 16:21:19 +00:00
278 changed files with 837 additions and 102 deletions

View File

@@ -58,17 +58,17 @@ jobs:
api-level: 21
arch: x86_64
script: ./gradlew connected${{ matrix.flavor }}DebugAndroidTest
- name: Run instrumented tests (API 34)
- name: Run instrumented tests (API 35)
uses: ReactiveCircus/android-emulator-runner@v2
with:
api-level: 34
api-level: 35
arch: x86_64
script: ./gradlew connected${{ matrix.flavor }}DebugAndroidTest
- name: SpotBugs
run: ./gradlew spotbugs${{ matrix.flavor }}Release
- name: Archive test results
if: always()
uses: actions/upload-artifact@v4.6.1
uses: actions/upload-artifact@v4.6.2
with:
name: test-results-flavor${{ matrix.flavor }}
path: app/build/reports

View File

@@ -29,13 +29,13 @@ jobs:
id: checkout
uses: actions/checkout@v4.2.2
- name: Setup Python
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: '3.x'
- name: Run converter script
run: python .scripts/changelog_to_fastlane.py
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7.0.7
uses: peter-evans/create-pull-request@v7.0.8
with:
title: "Update Fastlane changelogs"
commit-message: "Update Fastlane changelogs"

View File

@@ -33,7 +33,7 @@ jobs:
file_in_repo: app/src/main/res/raw/contributors.txt
min_commit_count: 5
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7.0.7
uses: peter-evans/create-pull-request@v7.0.8
with:
title: "Update contributors"
commit-message: "Update contributors"

View File

@@ -29,7 +29,7 @@ jobs:
- name: Install requirements
run: |
sudo apt-get update
sudo apt-get install imagemagick mat2 optipng
sudo apt-get install inkscape mat2 optipng xvfb
# Install 200 weight versions of relevant Noto (to use for languages not supported by Lexend Deca)
sudo apt-get install fonts-noto-extra fonts-noto-cjk-extra
# Custom fonts
@@ -39,7 +39,7 @@ jobs:
- name: Generate featureGraphic.png for each language
run: .scripts/generate_feature_graphic/generate_feature_graphic.sh
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7.0.7
uses: peter-evans/create-pull-request@v7.0.8
with:
title: "Update feature graphic"
commit-message: "Update feature graphic"

View File

@@ -26,7 +26,7 @@ jobs:
id: gradle-update
- uses: gradle/actions/wrapper-validation@v4
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7.0.7
uses: peter-evans/create-pull-request@v7.0.8
with:
title: "Update Gradle to ${{ steps.gradle-update.outputs.version }}"
commit-message: "Update Gradle to ${{ steps.gradle-update.outputs.version }}"

View File

@@ -31,7 +31,7 @@ jobs:
- name: Update locales
run: .scripts/locales.py
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7.0.7
uses: peter-evans/create-pull-request@v7.0.8
with:
title: "Update locales"
commit-message: "Update locales"

View File

@@ -1,6 +1,6 @@
<svg width="1024" height="500" viewBox="0 0 1024 500" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="1024" height="500" fill="#223355"/>
<text fill="white" xml:space="preserve" style="" font-family="Yesteryear" font-size="150" letter-spacing="0em"><tspan x="470.082" y="285.511">Catima
<text direction="ltr" fill="white" xml:space="preserve" style="" font-family="Yesteryear" font-size="150" letter-spacing="0em"><tspan x="470.082" y="285.511">Catima
</tspan></text>
<path d="M381.046 147.001L236.3 211.446L276.524 301.79L421.27 237.345L381.046 147.001Z" fill="#F0F0F0" stroke="#C80000" stroke-width="2"/>
<path d="M402.077 219.13L240.07 147L191.984 255.004L353.99 327.135L402.077 219.13Z" fill="#F0F0F0" stroke="#C80000" stroke-width="2"/>
@@ -11,5 +11,5 @@
<path d="M330.301 254.298C329.363 256.875 327.547 259.04 325.171 260.411C322.796 261.783 320.013 262.273 317.312 261.797C314.61 261.321 312.163 259.908 310.4 257.807C308.637 255.706 307.671 253.05 307.671 250.307" stroke="#F0F0F0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M248.345 225.937L266.818 207.465L285.29 225.937" stroke="#F0F0F0" stroke-width="2"/>
<path d="M329.625 225.937L348.098 207.465L366.571 225.937" stroke="#F0F0F0" stroke-width="2"/>
<text fill="white" xml:space="preserve" style="" font-family="Lexend Deca" font-size="35" font-weight="200" letter-spacing="0em"><tspan x="466" y="340">Loyalty Card Wallet</tspan></text>
<text direction="ltr" fill="white" xml:space="preserve" style="" font-family="Lexend Deca" font-size="35" font-weight="200" letter-spacing="0em"><tspan x="466" y="340">Loyalty Card Wallet</tspan></text>
</svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -37,6 +37,7 @@ for lang in "$script_location/../../fastlane/metadata/android/"*; do
# We specifically need the Serif version because of the 200 weight
case "$(basename "$lang")" in
bg|el-GR|ru-RU|uk) sed -i "s/Lexend Deca/Noto Serif/" featureGraphic.svg ;;
fa-IR) sed -i -e 's/svg direction="ltr"/svg direction="rtl"/' -e "s/Yesteryear/Noto Sans Arabic/" -e "s/Lexend Deca/Noto Sans Arabic/" featureGraphic.svg ;;
hi-IN) sed -i -e "s/Yesteryear/Noto Sans Devanagari/" -e "s/Lexend Deca/Noto Serif Devanagari/" featureGraphic.svg ;;
ja-JP) sed -i "s/Lexend Deca/Noto Serif CJK JP/" featureGraphic.svg ;;
kn-IN) sed -i -e 's/font-size="150"/font-size="100"/' -e "s/Yesteryear/Noto Serif Kannada/" featureGraphic.svg ;;
@@ -48,8 +49,8 @@ for lang in "$script_location/../../fastlane/metadata/android/"*; do
fi
# Ensure images directory exists
mkdir -p images
# Generate .png
convert featureGraphic.svg images/featureGraphic.png
# Generate .png (we use Inkscape because ImageMagick ignores RTL)
xvfb-run inkscape --export-filename=images/featureGraphic.png featureGraphic.svg
# Optimize .png
optipng images/featureGraphic.png
# Remove metadata (timestamps) from .png

View File

@@ -1,5 +1,11 @@
# Changelog
## v2.34.5 - 147 (2025-03-22)
- Target Android 15
- Fix crash reading unsupported pkpass files
- Improve pkpass support
## v2.34.4 - 146 (2025-01-17)
- Ability to sort cards by start of validity

View File

@@ -9,21 +9,22 @@ GEM
public_suffix (>= 2.0.2, < 7.0)
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.0)
aws-partitions (1.1020.0)
aws-sdk-core (3.214.0)
aws-eventstream (1.3.2)
aws-partitions (1.1072.0)
aws-sdk-core (3.220.2)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
base64
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.96.0)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sdk-kms (1.99.0)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.176.0)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sdk-s3 (1.182.0)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.10.1)
aws-sigv4 (1.11.0)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.2.0)
@@ -33,7 +34,7 @@ GEM
commander (4.6.0)
highline (~> 2.0.0)
declarative (0.0.20)
digest-crc (0.6.5)
digest-crc (0.7.0)
rake (>= 12.0.0, < 14.0.0)
domain_name (0.6.20240107)
dotenv (2.8.1)
@@ -58,8 +59,8 @@ GEM
faraday-em_synchrony (1.0.0)
faraday-excon (1.1.0)
faraday-httpclient (1.0.1)
faraday-multipart (1.0.4)
multipart-post (~> 2)
faraday-multipart (1.1.0)
multipart-post (~> 2.0)
faraday-net_http (1.0.2)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
@@ -67,8 +68,8 @@ GEM
faraday-retry (1.0.3)
faraday_middleware (1.2.1)
faraday (~> 1.0)
fastimage (2.3.1)
fastlane (2.226.0)
fastimage (2.4.0)
fastlane (2.227.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
@@ -129,12 +130,12 @@ 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.1)
google-cloud-core (1.8.0)
google-cloud-env (>= 1.0, < 3.a)
google-cloud-errors (~> 1.0)
google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.4.0)
google-cloud-errors (1.5.0)
google-cloud-storage (1.47.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
@@ -152,21 +153,23 @@ GEM
highline (2.0.3)
http-cookie (1.0.8)
domain_name (~> 0.5)
httpclient (2.8.3)
httpclient (2.9.0)
mutex_m
jmespath (1.6.2)
json (2.9.0)
jwt (2.9.3)
json (2.10.2)
jwt (2.10.1)
base64
mini_magick (4.13.2)
mini_mime (1.1.5)
multi_json (1.15.0)
multipart-post (2.4.1)
mutex_m (0.3.0)
nanaimo (0.4.0)
naturally (2.2.1)
nkf (0.2.0)
optparse (0.6.0)
os (1.1.4)
plist (3.7.1)
plist (3.7.2)
public_suffix (6.0.1)
rake (13.2.1)
representable (3.2.0)
@@ -174,10 +177,10 @@ GEM
trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0)
retriable (3.1.2)
rexml (3.3.9)
rexml (3.4.1)
rouge (3.28.0)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
rubyzip (2.4.1)
security (0.1.5)
signet (0.19.0)
addressable (~> 2.8)

View File

@@ -21,14 +21,14 @@ android {
defaultConfig {
applicationId = "me.hackerchick.catima"
minSdk = 21
targetSdk = 34
versionCode = 146
versionName = "2.34.4"
targetSdk = 35
versionCode = 147
versionName = "2.34.5"
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", "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", "ta", "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", "pt-rBR", "pt-rPT", "ro-rRO", "ru", "sk", "sl", "sr", "sv", "ta", "tr", "uk", "vi", "zh-rCN", "zh-rTW")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">عیب‌یابی کاتیما</string>
</resources>

View File

@@ -1,2 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="app_name">Catimaデバーグ</string>
</resources>

View File

@@ -45,6 +45,7 @@ public class BarcodeSelectorActivity extends CatimaAppCompatActivity implements
binding = BarcodeSelectorActivityBinding.inflate(getLayoutInflater());
setTitle(R.string.selectBarcodeTitle);
setContentView(binding.getRoot());
Utils.applyWindowInsets(binding.getRoot());
Toolbar toolbar = binding.toolbar;
setSupportActionBar(toolbar);
enableToolbarBackButton();

View File

@@ -36,6 +36,7 @@ public class CardShortcutConfigure extends CatimaAppCompatActivity implements Lo
setResult(RESULT_CANCELED);
setContentView(binding.getRoot());
Utils.applyWindowInsets(binding.getRoot());
Toolbar toolbar = binding.toolbar;
toolbar.setTitle(R.string.shortcutSelectCard);
setSupportActionBar(toolbar);

View File

@@ -7,6 +7,7 @@ import android.os.Bundle;
import android.view.View;
import android.view.Window;
import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
@@ -24,6 +25,7 @@ public class CatimaAppCompatActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
EdgeToEdge.enable(this);
super.onCreate(savedInstanceState);
Utils.patchColors(this);
}

View File

@@ -60,6 +60,7 @@ public class ImportExportActivity extends CatimaAppCompatActivity {
binding = ImportExportActivityBinding.inflate(getLayoutInflater());
setTitle(R.string.importExport);
setContentView(binding.getRoot());
Utils.applyWindowInsets(binding.getRoot());
Toolbar toolbar = binding.toolbar;
setSupportActionBar(toolbar);
enableToolbarBackButton();

View File

@@ -297,6 +297,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
super.onCreate(savedInstanceState);
binding = LoyaltyCardEditActivityBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
Utils.applyWindowInsets(binding.getRoot());
viewModel = new ViewModelProvider(this).get(LoyaltyCardEditActivityViewModel.class);

View File

@@ -248,6 +248,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
super.onCreate(savedInstanceState);
binding = LoyaltyCardViewLayoutBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
Utils.applyWindowInsets(binding.getRoot());
Toolbar toolbar = binding.toolbar;
setSupportActionBar(toolbar);

View File

@@ -229,6 +229,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
binding = MainActivityBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
Utils.applyWindowInsets(binding.getRoot());
setSupportActionBar(binding.toolbar);
groupsTabLayout = binding.groups;
contentMainBinding = ContentMainBinding.bind(binding.include.getRoot());

View File

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

View File

@@ -42,6 +42,7 @@ public class ManageGroupsActivity extends CatimaAppCompatActivity implements Gro
binding = ManageGroupsActivityBinding.inflate(getLayoutInflater());
setTitle(R.string.groups);
setContentView(binding.getRoot());
Utils.applyWindowInsets(binding.getRoot());
Toolbar toolbar = binding.toolbar;
setSupportActionBar(toolbar);
enableToolbarBackButton();

View File

@@ -296,30 +296,22 @@ class PkpassParser(context: Context, uri: Uri?) {
}
// Append type-specific info to the pass
noteText.append("\n\n")
// Find the relevant pass type and parse it
var hasPassData = false
for (passType in listOf("boardingPass", "coupon", "eventTicket", "generic")) {
try {
noteText.append(
parsePassJSONPassFields(
jsonObject.getJSONObject(passType),
locale
)
var extraText = parsePassJSONPassFields(
jsonObject.getJSONObject(passType),
locale
)
hasPassData = true
noteText.append("\n\n")
noteText.append(extraText)
break
} catch (ignored: JSONException) {}
}
// Failed to parse anything, error out
if (!hasPassData) {
throw FormatException(mContext.getString(R.string.errorReadingFile))
}
note = noteText.toString()
}

View File

@@ -100,6 +100,7 @@ public class ScanActivity extends CatimaAppCompatActivity {
customBarcodeScannerBinding = CustomBarcodeScannerBinding.bind(binding.zxingBarcodeScanner);
setTitle(R.string.scanCardBarcode);
setContentView(binding.getRoot());
Utils.applyWindowInsets(binding.getRoot());
Toolbar toolbar = binding.toolbar;
setSupportActionBar(toolbar);
enableToolbarBackButton();

View File

@@ -24,6 +24,13 @@ import com.yalantis.ucrop.UCropActivity;
public class UCropWrapper extends UCropActivity {
public static final String UCROP_TOOLBAR_TYPEFACE_STYLE = "ucop_toolbar_typeface_style";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Utils.applyWindowInsets(findViewById(android.R.id.content));
}
@Override
protected void onPostCreate(@Nullable Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);

View File

@@ -27,6 +27,7 @@ import android.util.Log;
import android.util.TypedValue;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.ImageView;
import android.widget.TextView;
@@ -38,7 +39,10 @@ import androidx.annotation.RawRes;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.graphics.ColorUtils;
import androidx.core.graphics.Insets;
import androidx.core.os.LocaleListCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.core.view.WindowInsetsControllerCompat;
import androidx.core.widget.TextViewCompat;
import androidx.exifinterface.media.ExifInterface;
@@ -194,12 +198,25 @@ public class Utils {
List<String> locales = pkpassParser.listLocales();
if (locales.isEmpty()) {
return Collections.singletonList(new ParseResult(ParseResultType.FULL, pkpassParser.toLoyaltyCard(null)));
try {
return Collections.singletonList(new ParseResult(ParseResultType.FULL, pkpassParser.toLoyaltyCard(null)));
} catch (Exception e) {
Log.e(TAG, "Error calling toLoyaltyCard on pkpass file", e);
Toast.makeText(context, R.string.errorReadingFile, Toast.LENGTH_LONG).show();
return new ArrayList<>();
}
}
List<ParseResult> parseResultList = new ArrayList<>();
for (String locale : locales) {
ParseResult parseResult = new ParseResult(ParseResultType.FULL, pkpassParser.toLoyaltyCard(locale));
ParseResult parseResult;
try {
parseResult = new ParseResult(ParseResultType.FULL, pkpassParser.toLoyaltyCard(locale));
} catch (Exception e) {
Log.e(TAG, "Error calling toLoyaltyCard on pkpass file", e);
Toast.makeText(context, R.string.errorReadingFile, Toast.LENGTH_LONG).show();
return new ArrayList<>();
}
parseResult.setNote(locale);
parseResultList.add(parseResult);
}
@@ -1093,4 +1110,20 @@ public class Utils {
return false;
}
}
public static void applyWindowInsets(View root) {
/* This function basically fakes the activity being edge-to-edge. Useful for those activities that are really hard to get to behave well */
ViewCompat.setOnApplyWindowInsetsListener(root, (view, windowInsets) -> {
Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
layoutParams.leftMargin = insets.left;
layoutParams.bottomMargin = insets.bottom;
layoutParams.rightMargin = insets.right;
layoutParams.topMargin = insets.top;
view.setLayoutParams(layoutParams);
return WindowInsetsCompat.CONSUMED;
});
}
}

View File

@@ -42,6 +42,7 @@ public class SettingsActivity extends CatimaAppCompatActivity {
binding = SettingsActivityBinding.inflate(getLayoutInflater());
setTitle(R.string.settings);
setContentView(binding.getRoot());
Utils.applyWindowInsets(binding.getRoot());
Toolbar toolbar = binding.toolbar;
setSupportActionBar(toolbar);
enableToolbarBackButton();

View File

@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="protect.card_locker.MainActivity"
tools:context="protect.card_locker.ManageGroupActivity"
tools:showIn="@layout/main_activity">
<TextView

View File

@@ -15,11 +15,11 @@ IllusiveMan196
Altonss
Michael Moroni
Eric
GM
Petr Novák
laralem
Joel A
B o d o
GM
laralem
Petr Novák
Joel A
Priit Jõerüüt
Taco
pfaffenrodt
@@ -27,35 +27,35 @@ Aayush Gupta
Scrambled777
Максим Горпиніч
ikanakova
Giovanni Donisi
HudobniVolk
Nyatsuki
Jiri Grönroos
Giovanni Donisi
Edgars Andersons
Jiri Grönroos
Nyatsuki
Silvério Santos
Balázs Meskó
Milo Ivir
Samantaz Fox
Balázs Meskó
Arno-github
josé m
Ankit Tiwari
Cliff Heraldo
Sergio Paredes
Ankit Tiwari
josé m
Arno-github
Jose Delvani
mdvhimself
Milan Šalka
huuhaa
Skrripy
Kachelkaiser
Projjal Moitra
Quentin PAGÈS
ngocanhtve
Silvério Santos
Marnick L'Eau
Skrripy
huuhaa
waffshappen
Marnick L'Eau
Maksim2005UA
ngocanhtve
Quentin PAGÈS
Projjal Moitra
Robin
JungHee Lee
தமிழ் நேரம்
Maksim2005UA
Ziad OUALHADJ
Vasilis
Robin Liu

View File

@@ -54,7 +54,7 @@
<string name="settings_portrait_orientation">الوضع الرأسي</string>
<string name="settings_landscape_orientation">الوضع الأفقي</string>
<string name="settings_theme">مظهر</string>
<string name="settings_display_barcode_max_brightness">عرض مشرق علي الشاشة</string>
<string name="settings_display_barcode_max_brightness">شاشة ساطعة</string>
<string name="importSuccessful">تم استيراد البيانات</string>
<string name="exportSuccessful">تم تصدير البيانات</string>
<string name="enter_group_name">أدخل اسم المجموعة</string>
@@ -298,7 +298,7 @@
<string name="enter_card_id">أدخل رقم الهوية أو النص الموجود على بطاقتك</string>
<string name="addWithoutBarcode">إضافة بدون باركود</string>
<string name="field_must_not_be_empty">يجب ألا يكون الحقل فارغا</string>
<string name="app_name">Catima</string>
<string name="app_name">كاتيما</string>
<string name="settings_follow_sensor_orientation">التدوير دائمًا ( تجاهل إعدادات النظام)</string>
<string name="add_manually_warning_title">الفحص موصى به</string>
<string name="continue_">استمر</string>
@@ -332,4 +332,5 @@
<string name="settings_column_count_5">٥</string>
<string name="settings_column_count_6">٦</string>
<string name="settings_column_count_7">٧</string>
</resources>
<string name="sort_by_valid_from">صالح من</string>
</resources>

View File

@@ -41,7 +41,7 @@
<string name="importFailed">نمیتوان ایمپورت کرد</string>
<string name="exportSuccessfulTitle">خروجی گرفته شده</string>
<string name="exportFailedTitle">خروجی گرفتن ناموفق بود</string>
<string name="storageReadPermissionRequired">دسترسی به خواندن محل ذخیره برای این کار نیاز است…</string>
<string name="storageReadPermissionRequired">برای این اقدام دسترسی به حافظه مورد نیاز است…</string>
<string name="exportOptionExplanation">داده در محلی که شما انتخاب میکنید نوشته خواهد شد.</string>
<string name="receive">دریافت</string>
<string name="continue_">ادامه</string>
@@ -79,10 +79,10 @@
<string name="about">درباره</string>
<string name="importOptionApplicationExplanation">از هر برنامه یا مدیر فایل دلخواه خود برای باز کردن یک فایل استفاده کنید.</string>
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">حق تکثیر © 2019<xliff:g>%d</xliff:g> سیلویا وَن اُس و مشارکت کنندگان</string>
<string name="app_copyright_short">حق تکثیر © سیلویا وَن اُس و مشارکت کنندگان</string>
<string name="app_copyright_short">حق نشر © سیلویا وَن اُس و مشارکت کنندگان</string>
<string name="failedParsingImportUriError">تجزیه URI ورودی ناموفق بود</string>
<string name="importOptionFilesystemExplanation">یک فایل مشخص از فایل‌های سیستم انتخاب کنید.</string>
<string name="importOptionFilesystemTitle">وادر کردن از فایل های سیستم</string>
<string name="importOptionFilesystemTitle">ورود از فایل سیستم</string>
<plurals name="selectedCardCount">
<item quantity="one"><xliff:g>%d</xliff:g> انتخاب شد</item>
<item quantity="other"><xliff:g>%d</xliff:g> انتخاب شد</item>
@@ -112,4 +112,72 @@
<string name="intent_import_card_from_url_share_text">میخواهم یک کارت را با تو به اشتراک بگذارم</string>
<string name="settings_use_volume_keys_navigation">جابجایی میان کارت ها با استفاده از کلید های صدا</string>
<string name="settings_use_volume_keys_navigation_summary">از کلید های صدا برای تغیر کارت نمایشی استفاده کنید</string>
<string name="about_title_fmt">درباره <xliff:g id="app_name">%s</xliff:g></string>
<string name="debug_version_fmt">نسخه <xliff:g id="version">%s</xliff:g></string>
<string name="chooseExpiryDate">انتخاب تاریخ انقضاء</string>
<string name="app_libraries">کتابخانه های شخص ثالث: <xliff:g id="app_libraries_list">%s</xliff:g></string>
<string name="app_copyright_old">بر اساس کارت وفاداری Keychain\nکپی رایت © 2016-2020 سازنده : Branden</string>
<string name="app_license">نرم‌افزار آزاد با حقوق کپی‌لفت، تحت مجوز GPLv3+</string>
<string name="groups">گروه‌ها</string>
<string name="noGroupCards">این گروه خالی است</string>
<string name="noGroups">روی دکمه + اضافه کلیک کنید تا گروه‌هایی برای دسته‌بندی اضافه کنید.</string>
<string name="editGroup">ویرایش گروه: <xliff:g>%s</xliff:g></string>
<string name="importCatimaMessage">فایل <i>catima.zip</i> خروجی خود را از Catima برای وارد کردن انتخاب کنید.\nآن را از منوی وارد/صادر کردن در یک اپلیکیشن دیگر Catima با فشردن دکمه صادرکردن ابتدا ایجاد کنید.</string>
<string name="importStocard">واردات از Stocard</string>
<string name="unsupportedBarcodeType">این نوع بارکد هنوز نمی‌تواند نمایش داده شود. ممکن است در نسخه آینده برنامه پشتیبانی شود.</string>
<plurals name="balancePoints">
<item quantity="one"><xliff:g>%s</xliff:g> امتیاز</item>
<item quantity="other"><xliff:g>%s</xliff:g> امتیاز</item>
</plurals>
<string name="importFidmeMessage">فایل خروجی <i>fidme-export-request-xxxxxx.zip</i> خود را از FidMe برای وارد کردن انتخاب کنید، و سپس نوع بارکدها را به صورت دستی مشخص کنید.\nآن را از پروفایل FidMe خود با انتخاب گزینه حفاظت از داده و سپس فشار دادن گزینه استخراج داده من ابتدا ایجاد کنید.</string>
<string name="leaveWithoutSaveTitle">خروج</string>
<string name="balanceSentence">موجودی: <xliff:g>%s</xliff:g></string>
<string name="sameAsCardId">همانند شناسه</string>
<string name="setBarcodeId">تنظیم مقدار بارکد</string>
<string name="exportSuccessful">داده‌ها صادر شدند</string>
<string name="enter_group_name">نام گروه را وارد کنید</string>
<string name="importLoyaltyCardKeychain">وارد کردن از جاکلیدی کارت وفاداری</string>
<string name="importLoyaltyCardKeychainMessage">فایل خروجی <i>LoyaltyCardKeychain.csv</i> خود را از جاسوئیچی کارت وفاداری برای وارد کردن انتخاب کنید.\nآن را از منوی وارد/صادر‌کردن در جاسوئیچی کارت وفاداری با فشردن دکمه صادر‌کردن ابتدا ایجاد کنید.</string>
<string name="app_resources">منابع آزاد از طرف شخص ثالث: <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="settings_lock_on_opening_orientation">قفل به جهت استفاده شده در هنگام بازکردن کارت</string>
<plurals name="groupCardCount">
<item quantity="one"><xliff:g>%d</xliff:g> کارت</item>
<item quantity="other"><xliff:g>%d</xliff:g> کارت</item>
</plurals>
<string name="group_name_already_in_use">نام گروه قبلاً استفاده شده</string>
<string name="group_name_is_empty">نام گروه نباید خالی باشد</string>
<string name="group_updated">گروه به روز شد</string>
<string name="all">همه</string>
<string name="deleteConfirmationGroup">حذف گروه؟</string>
<string name="failedOpeningFileManager">ابتدا یک مدیریت فایل نصب کنید.</string>
<string name="moveUp">به بالا حرکت کن</string>
<string name="moveDown">به پایین حرکت کن</string>
<string name="leaveWithoutSaveConfirmation">بدون ذخیره ترک می‌کنید؟</string>
<string name="addManually">بارکد را دستی وارد کنید</string>
<string name="addFromImage">یک تصویر از گالری انتخاب کنید</string>
<string name="groupsList">گروه‌ها: <xliff:g>%s</xliff:g></string>
<string name="expiryStateSentence">تاریخ انقضاء: <xliff:g>%s</xliff:g></string>
<string name="card">کارت</string>
<string name="editBarcode">ویرایش بارکد</string>
<string name="expiryDate">تاریخ انقضا</string>
<string name="never">هرگز</string>
<string name="moveBarcodeToTopOfScreen">بارکد را به بالای صفحه منتقل کنید</string>
<string name="noBarcodeFound">بارکدی پیدا نشد</string>
<string name="errorReadingImage">نمی توان تصویر را خواند</string>
<string name="balance">موجودی</string>
<string name="currency">ارز</string>
<string name="points">امتیاز‌ها</string>
<string name="balanceParsingFailed">موجودی نامعتبر</string>
<string name="chooseImportType">وارد کردن داده ها از</string>
<string name="app_loyalty_card_keychain">جاکلیدی کارت وفاداری</string>
<string name="privacy_policy">خط مشی رازداری</string>
<string name="accept">قبول</string>
<string name="importCatima">واردات از کاتیما</string>
<string name="importFidme">واردات از FidMe</string>
<string name="importStocardMessage">فایل خروجی <i>***.zip</i> خود را از Stocard برای وارد کردن انتخاب کنید.\nاین فایل را با ارسال ایمیل به آدرس support@stocardapp.com و درخواست خروجی داده‌های خود دریافت کنید.</string>
<string name="importVoucherVault">واردات از صندوق کوپن</string>
<string name="importVoucherVaultMessage">فایل خروجی <i>vouchervault.json</i> خود را از صندوق کوپن برای وارد کردن انتخاب کنید.\nآن را ابتدا با فشردن دکمه صادرکردن در صندوق کوپن ایجاد کنید.</string>
<string name="barcodeId">مقدار بارکد</string>
<string name="group_edit">ویرایش گروه‌</string>
<string name="expiryStateSentenceExpired">منقضی شده: <xliff:g>%s</xliff:g></string>
</resources>

View File

@@ -302,4 +302,5 @@
<string name="addFromPkpass">Pilih file Buku Tabungan (.pkpass)</string>
<string name="unsupportedFile">File ini tidak didukung</string>
<string name="generic_error_please_retry">Maaf, terjadi kesalahan, silakan coba lagi...</string>
</resources>
<string name="sort_by_valid_from">Berlaku dari</string>
</resources>

View File

@@ -230,4 +230,16 @@
<string name="settings_oled_dark_summary">有機ELディスプレイでの電池の使用量を削減します</string>
<string name="action_more_options">オプション</string>
<string name="add_a_card_in_a_different_way">別の方法でカードを追加</string>
</resources>
<string name="continue_"></string>
<string name="permissionReadCardsLabel">Catimaのカードを読む</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_7">7</string>
<string name="importCancelled">輸入がキャンセルされた</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_category_title_privacy">プライバシー</string>
<string name="exportCancelled">輸出がキャンセルされた</string>
</resources>

View File

@@ -42,7 +42,7 @@
<string name="importLoyaltyCardKeychain">Importuoti iš Loyalty Card Keychain</string>
<string name="app_loyalty_card_keychain">Lojalumo kortelės</string>
<string name="moveBarcodeToTopOfScreen">Perkelti brūkšninį kodą į ekrano viršų</string>
<string name="settings_display_barcode_max_brightness">Šviesinti brūkšninio kodo rodinį</string>
<string name="settings_display_barcode_max_brightness">Šviesinti ekraną</string>
<string name="failedParsingImportUriError">Nepavyko iššifruoti importo URI</string>
<string name="turn_flashlight_off">Išjunkti žibintuvėlį</string>
<string name="turn_flashlight_on">Įjunkti žibintuvėlį</string>
@@ -196,7 +196,7 @@
<string name="noGiftCardsGroup">Sukurkite keletą kortelių ir priskirkite jas grupei čia.</string>
<string name="setIcon">Nustatyti piktogramą</string>
<string name="selectColor">Pasirinkti spalvą</string>
<string name="settings_card_orientation">Brūkšninio kodo orientacija</string>
<string name="settings_card_orientation">Ekrano orientacija</string>
<string name="failedLaunchingPhotoPicker">Nepavyko rasti palaikomos galerijos programėlės</string>
<string name="previousCard">Ankstesnė</string>
<string name="nextCard">Kita</string>
@@ -264,7 +264,7 @@
<string name="enter_card_id">Įveskite ID numerį arba tekstą ant jūsų kortelės</string>
<string name="noCameraFoundGuideText">Atrodo, kad jūsų įrenginys neturi kameros. Jei jis turi kamerą, pabandykite perkrauti įrenginį. Naudokite žemiau esantį „Daugiau galimybių“ mygtuką, kad pridėtumėte brūkšninį kodą kitu būdu.</string>
<string name="settings_display_barcode_max_brightness_summary">Būtina, kad veiktų kai kurie skeneriai</string>
<string name="settings_disable_lockscreen_while_viewing_card_summary">Išjungti ekrano užraktą kol peržiūrite kortelę</string>
<string name="settings_disable_lockscreen_while_viewing_card_summary">Išjungia ekrano užraktą kol peržiūrite kortelę</string>
<string name="settings_allow_content_provider_read_title">Leisti kitoms programoms išrinkti mano informaciją</string>
<string name="settings_allow_content_provider_read_summary">Programos vis tiek turės prašyti leidimo, kad gautu informaciją</string>
<string name="show_name_below_image_thumbnail">Rodyti pavadinimą po piktogramą</string>
@@ -273,7 +273,7 @@
<string name="continue_">Tęsti</string>
<string name="add_manually_warning_message">Kai kuriuose parduotuvėse brūkšninio kodo vertė gali skirtis nuo kortelėje nurodyto numerio. Dėlto įvedus brūkšninį kodą rankiniu būdu gali nepavykti. Vietoj to, labai rekomenduojama nuskaityti brūkšninį kodą naudojant kamerą. Ar vis tiek norite tęsti?</string>
<string name="permissionReadCardsLabel">Skenuoti Catima Korteles</string>
<string name="settings_category_title_cards">Kortelės</string>
<string name="settings_category_title_cards">Kortelių peržiūra</string>
<string name="settings_category_title_general">Bendri</string>
<string name="settings_category_title_privacy">Privatumąi</string>
<string name="importCancelled">Importas atšauktas</string>
@@ -298,4 +298,7 @@
<string name="app_copyright_short">Autorių teisės © Sylvia van Os ir Pagalbininkai</string>
<string name="useFrontImage">Naudoti priekinį vaizdą</string>
<string name="useBackImage">Naudoti galinį vaizdą</string>
</resources>
<string name="sort_by_valid_from">Teisinga forma</string>
<string name="settings_use_volume_keys_navigation">Keisti korteles su garso mygtukais</string>
<string name="settings_use_volume_keys_navigation_summary">Naudokite garso mygtukus kortelių pakeitimui</string>
</resources>

View File

@@ -149,7 +149,7 @@
<string name="updateBalance">Ažuriraj stanje</string>
<string name="failedToRetrieveImageFile">Preuzimanje fotografije nije uspelo</string>
<string name="sort_by_name">Ime</string>
<string name="sort_by_most_recently_used">Nedevno korišćeno</string>
<string name="sort_by_most_recently_used">Nedavno korišćeno</string>
<string name="sort_by_expiry">Ističe</string>
<string name="reverse">…u obrnutom redosledu</string>
<string name="sort_by">Sortiraj po</string>
@@ -298,4 +298,5 @@
<string name="useBackImage">Koristi zadnju fotografiju</string>
<string name="pageWithNumber">Strana <xliff:g>%d</xliff:g></string>
<string name="noCameraFoundGuideText">Čini se da tvoj uređaj nema kameru. Ako je ima, pokušaj da ponovo pokreneš uređaj. U suprotnom, koristi dugme Više opcija, koje se nalazi ispod, da bi dodao bar-kod na drugi način.</string>
</resources>
<string name="sort_by_valid_from">Važi od</string>
</resources>

View File

@@ -285,7 +285,7 @@
<string name="enter_card_id">Введіть ID або текст на вашій картці</string>
<string name="addWithoutBarcode">Додати картку без штрих-коду</string>
<string name="field_must_not_be_empty">Поле вводу не повинно бути порожнім</string>
<string name="app_name">Катіма</string>
<string name="app_name">Catima</string>
<string name="settings_follow_sensor_orientation">Завжди обертати (ігнорувати системні налаштування)</string>
<string name="add_manually_warning_message">У деяких магазинах значення штрихкоду відрізняється від номера, записаного на картці. Через це введення штрихкоду вручну може не завжди спрацювати. Наполегливо рекомендуємо відсканувати штрихкод за допомогою камери. Ви все ще хочете продовжити?</string>
<string name="continue_">Продовжити</string>

View File

@@ -140,6 +140,7 @@
<item>nl</item>
<item>oc</item>
<item>pl</item>
<item>pt</item>
<item>pt-rBR</item>
<item>pt-rPT</item>
<item>ro-rRO</item>

View File

@@ -32,6 +32,7 @@
<locale android:name="nl" />
<locale android:name="oc" />
<locale android:name="pl" />
<locale android:name="pt" />
<locale android:name="pt-BR" />
<locale android:name="pt-PT" />
<locale android:name="ro-RO" />

View File

@@ -176,6 +176,69 @@ class PkpassTest {
Assert.assertTrue(imageBitmap.sameAs(parser.image))
}
@Test
fun testFakeEmptyEurowingsPassForGitHubIssue2317() {
// Prepare
val context: Context = ApplicationProvider.getApplicationContext()
val pkpass = "pkpass/Eurowings_fake_empty_for_gh_issue_2317/Eurowings.pkpass"
val image = "pkpass/Eurowings_fake_empty_for_gh_issue_2317/logo@2x.png"
val pkpassUri = Uri.parse(pkpass)
val imageUri = Uri.parse(image)
ShadowContentResolver().registerInputStream(pkpassUri, javaClass.getResourceAsStream(pkpass))
ShadowContentResolver().registerInputStream(imageUri, javaClass.getResourceAsStream(image))
val parser = PkpassParser(context, pkpassUri)
val imageBitmap = BitmapFactory.decodeStream(context.contentResolver.openInputStream(imageUri))
// Confirm this does not have languages
Assert.assertEquals(listOf("de", "en"), parser.listLocales())
// Confirm correct parsing (en)
var parsedCard = parser.toLoyaltyCard("de")
Assert.assertEquals(-1, parsedCard.id)
Assert.assertEquals("EUROWINGS", parsedCard.store)
Assert.assertEquals("Eurowings Boarding Pass", parsedCard.note)
Assert.assertEquals(Date(1567911600000), parsedCard.validFrom)
Assert.assertEquals(null, parsedCard.expiry)
Assert.assertEquals(BigDecimal(0), parsedCard.balance)
Assert.assertEquals(null, parsedCard.balanceType)
Assert.assertEquals("M1DOE/JOHN JBZPPP CGNDBVEW 0954 251A012D0073 148>5181W 9250BEW 00000000000002A0000000000000 0 N", parsedCard.cardId)
Assert.assertEquals(null, parsedCard.barcodeId)
Assert.assertEquals(BarcodeFormat.AZTEC, parsedCard.barcodeType!!.format())
Assert.assertEquals(Color.parseColor("#FFFFFF"), parsedCard.headerColor)
Assert.assertEquals(0, parsedCard.starStatus)
Assert.assertEquals(0, parsedCard.archiveStatus)
Assert.assertEquals(0, parsedCard.lastUsed)
Assert.assertEquals(DBHelper.DEFAULT_ZOOM_LEVEL, parsedCard.zoomLevel)
// Confirm correct image is used
Assert.assertTrue(imageBitmap.sameAs(parser.image))
// Confirm correct parsing (en)
parsedCard = parser.toLoyaltyCard("en")
Assert.assertEquals(-1, parsedCard.id)
Assert.assertEquals("EUROWINGS", parsedCard.store)
Assert.assertEquals("Eurowings Boarding Pass", parsedCard.note)
Assert.assertEquals(Date(1567911600000), parsedCard.validFrom)
Assert.assertEquals(null, parsedCard.expiry)
Assert.assertEquals(BigDecimal(0), parsedCard.balance)
Assert.assertEquals(null, parsedCard.balanceType)
Assert.assertEquals("M1DOE/JOHN JBZPPP CGNDBVEW 0954 251A012D0073 148>5181W 9250BEW 00000000000002A0000000000000 0 N", parsedCard.cardId)
Assert.assertEquals(null, parsedCard.barcodeId)
Assert.assertEquals(BarcodeFormat.AZTEC, parsedCard.barcodeType!!.format())
Assert.assertEquals(Color.parseColor("#FFFFFF"), parsedCard.headerColor)
Assert.assertEquals(0, parsedCard.starStatus)
Assert.assertEquals(0, parsedCard.archiveStatus)
Assert.assertEquals(0, parsedCard.lastUsed)
Assert.assertEquals(DBHelper.DEFAULT_ZOOM_LEVEL, parsedCard.zoomLevel)
// Confirm correct image is used
Assert.assertTrue(imageBitmap.sameAs(parser.image))
}
@Test
fun testDCBPkPass() {
// Prepare

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

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.9.0" apply false
id("com.android.application") version "8.9.1" apply false
id("com.github.spotbugs") version "5.1.4" apply false
id("org.jetbrains.kotlin.android") version "2.1.10" apply false
}

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -1,5 +1,5 @@
- Předvyplnění stávajícího ID do začátku úprava ID karty. (pull #94)
- Omezení šířky generovaných čárových kódů, aby byla snížena spotřeba paměti a chyby nedostatku paměti. (pull #103)
- Při editaci karty změněno tlačítko „Zadat kartu“ na „Upravit kartu“, pokud ID karty již existuje. (pull #104)
- Změněno barevné schéma tak, aby bylo jemnější a kompatibilní s ikonou aplikace, a změněno rozložení při prohlížení karty, aby bylo přehlednější. (pull #107)
- Přidán úvodní průvodce, který se spustí při prvním spuštění aplikace. (pull #108)
- Předvyplnění stávajícího ID do začátku úprava ID karty.
- Omezení šířky generovaných čárových kódů, aby byla snížena spotřeba paměti a chyby nedostatku paměti.
- Při editaci karty změněno tlačítko „Zadat kartu“ na „Upravit kartu“, pokud ID karty již existuje.
- Změněno barevné schéma tak, aby bylo jemnější a kompatibilní s ikonou aplikace, a změněno rozložení při prohlížení karty, aby bylo přehlednější.
- Přidán úvodní průvodce, který se spustí při prvním spuštění aplikace.

View File

@@ -0,0 +1,3 @@
- Cíl Android 15
- Opraven pád při čtení nepodporovaných souborů pkpass
- Vylepšení podpory pkpass

View File

@@ -1,5 +1,5 @@
- PŘELOMOVÁ ZMĚNA: Formát zálohování se změnil, viz https://github.com/TheLastProject/Catima/wiki/Export-format
- PŘELOMOVÁ ZMĚNA: Změnil se formát sdílení URL, viz https://github.com/TheLastProject/Catima/wiki/Card-sharing-URL-format
- PŘELOMOVÁ ZMĚNA: Formát zálohování se změnil, viz GitHub
- PŘELOMOVÁ ZMĚNA: Změnil se formát sdílení URL, viz GitHub
- Umožnění zapnutí nebo vypnutí svítilny při skenování
- Přidána podpora UPC-E
- Podpora přidávání přední a zadní fotografie ke každé kartě
@@ -7,5 +7,4 @@
- Podpora importu ze Stocard (beta)
- Oprava zbytečných bílých znaků v poznámkách z importu Fidme
- Podpora nového formátu exportu z trezoru voucherů
- Oprava tlačítek plovoucích akcí, která jsou v systému Android 4 za ostatními prvky rozhraní
- Oprava horního okraje panelu aplikace pro prohlížení věrnostních karet
- Spousta dalších změn

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -0,0 +1,3 @@
- Angepasst für Android 15
- Kein Absturz mehr beim Lesen nicht unterstützter pkpass-Dateien
- Verbesserte Unterstützung des pkpass Imports

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -0,0 +1,3 @@
- Target Android 15
- Fix crash reading unsupported pkpass files
- Improve pkpass support

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -0,0 +1,3 @@
- تغییر نام پیش‌فرض فایل‌های وارد/صادر شده. (pull #84 (https://github.com/brarcher/loyalty-card-locker/pull/84))
- تصحیح متن در صفحه وارد/صادر کردن. (pull #87 (https://github.com/brarcher/loyalty-card-locker/pull/87))
- بهبود طرح‌بندی صفحه نمایش کارت. متن خواناتر شده و با یک کلیک طولانی قابل انتخاب است. (pull #91 (https://github.com/brarcher/loyalty-card-locker/pull/91))

View File

@@ -0,0 +1,2 @@
- پنهان کردن جستجو، گسترش و مرتب کردن نمادها تا زمانی که حداقل 1 کارت وجود دارد
- رفع پوسته های مختلف

View File

@@ -0,0 +1,3 @@
- رفع عدم استفاده از رنگ پوسته برش دهنده
- رفع مشکلات جزئی پوسته
- اضافه شدن پوسته سیاه خالص برای صفحه نمایش های OLED

View File

@@ -0,0 +1,2 @@
- اصلاحات جزئی مختلف
- رفع خرابی هنگام استفاده از ترجمه نروژی

View File

@@ -0,0 +1,2 @@
- انتخاب زبان دستی را برطرف کنید که همه جا اعمال نمی شود
- رفع خرابی در نمای ویرایش در محل بدون منطقه

View File

@@ -0,0 +1,2 @@
- وضعیت گسترش جزئیات کارت را ذخیره کنید
- اصلاحات جزئی رابط

View File

@@ -0,0 +1,2 @@
- رفع بلوک خاکستری ظاهر شدن در مقدار نامعتبر برای بارکد
- رفع واردات Stocard

View File

@@ -0,0 +1 @@
- رفع برخی از دنباله های کاراکتر که به عنوان یک کاراکتر نشان داده می شوند

View File

@@ -0,0 +1 @@
- رفع واردات Stocard

View File

@@ -0,0 +1,5 @@
- قابلیت تکثیر کارت را اضافه کنید
- اجازه ندهید انتخاب قبل از سال 1970 منقضی شود (به هر حال آنها هرگز کار نکردند)
- اضافه کردن پشتیبانی برای آرشیو کارت
- حذف را از ویرایش به نمایش منتقل کنید
- نماد قفل چرخش را به نفع تنظیم قفل چرخشی جدید حذف کنید

View File

@@ -0,0 +1 @@
- رفع رنگ متن نادرست روی دکمه "بدون بارکد"

View File

@@ -0,0 +1,5 @@
- هنگام ویرایش شناسه کارت، شناسه موجود را از قبل پر کنید تا شروع شود. (pull #94 (https://github.com/brarcher/loyalty-card-locker/pull/94))
- محدودیت عرض بارکدهای تولید شده را برای کاهش مصرف و خطا حافظه. (pull #103 (https://github.com/brarcher/loyalty-card-locker/pull/103))
- هنگام ویرایش کارت، تغییر دکمه "تایید کارت" در صورتی که شناسه کارت از قبل وجود دارد. "Edit Card". (pull #104 (https://github.com/brarcher/loyalty-card-locker/pull/104))
- تغییر رنگ بندی به نرمی و سازگاری با نماد برنامه و تمیزتر کردن طرح هنگام مشاهده کارت. (pull #107 (https://github.com/brarcher/loyalty-card-locker/pull/107))
- اضافه کردن یک جادوگر معرفی که در اولین اجرا برنامه راه اندازی می شود. (pull #108 (https://github.com/brarcher/loyalty-card-locker/pull/108))

View File

@@ -0,0 +1,7 @@
- پشتیبانی از زبان عربی
- نمایش تعداد کارت های آرشیو شده در نمای کلی گروه
- رفع اشکالات تجزیه تعادل (کارت های ساخته شده به زبان عربی و سایر زبان ها با اعداد غیر غربی قابل ذخیره نیستند)
- رفع عدم اعمال تم سفارشی به صفحه اصلی به درستی
- بهبود نمایش کارت های انتخاب شده
- رفع خرابی هنگام خروج cardview در طرح‌بندی‌های RTL برای کارت‌های دارای انقضا یا موجودی
- فلش عقب را در نمای کارتی که در طرح‌بندی‌های RTL به مسیر اشتباه اشاره می‌کند، رفع کنید

View File

@@ -0,0 +1 @@
- امکان تنظیم یک سربرگ سفارشی را بیشتر نمایان کنید

View File

@@ -0,0 +1,3 @@
- دکمه های قبلی و بعدی را به نمای کارت وفاداری اضافه کنید
- رفع رنگ پیش زمینه در دکمه ویرایش
- نماد ذخیره فلاپی دیسک را با علامت چک جایگزین کنید

View File

@@ -0,0 +1,3 @@
- اضافه کردن نماد تک رنگ برای اندروید 13
- صفحه نمایش اولین راه اندازی را بهبود بخشید
- رفع واردات Fidme

View File

@@ -0,0 +1,4 @@
- باز کردن تصویر در گالری با فشار طولانی
- اعمال سبک متریال به دیالوگ ها
- با اشتراک گذاری یک تصویر در Catima از ایجاد کارت پشتیبانی کنید
- دکمه خرج سریع را به صفحه کارت اضافه کنید

View File

@@ -0,0 +1,2 @@
- رفع عدم اجازه گفتگوی خرج سریع، جدا کردن
- پشتیبانی از بارگذاری تصویر از مدیر فایل

View File

@@ -0,0 +1,2 @@
- حذف مجوزهای غیر ضروری
- اندروید 13 را هدف قرار دهید

View File

@@ -0,0 +1,2 @@
- پشتیبانی از تنظیم شروع اعتبار کارت
- رفع واردات Stocard (فرمت صادرات Stocard تغییر کرد)

View File

@@ -0,0 +1 @@
- از رنگ‌های Material You در دستگاه‌های بیشتری استفاده کنید (به‌روزرسانی کتابخانه Google)

View File

@@ -0,0 +1 @@
- هنگام چرخاندن صفحه نمایش در اولین اجرای جادوگر، از خرابی جلوگیری کنید.

View File

@@ -0,0 +1,3 @@
- طراحی مجدد کامل صفحه نمایش کارت اصلی و وفاداری
- سبک Material You برای صفحه تنظیمات
- رفع خرابی هنگام استفاده از "عکس گرفتن" با برنامه دوربین غیرفعال

View File

@@ -0,0 +1 @@
- به‌روز رسانی کتابخانه های استفاده شده

View File

@@ -0,0 +1,3 @@
- برای تغییر آیکون کارت در نمای فعالیت، فشار طولانی دهید
- بهبود استایل دکمه در صفحه گروه ها
- مقادیر بارکد طولانی را ثابت کنید که باعث می شود بارکد به اندازه کم شود

View File

@@ -0,0 +1,2 @@
- بهبودهای جزئی رابط کاربری
- رفع عدم استفاده از طراحی جدید در دستگاه های با صفحه نمایش مربع

View File

@@ -0,0 +1 @@
- پشتیبانی از انتخاب دقیق جزئیات برای مشاهده در نمای کلی کارت

View File

@@ -0,0 +1 @@
- با رنگ‌های از دست رفته سرصفحه با ظرافت بیشتری برخورد کنید

View File

@@ -0,0 +1 @@
- رفع انواع RTL

View File

@@ -0,0 +1,4 @@
- بهبود رندر بارکد
- قابلیت همکاری اولیه با برنامه های خارجی (اندروید 6.0+)
- صفحه تنظیمات سازماندهی مجدد
- وارد کردن از برخی مرورگرهایی که یک دنباله / را به نشانی اشتراک‌گذاری اضافه می‌کنند، رفع کنید

View File

@@ -0,0 +1 @@
- رفع خرابی نادر

View File

@@ -0,0 +1,22 @@
جستجوی کارت‌های پاداش پلاستیکی را در حین تسویه‌حساب فروشگاه یا فروشگاه اینترنتی متوقف کنید.
<b>بارکدها را با استفاده از دوربین دستگاه خود اسکن کنید، کارت‌ها را فراموش کنید.</b>
کیف پول خود را فراموش کنید یا آن را برای اشیاء قیمتی بسیار سبک نگه دارید.
با استفاده از این ابزار ضروری حمل روزانه (EDC) می توانید پلاستیک بی مصرف را با پول نقد جایگزین کنید.
- از جاسوسی با مجوزهای بسیار کم خودداری کنید. بدون دسترسی به اینترنت و بدون تبلیغات.
- کارت ها یا کدهایی را با نام و رنگ های قابل تنظیم اضافه کنید.
- اگر بارکدی برای ذخیره وجود ندارد یا نمی توان از آن استفاده کرد، وارد کردن کد دستی.
- کارت ها و کدها را از فایل ها، کاتیما، FidMe، K، جاکلیدی کارت وفاداری، Stocard و صندوق کوپن وارد کنید.
- از تمام کارت های خود یک نسخه پشتیبان تهیه کنید و در صورت تمایل آنها را به دستگاه جدیدی انتقال دهید.
- کوپن ها، پیشنهادات انحصاری، کدهای تبلیغاتی، یا کارت ها و کدها را با استفاده از هر برنامه ای به اشتراک بگذارید.
- تم تیره و گزینه های دسترسی برای کاربران دارای اختلال بینایی.
- ساخته شده برای همه توسط انجمن نرم افزار libre.
- ترجمه های دست ساز محلی برای بیش از 40 زبان.
- رایگان، توسط مشارکت های جامعه پشتیبانی می شود.
- استفاده کنید، مطالعه کنید، تغییر دهید و آن را به دلخواه به اشتراک بگذارید. <i>با همه</i>.
- نه تنها نرم افزار آزاد / منبع باز. مدیریت کارت نرم افزار رایگان <i>Copylefted</i> (GPLv3+).
زندگی و خرید خود را ساده کنید و هرگز رسید کاغذی، کارت هدیه پرداخت در فروشگاه یا بلیط هواپیما را گم نکنید.
تمام جوایز و جوایز خود را با خود ببرید و در حین حرکت پس انداز کنید.

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@@ -0,0 +1 @@
برای بارکدها، عضویت‌ها، برنامه‌های وفاداری، کوپن‌ها و بلیط‌های شما.

View File

@@ -0,0 +1 @@
کاتیما کیف پول کارت‌ وفاداری

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 24 KiB

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