Compare commits

..

76 Commits

Author SHA1 Message Date
Sylvia van Os
3aad062e3d Merge pull request #1751 from CatimaLoyalty/create-pull-request/patch-1708269529
Update feature graphic
2024-02-18 16:20:47 +01:00
TheLastProject
dd09d0e130 Update feature graphic 2024-02-18 15:18:49 +00:00
Sylvia van Os
0de1fcbe9b Fix some failing feature graphic generations 2024-02-18 16:17:11 +01:00
Sylvia van Os
2b8214e144 Merge branch 'main' of github.com:CatimaLoyalty/Android 2024-02-18 14:20:08 +01:00
Sylvia van Os
0300aaa850 chmod +x generate_feature_graphic.sh 2024-02-18 14:19:58 +01:00
Sylvia van Os
2605372e5d Merge pull request #1742 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-02-18 14:16:32 +01:00
Vietto
72b09506dc Translated using Weblate (Vietnamese)
Currently translated at 2.2% (3 of 131 strings)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-31 02:16:44 +00:00
Sylvia van Os
ca62d542ef Update supported language count 2024-01-30 20:24:06 +01:00
178 changed files with 743 additions and 357 deletions

View File

@@ -32,7 +32,7 @@ jobs:
- uses: actions/checkout@v4.1.1
- name: Fail on bad translations
run: if grep -ri "&lt;xliff" app/src/main/res/values*/strings.xml; then echo "Invalidly escaped translations found"; exit 1; fi
- uses: gradle/wrapper-validation-action@v1
- uses: gradle/wrapper-validation-action@v2
- name: set up OpenJDK 17
run: |
sudo apt-get update
@@ -48,7 +48,7 @@ jobs:
run: ./gradlew spotbugsRelease
- name: Archive test results
if: always()
uses: actions/upload-artifact@v4.3.0
uses: actions/upload-artifact@v4.3.1
with:
name: test-results
path: app/build/reports

View File

@@ -35,7 +35,7 @@ jobs:
- name: Run converter script
run: python .scripts/changelog_to_fastlane.py
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5.0.2
uses: peter-evans/create-pull-request@v6.0.0
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@v5.0.2
uses: peter-evans/create-pull-request@v6.0.0
with:
title: "Update contributors"
commit-message: "Update contributors"

View File

@@ -38,7 +38,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@v5.0.2
uses: peter-evans/create-pull-request@v6.0.0
with:
title: "Update feature graphic"
commit-message: "Update feature graphic"

View File

@@ -24,9 +24,9 @@ jobs:
- uses: actions/checkout@v4.1.1
- uses: obfusk/gradle-update-action@v2.0.0
id: gradle-update
- uses: gradle/wrapper-validation-action@v1
- uses: gradle/wrapper-validation-action@v2
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5.0.2
uses: peter-evans/create-pull-request@v6.0.0
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@v5.0.2
uses: peter-evans/create-pull-request@v6.0.0
with:
title: "Update locales"
commit-message: "Update locales"

View File

@@ -10,6 +10,9 @@ for lang in "$script_location/../../fastlane/metadata/android/"*; do
if grep -q — title.txt; then
# Try splitting title.txt on — (em dash)
IFS='—' read -r appname subtext < title.txt
elif grep -q title.txt; then
# No result, try splitting title.txt on (en dash)
IFS='' read -r appname subtext < title.txt
else
# No result, try splitting on - (dash)
IFS='-' read -r appname subtext < title.txt
@@ -25,6 +28,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 ;;
hi-IN) sed -i -e "s/Yesteryear/Noto Serif Devanagari/" -e "s/Lexend Deca/Noto Serif Devanagari/" featureGraphic.svg ;;
ja-JP) sed -i "s/Lexend Deca/Noto Serif CJK JP/" featureGraphic.svg ;;
ko) sed -i "s/Lexend Deca/Noto Serif CJK KR/" featureGraphic.svg ;;
kn-IN) sed -i -e 's/font-size="150"/font-size="100"/' -e 's/y="285.511"/y="235.511"/' featureGraphic.svg ;;

View File

@@ -1,5 +1,11 @@
# Changelog
## Unreleased - 133
- Target Android 14
- Open card icon in gallery on touch
- Improve design of Photos tab in edit view
## v2.27.0 - 132 (2024-01-30)
- Refine "Add card" workflow

View File

@@ -3,25 +3,25 @@ GEM
specs:
CFPropertyList (3.0.6)
rexml
addressable (2.8.5)
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
artifactory (3.0.15)
atomos (0.1.3)
aws-eventstream (1.2.0)
aws-partitions (1.824.0)
aws-sdk-core (3.181.1)
aws-eventstream (~> 1, >= 1.0.2)
aws-eventstream (1.3.0)
aws-partitions (1.884.0)
aws-sdk-core (3.191.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
aws-sigv4 (~> 1.8)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.71.0)
aws-sdk-core (~> 3, >= 3.177.0)
aws-sdk-kms (1.77.0)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.134.0)
aws-sdk-core (~> 3, >= 3.181.0)
aws-sdk-s3 (1.143.0)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.6)
aws-sigv4 (1.6.0)
aws-sigv4 (~> 1.8)
aws-sigv4 (1.8.0)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
claide (1.1.0)
@@ -32,11 +32,10 @@ GEM
declarative (0.0.20)
digest-crc (0.6.5)
rake (>= 12.0.0, < 14.0.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
domain_name (0.6.20240107)
dotenv (2.8.1)
emoji_regex (3.2.3)
excon (0.103.0)
excon (0.109.0)
faraday (1.10.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
@@ -65,8 +64,8 @@ GEM
faraday-retry (1.0.3)
faraday_middleware (1.2.0)
faraday (~> 1.0)
fastimage (2.2.7)
fastlane (2.215.1)
fastimage (2.3.0)
fastlane (2.219.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
@@ -85,6 +84,7 @@ GEM
gh_inspector (>= 1.1.2, < 2.0.0)
google-apis-androidpublisher_v3 (~> 0.3)
google-apis-playcustomapp_v1 (~> 0.1)
google-cloud-env (>= 1.6.0, < 2.0.0)
google-cloud-storage (~> 1.31)
highline (~> 2.0)
http-cookie (~> 1.0.5)
@@ -93,7 +93,7 @@ GEM
mini_magick (>= 4.9.4, < 5.0.0)
multipart-post (>= 2.0.0, < 3.0.0)
naturally (~> 2.2)
optparse (~> 0.1.1)
optparse (>= 0.1.1)
plist (>= 3.1.0, < 4.0.0)
rubyzip (>= 2.0.0, < 3.0.0)
security (= 0.1.3)
@@ -107,9 +107,9 @@ GEM
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.49.0)
google-apis-androidpublisher_v3 (0.54.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-core (0.11.1)
google-apis-core (0.11.3)
addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a)
@@ -117,28 +117,27 @@ GEM
representable (~> 3.0)
retriable (>= 2.0, < 4.a)
rexml
webrick
google-apis-iamcredentials_v1 (0.17.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-playcustomapp_v1 (0.13.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-storage_v1 (0.19.0)
google-apis-core (>= 0.9.0, < 2.a)
google-cloud-core (1.6.0)
google-cloud-env (~> 1.0)
google-apis-storage_v1 (0.31.0)
google-apis-core (>= 0.11.0, < 2.a)
google-cloud-core (1.6.1)
google-cloud-env (>= 1.0, < 3.a)
google-cloud-errors (~> 1.0)
google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.3.1)
google-cloud-storage (1.44.0)
google-cloud-storage (1.47.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
google-apis-iamcredentials_v1 (~> 0.1)
google-apis-storage_v1 (~> 0.19.0)
google-apis-storage_v1 (~> 0.31.0)
google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
googleauth (1.8.0)
googleauth (1.8.1)
faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0)
multi_json (~> 1.11)
@@ -149,7 +148,7 @@ GEM
domain_name (~> 0.5)
httpclient (2.8.3)
jmespath (1.6.2)
json (2.6.3)
json (2.7.1)
jwt (2.7.1)
mini_magick (4.12.0)
mini_mime (1.1.5)
@@ -157,11 +156,11 @@ GEM
multipart-post (2.3.0)
nanaimo (0.3.0)
naturally (2.2.1)
optparse (0.1.1)
optparse (0.4.0)
os (1.1.4)
plist (3.7.0)
public_suffix (5.0.3)
rake (13.0.6)
plist (3.7.1)
public_suffix (5.0.4)
rake (13.1.0)
representable (3.2.0)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)
@@ -185,17 +184,13 @@ GEM
unicode-display_width (>= 1.1.1, < 3)
trailblazer-option (0.1.2)
tty-cursor (0.7.1)
tty-screen (0.8.1)
tty-screen (0.8.2)
tty-spinner (0.9.3)
tty-cursor (~> 0.7)
uber (0.1.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.8.2)
unicode-display_width (2.4.2)
webrick (1.8.1)
unicode-display_width (2.5.0)
word_wrap (1.0.0)
xcodeproj (1.22.0)
xcodeproj (1.24.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)

View File

@@ -15,12 +15,12 @@ spotbugs {
android {
namespace = "protect.card_locker"
compileSdk = 33
compileSdk = 34
defaultConfig {
applicationId = "me.hackerchick.catima"
minSdk = 21
targetSdk = 33
targetSdk = 34
versionCode = 132
versionName = "2.27.0"
@@ -92,7 +92,7 @@ dependencies {
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.9.0")
implementation("com.google.android.material:material:1.11.0")
implementation("com.github.yalantis:ucrop:2.2.8")
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4")
@@ -101,7 +101,7 @@ dependencies {
// Third-party
implementation("com.journeyapps:zxing-android-embedded:4.3.0@aar")
implementation("com.google.zxing:core:3.5.2")
implementation("com.google.zxing:core:3.5.3")
implementation("org.apache.commons:commons-csv:1.9.0")
implementation("com.jaredrummler:colorpicker:1.1.0")
implementation("net.lingala.zip4j:zip4j:2.11.5")

View File

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

View File

@@ -111,10 +111,12 @@
android:name=".preferences.SettingsActivity"
android:label="@string/settings"
android:theme="@style/AppTheme.NoActionBar" />
<!-- FIXME: locked screenOrientation is a workaround for https://github.com/CatimaLoyalty/Android/issues/1715, remove when https://github.com/CatimaLoyalty/Android/issues/513 is fixed -->
<activity
android:name=".ImportExportActivity"
android:label="@string/importExport"
android:exported="true"
android:screenOrientation="locked"
android:theme="@style/AppTheme.NoActionBar">
<!-- ZIP Intent Filter -->

View File

@@ -12,7 +12,6 @@ import androidx.annotation.StringRes;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import protect.card_locker.databinding.AboutActivityBinding;
public class AboutActivity extends CatimaAppCompatActivity {

View File

@@ -12,12 +12,12 @@ import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import androidx.appcompat.widget.Toolbar;
import com.google.zxing.BarcodeFormat;
import java.util.ArrayList;
import androidx.appcompat.widget.Toolbar;
import protect.card_locker.databinding.BarcodeSelectorActivityBinding;
/**

View File

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

View File

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

View File

@@ -1,10 +1,8 @@
package protect.card_locker;
import android.Manifest;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.text.InputType;
@@ -16,23 +14,20 @@ import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.Toast;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import protect.card_locker.async.TaskHandler;
import protect.card_locker.databinding.ImportExportActivityBinding;
import protect.card_locker.importexport.DataFormat;

View File

@@ -4,13 +4,13 @@ import android.database.Cursor;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.math.BigDecimal;
import java.util.Currency;
import java.util.Date;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class LoyaltyCard implements Parcelable {
public final int id;
public final String store;

View File

@@ -15,13 +15,6 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.google.android.material.card.MaterialCardView;
import com.google.android.material.color.MaterialColors;
import java.math.BigDecimal;
import java.text.DateFormat;
import java.util.ArrayList;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
@@ -29,6 +22,13 @@ import androidx.core.graphics.BlendModeColorFilterCompat;
import androidx.core.graphics.BlendModeCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.card.MaterialCardView;
import com.google.android.material.color.MaterialColors;
import java.math.BigDecimal;
import java.text.DateFormat;
import java.util.ArrayList;
import protect.card_locker.databinding.LoyaltyCardLayoutBinding;
public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCursorAdapter.LoyaltyCardListItemViewHolder> {

View File

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

View File

@@ -109,22 +109,25 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
return;
}
ImageType imageType = imageTypes.get(mainImageIndex);
// If the barcode is shown, switch to fullscreen layout
if (imageTypes.get(mainImageIndex) == ImageType.BARCODE) {
if (imageType == ImageType.BARCODE) {
setFullscreen(true);
return;
}
// If this is an image, open it in the gallery.
openCurrentMainImageInGallery();
openImageInGallery(imageType);
}
private void openCurrentMainImageInGallery() {
ImageType wantedImageType = imageTypes.get(mainImageIndex);
private void openImageInGallery(ImageType imageType) {
File file = null;
switch (wantedImageType) {
switch (imageType) {
case ICON:
file = Utils.retrieveCardImageAsFile(this, loyaltyCardId, ImageLocationType.icon);
break;
case IMAGE_FRONT:
file = Utils.retrieveCardImageAsFile(this, loyaltyCardId, ImageLocationType.front);
break;
@@ -172,6 +175,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
enum ImageType {
NONE,
ICON,
BARCODE,
IMAGE_FRONT,
IMAGE_BACK
@@ -299,7 +303,13 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
binding.bottomAppBarNextButton.setOnClickListener(view -> prevNextCard(true));
binding.bottomAppBarUpdateBalanceButton.setOnClickListener(view -> showBalanceUpdateDialog());
binding.iconContainer.setOnClickListener(view -> Toast.makeText(LoyaltyCardViewActivity.this, R.string.icon_header_click_text, Toast.LENGTH_LONG).show());
binding.iconContainer.setOnClickListener(view -> {
if (Utils.retrieveCardImage(this, loyaltyCard.id, ImageLocationType.icon) != null) {
openImageInGallery(ImageType.ICON);
} else {
Toast.makeText(LoyaltyCardViewActivity.this, R.string.icon_header_click_text, Toast.LENGTH_LONG).show();
}
});
binding.iconContainer.setOnLongClickListener(view -> {
Intent intent = new Intent(getApplicationContext(), LoyaltyCardEditActivity.class);
Bundle bundle = new Bundle();

View File

@@ -13,6 +13,12 @@ import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.OnBackPressedCallback;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
@@ -20,12 +26,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import androidx.activity.OnBackPressedCallback;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.RecyclerView;
import protect.card_locker.databinding.ActivityManageGroupBinding;
public class ManageGroupActivity extends CatimaAppCompatActivity implements ManageGroupCursorAdapter.CardAdapterListener {

View File

@@ -14,17 +14,17 @@ import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.List;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.List;
import protect.card_locker.databinding.ManageGroupsActivityBinding;
public class ManageGroupsActivity extends CatimaAppCompatActivity implements GroupCursorAdapter.GroupAdapterListener {

View File

@@ -32,7 +32,6 @@ import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@@ -344,13 +343,21 @@ public class ScanActivity extends CatimaAppCompatActivity {
}
public void addManually() {
Intent i = new Intent(getApplicationContext(), BarcodeSelectorActivity.class);
if (cardId != null) {
final Bundle b = new Bundle();
b.putString("initialCardId", cardId);
i.putExtras(b);
}
manualAddLauncher.launch(i);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(ScanActivity.this);
builder.setTitle(R.string.add_manually_warning_title);
builder.setMessage(R.string.add_manually_warning_message);
builder.setPositiveButton(R.string.continue_, (dialog, which) -> {
Intent i = new Intent(getApplicationContext(), BarcodeSelectorActivity.class);
if (cardId != null) {
final Bundle b = new Bundle();
b.putString("initialCardId", cardId);
i.putExtras(b);
}
manualAddLauncher.launch(i);
});
builder.setNegativeButton(R.string.cancel, (dialog, which) -> setScannerActive(true));
builder.setOnCancelListener(dialog -> setScannerActive(true));
builder.show();
}
public void addFromImage() {

View File

@@ -8,6 +8,11 @@ import android.graphics.Canvas;
import android.graphics.Color;
import android.os.Bundle;
import androidx.core.content.pm.ShortcutInfoCompat;
import androidx.core.content.pm.ShortcutManagerCompat;
import androidx.core.graphics.ColorUtils;
import androidx.core.graphics.drawable.IconCompat;
import org.jetbrains.annotations.NotNull;
import java.util.Collections;
@@ -15,11 +20,6 @@ import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import androidx.core.content.pm.ShortcutInfoCompat;
import androidx.core.content.pm.ShortcutManagerCompat;
import androidx.core.graphics.ColorUtils;
import androidx.core.graphics.drawable.IconCompat;
class ShortcutHelper {
// Android documentation says that no more than 5 shortcuts
// are supported. However, that may be too many, as not all

View File

@@ -11,16 +11,16 @@ import android.view.Window;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import com.google.android.material.color.MaterialColors;
import com.google.android.material.textview.MaterialTextView;
import com.yalantis.ucrop.UCropActivity;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.ColorUtils;
import androidx.core.view.WindowInsetsControllerCompat;
import com.google.android.material.color.MaterialColors;
import com.google.android.material.textview.MaterialTextView;
import com.yalantis.ucrop.UCropActivity;
public class UCropWrapper extends UCropActivity {
public static final String UCROP_TOOLBAR_TYPEFACE_STYLE = "ucop_toolbar_typeface_style";

View File

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

View File

@@ -1,6 +1,5 @@
package protect.card_locker.preferences;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;

View File

@@ -369,75 +369,106 @@
android:visibility="gone"
tools:visibility="visible">
<!-- Front image -->
<LinearLayout
android:id="@+id/frontImageHolder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingHorizontal="@dimen/inputPadding"
android:paddingTop="@dimen/inputPadding">
android:baselineAligned="false">
<!-- Front image -->
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:id="@+id/frontImageHolder"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/activity_margin"
android:layout_marginTop="@dimen/activity_margin"
android:layout_marginEnd="@dimen/activity_margin"
android:layout_marginBottom="@dimen/activity_margin"
android:paddingHorizontal="@dimen/inputPadding"
app:cardCornerRadius="4dp"
app:cardElevation="0dp">
android:orientation="horizontal"
android:layout_margin="5dp"
style="?attr/materialCardViewElevatedStyle">
<ImageView
android:id="@+id/frontImage"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/frontImageConstraint"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:minHeight="50dp"
android:contentDescription="@string/frontImageDescription"
android:scaleType="fitCenter"
app:srcCompat="@drawable/ic_camera_white"
android:background="?attr/colorPrimary" />
android:layout_height="wrap_content">
<!-- Back image -->
<ImageView
android:id="@+id/frontImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:minHeight="50dp"
android:contentDescription="@string/backImageDescription"
android:scaleType="fitCenter"
app:srcCompat="@drawable/ic_camera_white"
android:background="?attr/colorPrimary"
app:layout_constraintBottom_toTopOf="@id/frontImageDescription"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/frontImageDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="4dp"
android:text="@string/frontImageDescription"
android:textAppearance="?attr/textAppearanceHeadlineSmall"
android:gravity="center"
app:layout_constraintTop_toBottomOf="@id/frontImage"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
<!-- Back image -->
<LinearLayout
android:id="@+id/backImageHolder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingHorizontal="@dimen/inputPadding"
android:paddingTop="@dimen/inputPadding">
<!-- Back image -->
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_weight="1"
android:id="@+id/backImageHolder"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/activity_margin"
android:layout_marginTop="@dimen/activity_margin"
android:layout_marginEnd="@dimen/activity_margin"
android:layout_marginBottom="@dimen/activity_margin"
android:paddingHorizontal="@dimen/inputPadding"
app:cardCornerRadius="4dp"
app:cardElevation="0dp">
android:orientation="horizontal"
android:layout_margin="5dp"
style="?attr/materialCardViewElevatedStyle">
<ImageView
android:id="@+id/backImage"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/backImageConstraint"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:minHeight="50dp"
android:contentDescription="@string/backImageDescription"
android:scaleType="fitCenter"
app:srcCompat="@drawable/ic_camera_white"
android:background="?attr/colorPrimary" />
android:layout_height="wrap_content">
<!-- Back image -->
<ImageView
android:id="@+id/backImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:minHeight="50dp"
android:contentDescription="@string/backImageDescription"
android:scaleType="fitCenter"
app:srcCompat="@drawable/ic_camera_white"
android:background="?attr/colorPrimary"
app:layout_constraintBottom_toTopOf="@id/backImageDescription"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/backImageDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="4dp"
android:text="@string/backImageDescription"
android:textAppearance="?attr/textAppearanceHeadlineSmall"
android:gravity="center"
app:layout_constraintTop_toBottomOf="@id/backImage"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
</TableLayout>

View File

@@ -1,8 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/coordinator_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"

View File

@@ -29,9 +29,9 @@ Cliff Heraldo
Sergio Paredes
Ankit Tiwari
Milan Šalka
Jiri Grönroos
Balázs Meskó
Giovanni Donisi
Jiri Grönroos
Milo Ivir
Skrripy
huuhaa
@@ -45,6 +45,7 @@ mdvhimself
Denis Shilin
Miha Frangež
Silvério Santos
ikanakova
Virginie
Michael Gangolf
rudy3

View File

@@ -1,5 +1,5 @@
<?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">
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="storeName">Nome</string>
<string name="note">Nota</string>
<string name="noMatchingGiftCards">Nun hai nengún resultáu. Prueba a camudar la busca.</string>
@@ -24,10 +24,6 @@
<string name="save">Guardar</string>
<string name="edit">Editar</string>
<string name="delete">Desaniciar</string>
<plurals name="deleteCardsTitle">
<item quantity="one"></item>
<item quantity="other"></item>
</plurals>
<string name="unstar">Quitar de Favoritos</string>
<string name="cancel">Encaboxar</string>
<string name="importFailed">Nun se pudo facer la importación</string>

View File

@@ -283,4 +283,5 @@
<string name="app_name">Catima</string>
<string name="balanceParsingFailed">Virheellinen saldo</string>
<string name="view_online">Näytä verkossa</string>
<string name="settings_follow_sensor_orientation">Kierrä aina (ohittaa järjestelmän asetukset)</string>
</resources>

View File

@@ -95,9 +95,9 @@
<string name="expiryDate">Date dexpiration</string>
<string name="editBarcode">Modifier le code-barres</string>
<string name="card">Carte</string>
<string name="balanceSentence">Solde : <xliff:g xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">%s</xliff:g></string>
<string name="expiryStateSentenceExpired">Expiré : <xliff:g xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">%s</xliff:g></string>
<string name="expiryStateSentence">Expire : <xliff:g xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">%s</xliff:g></string>
<string name="balanceSentence">Solde: <xliff:g>%s</xliff:g></string>
<string name="expiryStateSentenceExpired">Expiré le: <xliff:g>%s</xliff:g></string>
<string name="expiryStateSentence">Expire le: <xliff:g>%s</xliff:g></string>
<string name="settings_disable_lockscreen_while_viewing_card">Empêcher le verrouillage de lécran</string>
<string name="settings_keep_screen_on">Garder lécran allumé</string>
<string name="importVoucherVaultMessage">Sélectionnez votre exportation <i>vouchervault.json</i> de Voucher Vault à importer.

View File

@@ -70,7 +70,7 @@
<string name="noBarcode">बारकोड नहीं है</string>
<string name="scanCardBarcode">बारकोड स्कैन करें</string>
<string name="cardShortcut">कार्ड का सरल उपाय (शॉर्टकट)</string>
<string name="noGiftCards">\"+\" बटन दबाके कार्ड जोड़ें वा मेन्यू से कार्ड आयात करें</string>
<string name="noGiftCards">कार्ड जोड़ने के लिए + प्लस बटन पर क्लिक करें, या ⋮ मेनू से आयात करें</string>
<string name="importExportHelp">तथ्य (डाटा) को बैकअप करना हमें उसे दूसरे डिवाइस में भेजने देता है।</string>
<string name="barcodeImageDescriptionWithType"><xliff:g>%s</xliff:g> का बारकोड</string>
<string name="settings_disable_lockscreen_while_viewing_card">स्क्रीन को लॉक होने से रोकें</string>
@@ -107,7 +107,7 @@
<string name="exportSuccessful">डेटा निर्यात किया गया</string>
<string name="groupsList">समूह: <xliff:g>%s</xliff:g></string>
<plurals name="balancePoints">
<item quantity="one"><xliff:g>%s</xliff:g> अंक</item>
<item quantity="one"><xliff:g>%s</xliff:g> बिंदु</item>
<item quantity="other"><xliff:g>%s</xliff:g> अंक</item>
</plurals>
<string name="privacy_policy_popup_text">निजता नीति नोटिस (कुछ ऐप स्टोर के लिए आवश्यक):
@@ -117,7 +117,7 @@
\nदूसरे Catima ऍप के आयात/निर्यात मेनू से निर्यात बटन दबाकर, पहले catima.zip फाइल को बनाये.</string>
<plurals name="selectedCardCount">
<item quantity="one"><xliff:g>%d</xliff:g> चयनित</item>
<item quantity="other"><xliff:g>%d</xliff:g> चयनित.</item>
<item quantity="other"><xliff:g>%d</xliff:g> चयनित</item>
</plurals>
<string name="groups">समूहों</string>
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">कॉपीराइट © 2019<xliff:g>%d</xliff:g> Sylvia van Os और योगदाता</string>
@@ -214,4 +214,74 @@
<string name="show_balance">मात्रा दिखाओ</string>
<string name="nextCard">अगला</string>
<string name="rate_this_app">इस ऐप को रेट करें</string>
<string name="settings_system_locale">सिस्टम</string>
<string name="setIcon">थंबनेल सेट करें</string>
<string name="sort_by_expiry">समाप्ति</string>
<string name="sort_by">इसके अनुसार क्रमबद्ध करें</string>
<string name="importCards">कार्ड आयात करें</string>
<string name="add_a_card_in_a_different_way">कार्ड को भिन्न तरीके से जोड़ें</string>
<string name="settings_locale">भाषा</string>
<string name="settings_oled_dark">गहरे रंग की थीम के लिए शुद्ध काले रंग की पृष्ठभूमि</string>
<string name="selectColor">रंग चुनो</string>
<string name="app_contributors">इसके द्वारा संभव बनाया गया: <xliff:g id="app_contributors">%s</xliff:g></string>
<string name="sort">क्रमबद्ध करें</string>
<string name="show_note">नोट दिखाएँ</string>
<string name="settings_follow_sensor_orientation">हमेशा घुमाएँ (सिस्टम सेटिंग्स को अनदेखा करता है)</string>
<string name="importFidmeMessage">आयात करने के लिए FidMe से अपना <i>fidme-export-request-xxxxxx.zip</i> निर्यात चुनें, और बाद में मैन्युअल रूप से बारकोड प्रकार चुनें।
\nडेटा सुरक्षा चुनकर और फिर पहले मेरा डेटा निकालें दबाकर इसे अपनी FidMe प्रोफ़ाइल से बनाएं।</string>
<string name="importLoyaltyCardKeychainMessage">आयात करने के लिए लॉयल्टी कार्ड कीचेन से अपना <i>LoyaltyCardKeychen.csv</i> निर्यात चुनें।
\nपहले वहां एक्सपोर्ट दबाकर लॉयल्टी कार्ड कीचेन में आयात/निर्यात मेनू से इसे बनाएं।</string>
<string name="updateBarcodeQuestionText">आपने आईडी बदल दी. क्या आप समान मान का उपयोग करने के लिए बारकोड को भी अपडेट करना चाहते हैं?</string>
<string name="exportPassword">अपने निर्यात की सुरक्षा के लिए एक पासवर्ड सेट करें (वैकल्पिक)</string>
<string name="turn_flashlight_off">टॉर्च बंद करें</string>
<string name="settings_oled_dark_summary">OLED डिस्प्ले पर बैटरी का उपयोग कम होता है</string>
<string name="showMoreInfo">जानकारी दिखाएँ</string>
<string name="updateBalance">शेष राशि अद्यतन करें</string>
<string name="failedToRetrieveImageFile">छवि फ़ाइल पुनः प्राप्त करने में विफल</string>
<string name="version_history">संस्करण इतिहास</string>
<string name="archive">पुरालेख</string>
<string name="archived">कार्ड संग्रहीत</string>
<string name="barcodeLongPressMessage">गैलरी ऐप में केवल छवियां ही खोली जा सकती हैं</string>
<string name="license">परवाना</string>
<string name="source_repository">स्रोत रिपोजिटरी</string>
<string name="include_if_asking_support">यदि आप सहायता का अनुरोध करना चाहते हैं, तो निम्नलिखित जानकारी शामिल करें:</string>
<string name="starred">तारांकित</string>
<string name="unarchived">कार्ड अनारक्षित</string>
<plurals name="groupCardCountWithArchived">
<item quantity="one"><xliff:g>%1$d</xliff:g> कार्ड (<xliff:g id="archivedCount">%2$d</xliff:g> संग्रहीत)</item>
<item quantity="other"><xliff:g>%1$d</xliff:g> कार्ड (<xliff:g id="archivedCount">%2$d</xliff:g> संग्रहीत)</item>
</plurals>
<plurals name="viewArchivedCardsWithCount">
<item quantity="one">संग्रह देखें (<xliff:g>%1$d</xliff:g> कार्ड)</item>
<item quantity="other">संग्रह देखें (<xliff:g>%1$d</xliff:g> कार्ड)</item>
</plurals>
<string name="updateBalanceTitle">आपने कितना खर्च किया?</string>
<string name="chooseValidFromDate">दिनांक से वैध चुनें</string>
<string name="show_name_below_image_thumbnail">छवि थंबनेल के नीचे नाम दिखाएँ</string>
<string name="show_archived_cards">संग्रहीत कार्ड दिखाएँ</string>
<string name="manually_enter_barcode_instructions">अपने कार्ड पर आईडी नंबर या टेक्स्ट दर्ज करें और अपने कार्ड पर मौजूद बारकोड की तरह दिखने वाले बारकोड को दबाएं।</string>
<string name="welcome">कैटिमा में आपका स्वागत है</string>
<string name="previousCard">पिछला</string>
<string name="failedLaunchingPhotoPicker">कोई समर्थित गैलरी ऐप नहीं मिल सका</string>
<string name="reverse">...उल्टे क्रम में</string>
<string name="height">ऊंचाई:</string>
<string name="importVoucherVaultMessage">आयात करने के लिए वाउचर वॉल्ट से अपना <i>vouchervault.json</i> निर्यात चुनें।
\nसबसे पहले वाउचर वॉल्ट में एक्सपोर्ट दबाकर इसे बनाएं।</string>
<string name="turn_flashlight_on">टॉर्च चालू करें</string>
<string name="sort_by_name">नाम</string>
<string name="credits">श्रेय</string>
<string name="unarchive">असंग्रहित</string>
<string name="failedToOpenUrl">सबसे पहले एक वेब ब्राउज़र इंस्टॉल करें</string>
<string name="currentBalanceSentence">वर्तमान शेष: <xliff:g>%s</xliff:g></string>
<string name="newBalanceSentence">नया शेष: <xliff:g>%s</xliff:g></string>
<string name="validFromDate">से मान्य</string>
<string name="validFromSentence">यहां से मान्य: <xliff:g>%s</xliff:g></string>
<string name="switchToFrontImage">सामने वाली छवि पर स्विच करें</string>
<string name="switchToBackImage">पिछली छवि पर स्विच करें</string>
<string name="switchToBarcode">बारकोड पर स्विच करें</string>
<string name="openFrontImageInGalleryApp">गैलरी ऐप में सामने वाली छवि खोलें</string>
<string name="openBackImageInGalleryApp">गैलरी ऐप में पिछली छवि खोलें</string>
<string name="setBarcodeHeight">बारकोड ऊंचाई सेट करें</string>
<string name="icon_header_click_text">थंबनेल संपादित करने के लिए देर तक दबाएँ</string>
<string name="enter_card_id">अपने कार्ड पर आईडी नंबर या पाठ दर्ज करें</string>
</resources>

View File

@@ -1,5 +1,5 @@
<?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">
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="storeName">Nama</string>
<string name="note">Keterangan</string>
<string name="delete">Hapus</string>

View File

@@ -1,5 +1,5 @@
<?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">
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="action_add">Bæta</string>
<string name="noBarcode">Nei strikamerkið</string>
<string name="action_search">Leita að</string>

View File

@@ -1,5 +1,5 @@
<?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">
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="wrongValueForBarcodeType">選択したバーコード形式ではこの番号は使用できません</string>
<string name="unsupportedBarcodeType">このバーコード形式は表示できません。将来のアップデートにより対応するかもしれません。</string>
<string name="setBarcodeId">バーコード番号を設定</string>
@@ -67,8 +67,6 @@
<string name="debug_version_fmt">Version: <xliff:g id="version">%s</xliff:g></string>
<string name="about_title_fmt">About <xliff:g id="app_name">%s</xliff:g></string>
<string name="app_license">Copylefted libre software, licensed GPLv3+</string>
<string name="app_copyright_old">Based on Loyalty Card Keychain
\ncopyright © 20162020 Branden Archer.</string>
<string name="app_resources">Libre third-party resources: <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="about">Catimaについて</string>
<string name="importOptionApplicationButton">外部のアプリを使う</string>
@@ -152,15 +150,15 @@
</plurals>
<string name="barcodeImageDescriptionWithType">バーコード形式の画像 <xliff:g>%s</xliff:g></string>
<string name="app_contributors">Made possible by: <xliff:g id="app_contributors">%s</xliff:g></string>
<string name="settings_brown_theme">Brown</string>
<string name="settings_grey_theme">Gray</string>
<string name="settings_green_theme">Green</string>
<string name="settings_sky_blue_theme">Sky Blue</string>
<string name="settings_blue_theme">Blue</string>
<string name="settings_violet_theme">Violet</string>
<string name="settings_magenta_theme">Magenta</string>
<string name="settings_pink_theme">Pink</string>
<string name="settings_catima_theme">Catima</string>
<string name="settings_brown_theme">ブラウン/茶色</string>
<string name="settings_grey_theme">グレー/灰色</string>
<string name="settings_green_theme">グリーン/緑色</string>
<string name="settings_sky_blue_theme">スカイブルー/水色</string>
<string name="settings_blue_theme">ブルー/青色</string>
<string name="settings_violet_theme">バイオレット/菫色</string>
<string name="settings_magenta_theme">マゼンタ/赤紫色</string>
<string name="settings_pink_theme">ピンク/桃色</string>
<string name="settings_catima_theme">Catimaテーマ</string>
<string name="settings_theme_color">テーマカラー</string>
<string name="settings_system_locale">システムに従う</string>
<string name="settings_locale">言語</string>
@@ -186,7 +184,7 @@
<string name="group_updated">グループを更新しました</string>
<string name="editGroup">グループ編集: <xliff:g>%s</xliff:g></string>
<string name="selectColor">色を選択</string>
<string name="setIcon">アイコン設定</string>
<string name="setIcon">サムネイルを設定</string>
<string name="group_edit">グループ編集</string>
<string name="group_name_already_in_use">このグループ名は既に使用されています</string>
<string name="group_name_is_empty">空欄にすることはできません</string>
@@ -198,11 +196,14 @@
<string name="chooseValidFromDate">有効期限を選択</string>
<string name="anyDate">無期限</string>
<string name="app_name">Catima</string>
<string name="settings_card_orientation">バーコードの</string>
<string name="settings_card_orientation">バーコードの向</string>
<string name="settings_display_barcode_max_brightness_summary">仕事をするためにいくつかのスキャナーが必要</string>
<string name="settings_follow_system_orientation">フォローシステム</string>
<string name="settings_follow_system_orientation">システムに従う</string>
<string name="storageReadPermissionRequired">このアクションのためにストレージの読み取り権限を許可…</string>
<string name="cameraPermissionDeniedTitle">カメラへアクセスできません</string>
<string name="settings_follow_sensor_orientation">いつでも回転(システム設定を無視)</string>
<string name="settings_follow_sensor_orientation">自動回転 (システムを無視)</string>
<string name="cameraPermissionRequired">このアクションのためにカメラへのアクセス権限の許可…</string>
<string name="settings_landscape_orientation"></string>
<string name="settings_portrait_orientation"></string>
<string name="noGiftCardsGroup">いくつかのカードを作って、それらをこのグループにアサインします。</string>
</resources>

View File

@@ -78,7 +78,7 @@
<string name="points">Puncte</string>
<string name="cardShortcut">Scurtătură de card</string>
<string name="scanCardBarcode">Scanați codul de bare</string>
<string name="importExportHelp">Copierea de rezervă a datelor vă permite să le mutați pe un alt dispozitiv</string>
<string name="importExportHelp">Copierea de rezervă a datelor vă permite să le mutați pe un alt dispozitiv.</string>
<string name="exportSuccessfulTitle">Exportată</string>
<string name="exportFailedTitle">Export eșuat</string>
<string name="importOptionFilesystemExplanation">Alegeți un anumit fișier din sistemul de fișiere.</string>
@@ -290,4 +290,5 @@
<string name="settings_keep_screen_on_summary">Dezactivează temporizatorul de ecran când vizualizați un card</string>
<string name="rate_this_app">Acordați o recenzie acestei aplicații</string>
<string name="credits">Contribuabili</string>
<string name="settings_follow_sensor_orientation">Rotește întotdeauna (ignora setările de sistem)</string>
</resources>

View File

@@ -87,7 +87,7 @@
<string name="app_license">Вільне копілефт програмне забезпечення, ліцензоване GPLv3+</string>
<string name="app_copyright_old">Створено на основі Loyalty Card Keychain
\nавторські права © 20162020 Branden Archer</string>
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Авторські права © 2019<xliff:g>%d</xliff:g> Sylvia van Os та вкладники</string>
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Авторські права © 2019<xliff:g>%d</xliff:g> Sylvia van Os та співавтори</string>
<string name="about">Про застосунок</string>
<string name="importOptionApplicationButton">Використати інший застосунок</string>
<string name="importOptionApplicationExplanation">Використайте інший застосунок чи ваш улюблений файловий менеджер для відкриття файлу.</string>
@@ -131,7 +131,7 @@
<string name="action_search">Пошук</string>
<string name="turn_flashlight_off">Вимкнути спалах</string>
<string name="turn_flashlight_on">Увімкнути спалах</string>
<string name="failedGeneratingShareURL">Збій створення URL обміну. Будь ласка повідомте про цю помилку.</string>
<string name="failedGeneratingShareURL">Збій створення URL обміну. Будь ласка повідомте про це.</string>
<string name="passwordRequired">Будь ласка введіть пароль</string>
<string name="takePhoto">Зробити світлину</string>
<string name="removeImage">Видалити зображення</string>
@@ -140,9 +140,9 @@
<string name="photos">Світлини</string>
<string name="backImageDescription">Тильна сторона</string>
<string name="frontImageDescription">Лицьова сторона</string>
<string name="importStocardMessage">Виберіть експорт <i> ***.zip </i> зі Stocard для імпорту.
<string name="importStocardMessage">Виберіть експорт <i> ***.zip </i> з Stocard для імпорту.
\nОтримайте його, надіславши електронного листа support@stocardapp.com з проханням експортувати ваші дані.</string>
<string name="importStocard">Імпорт із Stocard</string>
<string name="importStocard">Імпорт з Stocard</string>
<plurals name="selectedCardCount">
<item quantity="one">Обрано: <xliff:g>%d</xliff:g></item>
<item quantity="few">Обрані: <xliff:g>%d</xliff:g></item>
@@ -280,13 +280,13 @@
<string name="settings_keep_screen_on_summary">Вимикає тайм-аут екрана під час перегляду картки</string>
<string name="settings_disable_lockscreen_while_viewing_card_summary">Вимикає блокування екрана під час перегляду картки</string>
<string name="settings_allow_content_provider_read_title">Дозволити іншим застосункам доступ до моїх даних</string>
<string name="settings_oled_dark_summary">Зменшує використання батареї на екранах з OLED</string>
<string name="settings_oled_dark_summary">Зменшує використання батареї на OLED екранах</string>
<string name="settings_category_title_cards">Картки</string>
<string name="settings_category_title_general">Загальні</string>
<string name="settings_category_title_privacy">Конфіденційність</string>
<string name="view_online">Переглянути онлайн</string>
<string name="action_display_options">Налаштування дисплея</string>
<string name="app_copyright_short">Авторські права © Sylvia van Os та вкладники</string>
<string name="action_display_options">Параметри відображення</string>
<string name="app_copyright_short">Авторські права © Sylvia van Os та співавтори</string>
<string name="show_archived_cards">Показати архівовані картки</string>
<string name="card_id_must_not_be_empty">ID картки не повинен бути порожнім</string>
<string name="balanceParsingFailed">Неправильний баланс</string>

View File

@@ -245,7 +245,7 @@
<item quantity="other"><xliff:g>%d</xliff:g> thẻ</item>
</plurals>
<plurals name="selectedCardCount">
<item quantity="other">Chọn <xliff:g>%d</xliff:g></item>
<item quantity="other"><xliff:g>%d</xliff:g> đã được chọn</item>
</plurals>
<string name="version_history">Lịch Sử Phiên Bản</string>
<string name="note">Ghi chú</string>
@@ -276,5 +276,5 @@
<string name="failedToRetrieveImageFile">Không thể truy xuất tệp hình ảnh</string>
<string name="app_contributors">Được thực hiện bởi: <xliff:g id="app_contributors">%s</xliff:g></string>
<string name="app_license">Phần mềm libre được bảo vệ bản quyền theo giấy phép GPLv3+.</string>
<string name="settings_follow_sensor_orientation">Luôn luôn xoay (bỏ qua cài đặt hệ thống)</string>
<string name="settings_follow_sensor_orientation">Luôn xoay (bỏ qua thiết đặt hệ thống)</string>
</resources>

View File

@@ -1,5 +1,5 @@
<?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">
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="action_search">搜尋</string>
<string name="action_add">新增</string>
<string name="noGiftCards">點選 + 按鈕以新增卡片,或從 ⋮ 選單中匯入。</string>
@@ -275,4 +275,5 @@
<string name="enter_card_id">輸入卡片上的 ID 或文字</string>
<string name="settings_display_barcode_max_brightness_summary">一些條碼掃描器需要此設定方能運作</string>
<string name="field_must_not_be_empty">欄位不能為空</string>
<string name="settings_follow_sensor_orientation">始終旋轉(忽略系統設定)</string>
</resources>

View File

@@ -335,4 +335,7 @@
<string name="add_a_card_in_a_different_way">Add a card in a different way</string>
<string name="field_must_not_be_empty">Field must not be empty</string>
<string name="manually_enter_barcode_instructions">Enter the ID number or text on your card and press the barcode that looks like the one on your card.</string>
<string name="add_manually_warning_title">Scanning is recommended</string>
<string name="add_manually_warning_message">For some stores, the barcode value differs from the number written on the card. Because of this, entering a barcode manually may not always work. It is strongly recommended to scan the barcode with your camera instead. Do you still want to continue?</string>
<string name="continue_">Continue</string>
</resources>

View File

@@ -1,9 +1,8 @@
package protect.card_locker;
import static org.junit.Assert.assertEquals;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import org.junit.Test;
@@ -11,12 +10,6 @@ import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.shadows.ShadowLooper;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.robolectric.Shadows.shadowOf;
@RunWith(RobolectricTestRunner.class)

View File

@@ -1,5 +1,11 @@
package protect.card_locker;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
@@ -13,19 +19,12 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Currency;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
@RunWith(RobolectricTestRunner.class)
public class DatabaseTest {
private SQLiteDatabase mDatabase;

View File

@@ -1,5 +1,8 @@
package protect.card_locker;
import static org.junit.Assert.assertEquals;
import static org.robolectric.Shadows.shadowOf;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
@@ -14,9 +17,6 @@ import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import static org.junit.Assert.assertEquals;
import static org.robolectric.Shadows.shadowOf;
@RunWith(RobolectricTestRunner.class)
public class ImportExportActivityTest {
private void registerIntentHandler(String handler) {

View File

@@ -1,5 +1,11 @@
package protect.card_locker;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.robolectric.Shadows.shadowOf;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
@@ -45,12 +51,6 @@ import protect.card_locker.importexport.ImportExportResultType;
import protect.card_locker.importexport.MultiFormatExporter;
import protect.card_locker.importexport.MultiFormatImporter;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.robolectric.Shadows.shadowOf;
@RunWith(RobolectricTestRunner.class)
public class ImportExportTest {
private Activity activity;

View File

@@ -1,5 +1,9 @@
package protect.card_locker;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
@@ -19,10 +23,6 @@ import java.math.BigDecimal;
import java.util.Currency;
import java.util.Date;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
@RunWith(RobolectricTestRunner.class)
public class ImportURITest {
private ImportURIHelper importURIHelper;

View File

@@ -1,5 +1,9 @@
package protect.card_locker;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
import android.app.Activity;
import android.content.SharedPreferences;
import android.database.Cursor;
@@ -8,6 +12,9 @@ import android.graphics.Color;
import android.view.View;
import android.widget.TextView;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.preference.PreferenceManager;
import com.google.zxing.BarcodeFormat;
import org.junit.Before;
@@ -20,13 +27,6 @@ import org.robolectric.shadows.ShadowLog;
import java.math.BigDecimal;
import java.util.Currency;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.preference.PreferenceManager;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
@RunWith(RobolectricTestRunner.class)
public class LoyaltyCardCursorAdapterTest {
private Activity activity;

View File

@@ -1,11 +1,19 @@
package protect.card_locker;
import static android.os.Looper.getMainLooper;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.robolectric.Shadows.shadowOf;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
@@ -27,9 +35,12 @@ import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.google.android.material.bottomappbar.BottomAppBar;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.tabs.TabLayout;
@@ -59,21 +70,6 @@ import java.time.temporal.ChronoUnit;
import java.util.Currency;
import java.util.Date;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.widget.TextViewCompat;
import androidx.preference.PreferenceManager;
import static android.os.Looper.getMainLooper;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.robolectric.Shadows.shadowOf;
@RunWith(RobolectricTestRunner.class)
public class LoyaltyCardViewActivityTest {
private final String BARCODE_DATA = "428311627547";

View File

@@ -1,5 +1,10 @@
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.robolectric.Shadows.shadowOf;
import android.app.Activity;
import android.content.ComponentName;
import android.content.SharedPreferences;
@@ -10,6 +15,8 @@ import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.tabs.TabLayout;
import com.google.zxing.BarcodeFormat;
@@ -18,20 +25,12 @@ import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowActivity;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import androidx.recyclerview.widget.RecyclerView;
import static android.os.Looper.getMainLooper;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.robolectric.Shadows.shadowOf;
@RunWith(RobolectricTestRunner.class)
public class MainActivityTest {
private SharedPreferences prefs;

View File

@@ -9,3 +9,4 @@
6. Upload the APK to Google Play Open Testing
7. Push the version update: `git add CHANGELOG.md app/build.gradle.kts && git commit -m "Release Catima <VERSION>" && git push`
8. Create a new release on GitHub and attach the `app-release.apk` and `SHA256SUMS` files
9. After the release has been approved on Google Play Production, update the metadata there: `bundle exec fastlane supply --version_code <VERSION_CODE>`

View File

@@ -0,0 +1 @@
- Cílový systém Android 14

View File

@@ -13,7 +13,7 @@ S tímto nezbytným nástrojem pro každodenní nošení (EDC) můžete nahradi
- Sdílejte kupony, exkluzivní nabídky, propagační kódy nebo karty a kódy pomocí libovolné aplikace.
- Tmavý motiv a možnosti zpřístupnění pro uživatele se zrakovým postižením.
- Vytvořeno pro všechny komunitou svobodného softwaru.
- Lokalizované ručně prováděné překlady pro více než 20 jazyků.
- Lokalizované ručně prováděné překlady pro více než 40 jazyků.
- Zdarma, podporováno příspěvky komunity.
- Používejte, studujte, měňte a sdílejte dle libosti <i>se všemi</i>.
- Nejen svobodný software / open source. <i>Copylefted</i> svobodný software (GPLv3+) na správu karet.

View File

@@ -1,5 +1,5 @@
- Wenn du eine Karten-ID bearbeitest wird die vorhandene ID zu Beginn ausgefüllt. (Pull #94 (https://github.com/brarcher/loyalty-card-locker/pull/94))
- Wenn du eine Karten-ID bearbeitest, wird die vorhandene ID zu Beginn ausgefüllt. (Pull #94 (https://github.com/brarcher/loyalty-card-locker/pull/94))
- Begrenzen der Breite der erzeugten Barcodes, um die Speichernutzung und Fehler durch Speicherüberschreitung zu reduzieren. (Pull #103 (https://github.com/brarcher/loyalty-card-locker/pull/103))
- Beim Bearbeiten einer Karte wird die Schaltfläche "Karte eingeben" in "Karte bearbeiten" geändert, wenn die Karten-ID existiert. (Pull #104 (https://github.com/brarcher/loyalty-card-locker/pull/104))
- Beim Bearbeiten einer Karte wird die Schaltfläche "Karte eingeben" in "Karte bearbeiten" geändert, wenn bereits eine Karten-ID existiert. (Pull #104 (https://github.com/brarcher/loyalty-card-locker/pull/104))
- Farbschema angepasst so, dass mit dem App-Symbol kompatibel ist und das Layout beim Anzeigen einer Karte übersichtlicher gestaltet. (Pull #107 (https://github.com/brarcher/loyalty-card-locker/pull/107))
- Hinzufügen eines Intro-Assistenten, der beim ersten Start der App gestartet wird. (Pull #108 (https://github.com/brarcher/loyalty-card-locker/pull/108))

View File

@@ -0,0 +1 @@
- auf Android 14 richten

View File

@@ -13,9 +13,9 @@ Mit diesem unverzichtbaren Programm schaffst du Platz für Bargeld statt für nu
- Teile Gutscheine, exklusive Angebote, Werbeaktionscodes oder Karten und sonstige Codes mit allen Apps.
- Dunkles Design und Barrierefreiheit für sehbehinderte Nutzer.
- Von der Freien-Software-Gemeinschaft für alle Menschen gemacht.
- Lokalisierte, menschliche Übersetzungen für mehr als 20 Sprachen.
- Lokalisierte, menschliche Übersetzungen für mehr als 40 Sprachen.
- Kostenlos, unterstützt durch Gemeinschaftsbeiträge.
- Verwende, prüfe, ändere und teile die App, wie du willst; <i>mit Allen</i>.
- Verwende, prüfe, ändere und teile die App, wie du willst; <i>mit allen</i>.
- Nicht nur freie und quelloffene Software. Eine freie, <i>Copylefted</i> Software-Kartenverwaltung (GPLv3+).
Vereinfache dein Leben und deine Einkäufe, und verliere nie wieder einen Beleg, eine Gutscheinkarte oder ein Flugticket.

View File

@@ -0,0 +1,3 @@
- Target Android 14
- Open card icon in gallery on touch
- Improve design of Photos tab in edit view

View File

@@ -13,7 +13,7 @@ With this essential everyday carry (EDC) tool you can replace useless plastic wi
- Share coupons, exclusive offers, promo codes, or cards and codes using any app.
- Dark theme and accessibility options for vision impaired users.
- Made for everyone by the libre software community.
- Localized hand-made translations for 20+ languages.
- Localized hand-made translations for 40+ languages.
- Gratis, supported by community contributions.
- Use, study, change and share it as you wish; <i>with all</i>.
- Not only Free Software / Open Source. <i>Copylefted</i> libre software (GPLv3+) card management.

View File

@@ -1,5 +1,5 @@
- Cuando se edita un ID de tarjeta, se pre-rellena ahora el ID existente al empezar. (pull #94 (https://github.com/brarcher/loyalty-card-locker/pull/94))
- Restricción del ancho de los códigos de barras generados para reducir el uso de memoria y los errores de memoria agotada. (pull #103 (https://github.com/brarcher/loyalty-card-locker/pull/103))
-En la edición de tarjeta, cambio del botón "Introducir Tarjeta" por "Editar Tarjeta" si ya existe un ID de tarjeta. (pull #104 (https://github.com/brarcher/loyalty-card-locker/pull/104))
-Cambio de la combinación de colores para ser más tenue y compatible con el icono de la aplicación, y modificación de la distribución al ver una tarjeta por una más limpia. (pull #107 (https://github.com/brarcher/loyalty-card-locker/pull/107))
-Adición de un asistente de inicio que se ejecute en el primer uso de la aplicación. (pull #108 (https://github.com/brarcher/loyalty-card-locker/pull/108))
- Al editar un ID de tarjeta, pre-poblar el ID existente para comenzar. (pull #94 (https://github.com/brarcher/loyalty-card-locker/pull/94))
- Limitar el ancho de los códigos de barras generados para reducir el uso de memoria y los errores de memoria. (pull #103 (https://github.com/brarcher/loyalty-card-locker/pull/103))
- Cuando edite una tarjeta, cambie el botón "Enter Card" para decir "Editar Tarjeta" si ya existe una tarjeta ID. (pull #104 (https://github.com/brarcher/loyalty-card-locker/pull/104))
- Cambiar el esquema de color para que sea más suave y compatible con el icono de la aplicación, y cambiar el diseño al ver una tarjeta para que sea más limpio. (pull #107 (https://github.com/brarcher/loyalty-card-locker/pull/107))
- Añadir un asistente de introducción que se inicia en el primer lanzamiento de la aplicación. (pull #108 (https://github.com/brarcher/loyalty-card-locker/pull/108))

View File

@@ -1,22 +1,22 @@
Detenga la búsqueda de tarjetas de recompensa de plástico durante el pago en la tienda o en la tienda web.
<b>Escanea códigos de barras a tu dispositivo usando su cámara, olvídate de las tarjetas.</b>
Deje de buscar tarjetas de recompensa de plástico al pasar por caja en tiendas o tiendas web.
<b>Escanea códigos de barras en tu dispositivo usando su cámara, olvídate de las tarjetas.</b>
Olvídese de su billetera o manténgala ultraligera para objetos de valor.
Olvídese de la cartera, o manténgala ultraligera para los objetos de valor.
Con esta herramienta esencial de transporte diario (EDC), puede reemplazar el plástico inútil con dinero en efectivo.
Con esta herramienta esencial para llevar a diario (EDC) puede sustituir el plástico inútil por dinero en efectivo.
- Evita espiar con muy pocos permisos. Sin acceso a Internet y sin anuncios.
- Añade tarjetas o códigos con nombres y colores personalizables.
- Entrada de código manual si no hay un código de barras para almacenar o no se puede usar.
- Importación de tarjetas y códigos desde ficheros, Catima, FidMe, Llavero Tarjeta Fidelización, Stocard y Bóveda de Vales.
- Haga una copia de seguridad de todas sus tarjetas y transfiéralas a un nuevo dispositivo si lo desea.
- Comparta cupones, ofertas exclusivas, códigos promocionales o tarjetas y códigos usando cualquier aplicación.
- Evite espiar con muy pocos permisos. Sin acceso a Internet y sin anuncios.
- Añadir tarjetas o códigos con nombres y colores personalizables.
- Entrada manual de código si no hay código de barras para almacenar, o no se puede utilizar.
- Importar tarjetas y códigos de archivos, Catima, FidMe, Loyalty Card Keychain, Stocard y Voucher Vault.
- Haga una copia de seguridad de todas sus tarjetas y transferirlas a un nuevo dispositivo si lo desea.
- Comparte cupones, ofertas exclusivas, códigos promocionales o tarjetas y códigos utilizando cualquier aplicación.
- Tema oscuro y opciones de accesibilidad para usuarios con problemas de visión.
- Hecho para todos por la comunidad de software libre.
- Traducciones hechas a mano localizadas para más de 20 idiomas.
- Gratis, apoyado por contribuciones de la comunidad.
- Úsalo, estúdialo, cámbialo y compártelo como quieras; <i>con todo</i>.
- No solo Software Libre / Código Abierto. Gestión de tarjetas de software libre (GPLv3+) con <i>copyleft</i>.
- Hecho para todos por la comunidad del software libre.
- Traducciones localizadas a mano para más de 40 idiomas.
- Gratis, gracias a las contribuciones de la comunidad.
- Utilízala, estúdiala, modifícala y compártela como quieras; <i>con todos</i>.
- No sólo Software Libre / Open Source. <i>Copylefted</i> software libre (GPLv3+) gestión de tarjetas.
Simplifique su vida y sus compras, y nunca más pierda un recibo en papel, una tarjeta de regalo de pago en la tienda o un boleto de avión.
Llévate todas tus recompensas y bonificaciones contigo y ahorra sobre la marcha.
Simplifique su vida y sus compras, y no vuelva a perder un recibo en papel, una tarjeta regalo de pago en tienda o un billete de avión.
Llévate todos tus premios y bonificaciones contigo y ahorra sobre la marcha.

View File

@@ -0,0 +1,5 @@
- कार्ड आईडी संपादित करते समय, शुरू करने के लिए मौजूदा आईडी को पहले से भरें। (खींचें #94 (https://github.com/brarcher/loyalty-card-locker/pull/94))
- मेमोरी उपयोग को कम करने और मेमोरी त्रुटियों को दूर करने के लिए जेनरेट किए गए बारकोड की चौड़ाई सीमित करें। (#103 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/103))
- कार्ड संपादित करते समय, यदि कार्ड आईडी पहले से मौजूद है तो "कार्ड दर्ज करें" बटन को बदलकर "कार्ड संपादित करें" कहें। (#104 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/104))
- रंग योजना को नरम और ऐप आइकन के साथ संगत करने के लिए बदलें, और कार्ड को साफ-सुथरा देखने के लिए लेआउट बदलें। (#107 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/107))
- एक परिचय विज़ार्ड जोड़ें जो ऐप के पहले लॉन्च पर लॉन्च होता है। (#108 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/108))

View File

@@ -1,4 +1,4 @@
-लम्बे दबाव पर गैलरी में इमेज को खोलें
-संवादों में मटेरियल स्टाइल लागू करें
-Catima पर इमेज साझा करके कार्ड बनाने का समर्थन
-कार्ड स्क्रीन पर त्वरित खर्च बटन जोड़ें
- लंबे समय तक दबाकर रखने पर गैलरी में छवि खोलें
- संवाद में सामग्री शैली लागू करें
- कैटिमा में एक छवि साझा करके ग्रीटिंग कार्ड का समर्थन करें
- कार्ड स्क्रीन में त्वरित खर्च बटन जोड़ें

View File

@@ -0,0 +1,2 @@
- अनुमति न देने वाले त्वरित व्यय संवाद को ठीक करें, विभाजक
- फ़ाइल प्रबंधक से छवि लोड करने का समर्थन करें

View File

@@ -0,0 +1 @@
- कार्ड अवलोकन में वास्तव में कौन सा विवरण देखना है, इसका चयन करने में सहायता

View File

@@ -0,0 +1,4 @@
- बारकोड प्रतिपादन में सुधार
- बाहरी ऐप्स के साथ बुनियादी अंतरसंचालनीयता (एंड्रॉइड 6.0+)
- पुनर्गठित सेटिंग्स स्क्रीन
- कुछ ब्राउज़रों से आयात को ठीक करें जो शेयर यूआरएल में पिछला / जोड़ते हैं

View File

@@ -0,0 +1,3 @@
- बेहतर कैटिमा आयातक (आयात करते समय गुम हुए कार्डों को ठीक करता है)
- वैध दिनांक/समाप्ति तिथि निर्धारित करते समय स्क्रीन को घुमाते समय क्रैश को ठीक करें
- यूआई में मामूली बदलाव

View File

@@ -0,0 +1,2 @@
- v0.11 में बदलाव से बारकोड ड्राइंग की मेमोरी का उपयोग कम हो गया, लेकिन बारकोड आयाम प्रभावित हुआ। मेमोरी उपयोग को कम करते हुए बारकोड आयामों को बनाए रखने के लिए इसे अब बदल दिया गया है। (खींचें #126 (https://github.com/brarcher/loyalty-card-locker/pull/126))
- जर्मन और फ़्रेंच अनुवाद अपडेट करें। (#122 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/122), #124 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/124) , #125 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/125))

View File

@@ -0,0 +1,4 @@
- मामूली यूआई सुधार
- कार्ड संपादन स्क्रीन को घुमाते समय रीसेट होने वाली वैध और समाप्ति तिथियों को ठीक करें
- कलर पिकर दिखाए जाने पर स्क्रीन को घुमाते समय क्रैश को ठीक करें
- स्टोकार्ड आयात ठीक करता है

View File

@@ -0,0 +1,3 @@
- "संग्रह मोड" को "प्रदर्शन विकल्प" (पहले "विवरण दिखाएं") मेनू में ले जाएं
- एंड्रॉइड 13 प्रति-ऐप भाषा समर्थन
- ऐप में गोपनीयता नीति, चेंजलॉग और लाइसेंस एम्बेड करें

View File

@@ -0,0 +1,6 @@
- "कार्ड जोड़ें" वर्कफ़्लो को परिष्कृत करें
- सत्यापन प्रवाह में सुधार
- संग्रह दिखाते समय टॉगल करते समय अमान्य यूआई स्थिति पैदा करने वाले एज केस को ठीक करें
- नेविगेशन बार के लिए थीम या कार्ड रंग का उपयोग करें (एंड्रॉइड 8.1+)
- अद्यतन वैधता और समाप्ति तिथि चयनकर्ता
- हमेशा घुमाने का विकल्प जोड़ें (सिस्टम सेटिंग्स को अनदेखा करें)

View File

@@ -0,0 +1 @@
- लक्ष्य एंड्रॉइड 14

View File

@@ -0,0 +1,3 @@
- कार्ड प्रदर्शित करते समय स्क्रीन रोटेशन लॉक मेनू विकल्प जोड़ें। यदि लॉक किया गया है, तो स्क्रीन अपने "प्राकृतिक" ओरिएंटेशन में परिवर्तित हो जाएगी और आगे स्क्रीन रोटेशन अवरुद्ध हो जाएगा। (खींचें #128 (https://github.com/brarcher/loyalty-card-locker/pull/128))
- यदि कोई कार्ड मुख्य स्क्रीन से चुना गया है लेकिन लोड नहीं किया जा सकता है, तो एप्लिकेशन शान से विफल हो जाता है और एक संदेश पोस्ट करता है। (खींचें #132 (https://github.com/brarcher/loyalty-card-locker/pull/132))
- उस मामले को ठीक करें जहां इंट्रो विज़ार्ड के लिए लेआउट आईडी नहीं मिल सके। (खींचें #128 (https://github.com/brarcher/loyalty-card-locker/pull/128))

View File

@@ -0,0 +1,2 @@
- ऐप शॉर्टकट्स (एंड्रॉइड 7.1+) के लिए समर्थन जोड़ें, जहां सबसे हाल ही में उपयोग किए गए कार्ड शॉर्टकट के रूप में दिखाई देंगे। (#145 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/145))
- एंड्रॉइड 7.1 से नीचे चलने वाले उपकरणों का समर्थन करने के लिए एक विजेट जोड़ें जो पिन किए गए ऐप शॉर्टकट की तरह काम करता है। (खींचें #142 (https://github.com/brarcher/loyalty-card-locker/pull/142))

View File

@@ -0,0 +1,5 @@
- कार्ड जोड़ते या संपादित करते समय होम स्क्रीन पर शॉर्टकट जोड़ने के लिए समर्थन जोड़ें। (#155 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/155))
- विजेट हटा दें, क्योंकि यह शॉर्टकट का खराब विकल्प था। (#155 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/155))
- एंड्रॉइड 7+ पर बैकअप निर्यात करना ठीक करें। (#153 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/153))
- बैकअप डेटा निर्यात करते समय अधिक सटीक माइम प्रकार की रिपोर्ट करें। (खींचें #156 (https://github.com/brarcher/loyalty-card-locker/pull/156))
- उस बग को ठीक करें जहां कार्ड को संपादित नहीं किया जा सका। (#155 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/155))

View File

@@ -0,0 +1,2 @@
- लॉन्चर/होमस्क्रीन से लॉयल्टी कार्ड शॉर्टकट जोड़ने के लिए समर्थन जोड़ें। (खींचें #161 (https://github.com/brarcher/loyalty-card-locker/pull/161))
- ऐप से ही लॉयल्टी कार्ड शॉर्टकट जोड़ने के लिए समर्थन हटा दें। इससे शॉर्टकट अनुमति की आवश्यकता समाप्त हो जाती है। (खींचें #163 (https://github.com/brarcher/loyalty-card-locker/pull/163))

View File

@@ -0,0 +1,2 @@
- एंड्रॉइड एसडीके 24+ पर समस्या ठीक करें जहां फ़ाइल चयनकर्ता आयात विकल्प का उपयोग करने से क्रैश हो जाएगा। (#170 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/170))
- नया आइकन और रंग योजना। (खींचें #171 (https://github.com/brarcher/loyalty-card-locker/pull/171))

View File

@@ -0,0 +1 @@
- कुछ एंड्रॉइड संस्करणों (संभवतः एंड्रॉइड 5 और उससे नीचे) पर इंस्टॉल के दौरान वर्कअराउंड क्रैश। (खींचें #184 (https://github.com/brarcher/loyalty-card-locker/pull/184))

View File

@@ -0,0 +1 @@
- नोट प्रदर्शित करने के लिए कार्ड दृश्य में परिवर्तन, कार्ड आईडी को कई लाइनें लेने की अनुमति दें, और स्टोर का नाम दिखाएं। (खींचें #197 (https://github.com/brarcher/loyalty-card-locker/pull/197))

View File

@@ -0,0 +1,3 @@
- बारकोड के आरंभ/अंत में शांत स्थान जोड़ें। (#200 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/200))
- स्टोर नाम फ़ॉन्ट और पृष्ठभूमि के लिए उपयोग किए गए रंगों को कॉन्फ़िगर करने के लिए विकल्प जोड़ें। (खींचें #203 (https://github.com/brarcher/loyalty-card-locker/pull/203))
- कार्ड सूची पृष्ठ और एकल कार्ड पृष्ठ पर फ़ॉन्ट आकार समायोजित करने के लिए विकल्प जोड़ें। (खींचें #204 (https://github.com/brarcher/loyalty-card-locker/pull/204))

View File

@@ -0,0 +1,4 @@
- अनुवाद अद्यतन करें। (खींचें #208 (https://github.com/brarcher/loyalty-card-locker/pull/208))
- बारकोड रेंडरिंग अपडेट: (पुल #209 (https://github.com/brarcher/loyalty-card-locker/pull/209))
- स्क्रीन घुमाए जाने पर कार्ड दृश्य गतिविधि को पुनः लोड करें, ताकि बारकोड छवि सही आकार की हो।
- 1डी बारकोड को बड़े स्थान पर प्रस्तुत करें, जिससे वे स्क्रीन को बेहतर ढंग से भर सकें।

View File

@@ -0,0 +1,2 @@
- न्यूनतम एसडीके को 17 से घटाकर 15 करें। (#226 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/226))
- लीगेसी अपाचे लाइब्रेरी का उपयोग हटा दें, जिसका उपयोग केवल यूनिट परीक्षणों में किया जाता है लेकिन अब इसकी आवश्यकता नहीं है। (खींचें #225 (https://github.com/brarcher/loyalty-card-locker/pull/225))

View File

@@ -0,0 +1,5 @@
- अनुवाद जोड़े गए
- पोलिश (पुल #232 (https://github.com/brarcher/loyalty-card-locker/pull/232))
- स्पैनिश (पुल #232 (https://github.com/brarcher/loyalty-card-locker/pull/232))
- स्लोवाक (पुल #232 (https://github.com/brarcher/loyalty-card-locker/pull/232))
- अद्यतन अनुवाद (पुल #239 (https://github.com/brarcher/loyalty-card-locker/pull/239))

View File

@@ -0,0 +1,14 @@
- अब आधिकारिक तौर पर 1डी और 2डी बारकोड की निम्नलिखित सूची का समर्थन करता है:
- AZTEC
- CODABAR
- CODE_39
- CODE_128
- DATA_MATRIX
- EAN_8
- EAN_13
- ITF
- PDF_417
- QR_CODE
- UPC_A
- जेनरेट किए गए बारकोड बड़े होते हैं, स्कैनिंग डिवाइस से स्कैन करना आसान होता है

View File

@@ -0,0 +1,4 @@
- बारकोड प्रदर्शित करते समय स्क्रीन की चमक को नियंत्रित करने के लिए एक सेटिंग जोड़ें (#259 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/259))
- ग्रीक अनुवाद जोड़ें (#252 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/252))
- स्लोवेनियाई अनुवाद जोड़ें (#260 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/260))
- अनुवाद अपडेट करें (#260 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/260), #254 खींचें (https://github.com/brarcher/loyalty-card-locker/pull /254))

View File

@@ -0,0 +1,2 @@
- सॉर्ट कार्ड सूची केस असंवेदनशील (#266 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/266))
- सभी कार्डों के लिए ओरिएंटेशन लॉक करने के लिए सेटिंग जोड़ें (#269 खींचें (https://github.com/brarcher/loyalty-card-locker/pull/269)

View File

@@ -0,0 +1 @@
- रूसी अनुवाद अद्यतन करें

View File

@@ -0,0 +1,2 @@
- ऐप बैकअप सक्षम करें
- फ्रेंच और स्लोवेनियाई अनुवाद अपडेट करें

View File

@@ -0,0 +1,14 @@
- कार्ड खोजने की क्षमता जोड़ें (#320 (https://github.com/brarcher/loyalty-card-locker/pull/320))
- लॉयल्टी कार्ड साझा करने और प्राप्त करने की क्षमता जोड़ें (#321 (https://github.com/brarcher/loyalty-card-locker/pull/321))
- डार्क मोड सपोर्ट (#322 (https://github.com/brarcher/loyalty-card-locker/pull/322))
- लॉयल्टी कार्ड अब बारकोड रहित हो सकते हैं (उदाहरण के लिए बारकोड नहीं) (#324 (https://github.com/brarcher/loyalty-card-locker/pull/324))
- नोट्स कई पंक्तियों में फैले हो सकते हैं (#326 (https://github.com/brarcher/loyalty-card-locker/pull/326))
- नोट्स के आकार में सुधार (#319 (https://github.com/brarcher/loyalty-card-locker/pull/319))
- अधिसूचना और ऐप आइकन दृश्यता में सुधार करें (#330 (https://github.com/brarcher/loyalty-card-locker/pull/330))
- लक्ष्य एसडीके को एंड्रॉइड 10 पर अपडेट करें
- निम्नलिखित अनुवादों में सुधार करें:
- जर्मन
- इटालियन
- डच
- पोलिश
- रूसी

View File

@@ -0,0 +1 @@
- पृष्ठभूमि रंग के बिना कार्ड साझा करने की समस्या को ठीक करें (#343 (https://github.com/brarcher/loyalty-card-locker/pull/343))

View File

@@ -0,0 +1,3 @@
- बारकोड पर टैप करने से यह अब स्क्रीन के शीर्ष पर चला जाता है (#348 (https://github.com/brarcher/loyalty-card-locker/pull/348))
- डार्क मोड में स्कैनिंग को बेहतर बनाने के लिए बारकोड के चारों ओर सफेद स्थान जोड़ें (#328 (https://github.com/brarcher/loyalty-card-locker/issues/328))
- बदले गए आयात बटन को ठीक करें। (#346 (https://github.com/brarcher/loyalty-card-locker/pull/346))

View File

@@ -0,0 +1,3 @@
- पूर्ण स्क्रीन से बाहर निकलते समय बारकोड सेंटरिंग को ठीक करें (#351 (https://github.com/brarcher/loyalty-card-locker/pull/351))
- बैकअप निर्यात स्थान को चुनने की अनुमति दें (#352 (https://github.com/brarcher/loyalty-card-locker/pull/352))
- अद्यतन अनुवाद (#357 (https://github.com/brarcher/loyalty-card-locker/pull/357)) और (#362 (https://github.com/brarcher/loyalty-card-locker/pull) /362))

View File

@@ -0,0 +1,4 @@
- डच अनुवाद
- लॉयल्टी कार्ड जोड़ने के बाद नाम फ़ील्ड को संपादन योग्य होने दें
- एक वैकल्पिक नोट फ़ील्ड जोड़ें
- फाइंडबग्स द्वारा पहचाने गए सभी मुद्दों को हल करें और पुल अनुरोध स्वीकृति से पहले सभी फाइंडबग्स मुद्दों को हल करने की आवश्यकता है

View File

@@ -0,0 +1,6 @@
- कैटिमा को रिब्रांड
- परिचय हटा दिया गया
- फ्लोटिंग एक्शन बटन जोड़ें
- अबाउट स्क्रीन खोलते समय एंड्रॉइड 5 क्रैश को ठीक करें
- पसंदीदा समर्थन जोड़ें
- अनदेखा किए जा रहे अक्षम ऑटो-रोटेट को ठीक करें

View File

@@ -0,0 +1,2 @@
- मुख्य अवलोकन पर कार्ड आइकन में गोलाकार किनारे जोड़े गए
- प्रविष्टियों को समूहीकृत करने के लिए समर्थन जोड़ा गया

View File

@@ -0,0 +1 @@
- बिना किसी समूह के खोज में क्रैश को ठीक करें

View File

@@ -0,0 +1,3 @@
- बेहतर संपादन यूआई
- हेडर टेक्स्ट रंग विकल्प हटा दिया गया (अब चमक के आधार पर स्वचालित रूप से जेनरेट किया गया)
- अद्यतन अनुवाद

View File

@@ -0,0 +1,2 @@
- होम स्क्रीन पर समूहों के बीच स्वाइपिंग जोड़ें
- हेडर रंग की कमी वाले कार्ड के साथ क्रैश को ठीक करें

View File

@@ -0,0 +1 @@
- वर्टिकल स्वाइप के दौरान भी होम स्क्रीन स्वाइपिंग ट्रिगरिंग को ठीक किया गया

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