mirror of
https://github.com/CatimaLoyalty/Android.git
synced 2025-12-26 16:47:57 -05:00
Compare commits
272 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a74c4f822e | ||
|
|
c228d274b5 | ||
|
|
d8e0e03aa5 | ||
|
|
171dd7af59 | ||
|
|
10bf27a246 | ||
|
|
199c243eb0 | ||
|
|
11b0143b1c | ||
|
|
f2e20eaea3 | ||
|
|
c8725a4588 | ||
|
|
f881965485 | ||
|
|
3e16d0daf6 | ||
|
|
7068f57443 | ||
|
|
8b611511f5 | ||
|
|
1c9f0ee724 | ||
|
|
2d816b39f6 | ||
|
|
c0b13bf040 | ||
|
|
e40d98f386 | ||
|
|
8af295a72b | ||
|
|
ac4dde1f8b | ||
|
|
2dc87fd37c | ||
|
|
aebceec1f6 | ||
|
|
95b59a9cc3 | ||
|
|
4ff72b66a8 | ||
|
|
d1162d0272 | ||
|
|
794ac2bab2 | ||
|
|
7b76fe86b2 | ||
|
|
4387c7ed1e | ||
|
|
f819fc7db9 | ||
|
|
fb5a882fdb | ||
|
|
be8c0a6787 | ||
|
|
5dc84fbd77 | ||
|
|
0c37827fb0 | ||
|
|
cee5d39b27 | ||
|
|
9c5603eae6 | ||
|
|
dd42c99ca7 | ||
|
|
403c60ec6c | ||
|
|
7c7e6d3b45 | ||
|
|
316e51efb2 | ||
|
|
9e838e266b | ||
|
|
a56b984c53 | ||
|
|
4040b270a8 | ||
|
|
eab8614bcc | ||
|
|
ef8befe0cd | ||
|
|
860b79fc9b | ||
|
|
93341fc4ec | ||
|
|
51f123bc41 | ||
|
|
f0512fbeca | ||
|
|
71f6fcd2e6 | ||
|
|
d1a244efa0 | ||
|
|
075478db17 | ||
|
|
6f4582eec9 | ||
|
|
91f5f9a8b4 | ||
|
|
f04adc0901 | ||
|
|
f184ee7e58 | ||
|
|
9abeec578e | ||
|
|
8deab5f94f | ||
|
|
50fca74267 | ||
|
|
9e7bf97cc9 | ||
|
|
96be72b4c6 | ||
|
|
5c31ac6d00 | ||
|
|
1675d591dd | ||
|
|
361495dfed | ||
|
|
2b81e861f6 | ||
|
|
657a761c3a | ||
|
|
6d401c4234 | ||
|
|
8a33d2e5ed | ||
|
|
66e994be60 | ||
|
|
4e50ca9340 | ||
|
|
af064d1cda | ||
|
|
585c444f2d | ||
|
|
85683a0b3f | ||
|
|
4c7aa2b26b | ||
|
|
af236e1099 | ||
|
|
79f6014e26 | ||
|
|
0fa3de40ba | ||
|
|
d77f938107 | ||
|
|
e44aaa6618 | ||
|
|
96d88bb08c | ||
|
|
b502f89da6 | ||
|
|
d7b8cd7e03 | ||
|
|
61681bdc2b | ||
|
|
dc65030a63 | ||
|
|
328c110a97 | ||
|
|
0b7cd32209 | ||
|
|
b1c0ab74d7 | ||
|
|
faee01cde2 | ||
|
|
6f456437f7 | ||
|
|
1b0fd94a8c | ||
|
|
268d04841f | ||
|
|
9408ac5d9f | ||
|
|
45d2b6206e | ||
|
|
a943fdcc5a | ||
|
|
06e02f0b0f | ||
|
|
5b29dc66a9 | ||
|
|
5187916fd3 | ||
|
|
d6e444c6e9 | ||
|
|
59f4ef1091 | ||
|
|
bab1b3e9df | ||
|
|
4e8cbdc93b | ||
|
|
d3e5c5b335 | ||
|
|
2b4b38ddc6 | ||
|
|
d3e6d775e8 | ||
|
|
ecf3b57679 | ||
|
|
115981ecc6 | ||
|
|
009f297f59 | ||
|
|
f539fb1acf | ||
|
|
297e1e79c2 | ||
|
|
d8a95d9d48 | ||
|
|
1d8e87981b | ||
|
|
5c97f9c89a | ||
|
|
a3b02d775c | ||
|
|
a83b01b0f4 | ||
|
|
4be1d76869 | ||
|
|
15a6924894 | ||
|
|
fdeef6504c | ||
|
|
00ce3466fd | ||
|
|
ee3013499d | ||
|
|
0f966d036b | ||
|
|
2c09e625fb | ||
|
|
8908796b44 | ||
|
|
a01fd67565 | ||
|
|
07fe173487 | ||
|
|
e9e63e66a5 | ||
|
|
6cbfb6dd48 | ||
|
|
e1f4c0a1ca | ||
|
|
5a6b912037 | ||
|
|
996324829d | ||
|
|
e6e556f9af | ||
|
|
0318b99aa7 | ||
|
|
bb79ba3ca5 | ||
|
|
57679fdc40 | ||
|
|
01c80d1f8b | ||
|
|
76d69219f8 | ||
|
|
1b0761a36d | ||
|
|
b519507600 | ||
|
|
cdb7077b91 | ||
|
|
55639e3cf2 | ||
|
|
088ee5dc34 | ||
|
|
20d8374edc | ||
|
|
265b90251d | ||
|
|
49d833eee7 | ||
|
|
98f4e0dd7f | ||
|
|
4ec1a947bc | ||
|
|
dfe825ebec | ||
|
|
4f24e0a2dc | ||
|
|
ed57ab52c8 | ||
|
|
0d3c3c5e35 | ||
|
|
333acb7911 | ||
|
|
056b363b7b | ||
|
|
693e89c635 | ||
|
|
d95a7f7982 | ||
|
|
2f72fee1aa | ||
|
|
59ffa6c357 | ||
|
|
1eea1b4402 | ||
|
|
c936d0df49 | ||
|
|
41dd6b2b69 | ||
|
|
524ef19991 | ||
|
|
3312f7db8c | ||
|
|
49ea6e39cf | ||
|
|
4c15ddc35c | ||
|
|
1a7c8f088d | ||
|
|
1d6af0c540 | ||
|
|
261130aa6f | ||
|
|
98526fcd0b | ||
|
|
64d1e70d33 | ||
|
|
71473f3804 | ||
|
|
f360ee172f | ||
|
|
4940f32fbf | ||
|
|
b025af8d07 | ||
|
|
6418ab7cbe | ||
|
|
30edf0efcf | ||
|
|
37b02b13fa | ||
|
|
05453e92ea | ||
|
|
4c3b830788 | ||
|
|
0c706f2e5b | ||
|
|
5ebe02fb89 | ||
|
|
3b8bf99e79 | ||
|
|
916c3d4db8 | ||
|
|
b1e89424dc | ||
|
|
9d2af821d1 | ||
|
|
e9eee27932 | ||
|
|
4d23dce932 | ||
|
|
7277097d59 | ||
|
|
d6bc1f407b | ||
|
|
f002c83cbd | ||
|
|
afcd63805b | ||
|
|
f5cca4f3fb | ||
|
|
ad2048a72c | ||
|
|
e1ceb8b6af | ||
|
|
a3ce7ba3ad | ||
|
|
41f3845f63 | ||
|
|
86434d3919 | ||
|
|
75efd9a733 | ||
|
|
f5b691d68b | ||
|
|
e9bf7bb547 | ||
|
|
c6b726eb63 | ||
|
|
42638e3df6 | ||
|
|
33a3c7645e | ||
|
|
86a0a8d19a | ||
|
|
a1da4a7ef3 | ||
|
|
ecfb7bb188 | ||
|
|
bf2047e1d6 | ||
|
|
09dc0e4c15 | ||
|
|
eed5bcda30 | ||
|
|
d35c9887f6 | ||
|
|
7eb98c9d4b | ||
|
|
bc0d89573e | ||
|
|
67c8fc7dbd | ||
|
|
d472948201 | ||
|
|
3d44f6000d | ||
|
|
9b2d001c3c | ||
|
|
74ae9ee040 | ||
|
|
d1e455f038 | ||
|
|
7d49fa98e7 | ||
|
|
db59441d11 | ||
|
|
5da8afeb7d | ||
|
|
7575d7f271 | ||
|
|
7830502987 | ||
|
|
a3decdf9ad | ||
|
|
051ece8358 | ||
|
|
92da7fc877 | ||
|
|
727d9ce781 | ||
|
|
94cee771bd | ||
|
|
73db115f02 | ||
|
|
c8aab06d77 | ||
|
|
be80003860 | ||
|
|
639c024e7e | ||
|
|
8dc1e9f6b5 | ||
|
|
a2a4d9ac16 | ||
|
|
60de179f74 | ||
|
|
518f384b99 | ||
|
|
a83598676b | ||
|
|
59ddfe1d05 | ||
|
|
d6def93b4e | ||
|
|
65d95f4616 | ||
|
|
b858f5dc01 | ||
|
|
648dbe7031 | ||
|
|
7b57c73d2a | ||
|
|
9c2ec91100 | ||
|
|
c5769d5a81 | ||
|
|
d3d5f62801 | ||
|
|
bf8146d509 | ||
|
|
fad5e7e238 | ||
|
|
af79b22f71 | ||
|
|
a31afef298 | ||
|
|
6096876894 | ||
|
|
0fe3d79103 | ||
|
|
8b0ae9d61a | ||
|
|
4489b46200 | ||
|
|
1240e8e353 | ||
|
|
74fa400237 | ||
|
|
cc7fe900d2 | ||
|
|
aab416e62b | ||
|
|
d924c292bc | ||
|
|
a251fbfcc6 | ||
|
|
5bea05ee15 | ||
|
|
21c7eee893 | ||
|
|
c9a5e12352 | ||
|
|
956140c6db | ||
|
|
fde0b3e412 | ||
|
|
2e8ba7a185 | ||
|
|
cc27988681 | ||
|
|
590af0c276 | ||
|
|
32fe6b2f77 | ||
|
|
9f5607016d | ||
|
|
2e6ecdf02d | ||
|
|
ef6cb69fb0 | ||
|
|
71504af6b2 | ||
|
|
a3ca084444 | ||
|
|
35082be6cd | ||
|
|
934ddb1bfe | ||
|
|
5d0a1d8fb2 |
4
.github/workflows/android.yml
vendored
4
.github/workflows/android.yml
vendored
@@ -32,7 +32,7 @@ jobs:
|
||||
matrix:
|
||||
api-level: [ 21, 34 ]
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.7
|
||||
- uses: actions/checkout@v4.2.2
|
||||
- name: Fail on bad translations
|
||||
run: if grep -ri "<xliff" app/src/main/res/values*/strings.xml; then echo "Invalidly escaped translations found"; exit 1; fi
|
||||
- uses: gradle/actions/wrapper-validation@v4
|
||||
@@ -62,7 +62,7 @@ jobs:
|
||||
run: ./gradlew spotbugsRelease
|
||||
- name: Archive test results
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v4.3.6
|
||||
uses: actions/upload-artifact@v4.4.3
|
||||
with:
|
||||
name: test-results-api${{ matrix.api-level }}
|
||||
path: app/build/reports
|
||||
|
||||
6
.github/workflows/changelog-to-fastlane.yml
vendored
6
.github/workflows/changelog-to-fastlane.yml
vendored
@@ -27,15 +27,15 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
id: checkout
|
||||
uses: actions/checkout@v4.1.7
|
||||
uses: actions/checkout@v4.2.2
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5.1.1
|
||||
uses: actions/setup-python@v5.3.0
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- name: Run converter script
|
||||
run: python .scripts/changelog_to_fastlane.py
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v6.1.0
|
||||
uses: peter-evans/create-pull-request@v7.0.5
|
||||
with:
|
||||
title: "Update Fastlane changelogs"
|
||||
commit-message: "Update Fastlane changelogs"
|
||||
|
||||
4
.github/workflows/contributors-to-file.yml
vendored
4
.github/workflows/contributors-to-file.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
id: checkout
|
||||
uses: actions/checkout@v4.1.7
|
||||
uses: actions/checkout@v4.2.2
|
||||
- name: Update contributors
|
||||
id: update_contributors
|
||||
uses: TheLastProject/contributors-to-file-action@v3.2.0
|
||||
@@ -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@v6.1.0
|
||||
uses: peter-evans/create-pull-request@v7.0.5
|
||||
with:
|
||||
title: "Update contributors"
|
||||
commit-message: "Update contributors"
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
generate-feature-graphic:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.7
|
||||
- uses: actions/checkout@v4.2.2
|
||||
- name: Install requirements
|
||||
run: |
|
||||
sudo apt-get update
|
||||
@@ -39,7 +39,7 @@ jobs:
|
||||
- name: Generate featureGraphic.png for each language
|
||||
run: .scripts/generate_feature_graphic/generate_feature_graphic.sh
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v6.1.0
|
||||
uses: peter-evans/create-pull-request@v7.0.5
|
||||
with:
|
||||
title: "Update feature graphic"
|
||||
commit-message: "Update feature graphic"
|
||||
|
||||
4
.github/workflows/gradle-update.yml
vendored
4
.github/workflows/gradle-update.yml
vendored
@@ -21,12 +21,12 @@ jobs:
|
||||
gradle-update:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.7
|
||||
- uses: actions/checkout@v4.2.2
|
||||
- uses: obfusk/gradle-update-action@v3.0.0
|
||||
id: gradle-update
|
||||
- uses: gradle/actions/wrapper-validation@v4
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v6.1.0
|
||||
uses: peter-evans/create-pull-request@v7.0.5
|
||||
with:
|
||||
title: "Update Gradle to ${{ steps.gradle-update.outputs.version }}"
|
||||
commit-message: "Update Gradle to ${{ steps.gradle-update.outputs.version }}"
|
||||
|
||||
4
.github/workflows/update-locales.yml
vendored
4
.github/workflows/update-locales.yml
vendored
@@ -25,13 +25,13 @@ jobs:
|
||||
update-locales:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.7
|
||||
- uses: actions/checkout@v4.2.2
|
||||
- name: Add new locales
|
||||
run: .scripts/new-locales.py
|
||||
- name: Update locales
|
||||
run: .scripts/locales.py
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v6.1.0
|
||||
uses: peter-evans/create-pull-request@v7.0.5
|
||||
with:
|
||||
title: "Update locales"
|
||||
commit-message: "Update locales"
|
||||
|
||||
@@ -4,6 +4,11 @@ set -euo pipefail
|
||||
script_location="$(dirname "$(readlink -f "$0")")"
|
||||
|
||||
for lang in "$script_location/../../fastlane/metadata/android/"*; do
|
||||
# Skip languages without title.txt
|
||||
if [ ! -f "$lang/title.txt" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
pushd "$lang"
|
||||
# Place temporary copy for editing if needed
|
||||
cp "$script_location/featureGraphic.svg" featureGraphic.svg
|
||||
|
||||
17
CHANGELOG.md
17
CHANGELOG.md
@@ -1,5 +1,22 @@
|
||||
# Changelog
|
||||
|
||||
## v2.33.0 - 141 (2024-11-19)
|
||||
|
||||
- Change default column on wide screens to 4
|
||||
- Allow overriding column counts for portrait and landscape in settings
|
||||
- Keep main screen search filter when rotating screen or opening a card
|
||||
- Limit max length of note display on main screen
|
||||
|
||||
## v2.32.1 - 140 (2024-10-29)
|
||||
|
||||
- Fix text wrapping on add dialog
|
||||
|
||||
## v2.32.0 - 139 (2024-10-28)
|
||||
|
||||
- Option to navigate cards using the volume buttons
|
||||
- Fix Stocard import
|
||||
- Fix "Import cancelled" message appearing after successful import
|
||||
|
||||
## v2.31.1 - 138 (2024-08-24)
|
||||
|
||||
- Fix back gesture on main screen dismissing keyboard and search on Android 13+
|
||||
|
||||
54
Gemfile.lock
54
Gemfile.lock
@@ -10,20 +10,20 @@ GEM
|
||||
artifactory (3.0.17)
|
||||
atomos (0.1.3)
|
||||
aws-eventstream (1.3.0)
|
||||
aws-partitions (1.958.0)
|
||||
aws-sdk-core (3.201.3)
|
||||
aws-partitions (1.998.0)
|
||||
aws-sdk-core (3.211.0)
|
||||
aws-eventstream (~> 1, >= 1.3.0)
|
||||
aws-partitions (~> 1, >= 1.651.0)
|
||||
aws-sigv4 (~> 1.8)
|
||||
aws-partitions (~> 1, >= 1.992.0)
|
||||
aws-sigv4 (~> 1.9)
|
||||
jmespath (~> 1, >= 1.6.1)
|
||||
aws-sdk-kms (1.88.0)
|
||||
aws-sdk-core (~> 3, >= 3.201.0)
|
||||
aws-sdk-kms (1.95.0)
|
||||
aws-sdk-core (~> 3, >= 3.210.0)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sdk-s3 (1.156.0)
|
||||
aws-sdk-core (~> 3, >= 3.201.0)
|
||||
aws-sdk-s3 (1.169.0)
|
||||
aws-sdk-core (~> 3, >= 3.210.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sigv4 (1.9.0)
|
||||
aws-sigv4 (1.10.1)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
babosa (1.0.4)
|
||||
base64 (0.2.0)
|
||||
@@ -38,8 +38,8 @@ GEM
|
||||
domain_name (0.6.20240107)
|
||||
dotenv (2.8.1)
|
||||
emoji_regex (3.2.3)
|
||||
excon (0.111.0)
|
||||
faraday (1.10.3)
|
||||
excon (0.112.0)
|
||||
faraday (1.10.4)
|
||||
faraday-em_http (~> 1.0)
|
||||
faraday-em_synchrony (~> 1.0)
|
||||
faraday-excon (~> 1.1)
|
||||
@@ -65,10 +65,10 @@ GEM
|
||||
faraday-patron (1.0.0)
|
||||
faraday-rack (1.0.0)
|
||||
faraday-retry (1.0.3)
|
||||
faraday_middleware (1.2.0)
|
||||
faraday_middleware (1.2.1)
|
||||
faraday (~> 1.0)
|
||||
fastimage (2.3.1)
|
||||
fastlane (2.222.0)
|
||||
fastlane (2.225.0)
|
||||
CFPropertyList (>= 2.3, < 4.0.0)
|
||||
addressable (>= 2.8, < 3.0.0)
|
||||
artifactory (~> 3.0)
|
||||
@@ -84,6 +84,7 @@ GEM
|
||||
faraday-cookie_jar (~> 0.0.6)
|
||||
faraday_middleware (~> 1.0)
|
||||
fastimage (>= 2.1.0, < 3.0.0)
|
||||
fastlane-sirp (>= 1.0.0)
|
||||
gh_inspector (>= 1.1.2, < 2.0.0)
|
||||
google-apis-androidpublisher_v3 (~> 0.3)
|
||||
google-apis-playcustomapp_v1 (~> 0.1)
|
||||
@@ -109,6 +110,8 @@ GEM
|
||||
xcodeproj (>= 1.13.0, < 2.0.0)
|
||||
xcpretty (~> 0.3.0)
|
||||
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
|
||||
fastlane-sirp (1.0.0)
|
||||
sysrandom (~> 1.0)
|
||||
gh_inspector (1.1.3)
|
||||
google-apis-androidpublisher_v3 (0.54.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
@@ -126,7 +129,7 @@ GEM
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-apis-storage_v1 (0.31.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-cloud-core (1.7.0)
|
||||
google-cloud-core (1.7.1)
|
||||
google-cloud-env (>= 1.0, < 3.a)
|
||||
google-cloud-errors (~> 1.0)
|
||||
google-cloud-env (1.6.0)
|
||||
@@ -147,18 +150,18 @@ GEM
|
||||
os (>= 0.9, < 2.0)
|
||||
signet (>= 0.16, < 2.a)
|
||||
highline (2.0.3)
|
||||
http-cookie (1.0.6)
|
||||
http-cookie (1.0.7)
|
||||
domain_name (~> 0.5)
|
||||
httpclient (2.8.3)
|
||||
jmespath (1.6.2)
|
||||
json (2.7.2)
|
||||
jwt (2.8.2)
|
||||
json (2.7.5)
|
||||
jwt (2.9.3)
|
||||
base64
|
||||
mini_magick (4.13.2)
|
||||
mini_mime (1.1.5)
|
||||
multi_json (1.15.0)
|
||||
multipart-post (2.4.1)
|
||||
nanaimo (0.3.0)
|
||||
nanaimo (0.4.0)
|
||||
naturally (2.2.1)
|
||||
nkf (0.2.0)
|
||||
optparse (0.5.0)
|
||||
@@ -171,8 +174,7 @@ GEM
|
||||
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||
uber (< 0.2.0)
|
||||
retriable (3.1.2)
|
||||
rexml (3.2.9)
|
||||
strscan
|
||||
rexml (3.3.9)
|
||||
rouge (2.0.7)
|
||||
ruby2_keywords (0.0.5)
|
||||
rubyzip (2.3.2)
|
||||
@@ -185,7 +187,7 @@ GEM
|
||||
simctl (1.6.10)
|
||||
CFPropertyList
|
||||
naturally
|
||||
strscan (3.1.0)
|
||||
sysrandom (1.0.5)
|
||||
terminal-notifier (2.0.0)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
@@ -195,15 +197,15 @@ GEM
|
||||
tty-spinner (0.9.3)
|
||||
tty-cursor (~> 0.7)
|
||||
uber (0.1.0)
|
||||
unicode-display_width (2.5.0)
|
||||
unicode-display_width (2.6.0)
|
||||
word_wrap (1.0.0)
|
||||
xcodeproj (1.24.0)
|
||||
xcodeproj (1.26.0)
|
||||
CFPropertyList (>= 2.3.3, < 4.0)
|
||||
atomos (~> 0.1.3)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
colored2 (~> 3.1)
|
||||
nanaimo (~> 0.3.0)
|
||||
rexml (~> 3.2.4)
|
||||
nanaimo (~> 0.4.0)
|
||||
rexml (>= 3.3.6, < 4.0)
|
||||
xcpretty (0.3.0)
|
||||
rouge (~> 2.0.7)
|
||||
xcpretty-travis-formatter (1.0.1)
|
||||
@@ -216,4 +218,4 @@ DEPENDENCIES
|
||||
fastlane
|
||||
|
||||
BUNDLED WITH
|
||||
2.5.11
|
||||
2.5.16
|
||||
|
||||
@@ -21,13 +21,13 @@ android {
|
||||
applicationId = "me.hackerchick.catima"
|
||||
minSdk = 21
|
||||
targetSdk = 34
|
||||
versionCode = 138
|
||||
versionName = "2.31.1"
|
||||
versionCode = 141
|
||||
versionName = "2.33.0"
|
||||
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
multiDexEnabled = true
|
||||
|
||||
resourceConfigurations += listOf("ar", "bg", "bn", "bn-rIN", "bs", "cs", "da", "de", "el-rGR", "en", "eo", "es", "es-rAR", "et", "fi", "fr", "he-rIL", "hi", "hr", "hu", "in-rID", "is", "it", "ja", "ko", "lt", "lv", "nb-rNO", "nl", "oc", "pl", "pt-rBR", "pt-rPT", "ro-rRO", "ru", "sk", "sl", "sr", "sv", "tr", "uk", "vi", "zh-rCN", "zh-rTW")
|
||||
resourceConfigurations += listOf("ar", "bg", "bn", "bn-rIN", "bs", "cs", "da", "de", "el-rGR", "en", "eo", "es", "es-rAR", "et", "fi", "fr", "gl", "he-rIL", "hi", "hr", "hu", "in-rID", "is", "it", "ja", "ko", "lt", "lv", "nb-rNO", "nl", "oc", "pl", "pt-rBR", "pt-rPT", "ro-rRO", "ru", "sk", "sl", "sr", "sv", "tr", "uk", "vi", "zh-rCN", "zh-rTW")
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
@@ -90,13 +90,13 @@ dependencies {
|
||||
|
||||
// AndroidX
|
||||
implementation("androidx.appcompat:appcompat:1.7.0")
|
||||
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
|
||||
implementation("androidx.constraintlayout:constraintlayout:2.2.0")
|
||||
implementation("androidx.exifinterface:exifinterface:1.3.7")
|
||||
implementation("androidx.palette:palette:1.0.0")
|
||||
implementation("androidx.preference:preference:1.2.1")
|
||||
implementation("com.google.android.material:material:1.12.0")
|
||||
implementation("com.github.yalantis:ucrop:2.2.9")
|
||||
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4")
|
||||
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.3")
|
||||
|
||||
// Splash Screen
|
||||
implementation("androidx.core:core-splashscreen:1.0.1")
|
||||
@@ -116,7 +116,7 @@ dependencies {
|
||||
val junitVersion = "4.13.2"
|
||||
testImplementation("androidx.test:core:$androidXTestVersion")
|
||||
testImplementation("junit:junit:$junitVersion")
|
||||
testImplementation("org.robolectric:robolectric:4.13")
|
||||
testImplementation("org.robolectric:robolectric:4.14")
|
||||
|
||||
androidTestImplementation("androidx.test:core:$androidXTestVersion")
|
||||
androidTestImplementation("junit:junit:$junitVersion")
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
<resources>
|
||||
<string name="app_name">Catima Debug</string>
|
||||
</resources>
|
||||
4
app/src/debug/res/values-gl/strings.xml
Normal file
4
app/src/debug/res/values-gl/strings.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Depuración de Catima</string>
|
||||
</resources>
|
||||
@@ -183,7 +183,8 @@
|
||||
android:resource="@xml/file_provider_paths" />
|
||||
</provider>
|
||||
<service android:name=".CardsOnPowerScreenService" android:label="@string/app_name"
|
||||
android:permission="android.permission.BIND_CONTROLS" android:exported="true">
|
||||
android:permission="android.permission.BIND_CONTROLS" android:exported="true"
|
||||
tools:targetApi="r">
|
||||
<intent-filter>
|
||||
<action android:name="android.service.controls.ControlsProviderService" />
|
||||
</intent-filter>
|
||||
|
||||
@@ -71,7 +71,7 @@ public class BarcodeSelectorActivity extends CatimaAppCompatActivity implements
|
||||
});
|
||||
|
||||
final Bundle b = getIntent().getExtras();
|
||||
final String initialCardId = b != null ? b.getString("initialCardId") : null;
|
||||
final String initialCardId = b != null ? b.getString(LoyaltyCard.BUNDLE_LOYALTY_CARD_CARD_ID) : null;
|
||||
|
||||
if (initialCardId != null) {
|
||||
cardId.setText(initialCardId);
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
public class BarcodeValues {
|
||||
private final String mFormat;
|
||||
@Nullable
|
||||
private final CatimaBarcode mFormat;
|
||||
private final String mContent;
|
||||
private String mNote;
|
||||
|
||||
public BarcodeValues(String format, String content) {
|
||||
public BarcodeValues(@Nullable CatimaBarcode format, String content) {
|
||||
mFormat = format;
|
||||
mContent = content;
|
||||
}
|
||||
@@ -14,7 +17,7 @@ public class BarcodeValues {
|
||||
mNote = note;
|
||||
}
|
||||
|
||||
public String format() {
|
||||
public @Nullable CatimaBarcode format() {
|
||||
return mFormat;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,15 +12,15 @@ import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.core.content.pm.ShortcutInfoCompat;
|
||||
import androidx.core.content.pm.ShortcutManagerCompat;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import protect.card_locker.databinding.SimpleToolbarListActivityBinding;
|
||||
import protect.card_locker.databinding.CardShortcutConfigureActivityBinding;
|
||||
import protect.card_locker.preferences.Settings;
|
||||
|
||||
/**
|
||||
* The configuration screen for creating a shortcut.
|
||||
*/
|
||||
public class CardShortcutConfigure extends CatimaAppCompatActivity implements LoyaltyCardCursorAdapter.CardAdapterListener {
|
||||
private SimpleToolbarListActivityBinding binding;
|
||||
private CardShortcutConfigureActivityBinding binding;
|
||||
static final String TAG = "Catima";
|
||||
private SQLiteDatabase mDatabase;
|
||||
private LoyaltyCardCursorAdapter mAdapter;
|
||||
@@ -28,7 +28,7 @@ public class CardShortcutConfigure extends CatimaAppCompatActivity implements Lo
|
||||
@Override
|
||||
public void onCreate(Bundle bundle) {
|
||||
super.onCreate(bundle);
|
||||
binding = SimpleToolbarListActivityBinding.inflate(getLayoutInflater());
|
||||
binding = CardShortcutConfigureActivityBinding.inflate(getLayoutInflater());
|
||||
mDatabase = new DBHelper(this).getReadableDatabase();
|
||||
|
||||
// Set the result to CANCELED. This will cause nothing to happen if the
|
||||
@@ -47,21 +47,26 @@ public class CardShortcutConfigure extends CatimaAppCompatActivity implements Lo
|
||||
finish();
|
||||
}
|
||||
|
||||
final RecyclerView cardList = binding.list;
|
||||
GridLayoutManager layoutManager = (GridLayoutManager) cardList.getLayoutManager();
|
||||
if (layoutManager != null) {
|
||||
layoutManager.setSpanCount(getResources().getInteger(R.integer.main_view_card_columns));
|
||||
}
|
||||
|
||||
Cursor cardCursor = DBHelper.getLoyaltyCardCursor(mDatabase, DBHelper.LoyaltyCardArchiveFilter.All);
|
||||
mAdapter = new LoyaltyCardCursorAdapter(this, cardCursor, this, null);
|
||||
cardList.setAdapter(mAdapter);
|
||||
binding.list.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
|
||||
var layoutManager = (GridLayoutManager) binding.list.getLayoutManager();
|
||||
if (layoutManager != null) {
|
||||
var settings = new Settings(this);
|
||||
layoutManager.setSpanCount(settings.getPreferredColumnCount());
|
||||
}
|
||||
}
|
||||
|
||||
private void onClickAction(int position) {
|
||||
Cursor selected = DBHelper.getLoyaltyCardCursor(mDatabase, DBHelper.LoyaltyCardArchiveFilter.All);
|
||||
selected.moveToPosition(position);
|
||||
LoyaltyCard loyaltyCard = LoyaltyCard.toLoyaltyCard(selected);
|
||||
LoyaltyCard loyaltyCard = LoyaltyCard.fromCursor(selected);
|
||||
|
||||
Log.d(TAG, "Creating shortcut for card " + loyaltyCard.store + "," + loyaltyCard.id);
|
||||
|
||||
|
||||
@@ -42,10 +42,10 @@ public class CardsOnPowerScreenService extends ControlsProviderService {
|
||||
Cursor loyaltyCardCursor = DBHelper.getLoyaltyCardCursor(mDatabase, DBHelper.LoyaltyCardArchiveFilter.Unarchived);
|
||||
return subscriber -> {
|
||||
while (loyaltyCardCursor.moveToNext()) {
|
||||
LoyaltyCard card = LoyaltyCard.toLoyaltyCard(loyaltyCardCursor);
|
||||
LoyaltyCard card = LoyaltyCard.fromCursor(loyaltyCardCursor);
|
||||
Intent openIntent = new Intent(this, LoyaltyCardViewActivity.class)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
.putExtra("id", card.id);
|
||||
.putExtra(LoyaltyCardViewActivity.BUNDLE_ID, card.id);
|
||||
PendingIntent pendingIntent = PendingIntent.getActivity(getBaseContext(), card.id, openIntent, PendingIntent.FLAG_IMMUTABLE);
|
||||
subscriber.onNext(
|
||||
new Control.StatelessBuilder(PREFIX + card.id, pendingIntent)
|
||||
@@ -73,7 +73,7 @@ public class CardsOnPowerScreenService extends ControlsProviderService {
|
||||
if (card != null) {
|
||||
Intent openIntent = new Intent(this, LoyaltyCardViewActivity.class)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
.putExtra("id", card.id);
|
||||
.putExtra(LoyaltyCardViewActivity.BUNDLE_ID, card.id);
|
||||
PendingIntent pendingIntent = PendingIntent.getActivity(getBaseContext(), card.id, openIntent, PendingIntent.FLAG_IMMUTABLE);
|
||||
control = new Control.StatefulBuilder(controlId, pendingIntent)
|
||||
.setTitle(card.store)
|
||||
@@ -129,7 +129,7 @@ public class CardsOnPowerScreenService extends ControlsProviderService {
|
||||
consumer.accept(ControlAction.RESPONSE_OK);
|
||||
Intent openIntent = new Intent(this, LoyaltyCardViewActivity.class)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
.putExtra("id", controlIdToCardId(controlId));
|
||||
.putExtra(LoyaltyCardViewActivity.BUNDLE_ID, controlIdToCardId(controlId));
|
||||
startActivity(openIntent);
|
||||
|
||||
closePowerScreenOnAndroid11();
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.google.zxing.BarcodeFormat;
|
||||
|
||||
import java.util.Arrays;
|
||||
@@ -45,15 +47,15 @@ public class CatimaBarcode {
|
||||
mBarcodeFormat = barcodeFormat;
|
||||
}
|
||||
|
||||
public static CatimaBarcode fromBarcode(BarcodeFormat barcodeFormat) {
|
||||
public static CatimaBarcode fromBarcode(@NonNull BarcodeFormat barcodeFormat) {
|
||||
return new CatimaBarcode(barcodeFormat);
|
||||
}
|
||||
|
||||
public static CatimaBarcode fromName(String name) {
|
||||
public static CatimaBarcode fromName(@NonNull String name) {
|
||||
return new CatimaBarcode(BarcodeFormat.valueOf(name));
|
||||
}
|
||||
|
||||
public static CatimaBarcode fromPrettyName(String prettyName) {
|
||||
public static CatimaBarcode fromPrettyName(@NonNull String prettyName) {
|
||||
try {
|
||||
return new CatimaBarcode(barcodeFormats.get(barcodePrettyNames.indexOf(prettyName)));
|
||||
} catch (IndexOutOfBoundsException e) {
|
||||
|
||||
@@ -332,7 +332,7 @@ public class DBHelper extends SQLiteOpenHelper {
|
||||
Set<String> files = new HashSet<>();
|
||||
Cursor cardCursor = getLoyaltyCardCursor(database);
|
||||
while (cardCursor.moveToNext()) {
|
||||
LoyaltyCard card = LoyaltyCard.toLoyaltyCard(cardCursor);
|
||||
LoyaltyCard card = LoyaltyCard.fromCursor(cardCursor);
|
||||
for (ImageLocationType imageLocationType : ImageLocationType.values()) {
|
||||
String name = Utils.getCardImageFileName(card.id, imageLocationType);
|
||||
if (Utils.retrieveCardImageAsFile(context, name).exists()) {
|
||||
@@ -542,7 +542,7 @@ public class DBHelper extends SQLiteOpenHelper {
|
||||
|
||||
if (data.getCount() == 1) {
|
||||
data.moveToFirst();
|
||||
card = LoyaltyCard.toLoyaltyCard(data);
|
||||
card = LoyaltyCard.fromCursor(data);
|
||||
}
|
||||
|
||||
data.close();
|
||||
|
||||
@@ -91,18 +91,14 @@ public class ImportExportTask implements CompatCallable<ImportExportResult> {
|
||||
progress = new ProgressDialog(activity);
|
||||
progress.setTitle(doImport ? R.string.importing : R.string.exporting);
|
||||
|
||||
progress.setOnCancelListener(dialog -> cancel(doImport, true));
|
||||
progress.setOnDismissListener(dialog -> cancel(doImport, true));
|
||||
progress.setOnCancelListener(dialog -> cancel());
|
||||
progress.setOnDismissListener(dialog -> cancel());
|
||||
|
||||
progress.show();
|
||||
}
|
||||
|
||||
private void cancel(boolean isImport, boolean showToast) {
|
||||
private void cancel() {
|
||||
ImportExportTask.this.stop();
|
||||
|
||||
if (showToast) {
|
||||
Toast.makeText(activity, isImport ? R.string.importCancelled : R.string.exportCancelled, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
protected ImportExportResult doInBackground(Void... nothing) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import android.database.Cursor;
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
@@ -10,76 +11,207 @@ import androidx.annotation.Nullable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Currency;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
public class LoyaltyCard implements Parcelable {
|
||||
public final int id;
|
||||
public final String store;
|
||||
public final String note;
|
||||
public int id;
|
||||
public String store;
|
||||
public String note;
|
||||
@Nullable
|
||||
public final Date validFrom;
|
||||
public Date validFrom;
|
||||
@Nullable
|
||||
public final Date expiry;
|
||||
public final BigDecimal balance;
|
||||
public Date expiry;
|
||||
public BigDecimal balance;
|
||||
@Nullable
|
||||
public final Currency balanceType;
|
||||
public final String cardId;
|
||||
public Currency balanceType;
|
||||
public String cardId;
|
||||
@Nullable
|
||||
public final String barcodeId;
|
||||
public String barcodeId;
|
||||
@Nullable
|
||||
public final CatimaBarcode barcodeType;
|
||||
public CatimaBarcode barcodeType;
|
||||
@Nullable
|
||||
public final Integer headerColor;
|
||||
public final int starStatus;
|
||||
public final int archiveStatus;
|
||||
public final long lastUsed;
|
||||
public Integer headerColor;
|
||||
public int starStatus;
|
||||
public long lastUsed;
|
||||
public int zoomLevel;
|
||||
public int archiveStatus;
|
||||
|
||||
public static final String BUNDLE_LOYALTY_CARD_ID = "loyaltyCardId";
|
||||
public static final String BUNDLE_LOYALTY_CARD_STORE = "loyaltyCardStore";
|
||||
public static final String BUNDLE_LOYALTY_CARD_NOTE = "loyaltyCardNote";
|
||||
public static final String BUNDLE_LOYALTY_CARD_VALID_FROM = "loyaltyCardValidFrom";
|
||||
public static final String BUNDLE_LOYALTY_CARD_EXPIRY = "loyaltyCardExpiry";
|
||||
public static final String BUNDLE_LOYALTY_CARD_BALANCE = "loyaltyCardBalance";
|
||||
public static final String BUNDLE_LOYALTY_CARD_BALANCE_TYPE = "loyaltyCardBalanceType";
|
||||
public static final String BUNDLE_LOYALTY_CARD_CARD_ID = "loyaltyCardCardId";
|
||||
public static final String BUNDLE_LOYALTY_CARD_BARCODE_ID = "loyaltyCardBarcodeId";
|
||||
public static final String BUNDLE_LOYALTY_CARD_BARCODE_TYPE = "loyaltyCardBarcodeType";
|
||||
public static final String BUNDLE_LOYALTY_CARD_HEADER_COLOR = "loyaltyCardHeaderColor";
|
||||
public static final String BUNDLE_LOYALTY_CARD_STAR_STATUS = "loyaltyCardStarStatus";
|
||||
public static final String BUNDLE_LOYALTY_CARD_LAST_USED = "loyaltyCardLastUsed";
|
||||
public static final String BUNDLE_LOYALTY_CARD_ZOOM_LEVEL = "loyaltyCardZoomLevel";
|
||||
public static final String BUNDLE_LOYALTY_CARD_ARCHIVE_STATUS = "loyaltyCardArchiveStatus";
|
||||
|
||||
/**
|
||||
* Create a loyalty card object with default values
|
||||
*/
|
||||
public LoyaltyCard() {
|
||||
setId(-1);
|
||||
setStore("");
|
||||
setNote("");
|
||||
setValidFrom(null);
|
||||
setExpiry(null);
|
||||
setBalance(new BigDecimal("0"));
|
||||
setBalanceType(null);
|
||||
setCardId("");
|
||||
setBarcodeId(null);
|
||||
setBarcodeType(null);
|
||||
setHeaderColor(null);
|
||||
setStarStatus(0);
|
||||
setLastUsed(Utils.getUnixTime());
|
||||
setZoomLevel(100);
|
||||
setArchiveStatus(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new loyalty card
|
||||
*
|
||||
* @param id
|
||||
* @param store
|
||||
* @param note
|
||||
* @param validFrom
|
||||
* @param expiry
|
||||
* @param balance
|
||||
* @param balanceType
|
||||
* @param cardId
|
||||
* @param barcodeId
|
||||
* @param barcodeType
|
||||
* @param headerColor
|
||||
* @param starStatus
|
||||
* @param lastUsed
|
||||
* @param zoomLevel
|
||||
* @param archiveStatus
|
||||
*/
|
||||
public LoyaltyCard(final int id, final String store, final String note, @Nullable final Date validFrom,
|
||||
@Nullable final Date expiry, final BigDecimal balance, @Nullable final Currency balanceType,
|
||||
final String cardId, @Nullable final String barcodeId, @Nullable final CatimaBarcode barcodeType,
|
||||
@Nullable final Integer headerColor, final int starStatus,
|
||||
final long lastUsed, final int zoomLevel, final int archiveStatus) {
|
||||
setId(id);
|
||||
setStore(store);
|
||||
setNote(note);
|
||||
setValidFrom(validFrom);
|
||||
setExpiry(expiry);
|
||||
setBalance(balance);
|
||||
setBalanceType(balanceType);
|
||||
setCardId(cardId);
|
||||
setBarcodeId(barcodeId);
|
||||
setBarcodeType(barcodeType);
|
||||
setHeaderColor(headerColor);
|
||||
setStarStatus(starStatus);
|
||||
setLastUsed(lastUsed);
|
||||
setZoomLevel(zoomLevel);
|
||||
setArchiveStatus(archiveStatus);
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public void setStore(@NonNull String store) {
|
||||
this.store = store;
|
||||
}
|
||||
|
||||
public void setNote(@NonNull String note) {
|
||||
this.note = note;
|
||||
}
|
||||
|
||||
public void setValidFrom(@Nullable Date validFrom) {
|
||||
this.validFrom = validFrom;
|
||||
}
|
||||
|
||||
public void setExpiry(@Nullable Date expiry) {
|
||||
this.expiry = expiry;
|
||||
}
|
||||
|
||||
public void setBalance(@NonNull BigDecimal balance) {
|
||||
this.balance = balance;
|
||||
}
|
||||
|
||||
public void setBalanceType(@Nullable Currency balanceType) {
|
||||
this.balanceType = balanceType;
|
||||
}
|
||||
|
||||
public void setCardId(@NonNull String cardId) {
|
||||
this.cardId = cardId;
|
||||
}
|
||||
|
||||
public void setBarcodeId(@Nullable String barcodeId) {
|
||||
this.barcodeId = barcodeId;
|
||||
}
|
||||
|
||||
public void setBarcodeType(@Nullable CatimaBarcode barcodeType) {
|
||||
this.barcodeType = barcodeType;
|
||||
}
|
||||
|
||||
public void setHeaderColor(@Nullable Integer headerColor) {
|
||||
this.headerColor = headerColor;
|
||||
}
|
||||
|
||||
public void setStarStatus(int starStatus) {
|
||||
if (starStatus != 0 && starStatus != 1) {
|
||||
throw new IllegalArgumentException("starStatus must be 0 or 1");
|
||||
}
|
||||
|
||||
this.starStatus = starStatus;
|
||||
}
|
||||
|
||||
public void setLastUsed(long lastUsed) {
|
||||
this.lastUsed = lastUsed;
|
||||
}
|
||||
|
||||
public void setZoomLevel(int zoomLevel) {
|
||||
if (zoomLevel < 0 || zoomLevel > 100) {
|
||||
throw new IllegalArgumentException("zoomLevel must be in range 0-100");
|
||||
}
|
||||
|
||||
this.zoomLevel = zoomLevel;
|
||||
}
|
||||
|
||||
public void setArchiveStatus(int archiveStatus) {
|
||||
if (archiveStatus != 0 && archiveStatus != 1) {
|
||||
throw new IllegalArgumentException("archiveStatus must be 0 or 1");
|
||||
}
|
||||
|
||||
this.archiveStatus = archiveStatus;
|
||||
}
|
||||
|
||||
protected LoyaltyCard(Parcel in) {
|
||||
id = in.readInt();
|
||||
store = in.readString();
|
||||
note = in.readString();
|
||||
setId(in.readInt());
|
||||
setStore(Objects.requireNonNull(in.readString()));
|
||||
setNote(Objects.requireNonNull(in.readString()));
|
||||
long tmpValidFrom = in.readLong();
|
||||
validFrom = tmpValidFrom != -1 ? new Date(tmpValidFrom) : null;
|
||||
setValidFrom(tmpValidFrom > 0 ? new Date(tmpValidFrom) : null);
|
||||
long tmpExpiry = in.readLong();
|
||||
expiry = tmpExpiry != -1 ? new Date(tmpExpiry) : null;
|
||||
balance = (BigDecimal) in.readValue(BigDecimal.class.getClassLoader());
|
||||
balanceType = (Currency) in.readValue(Currency.class.getClassLoader());
|
||||
cardId = in.readString();
|
||||
barcodeId = in.readString();
|
||||
setExpiry(tmpExpiry > 0 ? new Date(tmpExpiry) : null);
|
||||
setBalance((BigDecimal) in.readValue(BigDecimal.class.getClassLoader()));
|
||||
setBalanceType((Currency) in.readValue(Currency.class.getClassLoader()));
|
||||
setCardId(Objects.requireNonNull(in.readString()));
|
||||
setBarcodeId(in.readString());
|
||||
String tmpBarcodeType = in.readString();
|
||||
barcodeType = !tmpBarcodeType.isEmpty() ? CatimaBarcode.fromName(tmpBarcodeType) : null;
|
||||
setBarcodeType((tmpBarcodeType != null && !tmpBarcodeType.isEmpty()) ? CatimaBarcode.fromName(tmpBarcodeType) : null);
|
||||
int tmpHeaderColor = in.readInt();
|
||||
headerColor = tmpHeaderColor != -1 ? tmpHeaderColor : null;
|
||||
starStatus = in.readInt();
|
||||
lastUsed = in.readLong();
|
||||
zoomLevel = in.readInt();
|
||||
archiveStatus = in.readInt();
|
||||
setHeaderColor(tmpHeaderColor != -1 ? tmpHeaderColor : null);
|
||||
setStarStatus(in.readInt());
|
||||
setLastUsed(in.readLong());
|
||||
setZoomLevel(in.readInt());
|
||||
setArchiveStatus(in.readInt());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel parcel, int i) {
|
||||
public void writeToParcel(Parcel parcel, int flags) {
|
||||
parcel.writeInt(id);
|
||||
parcel.writeString(store);
|
||||
parcel.writeString(note);
|
||||
@@ -97,51 +229,171 @@ public class LoyaltyCard implements Parcelable {
|
||||
parcel.writeInt(archiveStatus);
|
||||
}
|
||||
|
||||
public static LoyaltyCard toLoyaltyCard(Cursor cursor) {
|
||||
public static LoyaltyCard fromBundle(Bundle bundle, boolean requireFull) {
|
||||
// Grab default card
|
||||
LoyaltyCard loyaltyCard = new LoyaltyCard();
|
||||
|
||||
// Update from bundle
|
||||
loyaltyCard.updateFromBundle(bundle, requireFull);
|
||||
|
||||
// Return updated version
|
||||
return loyaltyCard;
|
||||
}
|
||||
|
||||
public void updateFromBundle(Bundle bundle, boolean requireFull) {
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_ID)) {
|
||||
setId(bundle.getInt(BUNDLE_LOYALTY_CARD_ID));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_ID);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_STORE)) {
|
||||
setStore(Objects.requireNonNull(bundle.getString(BUNDLE_LOYALTY_CARD_STORE)));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_STORE);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_NOTE)) {
|
||||
setNote(Objects.requireNonNull(bundle.getString(BUNDLE_LOYALTY_CARD_NOTE)));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_NOTE);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_VALID_FROM)) {
|
||||
long tmpValidFrom = bundle.getLong(BUNDLE_LOYALTY_CARD_VALID_FROM);
|
||||
setValidFrom(tmpValidFrom > 0 ? new Date(tmpValidFrom) : null);
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_VALID_FROM);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_EXPIRY)) {
|
||||
long tmpExpiry = bundle.getLong(BUNDLE_LOYALTY_CARD_EXPIRY);
|
||||
setExpiry(tmpExpiry > 0 ? new Date(tmpExpiry) : null);
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_EXPIRY);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_BALANCE)) {
|
||||
setBalance(new BigDecimal(bundle.getString(BUNDLE_LOYALTY_CARD_BALANCE)));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_BALANCE);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_BALANCE_TYPE)) {
|
||||
String tmpBalanceType = bundle.getString(BUNDLE_LOYALTY_CARD_BALANCE_TYPE);
|
||||
setBalanceType(tmpBalanceType != null ? Currency.getInstance(tmpBalanceType) : null);
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_BALANCE_TYPE);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_CARD_ID)) {
|
||||
setCardId(Objects.requireNonNull(bundle.getString(BUNDLE_LOYALTY_CARD_CARD_ID)));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_CARD_ID);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_BARCODE_ID)) {
|
||||
setBarcodeId(bundle.getString(BUNDLE_LOYALTY_CARD_BARCODE_ID));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_BARCODE_ID);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_BARCODE_TYPE)) {
|
||||
String tmpBarcodeType = bundle.getString(BUNDLE_LOYALTY_CARD_BARCODE_TYPE);
|
||||
setBarcodeType(tmpBarcodeType != null ? CatimaBarcode.fromName(tmpBarcodeType) : null);
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_BARCODE_TYPE);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_HEADER_COLOR)) {
|
||||
int tmpHeaderColor = bundle.getInt(BUNDLE_LOYALTY_CARD_HEADER_COLOR);
|
||||
setHeaderColor(tmpHeaderColor != -1 ? tmpHeaderColor : null);
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_HEADER_COLOR);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_STAR_STATUS)) {
|
||||
setStarStatus(bundle.getInt(BUNDLE_LOYALTY_CARD_STAR_STATUS));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_STAR_STATUS);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_LAST_USED)) {
|
||||
setLastUsed(bundle.getLong(BUNDLE_LOYALTY_CARD_LAST_USED));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_LAST_USED);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_ZOOM_LEVEL)) {
|
||||
setZoomLevel(bundle.getInt(BUNDLE_LOYALTY_CARD_ZOOM_LEVEL));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_ZOOM_LEVEL);
|
||||
}
|
||||
if (bundle.containsKey(BUNDLE_LOYALTY_CARD_ARCHIVE_STATUS)) {
|
||||
setArchiveStatus(bundle.getInt(BUNDLE_LOYALTY_CARD_ARCHIVE_STATUS));
|
||||
} else if (requireFull) {
|
||||
throw new IllegalArgumentException("Missing key " + BUNDLE_LOYALTY_CARD_ARCHIVE_STATUS);
|
||||
}
|
||||
}
|
||||
|
||||
public Bundle toBundle() {
|
||||
Bundle bundle = new Bundle();
|
||||
|
||||
bundle.putInt(BUNDLE_LOYALTY_CARD_ID, id);
|
||||
bundle.putString(BUNDLE_LOYALTY_CARD_STORE, store);
|
||||
bundle.putString(BUNDLE_LOYALTY_CARD_NOTE, note);
|
||||
if (validFrom != null) {
|
||||
bundle.putLong(BUNDLE_LOYALTY_CARD_VALID_FROM, validFrom.getTime());
|
||||
}
|
||||
if (expiry != null) {
|
||||
bundle.putLong(BUNDLE_LOYALTY_CARD_EXPIRY, expiry.getTime());
|
||||
}
|
||||
bundle.putString(BUNDLE_LOYALTY_CARD_BALANCE, balance.toString());
|
||||
if (balanceType != null) {
|
||||
bundle.putString(BUNDLE_LOYALTY_CARD_BALANCE_TYPE, balanceType.toString());
|
||||
}
|
||||
bundle.putString(BUNDLE_LOYALTY_CARD_CARD_ID, cardId);
|
||||
bundle.putString(BUNDLE_LOYALTY_CARD_BARCODE_ID, barcodeId);
|
||||
if (barcodeType != null) {
|
||||
bundle.putString(BUNDLE_LOYALTY_CARD_BARCODE_TYPE, barcodeType.name());
|
||||
}
|
||||
if (headerColor != null) {
|
||||
bundle.putInt(BUNDLE_LOYALTY_CARD_HEADER_COLOR, headerColor);
|
||||
}
|
||||
bundle.putInt(BUNDLE_LOYALTY_CARD_STAR_STATUS, starStatus);
|
||||
bundle.putLong(BUNDLE_LOYALTY_CARD_LAST_USED, lastUsed);
|
||||
bundle.putInt(BUNDLE_LOYALTY_CARD_ZOOM_LEVEL, zoomLevel);
|
||||
bundle.putInt(BUNDLE_LOYALTY_CARD_ARCHIVE_STATUS, archiveStatus);
|
||||
|
||||
return bundle;
|
||||
}
|
||||
|
||||
public static LoyaltyCard fromCursor(Cursor cursor) {
|
||||
// id
|
||||
int id = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.ID));
|
||||
// store
|
||||
String store = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.STORE));
|
||||
// note
|
||||
String note = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.NOTE));
|
||||
// validFrom
|
||||
long validFromLong = cursor.getLong(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.VALID_FROM));
|
||||
Date validFrom = validFromLong > 0 ? new Date(validFromLong) : null;
|
||||
// expiry
|
||||
long expiryLong = cursor.getLong(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.EXPIRY));
|
||||
Date expiry = expiryLong > 0 ? new Date(expiryLong) : null;
|
||||
// balance
|
||||
BigDecimal balance = new BigDecimal(cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BALANCE)));
|
||||
String cardId = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.CARD_ID));
|
||||
String barcodeId = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BARCODE_ID));
|
||||
int starred = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.STAR_STATUS));
|
||||
long lastUsed = cursor.getLong(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.LAST_USED));
|
||||
int zoomLevel = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.ZOOM_LEVEL));
|
||||
int archived = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.ARCHIVE_STATUS));
|
||||
|
||||
int barcodeTypeColumn = cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BARCODE_TYPE);
|
||||
// balanceType
|
||||
int balanceTypeColumn = cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BALANCE_TYPE);
|
||||
Currency balanceType = !cursor.isNull(balanceTypeColumn) ? Currency.getInstance(cursor.getString(balanceTypeColumn)) : null;
|
||||
// cardId
|
||||
String cardId = cursor.getString(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.CARD_ID));
|
||||
// barcodeId
|
||||
int barcodeIdColumn = cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BARCODE_ID);
|
||||
String barcodeId = !cursor.isNull(barcodeIdColumn) ? cursor.getString(barcodeIdColumn) : null;
|
||||
// barcodeType
|
||||
int barcodeTypeColumn = cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BARCODE_TYPE);
|
||||
CatimaBarcode barcodeType = !cursor.isNull(barcodeTypeColumn) ? CatimaBarcode.fromName(cursor.getString(barcodeTypeColumn)) : null;
|
||||
// headerColor
|
||||
int headerColorColumn = cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.HEADER_COLOR);
|
||||
Integer headerColor = !cursor.isNull(headerColorColumn) ? cursor.getInt(headerColorColumn) : null;
|
||||
// starStatus
|
||||
int starStatus = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.STAR_STATUS));
|
||||
// lastUsed
|
||||
long lastUsed = cursor.getLong(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.LAST_USED));
|
||||
// zoomLevel
|
||||
int zoomLevel = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.ZOOM_LEVEL));
|
||||
// archiveStatus
|
||||
int archiveStatus = cursor.getInt(cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.ARCHIVE_STATUS));
|
||||
|
||||
CatimaBarcode barcodeType = null;
|
||||
Currency balanceType = null;
|
||||
Date validFrom = null;
|
||||
Date expiry = null;
|
||||
Integer headerColor = null;
|
||||
|
||||
if (cursor.isNull(barcodeTypeColumn) == false) {
|
||||
barcodeType = CatimaBarcode.fromName(cursor.getString(barcodeTypeColumn));
|
||||
}
|
||||
|
||||
if (cursor.isNull(balanceTypeColumn) == false) {
|
||||
balanceType = Currency.getInstance(cursor.getString(balanceTypeColumn));
|
||||
}
|
||||
|
||||
if (validFromLong > 0) {
|
||||
validFrom = new Date(validFromLong);
|
||||
}
|
||||
|
||||
if (expiryLong > 0) {
|
||||
expiry = new Date(expiryLong);
|
||||
}
|
||||
|
||||
if (cursor.isNull(headerColorColumn) == false) {
|
||||
headerColor = cursor.getInt(headerColorColumn);
|
||||
}
|
||||
|
||||
return new LoyaltyCard(id, store, note, validFrom, expiry, balance, balanceType, cardId, barcodeId, barcodeType, headerColor, starred, lastUsed, zoomLevel, archived);
|
||||
return new LoyaltyCard(id, store, note, validFrom, expiry, balance, balanceType, cardId, barcodeId, barcodeType, headerColor, starStatus, lastUsed, zoomLevel, archiveStatus);
|
||||
}
|
||||
|
||||
public static boolean isDuplicate(final LoyaltyCard a, final LoyaltyCard b) {
|
||||
|
||||
@@ -30,6 +30,7 @@ import java.text.DateFormat;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import protect.card_locker.databinding.LoyaltyCardLayoutBinding;
|
||||
import protect.card_locker.preferences.Settings;
|
||||
|
||||
public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCursorAdapter.LoyaltyCardListItemViewHolder> {
|
||||
private int mCurrentSelectedIndex = -1;
|
||||
@@ -79,7 +80,7 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
|
||||
|
||||
public LoyaltyCard getCard(int position) {
|
||||
mCursor.moveToPosition(position);
|
||||
return LoyaltyCard.toLoyaltyCard(mCursor);
|
||||
return LoyaltyCard.fromCursor(mCursor);
|
||||
}
|
||||
|
||||
public void onBindViewHolder(LoyaltyCardListItemViewHolder inputHolder, Cursor inputCursor) {
|
||||
@@ -87,7 +88,7 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
|
||||
boolean showDivider = false;
|
||||
inputHolder.mDivider.setVisibility(View.GONE);
|
||||
|
||||
LoyaltyCard loyaltyCard = LoyaltyCard.toLoyaltyCard(inputCursor);
|
||||
LoyaltyCard loyaltyCard = LoyaltyCard.fromCursor(inputCursor);
|
||||
Bitmap icon = Utils.retrieveCardImage(mContext, loyaltyCard.id, ImageLocationType.icon);
|
||||
|
||||
if (mLoyaltyCardListDisplayOptions.showingNameBelowThumbnail() && icon != null) {
|
||||
@@ -111,19 +112,19 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
|
||||
}
|
||||
|
||||
if (mLoyaltyCardListDisplayOptions.showingValidity() && loyaltyCard.validFrom != null) {
|
||||
inputHolder.setExtraField(inputHolder.mValidFromField, DateFormat.getDateInstance(DateFormat.LONG).format(loyaltyCard.validFrom), Utils.isNotYetValid(loyaltyCard.validFrom) ? Color.RED : null, showDivider);
|
||||
inputHolder.setExtraField(inputHolder.mValidFromField, DateFormat.getDateInstance(DateFormat.MEDIUM).format(loyaltyCard.validFrom), Utils.isNotYetValid(loyaltyCard.validFrom) ? Color.RED : null, showDivider);
|
||||
} else {
|
||||
inputHolder.setExtraField(inputHolder.mValidFromField, null, null, false);
|
||||
}
|
||||
|
||||
if (mLoyaltyCardListDisplayOptions.showingValidity() && loyaltyCard.expiry != null) {
|
||||
inputHolder.setExtraField(inputHolder.mExpiryField, DateFormat.getDateInstance(DateFormat.LONG).format(loyaltyCard.expiry), Utils.hasExpired(loyaltyCard.expiry) ? Color.RED : null, showDivider);
|
||||
inputHolder.setExtraField(inputHolder.mExpiryField, DateFormat.getDateInstance(DateFormat.MEDIUM).format(loyaltyCard.expiry), Utils.hasExpired(loyaltyCard.expiry) ? Color.RED : null, showDivider);
|
||||
} else {
|
||||
inputHolder.setExtraField(inputHolder.mExpiryField, null, null, false);
|
||||
}
|
||||
|
||||
inputHolder.mCardIcon.setContentDescription(loyaltyCard.store);
|
||||
inputHolder.mIconBackgroundColor = Utils.setIconOrTextWithBackground(mContext, loyaltyCard, icon, inputHolder.mCardIcon, inputHolder.mCardText);
|
||||
inputHolder.mIconBackgroundColor = Utils.setIconOrTextWithBackground(mContext, loyaltyCard, icon, inputHolder.mCardIcon, inputHolder.mCardText, new Settings(mContext).getPreferredColumnCount());
|
||||
|
||||
inputHolder.toggleCardStateIcon(loyaltyCard.starStatus != 0, loyaltyCard.archiveStatus != 0, itemSelected(inputCursor.getPosition()));
|
||||
|
||||
@@ -192,7 +193,7 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
|
||||
int i;
|
||||
for (i = 0; i < mSelectedItems.size(); i++) {
|
||||
mCursor.moveToPosition(mSelectedItems.keyAt(i));
|
||||
result.add(LoyaltyCard.toLoyaltyCard(mCursor));
|
||||
result.add(LoyaltyCard.fromCursor(mCursor));
|
||||
}
|
||||
|
||||
return result;
|
||||
@@ -339,10 +340,4 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public int dpToPx(int dp, Context mContext) {
|
||||
Resources r = mContext.getResources();
|
||||
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, r.getDisplayMetrics());
|
||||
return px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,9 +127,6 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
public static final String BUNDLE_DUPLICATE_ID = "duplicateId";
|
||||
public static final String BUNDLE_UPDATE = "update";
|
||||
public static final String BUNDLE_OPEN_SET_ICON_MENU = "openSetIconMenu";
|
||||
public static final String BUNDLE_CARDID = "cardId";
|
||||
public static final String BUNDLE_BARCODEID = "barcodeId";
|
||||
public static final String BUNDLE_BARCODETYPE = "barcodeType";
|
||||
public static final String BUNDLE_ADDGROUP = "addGroup";
|
||||
|
||||
TabLayout tabs;
|
||||
@@ -162,15 +159,11 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
boolean updateLoyaltyCard;
|
||||
boolean duplicateFromLoyaltyCardId;
|
||||
boolean openSetIconMenu;
|
||||
String cardId;
|
||||
String barcodeId;
|
||||
String barcodeType;
|
||||
String addGroup;
|
||||
|
||||
Uri importLoyaltyCardUri = null;
|
||||
|
||||
SQLiteDatabase mDatabase;
|
||||
ImportURIHelper importUriHelper;
|
||||
|
||||
boolean hasChanged = false;
|
||||
String tempStoredOldBarcodeValue = null;
|
||||
@@ -183,7 +176,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
HashMap<String, Currency> currencies = new HashMap<>();
|
||||
HashMap<String, String> currencySymbols = new HashMap<>();
|
||||
|
||||
LoyaltyCard tempLoyaltyCard;
|
||||
LoyaltyCard tempLoyaltyCard = new LoyaltyCard();
|
||||
LoyaltyCardField tempLoyaltyCardField;
|
||||
|
||||
ActivityResultLauncher<Uri> mPhotoTakerLauncher;
|
||||
@@ -215,53 +208,112 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
super.attachBaseContext(base);
|
||||
}
|
||||
|
||||
private static LoyaltyCard updateTempState(LoyaltyCard loyaltyCard, LoyaltyCardField fieldName, Object value) {
|
||||
return new LoyaltyCard(
|
||||
(int) (fieldName == LoyaltyCardField.id ? value : loyaltyCard.id),
|
||||
(String) (fieldName == LoyaltyCardField.store ? value : loyaltyCard.store),
|
||||
(String) (fieldName == LoyaltyCardField.note ? value : loyaltyCard.note),
|
||||
(Date) (fieldName == LoyaltyCardField.validFrom ? value : loyaltyCard.validFrom),
|
||||
(Date) (fieldName == LoyaltyCardField.expiry ? value : loyaltyCard.expiry),
|
||||
(BigDecimal) (fieldName == LoyaltyCardField.balance ? value : loyaltyCard.balance),
|
||||
(Currency) (fieldName == LoyaltyCardField.balanceType ? value : loyaltyCard.balanceType),
|
||||
(String) (fieldName == LoyaltyCardField.cardId ? value : loyaltyCard.cardId),
|
||||
(String) (fieldName == LoyaltyCardField.barcodeId ? value : loyaltyCard.barcodeId),
|
||||
(CatimaBarcode) (fieldName == LoyaltyCardField.barcodeType ? value : loyaltyCard.barcodeType),
|
||||
(Integer) (fieldName == LoyaltyCardField.headerColor ? value : loyaltyCard.headerColor),
|
||||
(int) (fieldName == LoyaltyCardField.starStatus ? value : loyaltyCard.starStatus),
|
||||
0, // Unimportant, always set to null in doSave so the DB updates it to the current timestamp
|
||||
100, // Unimportant, not updated in doSave, defaults to 100 for new cards
|
||||
(int) (fieldName == LoyaltyCardField.archiveStatus ? value : loyaltyCard.archiveStatus)
|
||||
);
|
||||
}
|
||||
|
||||
protected void updateTempState(LoyaltyCardField fieldName, Object value) {
|
||||
tempLoyaltyCard = updateTempState(tempLoyaltyCard, fieldName, value);
|
||||
|
||||
if (initDone && (fieldName == LoyaltyCardField.cardId || fieldName == LoyaltyCardField.barcodeId || fieldName == LoyaltyCardField.barcodeType)) {
|
||||
generateBarcode();
|
||||
}
|
||||
protected void setLoyaltyCardStore(@NonNull String store) {
|
||||
tempLoyaltyCard.setStore(store);
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
private void extractIntentFields(Intent intent) {
|
||||
protected void setLoyaltyCardNote(@NonNull String note) {
|
||||
tempLoyaltyCard.setNote(note);
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
protected void setLoyaltyCardValidFrom(@Nullable Date validFrom) {
|
||||
tempLoyaltyCard.setValidFrom(validFrom);
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
protected void setLoyaltyCardExpiry(@Nullable Date expiry) {
|
||||
tempLoyaltyCard.setExpiry(expiry);
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
protected void setLoyaltyCardBalance(@NonNull BigDecimal balance) {
|
||||
tempLoyaltyCard.setBalance(balance);
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
protected void setLoyaltyCardBalanceType(@Nullable Currency balanceType) {
|
||||
tempLoyaltyCard.setBalanceType(balanceType);
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
protected void setLoyaltyCardCardId(@NonNull String cardId) {
|
||||
tempLoyaltyCard.setCardId(cardId);
|
||||
|
||||
generateBarcode();
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
protected void setLoyaltyCardBarcodeId(@Nullable String barcodeId) {
|
||||
tempLoyaltyCard.setBarcodeId(barcodeId);
|
||||
|
||||
generateBarcode();
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
protected void setLoyaltyCardBarcodeType(@Nullable CatimaBarcode barcodeType) {
|
||||
tempLoyaltyCard.setBarcodeType(barcodeType);
|
||||
|
||||
generateBarcode();
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
protected void setLoyaltyCardHeaderColor(@Nullable Integer headerColor) {
|
||||
tempLoyaltyCard.setHeaderColor(headerColor);
|
||||
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
/* Extract intent fields and return if code should keep running */
|
||||
private boolean extractIntentFields(Intent intent) {
|
||||
final Bundle b = intent.getExtras();
|
||||
|
||||
addGroup = b != null ? b.getString(BUNDLE_ADDGROUP) : null;
|
||||
openSetIconMenu = b != null && b.getBoolean(BUNDLE_OPEN_SET_ICON_MENU, false);
|
||||
|
||||
loyaltyCardId = b != null ? b.getInt(BUNDLE_ID) : 0;
|
||||
updateLoyaltyCard = b != null && b.getBoolean(BUNDLE_UPDATE, false);
|
||||
duplicateFromLoyaltyCardId = b != null && b.getBoolean(BUNDLE_DUPLICATE_ID, false);
|
||||
|
||||
openSetIconMenu = b != null && b.getBoolean(BUNDLE_OPEN_SET_ICON_MENU, false);
|
||||
|
||||
cardId = b != null ? b.getString(BUNDLE_CARDID) : null;
|
||||
barcodeId = b != null ? b.getString(BUNDLE_BARCODEID) : null;
|
||||
barcodeType = b != null ? b.getString(BUNDLE_BARCODETYPE) : null;
|
||||
addGroup = b != null ? b.getString(BUNDLE_ADDGROUP) : null;
|
||||
|
||||
importLoyaltyCardUri = intent.getData();
|
||||
|
||||
// If we have to import a loyalty card, do so
|
||||
if (updateLoyaltyCard || duplicateFromLoyaltyCardId) {
|
||||
tempLoyaltyCard = DBHelper.getLoyaltyCard(mDatabase, loyaltyCardId);
|
||||
if (tempLoyaltyCard == null) {
|
||||
Log.w(TAG, "Could not lookup loyalty card " + loyaltyCardId);
|
||||
Toast.makeText(this, R.string.noCardExistsError, Toast.LENGTH_LONG).show();
|
||||
finish();
|
||||
return false;
|
||||
}
|
||||
} else if (importLoyaltyCardUri != null) {
|
||||
try {
|
||||
tempLoyaltyCard = new ImportURIHelper(this).parse(importLoyaltyCardUri);
|
||||
} catch (InvalidObjectException ex) {
|
||||
Toast.makeText(this, R.string.failedParsingImportUriError, Toast.LENGTH_LONG).show();
|
||||
finish();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// If the intent contains any loyalty card fields, override those fields in our current temp card
|
||||
if (b != null) {
|
||||
tempLoyaltyCard.updateFromBundle(b, false);
|
||||
}
|
||||
|
||||
Log.d(TAG, "Edit activity: id=" + loyaltyCardId
|
||||
+ ", updateLoyaltyCard=" + updateLoyaltyCard);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -333,9 +385,9 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
|
||||
mDatabase = new DBHelper(this).getWritableDatabase();
|
||||
|
||||
extractIntentFields(getIntent());
|
||||
|
||||
importUriHelper = new ImportURIHelper(this);
|
||||
if (!extractIntentFields(getIntent())) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (Currency currency : Currency.getAvailableCurrencies()) {
|
||||
currencies.put(currency.getSymbol(), currency);
|
||||
@@ -370,7 +422,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
String storeName = s.toString().trim();
|
||||
updateTempState(LoyaltyCardField.store, storeName);
|
||||
setLoyaltyCardStore(storeName);
|
||||
generateIcon(storeName);
|
||||
|
||||
if (storeName.length() == 0) {
|
||||
@@ -384,7 +436,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
noteFieldEdit.addTextChangedListener(new SimpleTextWatcher() {
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
updateTempState(LoyaltyCardField.note, s.toString());
|
||||
setLoyaltyCardNote(s.toString());
|
||||
}
|
||||
});
|
||||
|
||||
@@ -397,7 +449,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
balanceField.setOnFocusChangeListener((v, hasFocus) -> {
|
||||
if (!hasFocus && !onResuming && !onRestoring) {
|
||||
if (balanceField.getText().toString().isEmpty()) {
|
||||
updateTempState(LoyaltyCardField.balance, BigDecimal.valueOf(0));
|
||||
setLoyaltyCardBalance(BigDecimal.valueOf(0));
|
||||
}
|
||||
|
||||
balanceField.setText(Utils.formatBalanceWithoutCurrencySymbol(tempLoyaltyCard.balance, tempLoyaltyCard.balanceType));
|
||||
@@ -410,7 +462,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
if (onResuming || onRestoring) return;
|
||||
try {
|
||||
BigDecimal balance = Utils.parseBalance(s.toString(), tempLoyaltyCard.balanceType);
|
||||
updateTempState(LoyaltyCardField.balance, balance);
|
||||
setLoyaltyCardBalance(balance);
|
||||
balanceField.setError(null);
|
||||
validBalance = true;
|
||||
} catch (ParseException e) {
|
||||
@@ -432,7 +484,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
currency = currencies.get(s.toString());
|
||||
}
|
||||
|
||||
updateTempState(LoyaltyCardField.balanceType, currency);
|
||||
setLoyaltyCardBalanceType(currency);
|
||||
|
||||
if (tempLoyaltyCard.balance != null && !onResuming && !onRestoring) {
|
||||
balanceField.setText(Utils.formatBalanceWithoutCurrencySymbol(tempLoyaltyCard.balance, currency));
|
||||
@@ -491,7 +543,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
updateTempState(LoyaltyCardField.cardId, s.toString());
|
||||
setLoyaltyCardCardId(s.toString());
|
||||
|
||||
if (s.length() == 0) {
|
||||
cardIdFieldView.setError(getString(R.string.field_must_not_be_empty));
|
||||
@@ -516,7 +568,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
// request to update it to match the card id (if changed)
|
||||
tempStoredOldBarcodeValue = null;
|
||||
|
||||
updateTempState(LoyaltyCardField.barcodeId, null);
|
||||
setLoyaltyCardBarcodeId(null);
|
||||
} else if (s.toString().equals(getString(R.string.setBarcodeId))) {
|
||||
if (!lastValue.toString().equals(getString(R.string.setBarcodeId))) {
|
||||
barcodeIdField.setText(lastValue);
|
||||
@@ -554,7 +606,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
|
||||
input.requestFocus();
|
||||
} else {
|
||||
updateTempState(LoyaltyCardField.barcodeId, s.toString());
|
||||
setLoyaltyCardBarcodeId(s.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -573,12 +625,12 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
if (!s.toString().isEmpty()) {
|
||||
if (s.toString().equals(getString(R.string.noBarcode))) {
|
||||
updateTempState(LoyaltyCardField.barcodeType, null);
|
||||
setLoyaltyCardBarcodeType(null);
|
||||
} else {
|
||||
try {
|
||||
CatimaBarcode barcodeFormat = CatimaBarcode.fromPrettyName(s.toString());
|
||||
|
||||
updateTempState(LoyaltyCardField.barcodeType, barcodeFormat);
|
||||
setLoyaltyCardBarcodeType(barcodeFormat);
|
||||
|
||||
if (!barcodeFormat.isSupported()) {
|
||||
Toast.makeText(LoyaltyCardEditActivity.this, getString(R.string.unsupportedBarcodeType), Toast.LENGTH_LONG).show();
|
||||
@@ -652,9 +704,9 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
Utils.makeUserChooseBarcodeFromList(this, barcodeValuesList, new BarcodeValuesListDisambiguatorCallback() {
|
||||
@Override
|
||||
public void onUserChoseBarcode(BarcodeValues barcodeValues) {
|
||||
cardId = barcodeValues.content();
|
||||
barcodeType = barcodeValues.format();
|
||||
barcodeId = "";
|
||||
setLoyaltyCardCardId(barcodeValues.content());
|
||||
setLoyaltyCardBarcodeType(barcodeValues.format());
|
||||
setLoyaltyCardBarcodeId("");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -796,30 +848,6 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
|
||||
onResuming = true;
|
||||
|
||||
if (tempLoyaltyCard == null) {
|
||||
if (updateLoyaltyCard || duplicateFromLoyaltyCardId) {
|
||||
tempLoyaltyCard = DBHelper.getLoyaltyCard(mDatabase, loyaltyCardId);
|
||||
if (tempLoyaltyCard == null) {
|
||||
Log.w(TAG, "Could not lookup loyalty card " + loyaltyCardId);
|
||||
Toast.makeText(this, R.string.noCardExistsError, Toast.LENGTH_LONG).show();
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
} else if (importLoyaltyCardUri != null) {
|
||||
try {
|
||||
tempLoyaltyCard = importUriHelper.parse(importLoyaltyCardUri);
|
||||
} catch (InvalidObjectException ex) {
|
||||
Toast.makeText(this, R.string.failedParsingImportUriError, Toast.LENGTH_LONG).show();
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
// New card, use default values
|
||||
tempLoyaltyCard = new LoyaltyCard(-1, "", "", null, null, new BigDecimal("0"), null, "", null, null, null, 0, Utils.getUnixTime(), 100,0);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (!initDone) {
|
||||
if (updateLoyaltyCard) {
|
||||
setTitle(R.string.editCardTitle);
|
||||
@@ -868,7 +896,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
// which can cause issues when switching locale because it parses the balance and e.g. the decimal separator may have changed.
|
||||
formatBalanceCurrencyField(tempLoyaltyCard.balanceType);
|
||||
BigDecimal balance = tempLoyaltyCard.balance == null ? new BigDecimal("0") : tempLoyaltyCard.balance;
|
||||
tempLoyaltyCard = updateTempState(tempLoyaltyCard, LoyaltyCardField.balance, balance);
|
||||
setLoyaltyCardBalance(balance);
|
||||
balanceField.setText(Utils.formatBalanceWithoutCurrencySymbol(tempLoyaltyCard.balance, tempLoyaltyCard.balanceType));
|
||||
validBalance = true;
|
||||
Log.d(TAG, "Setting balance to " + balance);
|
||||
@@ -915,35 +943,30 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
|
||||
if (tempLoyaltyCard.headerColor == null) {
|
||||
// If name is set, pick colour relevant for name. Otherwise pick randomly
|
||||
updateTempState(LoyaltyCardField.headerColor, tempLoyaltyCard.store.isEmpty() ? Utils.getRandomHeaderColor(this) : Utils.getHeaderColor(this, tempLoyaltyCard));
|
||||
setLoyaltyCardHeaderColor(tempLoyaltyCard.store.isEmpty() ? Utils.getRandomHeaderColor(this) : Utils.getHeaderColor(this, tempLoyaltyCard));
|
||||
}
|
||||
|
||||
// Update from intent
|
||||
if (barcodeType != null) {
|
||||
// Fix up some fields
|
||||
if (tempLoyaltyCard.barcodeType != null) {
|
||||
try {
|
||||
barcodeTypeField.setText(CatimaBarcode.fromName(barcodeType).prettyName());
|
||||
barcodeTypeField.setText(tempLoyaltyCard.barcodeType.prettyName());
|
||||
} catch (IllegalArgumentException e) {
|
||||
barcodeTypeField.setText(getString(R.string.noBarcode));
|
||||
}
|
||||
}
|
||||
|
||||
if (cardId != null) {
|
||||
cardIdFieldView.setText(cardId);
|
||||
if (tempLoyaltyCard.cardId != null) {
|
||||
cardIdFieldView.setText(tempLoyaltyCard.cardId);
|
||||
}
|
||||
|
||||
if (barcodeId != null) {
|
||||
if (!barcodeId.isEmpty()) {
|
||||
barcodeIdField.setText(barcodeId);
|
||||
if (tempLoyaltyCard.barcodeId != null) {
|
||||
if (!tempLoyaltyCard.barcodeId.isEmpty()) {
|
||||
barcodeIdField.setText(tempLoyaltyCard.barcodeId);
|
||||
} else {
|
||||
barcodeIdField.setText(getString(R.string.sameAsCardId));
|
||||
}
|
||||
}
|
||||
|
||||
// Empty intent values
|
||||
barcodeType = null;
|
||||
cardId = null;
|
||||
barcodeId = null;
|
||||
|
||||
// Initialization has finished
|
||||
if (!initDone) {
|
||||
initDone = true;
|
||||
@@ -964,9 +987,6 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
|
||||
generateIcon(storeFieldEdit.getText().toString().trim());
|
||||
|
||||
// It can't be null because we set it in updateTempState but SpotBugs insists it can be
|
||||
// NP_NULL_ON_SOME_PATH: Possible null pointer dereference and
|
||||
// NP_NULL_PARAM_DEREF: Method call passes null for non-null parameter
|
||||
Integer headerColor = tempLoyaltyCard.headerColor;
|
||||
if (headerColor != null) {
|
||||
thumbnail.setOnClickListener(new ChooseCardImage());
|
||||
@@ -990,7 +1010,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
if (icon != null && (icon instanceof Bitmap)) {
|
||||
int headerColor = Utils.getHeaderColorFromImage((Bitmap) icon, Utils.getHeaderColor(this, tempLoyaltyCard));
|
||||
|
||||
updateTempState(LoyaltyCardField.headerColor, headerColor);
|
||||
setLoyaltyCardHeaderColor(headerColor);
|
||||
|
||||
thumbnailEditIcon.setBackgroundColor(Utils.needsDarkForeground(headerColor) ? Color.BLACK : Color.WHITE);
|
||||
thumbnailEditIcon.setColorFilter(Utils.needsDarkForeground(headerColor) ? Color.WHITE : Color.BLACK);
|
||||
@@ -1038,7 +1058,16 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
if (s.toString().equals(getString(defaultOptionStringId))) {
|
||||
dateField.setTag(null);
|
||||
updateTempState(loyaltyCardField, null);
|
||||
switch (loyaltyCardField) {
|
||||
case validFrom:
|
||||
setLoyaltyCardValidFrom(null);
|
||||
break;
|
||||
case expiry:
|
||||
setLoyaltyCardExpiry(null);
|
||||
break;
|
||||
default:
|
||||
throw new AssertionError("Unexpected field: " + loyaltyCardField);
|
||||
}
|
||||
} else if (s.toString().equals(getString(chooseDateOptionStringId))) {
|
||||
if (!lastValue.toString().equals(getString(chooseDateOptionStringId))) {
|
||||
dateField.setText(lastValue);
|
||||
@@ -1255,7 +1284,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
public void onClick(View v) {
|
||||
Intent i = new Intent(getApplicationContext(), ScanActivity.class);
|
||||
final Bundle b = new Bundle();
|
||||
b.putString(LoyaltyCardEditActivity.BUNDLE_CARDID, cardIdFieldView.getText().toString());
|
||||
b.putString(LoyaltyCard.BUNDLE_LOYALTY_CARD_CARD_ID, cardIdFieldView.getText().toString());
|
||||
i.putExtras(b);
|
||||
mCardIdAndBarCodeEditorLauncher.launch(i);
|
||||
}
|
||||
@@ -1405,7 +1434,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
@Override
|
||||
public void onColorSelected(int dialogId, int color) {
|
||||
// Save new colour
|
||||
updateTempState(LoyaltyCardField.headerColor, color);
|
||||
setLoyaltyCardHeaderColor(color);
|
||||
|
||||
// Unset image if set
|
||||
mIconRemoved = true;
|
||||
@@ -1496,11 +1525,11 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
switch (tempLoyaltyCardField) {
|
||||
case validFrom:
|
||||
formatDateField(LoyaltyCardEditActivity.this, validFromField, newDate);
|
||||
updateTempState(LoyaltyCardField.validFrom, newDate);
|
||||
setLoyaltyCardValidFrom(newDate);
|
||||
break;
|
||||
case expiry:
|
||||
formatDateField(LoyaltyCardEditActivity.this, expiryField, newDate);
|
||||
updateTempState(LoyaltyCardField.expiry, newDate);
|
||||
setLoyaltyCardExpiry(newDate);
|
||||
break;
|
||||
default:
|
||||
throw new AssertionError("Unexpected field: " + tempLoyaltyCardField);
|
||||
@@ -1594,8 +1623,6 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Log.i(TAG, "Set " + loyaltyCardId + " to " + cardId + " (update: " + updateLoyaltyCard + ")");
|
||||
|
||||
DBHelper.setLoyaltyCardGroups(mDatabase, loyaltyCardId, selectedGroups);
|
||||
|
||||
ShortcutHelper.updateShortcuts(this, DBHelper.getLoyaltyCard(mDatabase, loyaltyCardId));
|
||||
@@ -1693,10 +1720,6 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity implements
|
||||
}
|
||||
|
||||
private void generateBarcode() {
|
||||
if (tempLoyaltyCard == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
mTasks.flushTaskList(TaskHandler.TYPE.BARCODE, true, false, false);
|
||||
|
||||
String cardIdString = tempLoyaltyCard.barcodeId != null ? tempLoyaltyCard.barcodeId : tempLoyaltyCard.cardId;
|
||||
|
||||
@@ -19,6 +19,7 @@ import android.text.method.DigitsKeyListener;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.text.util.Linkify;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
@@ -97,9 +98,35 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
static final String STATE_IMAGEINDEX = "imageIndex";
|
||||
static final String STATE_FULLSCREEN = "isFullscreen";
|
||||
|
||||
static final String BUNDLE_ID = "id";
|
||||
static final String BUNDLE_CARDLIST = "cardList";
|
||||
static final String BUNDLE_TRANSITION_RIGHT = "transition_right";
|
||||
|
||||
final private TaskHandler mTasks = new TaskHandler();
|
||||
Runnable barcodeImageGenerationFinishedCallback;
|
||||
|
||||
private long initTime = System.currentTimeMillis();
|
||||
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
if (settings.useVolumeKeysForNavigation()) {
|
||||
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
|
||||
// Navigate to the previous card
|
||||
if (initTime < (System.currentTimeMillis() - 1000)) {
|
||||
prevNextCard(false);
|
||||
}
|
||||
return true;
|
||||
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
|
||||
// Navigate to the next card
|
||||
if (initTime < (System.currentTimeMillis() - 1000)) {
|
||||
prevNextCard(true);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.onKeyDown(keyCode, event);
|
||||
}
|
||||
|
||||
public void onMainImageTap() {
|
||||
// If we're in fullscreen, leave fullscreen
|
||||
if (isFullscreen) {
|
||||
@@ -181,8 +208,8 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
|
||||
private void extractIntentFields(Intent intent) {
|
||||
final Bundle b = intent.getExtras();
|
||||
loyaltyCardId = b != null ? b.getInt("id") : 0;
|
||||
cardList = b != null ? b.getIntegerArrayList("cardList") : null;
|
||||
loyaltyCardId = b != null ? b.getInt(BUNDLE_ID) : 0;
|
||||
cardList = b != null ? b.getIntegerArrayList(BUNDLE_CARDLIST) : null;
|
||||
Log.d(TAG, "View activity: id=" + loyaltyCardId);
|
||||
}
|
||||
|
||||
@@ -208,7 +235,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
return;
|
||||
}
|
||||
|
||||
int transitionRight = incomingIntentExtras.getInt("transition_right", -1);
|
||||
int transitionRight = incomingIntentExtras.getInt(BUNDLE_TRANSITION_RIGHT, -1);
|
||||
if (transitionRight == 1) {
|
||||
// right side transition
|
||||
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
|
||||
@@ -572,8 +599,8 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
// Restart activity with new card id and index
|
||||
Intent intent = getIntent();
|
||||
Bundle b = intent.getExtras();
|
||||
b.putInt("id", loyaltyCardId);
|
||||
b.putInt("transition_right", transitionRight ? 1 : 0);
|
||||
b.putInt(BUNDLE_ID, loyaltyCardId);
|
||||
b.putInt(BUNDLE_TRANSITION_RIGHT, transitionRight ? 1 : 0);
|
||||
intent.putExtras(b);
|
||||
intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
startActivity(intent);
|
||||
@@ -693,7 +720,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
binding.fabEdit.setImageDrawable(editButtonIcon);
|
||||
|
||||
Bitmap icon = Utils.retrieveCardImage(this, loyaltyCard.id, ImageLocationType.icon);
|
||||
Utils.setIconOrTextWithBackground(this, loyaltyCard, icon, binding.iconImage, binding.iconText);
|
||||
Utils.setIconOrTextWithBackground(this, loyaltyCard, icon, binding.iconImage, binding.iconText, 1);
|
||||
|
||||
// If the background is very bright, we should use dark icons
|
||||
backgroundNeedsDarkIcons = Utils.needsDarkForeground(backgroundHeaderColor);
|
||||
|
||||
@@ -27,6 +27,7 @@ import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.view.ActionMode;
|
||||
import androidx.appcompat.widget.SearchView;
|
||||
import androidx.core.splashscreen.SplashScreen;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
@@ -43,6 +44,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||
import protect.card_locker.databinding.ContentMainBinding;
|
||||
import protect.card_locker.databinding.MainActivityBinding;
|
||||
import protect.card_locker.databinding.SortingOptionBinding;
|
||||
import protect.card_locker.preferences.Settings;
|
||||
import protect.card_locker.preferences.SettingsActivity;
|
||||
|
||||
public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCardCursorAdapter.CardAdapterListener {
|
||||
@@ -52,6 +54,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
public static final String RESTART_ACTIVITY_INTENT = "restart_activity_intent";
|
||||
|
||||
private static final int MEDIUM_SCALE_FACTOR_DIP = 460;
|
||||
static final String STATE_SEARCH_QUERY = "SEARCH_QUERY";
|
||||
|
||||
private SQLiteDatabase mDatabase;
|
||||
private LoyaltyCardCursorAdapter mAdapter;
|
||||
@@ -59,6 +62,8 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
private SearchView mSearchView;
|
||||
private int mLoyaltyCardCount = 0;
|
||||
protected String mFilter = "";
|
||||
private String currentQuery = "";
|
||||
private String finalQuery = "";
|
||||
protected Object mGroup = null;
|
||||
protected DBHelper.LoyaltyCardOrder mOrder = DBHelper.LoyaltyCardOrder.Alpha;
|
||||
protected DBHelper.LoyaltyCardOrderDirection mOrderDirection = DBHelper.LoyaltyCardOrderDirection.Ascending;
|
||||
@@ -68,9 +73,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
private View mNoMatchingCardsText;
|
||||
private View mNoGroupCardsText;
|
||||
private TabLayout groupsTabLayout;
|
||||
|
||||
private Runnable mUpdateLoyaltyCardListRunnable;
|
||||
|
||||
private ActivityResultLauncher<Intent> mBarcodeScannerLauncher;
|
||||
private ActivityResultLauncher<Intent> mSettingsLauncher;
|
||||
|
||||
@@ -197,7 +200,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
protected void onCreate(Bundle inputSavedInstanceState) {
|
||||
SplashScreen.installSplashScreen(this);
|
||||
super.onCreate(inputSavedInstanceState);
|
||||
|
||||
// We should extract the share intent after we called the super.onCreate as it may need to spawn a dialog window and the app needs to be initialized to not crash
|
||||
extractIntentFields(getIntent());
|
||||
|
||||
@@ -249,9 +251,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
mCardList.setAdapter(mAdapter);
|
||||
registerForContextMenu(mCardList);
|
||||
|
||||
mGroup = null;
|
||||
updateLoyaltyCardList(true);
|
||||
|
||||
mBarcodeScannerLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
|
||||
// Exit early if the user cancelled the scan (pressed back/home)
|
||||
if (result.getResultCode() != RESULT_OK) {
|
||||
@@ -299,7 +298,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
if (mSearchView != null && !mSearchView.isIconified()) {
|
||||
mFilter = mSearchView.getQuery().toString();
|
||||
}
|
||||
|
||||
// Start of active tab logic
|
||||
updateTabGroups(groupsTabLayout);
|
||||
|
||||
@@ -357,6 +355,12 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
mBarcodeScannerLauncher.launch(intent);
|
||||
});
|
||||
addButton.bringToFront();
|
||||
|
||||
var layoutManager = (GridLayoutManager) mCardList.getLayoutManager();
|
||||
if (layoutManager != null) {
|
||||
var settings = new Settings(this);
|
||||
layoutManager.setSpanCount(settings.getPreferredColumnCount());
|
||||
}
|
||||
}
|
||||
|
||||
private void displayCardSetupOptions(Menu menu, boolean shouldShow) {
|
||||
@@ -426,15 +430,18 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
Utils.makeUserChooseBarcodeFromList(MainActivity.this, barcodeValuesList, new BarcodeValuesListDisambiguatorCallback() {
|
||||
@Override
|
||||
public void onUserChoseBarcode(BarcodeValues barcodeValues) {
|
||||
Intent newIntent = new Intent(getApplicationContext(), LoyaltyCardEditActivity.class);
|
||||
Bundle newBundle = new Bundle();
|
||||
newBundle.putString(LoyaltyCardEditActivity.BUNDLE_BARCODETYPE, barcodeValues.format());
|
||||
newBundle.putString(LoyaltyCardEditActivity.BUNDLE_CARDID, barcodeValues.content());
|
||||
CatimaBarcode barcodeType = barcodeValues.format();
|
||||
|
||||
Intent intent = new Intent(getApplicationContext(), LoyaltyCardEditActivity.class);
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(LoyaltyCard.BUNDLE_LOYALTY_CARD_CARD_ID, barcodeValues.content());
|
||||
bundle.putString(LoyaltyCard.BUNDLE_LOYALTY_CARD_BARCODE_TYPE, barcodeType != null ? barcodeType.name() : null);
|
||||
bundle.putString(LoyaltyCard.BUNDLE_LOYALTY_CARD_BARCODE_ID, null);
|
||||
if (group != null) {
|
||||
newBundle.putString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP, group);
|
||||
bundle.putString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP, group);
|
||||
}
|
||||
newIntent.putExtras(newBundle);
|
||||
startActivity(newIntent);
|
||||
intent.putExtras(bundle);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -505,6 +512,24 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
// Saving currentQuery to finalQuery for user, this will be used to restore search history, happens when user clicks a card from list
|
||||
protected void onSaveInstanceState(@NonNull Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
finalQuery = currentQuery;
|
||||
// Putting the query also into outState for later use in onRestoreInstanceState when rotating screen
|
||||
if (mSearchView != null) {
|
||||
outState.putString(STATE_SEARCH_QUERY, finalQuery);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
// Restoring instance state when rotation of screen happens with the goal to restore search query for user
|
||||
protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
|
||||
super.onRestoreInstanceState(savedInstanceState);
|
||||
finalQuery = savedInstanceState.getString(STATE_SEARCH_QUERY, "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu inputMenu) {
|
||||
getMenuInflater().inflate(R.menu.main_menu, inputMenu);
|
||||
@@ -517,7 +542,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
mSearchView = (SearchView) searchMenuItem.getActionView();
|
||||
mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
|
||||
mSearchView.setSubmitButtonEnabled(false);
|
||||
|
||||
mSearchView.setOnCloseListener(() -> {
|
||||
invalidateOptionsMenu();
|
||||
return false;
|
||||
@@ -542,6 +566,9 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
mSearchView.clearFocus();
|
||||
return false;
|
||||
}
|
||||
currentQuery = "";
|
||||
mFilter = "";
|
||||
updateLoyaltyCardList(false);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
@@ -556,7 +583,21 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
mFilter = newText;
|
||||
|
||||
// New logic to ensure search history after coming back from picked card - user will see the last search query
|
||||
if (newText.isEmpty()) {
|
||||
if(!finalQuery.isEmpty()){
|
||||
// Setting the query text for user after coming back from picked card from finalQuery
|
||||
mSearchView.setQuery(finalQuery, false);
|
||||
}
|
||||
else if(!currentQuery.isEmpty()){
|
||||
// Else if is needed in case user deletes search - expected behaviour is to show all cards
|
||||
currentQuery = "";
|
||||
mSearchView.setQuery(currentQuery, false);
|
||||
}
|
||||
} else {
|
||||
// Setting search query each time user changes the text in search to temporary variable to be used later in finalQuery String which will be used to restore search history
|
||||
currentQuery = newText;
|
||||
}
|
||||
TabLayout.Tab currentTab = groupsTabLayout.getTabAt(groupsTabLayout.getSelectedTabPosition());
|
||||
mGroup = currentTab != null ? currentTab.getTag() : null;
|
||||
|
||||
@@ -565,6 +606,14 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
return true;
|
||||
}
|
||||
});
|
||||
// Check if we came from a picked card back to search, in that case we want to show the search view with previous search query
|
||||
if(!finalQuery.isEmpty()){
|
||||
// Expand the search view to show the query
|
||||
searchMenuItem.expandActionView();
|
||||
// Setting the query text to empty String due to behaviour of onQueryTextChange after coming back from picked card - onQueryTextChange is called automatically without users interaction
|
||||
finalQuery = "";
|
||||
mSearchView.setQuery(currentQuery, false);
|
||||
}
|
||||
}
|
||||
|
||||
return super.onCreateOptionsMenu(inputMenu);
|
||||
@@ -781,14 +830,14 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
Intent intent = new Intent(this, LoyaltyCardViewActivity.class);
|
||||
intent.setAction("");
|
||||
final Bundle b = new Bundle();
|
||||
b.putInt("id", loyaltyCard.id);
|
||||
b.putInt(LoyaltyCardViewActivity.BUNDLE_ID, loyaltyCard.id);
|
||||
|
||||
ArrayList<Integer> cardList = new ArrayList<>();
|
||||
for (int i = 0; i < mAdapter.getItemCount(); i++) {
|
||||
cardList.add(mAdapter.getCard(i).id);
|
||||
}
|
||||
|
||||
b.putIntegerArrayList("cardList", cardList);
|
||||
b.putIntegerArrayList(LoyaltyCardViewActivity.BUNDLE_CARDLIST, cardList);
|
||||
intent.putExtras(b);
|
||||
|
||||
startActivity(intent);
|
||||
|
||||
@@ -33,7 +33,7 @@ public class ManageGroupCursorAdapter extends LoyaltyCardCursorAdapter {
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(LoyaltyCardListItemViewHolder inputHolder, Cursor inputCursor) {
|
||||
LoyaltyCard loyaltyCard = LoyaltyCard.toLoyaltyCard(inputCursor);
|
||||
LoyaltyCard loyaltyCard = LoyaltyCard.fromCursor(inputCursor);
|
||||
Boolean overlayValue = mInGroupOverlay.get(loyaltyCard.id);
|
||||
if ((overlayValue != null ? overlayValue : isLoyaltyCardInGroup(loyaltyCard.id))) {
|
||||
mAnimationItemsIndex.put(inputCursor.getPosition(), true);
|
||||
|
||||
@@ -24,6 +24,8 @@ import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ListAdapter;
|
||||
import android.widget.SimpleAdapter;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
@@ -42,6 +44,8 @@ import com.journeyapps.barcodescanner.BarcodeResult;
|
||||
import com.journeyapps.barcodescanner.CaptureManager;
|
||||
import com.journeyapps.barcodescanner.DecoratedBarcodeView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import protect.card_locker.databinding.CustomBarcodeScannerBinding;
|
||||
@@ -82,7 +86,7 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
|
||||
private void extractIntentFields(Intent intent) {
|
||||
final Bundle b = intent.getExtras();
|
||||
cardId = b != null ? b.getString(LoyaltyCardEditActivity.BUNDLE_CARDID) : null;
|
||||
cardId = b != null ? b.getString(LoyaltyCard.BUNDLE_LOYALTY_CARD_CARD_ID) : null;
|
||||
addGroup = b != null ? b.getString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP) : null;
|
||||
Log.d(TAG, "Scan activity: id=" + cardId);
|
||||
}
|
||||
@@ -106,15 +110,40 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
customBarcodeScannerBinding.fabOtherOptions.setOnClickListener(view -> {
|
||||
setScannerActive(false);
|
||||
|
||||
ArrayList<HashMap<String, Object>> list = new ArrayList<>();
|
||||
String[] texts = new String[]{
|
||||
getString(R.string.addWithoutBarcode),
|
||||
getString(R.string.addManually),
|
||||
getString(R.string.addFromImage),
|
||||
getString(R.string.addFromPdfFile),
|
||||
};
|
||||
Object[] icons = new Object[]{
|
||||
R.drawable.baseline_block_24,
|
||||
R.drawable.ic_edit,
|
||||
R.drawable.baseline_image_24,
|
||||
R.drawable.baseline_picture_as_pdf_24,
|
||||
};
|
||||
String[] columns = new String[]{"text", "icon"};
|
||||
|
||||
for (int i = 0; i < texts.length; i++) {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put(columns[0], texts[i]);
|
||||
map.put(columns[1], icons[i]);
|
||||
list.add(map);
|
||||
}
|
||||
|
||||
ListAdapter adapter = new SimpleAdapter(
|
||||
ScanActivity.this,
|
||||
list,
|
||||
R.layout.alertdialog_row_with_icon,
|
||||
columns,
|
||||
new int[]{R.id.textView, R.id.imageView}
|
||||
);
|
||||
|
||||
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(ScanActivity.this);
|
||||
builder.setTitle(getString(R.string.add_a_card_in_a_different_way));
|
||||
builder.setItems(
|
||||
new CharSequence[]{
|
||||
getString(R.string.addWithoutBarcode),
|
||||
getString(R.string.addManually),
|
||||
getString(R.string.addFromImage),
|
||||
getString(R.string.addFromPdfFile)
|
||||
},
|
||||
builder.setAdapter(
|
||||
adapter,
|
||||
(dialogInterface, i) -> {
|
||||
switch (i) {
|
||||
case 0:
|
||||
@@ -291,7 +320,9 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
Utils.makeUserChooseBarcodeFromList(this, barcodeValuesList, new BarcodeValuesListDisambiguatorCallback() {
|
||||
@Override
|
||||
public void onUserChoseBarcode(BarcodeValues barcodeValues) {
|
||||
returnResult(barcodeValues.content(), barcodeValues.format());
|
||||
CatimaBarcode barcodeType = barcodeValues.format();
|
||||
|
||||
returnResult(barcodeValues.content(), barcodeType != null ? barcodeType.name() : null);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -338,7 +369,7 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
|
||||
// Buttons
|
||||
builder.setPositiveButton(getString(R.string.ok), (dialog, which) -> {
|
||||
returnResult(input.getText().toString(), "");
|
||||
returnResult(input.getText().toString(), null);
|
||||
});
|
||||
builder.setNegativeButton(getString(R.string.cancel), (dialog, which) -> dialog.cancel());
|
||||
AlertDialog dialog = builder.create();
|
||||
@@ -373,7 +404,7 @@ public class ScanActivity extends CatimaAppCompatActivity {
|
||||
Intent i = new Intent(getApplicationContext(), BarcodeSelectorActivity.class);
|
||||
if (cardId != null) {
|
||||
final Bundle b = new Bundle();
|
||||
b.putString("initialCardId", cardId);
|
||||
b.putString(LoyaltyCard.BUNDLE_LOYALTY_CARD_CARD_ID, cardId);
|
||||
i.putExtras(b);
|
||||
}
|
||||
manualAddLauncher.launch(i);
|
||||
|
||||
@@ -133,8 +133,7 @@ class ShortcutHelper {
|
||||
// one replace it.
|
||||
intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||
final Bundle bundle = new Bundle();
|
||||
bundle.putInt("id", loyaltyCard.id);
|
||||
bundle.putBoolean("view", true);
|
||||
bundle.putInt(LoyaltyCardViewActivity.BUNDLE_ID, loyaltyCard.id);
|
||||
intent.putExtras(bundle);
|
||||
|
||||
Bitmap iconBitmap = Utils.retrieveCardImage(context, loyaltyCard.id, ImageLocationType.icon);
|
||||
|
||||
@@ -268,7 +268,7 @@ public class Utils {
|
||||
Log.i(TAG, "Read barcode id: " + contents);
|
||||
Log.i(TAG, "Read format: " + format);
|
||||
|
||||
return Collections.singletonList(new BarcodeValues(format, contents));
|
||||
return Collections.singletonList(new BarcodeValues(format != null ? CatimaBarcode.fromName(format) : null, contents));
|
||||
}
|
||||
|
||||
throw new UnsupportedOperationException("Unknown request code for parseSetBarcodeActivityResult");
|
||||
@@ -323,7 +323,7 @@ public class Utils {
|
||||
Log.i(TAG, "Read barcode id: " + barcodeResult.getText());
|
||||
Log.i(TAG, "Read format: " + barcodeResult.getBarcodeFormat().name());
|
||||
|
||||
barcodeValuesList.add(new BarcodeValues(barcodeResult.getBarcodeFormat().name(), barcodeResult.getText()));
|
||||
barcodeValuesList.add(new BarcodeValues(CatimaBarcode.fromBarcode(barcodeResult.getBarcodeFormat()), barcodeResult.getText()));
|
||||
}
|
||||
|
||||
return barcodeValuesList;
|
||||
@@ -344,7 +344,7 @@ public class Utils {
|
||||
CharSequence[] barcodeDescriptions = new CharSequence[barcodeValuesList.size()];
|
||||
for (int i = 0; i < barcodeValuesList.size(); i++) {
|
||||
BarcodeValues barcodeValues = barcodeValuesList.get(i);
|
||||
CatimaBarcode catimaBarcode = CatimaBarcode.fromName(barcodeValues.format());
|
||||
CatimaBarcode catimaBarcode = barcodeValues.format();
|
||||
|
||||
String barcodeContent = barcodeValues.content();
|
||||
// Shorten overly long barcodes
|
||||
@@ -353,9 +353,9 @@ public class Utils {
|
||||
}
|
||||
|
||||
if (barcodeValues.note() != null) {
|
||||
barcodeDescriptions[i] = String.format("%s: %s (%s)", barcodeValues.note(), catimaBarcode.prettyName(), barcodeContent);
|
||||
barcodeDescriptions[i] = String.format("%s: %s (%s)", barcodeValues.note(), catimaBarcode != null ? catimaBarcode.prettyName() : context.getString(R.string.noBarcode), barcodeContent);
|
||||
} else {
|
||||
barcodeDescriptions[i] = String.format("%s (%s)", catimaBarcode.prettyName(), barcodeContent);
|
||||
barcodeDescriptions[i] = String.format("%s (%s)", catimaBarcode != null ? catimaBarcode.prettyName() : context.getString(R.string.noBarcode), barcodeContent);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -934,7 +934,7 @@ public class Utils {
|
||||
* @param textWhenNoImage TextView to write the loyalty card name into if icon is null
|
||||
* @return background colour
|
||||
*/
|
||||
public static int setIconOrTextWithBackground(Context context, LoyaltyCard loyaltyCard, Bitmap icon, ImageView backgroundOrIcon, TextView textWhenNoImage) {
|
||||
public static int setIconOrTextWithBackground(Context context, LoyaltyCard loyaltyCard, Bitmap icon, ImageView backgroundOrIcon, TextView textWhenNoImage, int columnCount) {
|
||||
int headerColor = getHeaderColor(context, loyaltyCard);
|
||||
backgroundOrIcon.setImageBitmap(icon);
|
||||
backgroundOrIcon.setBackgroundColor(headerColor);
|
||||
@@ -947,14 +947,16 @@ public class Utils {
|
||||
// Because we have to write the text before we can actually know the exact laid out size (trying to delay this causes bugs where the autosize fails) we have to take some... weird shortcuts
|
||||
|
||||
// At this point textWhenNoImage.getWidth() still returns 0, so we cheat by calculating the whole width of the screen and then dividing it by the amount of columns
|
||||
int textviewWidth = Resources.getSystem().getDisplayMetrics().widthPixels / context.getResources().getInteger(R.integer.main_view_card_columns);
|
||||
int columnWidth = Resources.getSystem().getDisplayMetrics().widthPixels / columnCount;
|
||||
|
||||
// Calculate how wide a character is and calculate how many characters fit in a line
|
||||
// text size is generally based on height, so setting 1:1 as width may be fishy
|
||||
int characterWidth = TextViewCompat.getAutoSizeMinTextSize(textWhenNoImage);
|
||||
int maxWidthPerLine = textviewWidth - textWhenNoImage.getPaddingStart() - textWhenNoImage.getPaddingEnd();
|
||||
int maxWidthPerLine = columnWidth - textWhenNoImage.getPaddingStart() - textWhenNoImage.getPaddingEnd();
|
||||
|
||||
// Set amount of lines based on what could fit at most
|
||||
int maxLines = ((loyaltyCard.store.length() * characterWidth) / maxWidthPerLine) + 1;
|
||||
// Set number of lines based on what could fit at most
|
||||
int fullTextWidth = loyaltyCard.store.length() * characterWidth;
|
||||
int maxLines = (fullTextWidth / maxWidthPerLine) + 1;
|
||||
textWhenNoImage.setMaxLines(maxLines);
|
||||
|
||||
// Actually set the text and colour
|
||||
|
||||
@@ -64,7 +64,7 @@ public class CatimaExporter implements Exporter {
|
||||
Cursor cardCursor = DBHelper.getLoyaltyCardCursor(database);
|
||||
while (cardCursor.moveToNext()) {
|
||||
// For each card
|
||||
LoyaltyCard card = LoyaltyCard.toLoyaltyCard(cardCursor);
|
||||
LoyaltyCard card = LoyaltyCard.fromCursor(cardCursor);
|
||||
|
||||
// For each image
|
||||
for (ImageLocationType imageLocationType : ImageLocationType.values()) {
|
||||
@@ -142,7 +142,7 @@ public class CatimaExporter implements Exporter {
|
||||
Cursor cardCursor = DBHelper.getLoyaltyCardCursor(database);
|
||||
|
||||
while (cardCursor.moveToNext()) {
|
||||
LoyaltyCard card = LoyaltyCard.toLoyaltyCard(cardCursor);
|
||||
LoyaltyCard card = LoyaltyCard.fromCursor(cardCursor);
|
||||
|
||||
printer.printRecord(card.id,
|
||||
card.store,
|
||||
@@ -176,7 +176,7 @@ public class CatimaExporter implements Exporter {
|
||||
Cursor cardCursor2 = DBHelper.getLoyaltyCardCursor(database);
|
||||
|
||||
while (cardCursor2.moveToNext()) {
|
||||
LoyaltyCard card = LoyaltyCard.toLoyaltyCard(cardCursor2);
|
||||
LoyaltyCard card = LoyaltyCard.fromCursor(cardCursor2);
|
||||
|
||||
for (Group group : DBHelper.getLoyaltyCardGroups(database, card.id)) {
|
||||
printer.printRecord(card.id, group._id);
|
||||
|
||||
@@ -9,8 +9,9 @@ import androidx.annotation.NonNull;
|
||||
|
||||
import com.google.zxing.BarcodeFormat;
|
||||
|
||||
import net.lingala.zip4j.ZipFile;
|
||||
import net.lingala.zip4j.io.inputstream.ZipInputStream;
|
||||
import net.lingala.zip4j.model.LocalFileHeader;
|
||||
import net.lingala.zip4j.model.FileHeader;
|
||||
|
||||
import org.apache.commons.csv.CSVFormat;
|
||||
import org.apache.commons.csv.CSVParser;
|
||||
@@ -20,9 +21,7 @@ import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.math.BigDecimal;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
@@ -130,11 +129,9 @@ public class StocardImporter implements Importer {
|
||||
throw new FormatException("Issue parsing CSV data", e);
|
||||
}
|
||||
|
||||
InputStream input = new FileInputStream(inputFile);
|
||||
ZipInputStream zipInputStream = new ZipInputStream(input, password);
|
||||
zipData = importZIP(zipInputStream, zipData);
|
||||
zipInputStream.close();
|
||||
input.close();
|
||||
ZipFile zipFile = new ZipFile(inputFile, password);
|
||||
zipData = importZIP(zipFile, zipData);
|
||||
zipFile.close();
|
||||
|
||||
if (zipData.cards.keySet().size() == 0) {
|
||||
throw new FormatException("Couldn't find any loyalty cards in this Stocard export.");
|
||||
@@ -144,7 +141,7 @@ public class StocardImporter implements Importer {
|
||||
saveAndDeduplicate(context, database, importedData);
|
||||
}
|
||||
|
||||
public ZIPData importZIP(ZipInputStream zipInputStream, final ZIPData zipData) throws IOException, FormatException, JSONException {
|
||||
public ZIPData importZIP(ZipFile zipFile, final ZIPData zipData) throws IOException, FormatException, JSONException {
|
||||
Map<String, StocardRecord> cards = zipData.cards;
|
||||
Map<String, StocardProvider> providers = zipData.providers;
|
||||
|
||||
@@ -152,9 +149,8 @@ public class StocardImporter implements Importer {
|
||||
String[] cardBaseName = null;
|
||||
String customProviderId = "";
|
||||
String cardName = "";
|
||||
LocalFileHeader localFileHeader;
|
||||
while ((localFileHeader = zipInputStream.getNextEntry()) != null) {
|
||||
String fileName = localFileHeader.getFileName();
|
||||
for (FileHeader fileHeader : zipFile.getFileHeaders()) {
|
||||
String fileName = fileHeader.getFileName();
|
||||
String[] nameParts = fileName.split("/");
|
||||
|
||||
if (nameParts.length < 2) {
|
||||
@@ -162,6 +158,7 @@ public class StocardImporter implements Importer {
|
||||
}
|
||||
|
||||
String userId = nameParts[1];
|
||||
ZipInputStream zipInputStream = zipFile.getInputStream(fileHeader);
|
||||
|
||||
if (customProvidersBaseName == null) {
|
||||
// FIXME: can we use the points-account/statement/content.json balance info somehow?
|
||||
@@ -302,6 +299,8 @@ public class StocardImporter implements Importer {
|
||||
} else if (!fileName.endsWith("/")) {
|
||||
Log.d(TAG, "Unknown or unused file " + fileName + ", skipping...");
|
||||
}
|
||||
|
||||
zipInputStream.close();
|
||||
}
|
||||
|
||||
return new ZIPData(cards, providers);
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
package protect.card_locker.preferences;
|
||||
|
||||
import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.IntegerRes;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.preference.PreferenceManager;
|
||||
@@ -14,8 +18,9 @@ import protect.card_locker.R;
|
||||
import protect.card_locker.Utils;
|
||||
|
||||
public class Settings {
|
||||
private static final String TAG = "Catima";
|
||||
private final Context mContext;
|
||||
private SharedPreferences mSettings;
|
||||
private final SharedPreferences mSettings;
|
||||
|
||||
public Settings(Context context) {
|
||||
mContext = context.getApplicationContext();
|
||||
@@ -42,10 +47,11 @@ public class Settings {
|
||||
return mSettings.getBoolean(getResString(keyId), defaultValue);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Locale getLocale() {
|
||||
String value = getString(R.string.settings_key_locale, "");
|
||||
|
||||
if (value.length() == 0) {
|
||||
if (value.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -91,4 +97,23 @@ public class Settings {
|
||||
public String getColor() {
|
||||
return getString(R.string.setting_key_theme_color, mContext.getResources().getString(R.string.settings_key_system_theme));
|
||||
}
|
||||
|
||||
public int getPreferredColumnCount() {
|
||||
var defaultSymbol = mContext.getResources().getString(R.string.settings_key_automatic_column_count);
|
||||
var defaultColumnCount = mContext.getResources().getInteger(R.integer.main_view_card_columns);
|
||||
var orientation = mContext.getResources().getConfiguration().orientation;
|
||||
var columnCountPrefKey = orientation == ORIENTATION_PORTRAIT ? R.string.setting_key_column_count_portrait : R.string.setting_key_column_count_landscape;
|
||||
var columnCountSetting = getString(columnCountPrefKey, defaultSymbol);
|
||||
try {
|
||||
// the pref may be unset or explicitly set to default
|
||||
return columnCountSetting.equals(defaultSymbol) ? defaultColumnCount : Integer.parseInt(columnCountSetting);
|
||||
} catch (NumberFormatException nfe) {
|
||||
Log.e(TAG, "Failed to parseInt the column count pref", nfe);
|
||||
return defaultColumnCount;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean useVolumeKeysForNavigation() {
|
||||
return getBoolean(R.string.settings_key_use_volume_keys_navigation, false);
|
||||
}
|
||||
}
|
||||
|
||||
5
app/src/main/res/drawable/baseline_block_24.xml
Normal file
5
app/src/main/res/drawable/baseline_block_24.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="?attr/colorControlNormal" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
|
||||
|
||||
<path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM4,12c0,-4.42 3.58,-8 8,-8 1.85,0 3.55,0.63 4.9,1.69L5.69,16.9C4.63,15.55 4,13.85 4,12zM12,20c-1.85,0 -3.55,-0.63 -4.9,-1.69L18.31,7.1C19.37,8.45 20,10.15 20,12c0,4.42 -3.58,8 -8,8z"/>
|
||||
|
||||
</vector>
|
||||
5
app/src/main/res/drawable/baseline_image_24.xml
Normal file
5
app/src/main/res/drawable/baseline_image_24.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="?attr/colorControlNormal" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
|
||||
|
||||
<path android:fillColor="@android:color/white" android:pathData="M21,19V5c0,-1.1 -0.9,-2 -2,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2zM8.5,13.5l2.5,3.01L14.5,12l4.5,6H5l3.5,-4.5z"/>
|
||||
|
||||
</vector>
|
||||
5
app/src/main/res/drawable/baseline_picture_as_pdf_24.xml
Normal file
5
app/src/main/res/drawable/baseline_picture_as_pdf_24.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="?attr/colorControlNormal" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
|
||||
|
||||
<path android:fillColor="@android:color/white" android:pathData="M20,2L8,2c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM11.5,9.5c0,0.83 -0.67,1.5 -1.5,1.5L9,11v2L7.5,13L7.5,7L10,7c0.83,0 1.5,0.67 1.5,1.5v1zM16.5,11.5c0,0.83 -0.67,1.5 -1.5,1.5h-2.5L12.5,7L15,7c0.83,0 1.5,0.67 1.5,1.5v3zM20.5,8.5L19,8.5v1h1.5L20.5,11L19,11v2h-1.5L17.5,7h3v1.5zM9,9.5h1v-1L9,8.5v1zM4,6L2,6v14c0,1.1 0.9,2 2,2h14v-2L4,20L4,6zM14,11.5h1v-3h-1v3z"/>
|
||||
|
||||
</vector>
|
||||
@@ -46,7 +46,8 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/version_history"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -56,7 +57,8 @@
|
||||
android:id="@+id/version_history_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/version_history_main" />
|
||||
@@ -87,7 +89,8 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/credits"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -97,7 +100,8 @@
|
||||
android:id="@+id/credits_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/credits_main" />
|
||||
@@ -128,7 +132,8 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/help_translate_this_app"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -138,7 +143,8 @@
|
||||
android:id="@+id/translate_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/translate_platform"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -170,7 +176,8 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/license"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -180,7 +187,8 @@
|
||||
android:id="@+id/license_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/app_license"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -212,7 +220,8 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/source_repository"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -222,7 +231,8 @@
|
||||
android:id="@+id/repo_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/on_github"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -254,7 +264,8 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/privacy_policy"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -264,7 +275,8 @@
|
||||
android:id="@+id/privacy_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/and_data_usage"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -296,7 +308,8 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/donate"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -329,7 +342,8 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/rate_this_app"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -339,7 +353,8 @@
|
||||
android:id="@+id/rate_sub"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/on_google_play"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -371,7 +386,8 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:padding="2dp"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:text="@string/report_error"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -383,9 +399,10 @@
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toBottomOf="@id/report_error_main"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="30dp"
|
||||
android:textSize="16sp"
|
||||
android:text="@string/on_github"
|
||||
android:padding="2dp"/>
|
||||
android:text="@string/on_github" />
|
||||
|
||||
<TextView
|
||||
android:importantForAccessibility="no"
|
||||
|
||||
32
app/src/main/res/layout/alertdialog_row_with_icon.xml
Normal file
32
app/src/main/res/layout/alertdialog_row_with_icon.xml
Normal file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout 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">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="24dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/textView"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:srcCompat="@drawable/ic_baseline_archive_24" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/imageView"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -27,7 +27,7 @@
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/list"
|
||||
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
|
||||
app:spanCount="1"
|
||||
app:spanCount="@integer/main_view_card_columns"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_width="match_parent" />
|
||||
</RelativeLayout>
|
||||
@@ -41,9 +41,10 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:textStyle="bold"
|
||||
app:autoSizeMinTextSize="6sp"
|
||||
app:autoSizeTextType="uniform"
|
||||
android:gravity="center"
|
||||
android:padding="20dp" />
|
||||
android:padding="10dp" />
|
||||
|
||||
<ImageView
|
||||
android:importantForAccessibility="no"
|
||||
@@ -150,6 +151,8 @@
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:textAppearance="?attr/textAppearanceBody2"
|
||||
android:maxLines="5"
|
||||
android:ellipsize="end"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"
|
||||
app:layout_constraintTop_toBottomOf="@+id/store"
|
||||
|
||||
@@ -12,42 +12,46 @@ SlavekB
|
||||
mondstern
|
||||
IllusiveMan196
|
||||
Altonss
|
||||
大王叫我来巡山
|
||||
Michael Moroni
|
||||
GM
|
||||
Eric
|
||||
GM
|
||||
Petr Novák
|
||||
laralem
|
||||
Joel A
|
||||
Taco
|
||||
大王叫我来巡山
|
||||
pfaffenrodt
|
||||
Scrambled777
|
||||
Aayush Gupta
|
||||
HudobniVolk
|
||||
Nyatsuki
|
||||
Giovanni Donisi
|
||||
Nyatsuki
|
||||
Jiri Grönroos
|
||||
Priit Jõerüüt
|
||||
Samantaz Fox
|
||||
Cliff Heraldo
|
||||
Sergio Paredes
|
||||
Ankit Tiwari
|
||||
Arno-github
|
||||
Milo Ivir
|
||||
Jose Delvani
|
||||
Balázs Meskó
|
||||
Jose Delvani
|
||||
B o d o
|
||||
mdvhimself
|
||||
Milan Šalka
|
||||
Skrripy
|
||||
ikanakova
|
||||
Максим Горпиніч
|
||||
huuhaa
|
||||
Skrripy
|
||||
Projjal Moitra
|
||||
Quentin PAGÈS
|
||||
ikanakova
|
||||
ngocanhtve
|
||||
Silvério Santos
|
||||
Marnick L'Eau
|
||||
waffshappen
|
||||
Ziad OUALHADJ
|
||||
Robin Liu
|
||||
Priit Jõerüüt
|
||||
Kachelkaiser
|
||||
Denis Shilin
|
||||
しいたけ
|
||||
Alexander Ivanov
|
||||
@@ -56,10 +60,12 @@ Viet Nguyen Hoang
|
||||
stavpup
|
||||
ehrt74
|
||||
Virginie
|
||||
Michael Gangolf
|
||||
rudy3
|
||||
Kim Seohyun
|
||||
Govind S Nair
|
||||
Freddo espresso
|
||||
arshbeerSingh
|
||||
Tim Trek
|
||||
MisterCosta96
|
||||
arshbeerSingh
|
||||
Freddo espresso
|
||||
Govind S Nair
|
||||
Kim Seohyun
|
||||
Renko
|
||||
rudy3
|
||||
Michael Gangolf
|
||||
|
||||
@@ -13,6 +13,7 @@ _id,name,barcodeFormat
|
||||
015cf86e-c4b6-42b5-abed-5821492b2669,Campbells,ITF
|
||||
016c8380-d433-4eb1-b7a0-df6fd9254ec6,Friendlies Pharmacy,CODE_128
|
||||
0189b6a0-3f02-418f-872e-d5e354619a45,Mencke Gartencenter,EAN_8
|
||||
01b239f4-d1db-4311-a33b-bc8bb9c71c19,McEwan,CODE_128
|
||||
01ce8326-50e8-4787-9999-e509dfed15cb,Вигода Вопак,CODE_128
|
||||
01eafcc6-ee41-447f-bbce-7a93ffb90b6c,Mario Mikke,EAN_13
|
||||
01f88e2d-3eb4-4242-a32b-1a847a28e140,Crodux,CODE_128
|
||||
@@ -31,6 +32,7 @@ _id,name,barcodeFormat
|
||||
037f2420-273c-4ffe-9dd3-af22868b1b59,Al Pentolone,EAN_13
|
||||
038516b8-3cdd-4f96-9582-97caf9dc3a47,Dier Specialist,CODE_39
|
||||
039784f4-4fef-497e-8f03-f026655394ef,террапевтика,EAN_13
|
||||
039932ff-caec-4d40-aa9a-0ed185b5cf5f,FNV,CODE_128
|
||||
03b89b04-69cd-43cf-88eb-35760f092488,Мегаполис,CODE_128
|
||||
03d62f02-8266-493b-b4fd-95d5c853b87b,мта,EAN_13
|
||||
03fd0d65-b3dd-427b-9f7c-3554fe3dc99b,Happy Sport,EAN_13
|
||||
@@ -60,6 +62,7 @@ _id,name,barcodeFormat
|
||||
0777b427-2af5-4531-81c3-f7421dde9d63,Евразия Автозапчасти,EAN_13
|
||||
078a5228-818d-4a86-8726-c71dd27a3fdc,EU COVID-19 Certificado de Vacunacion,QR_CODE
|
||||
078fdcef-2e8a-4179-befe-5959cd588a7e,Клякса,EAN_13
|
||||
07a90343-0b80-4cb4-8571-b6a2419cff6e,Maracatú,CODE_128
|
||||
07f645dc-3127-4050-94ac-41f42cacdb74,Cats & Dogs,EAN_8
|
||||
081924f1-3eff-480a-a8a9-ec08eb4b75e7,Rossetti Market,EAN_13
|
||||
0821c8d1-4556-4178-af1b-fe4d1977127d,Feedo,CODE_128
|
||||
@@ -84,11 +87,14 @@ _id,name,barcodeFormat
|
||||
09e1c670-eac2-4077-8a66-b990c3ba1ed8,Gamble & Brown Cafe,CODE_39
|
||||
09e38952-3559-4432-821a-84fdee4923f8,Стройка,EAN_13
|
||||
0a047088-f9f9-47c5-a982-b307122f09fa,IGA Rewards,EAN_13
|
||||
0a058735-ecfd-4278-ae7a-9f6917193a3d,JBs Power Centre,CODE_128
|
||||
0a124613-4513-4a4f-b89a-6c4b645e395b,BoniChoix,CODE_128
|
||||
0a6c06b6-056d-4bf2-ae78-915a8c52d464,волгорост,EAN_13
|
||||
0a7c000b-39eb-4464-bc41-03d0e1f4a20f,Life Pharmacy ,CODE_128
|
||||
0ae08429-e2a2-4fe0-840a-e940ce9fd3e5,Zebra,EAN_13
|
||||
0b2502b7-f8d7-426e-b518-4482ee6115eb,Лоза,EAN_13
|
||||
0b4c67fb-bf76-46e8-9a3b-cb0acfe47e71,Giocheria,CODE_39
|
||||
0b539afa-e6b5-42a0-8f03-50d5de9f4af0,MediaMarkt Club Karte,QR_CODE
|
||||
0b600df8-f694-49d5-b5ee-56d0b47ab1bc,reima,EAN_13
|
||||
0b82965b-29df-4c9e-ae5f-70a5d10f1d32,Fanølinjen,CODE_128
|
||||
0bb951c2-c644-4a0b-92c0-754d739a55be,ZALY,EAN_13
|
||||
@@ -128,8 +134,9 @@ _id,name,barcodeFormat
|
||||
0f650862-0a1c-4596-b2f9-30fc8d3bf8d3,Lila Bäcker,QR_CODE
|
||||
0f69ba3f-6084-49a5-b959-24277008de45,CJ Express,CODE_128
|
||||
0f936e1f-b3ac-4a34-aad7-a18bd76150f2,FOTOLAB,CODE_128
|
||||
0fafa67a-b4d2-4365-9f68-c167d43c7070,I TOURS,CODE_128
|
||||
0fce03a0-6b7b-427c-a483-26a1169e73b0,EDMINS,EAN_13
|
||||
1,Accor Le Club,QR_CODE
|
||||
1,Accor Live Limitless,QR_CODE
|
||||
10,Aeroplan,CODE_128
|
||||
100,Esprit,ITF
|
||||
1000,Chemmart Pharmacy,CODE_128
|
||||
@@ -465,6 +472,7 @@ _id,name,barcodeFormat
|
||||
13,Amavita,EAN_13
|
||||
130,GNC,UPC_A
|
||||
1300,IZOD,CODE_128
|
||||
13004ca8-9095-40c2-aa98-1fcf6410efc7,Max Shop,CODE_128
|
||||
1301,La Quinta Inns,CODE_128
|
||||
1302,Pet Supplies Plus,UPC_A
|
||||
1303,Piazza Italia,EAN_13
|
||||
@@ -501,8 +509,8 @@ _id,name,barcodeFormat
|
||||
1331,Bizzbee,QR_CODE
|
||||
1332,Blue Box,CODE_39
|
||||
1333,Brice,EAN_13
|
||||
1334,Bricoman,GS1_128
|
||||
1335,Brico Marché,GS1_128
|
||||
1334,Tecnomat,GS1_128
|
||||
1335,Bricomarché,GS1_128
|
||||
1336,Camaieu,CODE_128
|
||||
1337,Casino Supermarchés,EAN_13
|
||||
1338,Castorama,CODE_128
|
||||
@@ -680,7 +688,7 @@ _id,name,barcodeFormat
|
||||
148f7495-e6f2-40b1-80cd-99b3632cb976,Slam,ITF
|
||||
149,Höffner,ITF
|
||||
1490,Basko,EAN_13
|
||||
1491,Unes,EAN_13
|
||||
1491,Unes,CODE_128
|
||||
1492,Grande Cinema 3,EAN_13
|
||||
1493,Eurobrico,EAN_13
|
||||
1494,Isola dei Tesori,EAN_13
|
||||
@@ -966,7 +974,7 @@ _id,name,barcodeFormat
|
||||
172,Jost,ITF
|
||||
1720,Wheelup,CODE_39
|
||||
1721,BIG4,CODE_128
|
||||
1722,Besson Chaussures,EAN_13
|
||||
1722,Besson Chaussures,CODE_128
|
||||
1723,Cactus,EAN_13
|
||||
1724,Idea Bellezza,CODE_39
|
||||
1725,Uyum,CODE_128
|
||||
@@ -983,7 +991,7 @@ _id,name,barcodeFormat
|
||||
1733,Mondial Tissus,EAN_13
|
||||
1734,Furet du nord,EAN_13
|
||||
1735,Maxxess,EAN_13
|
||||
1736,Devianne,EAN_13
|
||||
1736,Des Marques et Vous,EAN_13
|
||||
1737,Colruyt,ITF
|
||||
1738,Paul,EAN_13
|
||||
1739,JouéClub,EAN_13
|
||||
@@ -1044,7 +1052,7 @@ _id,name,barcodeFormat
|
||||
179,Kastner & Öhler,EAN_13
|
||||
1790,MY SIZE,CODE_39
|
||||
1791,PetO,CODE_128
|
||||
1792,AVEVE,EAN_13
|
||||
1792,Aveve,EAN_13
|
||||
1793,BIO-Planet,ITF
|
||||
1794,Brico,EAN_13
|
||||
1795,Club,CODE_128
|
||||
@@ -1343,9 +1351,10 @@ _id,name,barcodeFormat
|
||||
1e43877a-d4f1-4bff-bdb9-cd3346082a46,Scorpion Bay,EAN_13
|
||||
1e9469a4-8388-4ca9-a463-95ee73a0d953,FAMO,EAN_13
|
||||
1e9a127a-0451-4565-9560-eaa097d3808b,Grill'd,CODE_128
|
||||
1ed46ee6-993a-4053-a016-a0d67e26b91b,Lidl SK,CODE_128
|
||||
1ed46ee6-993a-4053-a016-a0d67e26b91b,Lidl,CODE_128
|
||||
1f01c3b1-08f7-4365-a0f9-f1c9bcbdf58a,Fresco,CODE_128
|
||||
1f15d8f3-c35c-46d6-8038-4c9f91a18909,Покров,EAN_8
|
||||
1f1ec99d-c8c6-42d3-ac6a-b9658a6e0a0d,xBarvy,EAN_13
|
||||
1f661d7a-d355-4590-8d33-0d61630958cc,NDG,CODE_39
|
||||
1f6624c6-5acc-4983-ac17-31b9004232d7,Afvalpas Rijssen-Holten,QR_CODE
|
||||
1f69337f-7604-4e7a-9031-f0ab182e7cd7,Дешёвая Аптека Вита,CODE_128
|
||||
@@ -1453,7 +1462,7 @@ _id,name,barcodeFormat
|
||||
2085,Billa,EAN_13
|
||||
2086,Billa,EAN_13
|
||||
2087,BIPA,EAN_13
|
||||
2088,Penny,EAN_13
|
||||
2088,PENNY,EAN_13
|
||||
2089,Penny,EAN_13
|
||||
209,MCard,CODE_128
|
||||
2090,Shoprite,CODE_128
|
||||
@@ -1492,6 +1501,7 @@ _id,name,barcodeFormat
|
||||
2112,Lindex,CODE_128
|
||||
2113,Twilfit,CODE_128
|
||||
2114,aClass,CODE_128
|
||||
21143721-38a4-466f-b04d-a3e90cb62bad,L'angolo,CODE_128
|
||||
2115,Clas Ohlson,CODE_128
|
||||
2116,Agrimarket,CODE_128
|
||||
2117,Starkki,CODE_128
|
||||
@@ -1600,7 +1610,7 @@ _id,name,barcodeFormat
|
||||
2201,Avance,CODE_128
|
||||
2202,berca.be,EAN_13
|
||||
2203,Brantano,EAN_13
|
||||
2204,Brooklyn,EAN_13
|
||||
2204,Brooklyn nv,EAN_13
|
||||
2205,CAMELEON,CODE_128
|
||||
2206,Carmi,CODE_39
|
||||
2207,E5 mode,ITF
|
||||
@@ -1940,7 +1950,7 @@ _id,name,barcodeFormat
|
||||
2488,Proximus,CODE_128
|
||||
2489,RS Bútor,CODE_128
|
||||
248957ba-dbad-414e-86e4-009fc4e5beee,Самоцветы плюс,ITF
|
||||
249,Countdown,CODE_128
|
||||
249,Woolworths,CODE_128
|
||||
2490,SEIBU PRINCE CLUB,CODE_128
|
||||
2491,サミット,EAN_13
|
||||
2492,The PUB,CODE_128
|
||||
@@ -2024,6 +2034,7 @@ _id,name,barcodeFormat
|
||||
2557,Artex Fashion,EAN_13
|
||||
2558,Askot,CODE_128
|
||||
2559,BUTIK,EAN_8
|
||||
255d84f7-144d-4d63-b6fd-f00a8e94641f,HUK Autowelt,QR_CODE
|
||||
256,Palmers,EAN_13
|
||||
2560,Dayli,EAN_13
|
||||
2561,De Banier,CODE_128
|
||||
@@ -2440,6 +2451,7 @@ _id,name,barcodeFormat
|
||||
28a46b11-8c45-4b2a-93dd-b7325a2fe013,Dialogues,CODE_128
|
||||
28b5866e-f195-4d68-b8a0-02cdb611af4f,Да Здоров! аптека,EAN_13
|
||||
28c5ee9a-cf66-4add-b71c-70b66be85570,Agraria,EAN_13
|
||||
28cc5dc7-61b4-4c95-a5a6-e125cc4bce9b,Aventurx,CODE_128
|
||||
28d93baa-c331-4df8-a85d-65eb86199732,Solar Studio,CODE_128
|
||||
28fbdd64-8715-4cdc-8c3f-df7259b1ba65,NOHO,EAN_13
|
||||
29,Heathrow Rewards,CODE_128
|
||||
@@ -2582,6 +2594,7 @@ _id,name,barcodeFormat
|
||||
2b1eb78e-9684-4434-ba9b-41f00fc5beab,Sensation Profumerie,EAN_13
|
||||
2b29bfc0-26a7-44cb-9d21-2a0bdb467320,Vertex Hotel,ITF
|
||||
2b39b807-6375-404c-bfd7-7f3135654258,Планета Игрушек,EAN_13
|
||||
2b6062ec-39b1-4ac4-b6d6-cf19048c9f3f,Coripet,UPC_A
|
||||
2b6992d5-615a-423a-b196-ab19a418686f,Mimco,CODE_128
|
||||
2b7d84ce-c573-44ea-8989-b23a13cf389b,Азбука Красоты,EAN_13
|
||||
2bc9768c-56a2-4d7d-8f1c-0be9f208b71b,Profile,CODE_128
|
||||
@@ -2852,6 +2865,7 @@ _id,name,barcodeFormat
|
||||
3199,Navyboot,EAN_13
|
||||
31d21202-2674-4c42-9a7e-a19b01d32b63,Vegetalis,EAN_13
|
||||
31d3cf0c-7522-4035-9256-7a712cb1a8b3,Канцелярия,EAN_13
|
||||
31db4e18-fb97-43d2-b026-c41f39d2faba,Bershka,CODE_128
|
||||
31eccc6d-babd-4fee-9ae8-db9a00fc1c63,Pharmactiv,EAN_13
|
||||
31f60f6d-633f-42af-b387-e5d0b4e2f45f,SPINNS,EAN_13
|
||||
32,Bauking,EAN_13
|
||||
@@ -3092,6 +3106,7 @@ _id,name,barcodeFormat
|
||||
3399,Taxi Jetax,CODE_128
|
||||
339bb076-12fd-4e56-899f-3acb79f5da53,Hafenhotel Meereszeiten,CODE_128
|
||||
33a430e4-35c7-43e7-98e8-5ce5d039ee70,VPZ,CODE_128
|
||||
33cb4886-5d06-473a-80b7-980ca2fb27c2,Bouwcenter Nobel,EAN_13
|
||||
33d16d2d-f51e-44c3-92d8-2c3616af2d0f,Apotheke Peer Farmacia,CODE_128
|
||||
33dea27e-c7a4-4e40-8621-32da990f7d82,EU COVID-19 Vaccinationsintyg - Andra vaccination Skott,QR_CODE
|
||||
33e82e4f-5541-4be1-aa4c-0f2987cfd78f,Данди,EAN_13
|
||||
@@ -3452,6 +3467,7 @@ _id,name,barcodeFormat
|
||||
37,Bessmann,ITF
|
||||
370,Virgin Atlantic,CODE_128
|
||||
3700,Go Auto,CODE_128
|
||||
37003c25-7bc7-4dd9-8a3a-8406005d0dcf,Scouts en Gidsen Vlaanderen,CODE_128
|
||||
3701,Good Earth,CODE_128
|
||||
3702,Hachem,CODE_128
|
||||
3703,Le Magasin,CODE_128
|
||||
@@ -3949,6 +3965,7 @@ _id,name,barcodeFormat
|
||||
4083,Каляев,EAN_13
|
||||
4084,Shingle Inn,CODE_128
|
||||
4085,Golden Casket,CODE_128
|
||||
40853977-7fdb-4815-a64e-85d2c70df347,OROCAJA,CODE_39
|
||||
4086,Pet City,CODE_128
|
||||
4087,chempro,EAN_13
|
||||
4088,merlo,CODE_39
|
||||
@@ -4313,7 +4330,7 @@ _id,name,barcodeFormat
|
||||
4387,Kremer,EAN_13
|
||||
4388,Gartencenter Nickl,EAN_13
|
||||
4389,Panarottis,QR_CODE
|
||||
439,Alitalia,CODE_128
|
||||
439,Volare ITA airways.,CODE_128
|
||||
4390,Simply Asia,CODE_128
|
||||
4391,Ultraliquors,CODE_128
|
||||
4392,Cum Books,CODE_128
|
||||
@@ -4565,6 +4582,7 @@ _id,name,barcodeFormat
|
||||
4599,Мокрый Нос,EAN_13
|
||||
45b55fa2-835b-4ae5-a318-16a66b4ec85b,Євро Мікс,EAN_8
|
||||
45cbba3f-f0d2-4837-8189-16b0ff2707f5,Барс,CODE_128
|
||||
45e6b637-a991-45ce-b72d-8f4df03d9f6b,Tradition,CODE_128
|
||||
45e6f6d3-e688-40f7-86e2-73e3803c86bd,KüstenCard mini/maxi,CODE_128
|
||||
45fa81a4-657e-414c-89ed-ebf1c49c0926,G'DAY REWARDS,CODE_128
|
||||
45faf9e5-321c-44a7-b641-7acee8126349,EU COVID-19 Vaccinatiebewijs - Eerste vaccinatieschot,QR_CODE
|
||||
@@ -4772,6 +4790,7 @@ _id,name,barcodeFormat
|
||||
4773,Maximiles,CODE_128
|
||||
4774,La Compagnie des Petits,CODE_128
|
||||
4775,Totem Family,CODE_128
|
||||
477515a9-2257-4d19-af18-3dbcfeb4acd9,Omni,CODE_128
|
||||
4776,La Jardinerie,CODE_128
|
||||
4777,La Plateforme du Bâtiment,EAN_13
|
||||
4778,Animal & Co,EAN_13
|
||||
@@ -5049,6 +5068,7 @@ _id,name,barcodeFormat
|
||||
4adaa99b-282d-4abe-87c8-b16d3958f4c2,Тюменский ЦУМ,CODE_39
|
||||
4ae5d40d-45ea-4188-bce8-eb3337733466,Garden Floridea,CODE_128
|
||||
4b197111-0d79-4ac5-aecd-5dca6643e390,Евродом,EAN_13
|
||||
4b50787c-052c-48e9-8bae-b01373cef1b8,Fbo Clothing,CODE_128
|
||||
4b511f9a-5c9c-4b9f-8c71-1631cb78456a,Семейная Аптека,EAN_13
|
||||
4b8e7174-b85b-4b82-99ab-b1faee2dfb8f,Diper,EAN_13
|
||||
4ba9de66-0015-49e1-a0d1-d24c2328eaa5,Witchery,EAN_13
|
||||
@@ -5063,14 +5083,18 @@ _id,name,barcodeFormat
|
||||
4ccb26a9-3a58-487f-9bdf-5cc4b042c0b3,UNCS,CODE_128
|
||||
4cd0da27-9a71-4eb0-88f4-23919b598828,Pins,CODE_128
|
||||
4d28254f-9ec6-4262-aa28-ee0bd7620b00,Леонардо,EAN_13
|
||||
4d4102e9-115a-4695-b764-c5534e1749a8,twd,EAN_13
|
||||
4d7b0d6e-2680-4c6b-bdac-8985df7aa8a3,大昌,EAN_13
|
||||
4d8c62b4-b4c5-40b0-9117-6e5022cf7950,MilleMiglia,CODE_128
|
||||
4dab7847-f728-4c34-80ea-a464238a3756,Волна,EAN_13
|
||||
4db2f926-b58d-4821-8f85-b02d3e32fbcb,Дом посуды,EAN_13
|
||||
4dd50f0e-05a1-4a32-97c2-1e5b570d0d9b,MIA,EAN_13
|
||||
4dd586bf-d2ed-4357-898c-11b648bcb796,Детский парк,EAN_13
|
||||
4dd5aa56-2f5c-4bb5-a281-211bb4e5463e,Joylab,CODE_128
|
||||
4e090085-f5bc-4f29-abcf-bb249dd3429d, SSENSE,CODE_128
|
||||
4e1001a2-a664-4d37-8b85-a71b02f9f6dc,xFarby,EAN_13
|
||||
4e24761b-17a7-4b7d-b04a-16f54076d03b,Forum+,EAN_13
|
||||
4e6622db-6fd3-405e-a60e-7157984da5ba,KiemKracht VZW,CODE_128
|
||||
4e95cfa4-3011-41c2-ad87-0c560cbd218c,Lincolnshire Co-operative,DATA_MATRIX
|
||||
4eb5bcd8-9467-44ce-b54c-fc69521431be,Мир Обоев,CODE_128
|
||||
4ed66bc0-04ee-458b-aac7-6bb7bdd35e5c,Пивотека,CODE_39
|
||||
@@ -5300,6 +5324,7 @@ _id,name,barcodeFormat
|
||||
519,Alimerka,CODE_128
|
||||
5190,Souris Mini,CODE_128
|
||||
5191,Лакомка,EAN_13
|
||||
51917108-3469-4067-b1da-8697d60fcfa6,Kingston Frontenac Public Library,CODE_128
|
||||
5192,AlphaZoo,CODE_128
|
||||
5193,БИГАМ,EAN_8
|
||||
5194,Sebastiano,EAN_13
|
||||
@@ -5406,6 +5431,7 @@ _id,name,barcodeFormat
|
||||
55cfc40e-469f-485f-ab26-823014fd8401,Seebauer,EAN_13
|
||||
55db252f-70a8-4da7-b0c2-484c8445e750,Kreativmarkt Hamburg,EAN_13
|
||||
55e96a49-7157-43cc-aaa7-9867d37cb05f,Народная линия,EAN_13
|
||||
55eb9a72-cd1d-49f7-aec1-1f44f6207983,Lina Giorgi snc,CODE_39
|
||||
55f414b7-b1a8-46f6-97ad-7f4f0867d8a9,EU COVID-19 Rokotustodistus - Toinen rokotus laukaus,QR_CODE
|
||||
56,Brax,CODE_128
|
||||
560,Punt Roma,CODE_128
|
||||
@@ -5492,6 +5518,7 @@ _id,name,barcodeFormat
|
||||
5afc2de6-6129-43f5-9caf-be3572d65a90,Sisal,CODE_128
|
||||
5b01f59e-97db-4105-9aab-94f56099fc49,real,GS1_128
|
||||
5b1da0f0-143e-492d-83a9-ad22957a54c6,Metro Lifestyle,CODE_39
|
||||
5b502f6e-7c38-4708-ae56-04f97638692a,Баня Стил,CODE_128
|
||||
5bb5ea85-8952-474e-be53-c5ac11f7428f,Farmec,EAN_13
|
||||
5bb6dc04-3000-475f-a5d4-ba9427989809,Bimbostore Toys Center,EAN_13
|
||||
5bf3f149-2217-45aa-b61b-eec9aeedf5d2,Werdich,CODE_39
|
||||
@@ -5509,6 +5536,7 @@ _id,name,barcodeFormat
|
||||
5d3de23f-b72e-4920-9e3b-1a413979a779,CityCard,CODE_128
|
||||
5d426084-854e-493e-a10d-7ce5d34d31fe,Farmacie Comunali Firenze,CODE_128
|
||||
5d51a06c-3af4-4400-9776-e3458190be87,Parisnail,EAN_13
|
||||
5d5d4520-ee6c-45ea-b5f1-11282a0673f4,Arriva,CODE_128
|
||||
5d695da3-f47b-4da8-b5ff-ea9d0fd9486b,Belaton,CODE_128
|
||||
5d866631-9858-4393-a5cf-eba96ca066cc,Kiwisun,CODE_128
|
||||
5db03921-3703-40d3-ba27-f7d3ff5a40ba,Prodor Supermarché et Boucherie,EAN_13
|
||||
@@ -5518,6 +5546,7 @@ _id,name,barcodeFormat
|
||||
5e18e98b-ad75-426a-a4ac-a80496906906,Beauty X,EAN_13
|
||||
5e27a7ae-ad95-4cce-b383-85a4eb822eaa,Supra Baby,EAN_13
|
||||
5e402125-50f9-4de9-8769-ce4e0dc1d1a1,Romaest,CODE_128
|
||||
5e46de16-6ebf-4d17-933f-2f782df8b3fb,Prima Company,CODE_128
|
||||
5e6edac6-a458-4488-861c-f8f403f4b1e1,MABÙ,QR_CODE
|
||||
5ee2ee34-5027-4535-a55f-657c1a092d5d,Lady Sharm,CODE_128
|
||||
5f01e866-3ef8-46e4-a40a-555594849eb7,ЦУМ,CODE_128
|
||||
@@ -5532,6 +5561,7 @@ _id,name,barcodeFormat
|
||||
6,ACS,CODE_128
|
||||
60,Transgourmet,EAN_13
|
||||
600,Humanic,ITF
|
||||
60046ae3-b41c-4a08-a012-d8e921e8aab0,Multaparts,CODE_128
|
||||
600bf563-b7b2-488a-9e21-0ccc63a67b1d,LAUF!,EAN_13
|
||||
601,Beauty Alliance,CODE_128
|
||||
6014a435-c656-4bf7-bcd6-fa46ed28bac0,Окраина,EAN_13
|
||||
@@ -5554,10 +5584,12 @@ _id,name,barcodeFormat
|
||||
61,Centro,EAN_13
|
||||
610,CAA,CODE_128
|
||||
611,Calgary Co-op,EAN_13
|
||||
6110d522-b979-46ca-a313-ded4eac7db71,Telecomshop Twente,CODE_128
|
||||
612,Canada Post,CODE_128
|
||||
613,Canadian Tire,CODE_128
|
||||
614,Change Lingerie,CODE_39
|
||||
615,SCENE,CODE_128
|
||||
615a7629-0f60-4613-b41a-e1f571f5c20a,Goelia,CODE_128
|
||||
615ddf35-4934-4442-b4df-54b065184476,Сигма,EAN_13
|
||||
616,Denny's,CODE_128
|
||||
617,DeSerres,CODE_128
|
||||
@@ -5609,6 +5641,7 @@ _id,name,barcodeFormat
|
||||
639,National Car Rental,CODE_39
|
||||
63ace5b1-39bb-4486-87a8-692caab2c76b,куулклевер,QR_CODE
|
||||
63ad5b7e-ab54-45f2-9224-2da0122a21eb,Forum TC,EAN_13
|
||||
63b32bf3-2e99-4487-bc45-7b70132fe53c,Checkers,CODE_128
|
||||
63bcf094-bbc1-4caa-adfb-b6e015295f43,Парфюм Лидер,EAN_13
|
||||
63bee835-2e9d-4656-b7b6-4b9e9a024470,Арт-Квартал,EAN_13
|
||||
63c87418-cb15-4294-a872-035a03da3a62,Belleplant,EAN_13
|
||||
@@ -5644,7 +5677,7 @@ _id,name,barcodeFormat
|
||||
657d61fe-7714-4aed-a3d5-6c718c6e9c2a,EU COVID-19 Vaccinationsattest - Første vaccinationsskud,QR_CODE
|
||||
658,Thrifty Foods,CODE_128
|
||||
659,Trade Secret,UPC_A
|
||||
659c40c9-f997-44a8-b6a8-a29df616c4b2, Alfa-Tec,EAN_13
|
||||
659c40c9-f997-44a8-b6a8-a29df616c4b2,Alfa-Tec,EAN_13
|
||||
65e6e477-57a3-41c1-88b2-330a6d0cf8bd,Nobis,PDF_417
|
||||
65e848d6-edd5-401e-9b12-952a5c6fdf47,Джерела Здоров'я,CODE_39
|
||||
66,BCF,CODE_128
|
||||
@@ -5652,6 +5685,7 @@ _id,name,barcodeFormat
|
||||
661,WestJet Rewards,CODE_128
|
||||
66104d31-9ae9-440d-b316-0d07a4319af3,Farma Fedeltà,CODE_128
|
||||
662,Würzenbach Drogerie,EAN_13
|
||||
662e6cc0-3ebe-47db-badf-b31b626ea70c,The Papanui Club,QR_CODE
|
||||
66335d92-4622-4334-8384-4a6d5f61f239,Zinger,EAN_13
|
||||
664,American Eagle,ITF
|
||||
665,TJX Style+,CODE_128
|
||||
@@ -5696,6 +5730,7 @@ _id,name,barcodeFormat
|
||||
687,Thai - Royal Orchid Plus,PDF_417
|
||||
688,SportIT,EAN_13
|
||||
689,Foster Calzature,EAN_13
|
||||
68ac6315-08c6-471d-b2e0-ad42d1a091c8,100 Vetrine,UPC_A
|
||||
68c2495e-937d-4e71-a4ad-85f066df0339,Jardival,EAN_13
|
||||
68c69327-cce9-4de8-a062-b895c062ee60,Iden,EAN_13
|
||||
68d4b527-e419-4346-8078-a4ef07a04f00,Lehner Versand,CODE_128
|
||||
@@ -5729,6 +5764,7 @@ _id,name,barcodeFormat
|
||||
6a5ac3f8-04cb-4d14-884f-1231b72228e8,Топаз,EAN_13
|
||||
6a7b1bc8-eca7-4323-9080-68af9414254f,CastoPro,CODE_128
|
||||
6a85186a-bfd9-4078-a5da-db1b4e1fb526,Molders,CODE_128
|
||||
6a8a8971-821c-46ce-a638-1a8585c9dedd,Booking.com,CODE_128
|
||||
6aa89061-d0b5-46a2-9019-b1cb7146e485,Just Plastics,CODE_128
|
||||
6aa9bd9a-b099-4997-9fa1-b0a7525c6ec7,AZ Casa,EAN_13
|
||||
6ab113ff-77e9-4029-9b23-e420eda105e3,Ehrmann,CODE_39
|
||||
@@ -5767,6 +5803,7 @@ _id,name,barcodeFormat
|
||||
6faff0bd-9236-41f8-9c67-7b546c68085a,BVS,EAN_13
|
||||
6fb31971-1cf0-468e-9f85-ebf6133ad3aa,у Палыча,CODE_128
|
||||
6fb45bab-d4be-49fd-8b58-d841110eb0cb,AL 48,EAN_13
|
||||
6fb4ec1e-c6b7-4597-82a3-5c8d4d69ad4f,Rachelle Béry,CODE_128
|
||||
6fe38419-76d2-4b5c-983e-6dbed7822d62,GiorgioMare,CODE_128
|
||||
6fea059e-d9ec-4063-8ea4-cba5ac035942,L'arca di Noè,EAN_8
|
||||
6ff46a57-e3c9-457e-bfb4-aa922c4c41b4,BENZ,CODE_128
|
||||
@@ -5855,6 +5892,7 @@ _id,name,barcodeFormat
|
||||
740308f3-fda8-4b83-9d86-d13592ef30ab,Dress Code,EAN_13
|
||||
741,O'STIN,EAN_13
|
||||
74135c63-c1ab-47b8-8d99-4d9dcf602eda,VOIX INTERIORS,CODE_128
|
||||
7415ddc5-3d77-410c-a6f8-ab399518a82c,Tradition,CODE_128
|
||||
742,Reebok,CODE_128
|
||||
742069df-a468-45d5-8cf6-cc152b4aefaf,Bacher Garten-Center,EAN_13
|
||||
743,Savage,CODE_128
|
||||
@@ -5902,6 +5940,7 @@ _id,name,barcodeFormat
|
||||
764,Васаби,CODE_128
|
||||
7648aaa6-671e-4396-9e4e-759aa66c9f4f,Bouwcenter,EAN_13
|
||||
7649e44e-66e4-4af1-a913-87a40c8ae739,Office Centre,CODE_128
|
||||
764a67a4-8087-41d1-b53a-d73b8380d5cf,Handy Home,CODE_128
|
||||
765,Вестер,CODE_128
|
||||
766,Виктория,EAN_13
|
||||
767,Газпром АЗС,EAN_13
|
||||
@@ -5934,6 +5973,7 @@ _id,name,barcodeFormat
|
||||
780bd58f-acbb-493c-869d-63f7a93292f3,Schnitz,CODE_128
|
||||
781,Кофе Хауз,CODE_128
|
||||
782,Красный Куб,CODE_128
|
||||
78242148-6c07-4698-9ec1-56017dc687b6,Ideacasa Mercatone,EAN_13
|
||||
782b0597-f7e4-4509-ba4b-a9fc35d72b4d,Рада,EAN_13
|
||||
782f7353-ec4c-49a8-9aac-1f7d28f4cab2,Remix Moda,EAN_13
|
||||
783,Лукойл / Ликард,CODE_128
|
||||
@@ -5988,7 +6028,7 @@ _id,name,barcodeFormat
|
||||
7bd30784-434b-4d73-8dc1-5b5516723eda,Pascal Coste,EAN_13
|
||||
7bd61c87-b62d-439a-92e9-cc435345cb53,Infinity Fashion,CODE_39
|
||||
7c138f2e-37f9-46d4-ac65-2b20ff90a629,Nai Harn Gym,CODE_39
|
||||
7c1b39b5-b938-432e-b0be-3c196320bd37,Checkers,QR_CODE
|
||||
7c1b39b5-b938-432e-b0be-3c196320bd37,Checkers,CODE_128
|
||||
7c5a9dd0-28b0-4be1-b53f-cac4246990b4,Марафон Обувь,CODE_128
|
||||
7c60823a-e9fc-447f-811d-589bf1f95342,Пчёлка маркет,UPC_A
|
||||
7c77ce3b-02ad-436b-a4aa-62a6d5d583e3,Plainview-Old Bethpage Public Library,CODABAR
|
||||
@@ -6004,6 +6044,7 @@ _id,name,barcodeFormat
|
||||
7ce87cdb-4c6b-437f-a693-dca518f7436a,Yo-get-it,CODE_39
|
||||
7d02542c-fac0-45b5-bc90-d74240715c56,Travis Perkins,CODE_128
|
||||
7d11f040-b0a2-4109-bdf1-25711d48d451,Consorzio Infarmacia,EAN_13
|
||||
7d168ca5-9370-47bd-ac3e-bf1e1e26f1ec,RISPAWORLD,CODE_128
|
||||
7d41888d-cd7d-42ef-bf93-9aeda5ae13f6,Kepro,EAN_13
|
||||
7d4345b8-448b-4e12-a1c5-c6e031de2352,Nove25,CODE_128
|
||||
7d520d1c-611e-4e81-9937-41a9828e6b08,EU COVID-19 Vaccinatiebewijs,QR_CODE
|
||||
@@ -6014,6 +6055,7 @@ _id,name,barcodeFormat
|
||||
7da65ee3-d140-469c-b3ee-217272ac98d4,Kippie,QR_CODE
|
||||
7db0f727-13b4-48c1-8618-550155a878a2,Imperial Games,CODE_128
|
||||
7db8a067-1c33-4cd9-9706-31a2592f719a,милый дом,GS1_128
|
||||
7dd14421-2fe6-494f-889b-dd8920f61091,Mastro Tortello,QR_CODE
|
||||
7dd1b9ca-2a5b-4f3c-8c10-8bc216ff5d2f,Sokolov Jewelry,CODE_128
|
||||
7df2728d-3dc9-4724-8756-965e937674e2,Marriott Bonvoy,QR_CODE
|
||||
7e3da299-047b-4981-8ff3-e5355c7289b2,GIROPHARM ,EAN_13
|
||||
@@ -6040,6 +6082,7 @@ _id,name,barcodeFormat
|
||||
8045996b-082d-4333-b631-54dc992ebef0,Coop,EAN_13
|
||||
805,Старик Хоттабыч,CODE_128
|
||||
806,Stockmann,CODE_128
|
||||
8069f84c-3b04-4b0a-87fd-d89230547e8b,Happy Pets,QR_CODE
|
||||
807,Сток-центр,EAN_13
|
||||
8070cf0a-9721-4fe7-b010-6fdca61349fc,Epping Plaza Hotel,CODE_128
|
||||
8077e001-6db6-4796-bd82-6716ea5e116e,Palace Cinemas,CODE_39
|
||||
@@ -6061,6 +6104,7 @@ _id,name,barcodeFormat
|
||||
813f818a-e99d-49f2-af6e-653a9bcaab09,Bazar Avenue,EAN_13
|
||||
814,ФотоПлюс,CODE_128
|
||||
815,ЦентрОбувь,EAN_13
|
||||
8153abb1-248f-4af9-a7f8-dd83cdacdc7f,TEKBIR MARKET,CODE_128
|
||||
816,ЭКОНИКА,EAN_13
|
||||
8166ded7-42b6-47b8-a5dc-032954e82db7,bugatti,EAN_13
|
||||
817,Эстель Адони,EAN_13
|
||||
@@ -6071,7 +6115,7 @@ _id,name,barcodeFormat
|
||||
81c5ea7b-aa89-47f8-a22e-297207616f0b,Taurus Sports,CODE_128
|
||||
81dd0d8d-4613-400e-8cbd-b2189a88a22d,EULIVIA Apartments,CODE_128
|
||||
81e7b9b8-826c-4f9e-9c61-7568a454afa5,Industriya Krasoty,EAN_13
|
||||
82,Desigual,CODE_39
|
||||
82,Desigual,QR_CODE
|
||||
820,Air Miles,EAN_13
|
||||
820b5de7-a25a-4d30-ac74-3a70fe682bfd,Мир Электроники,CODE_128
|
||||
821,Ajax Amsterdam,CODE_128
|
||||
@@ -6135,6 +6179,7 @@ _id,name,barcodeFormat
|
||||
848,Lake Side,ITF
|
||||
848939e3-7e55-40af-a46a-a0b0b434bbcf,Планета ZOO,EAN_13
|
||||
849,Le Ballon,ITF
|
||||
8495d3db-8532-4bef-a58f-3a77479ff134,C&A,CODE_128
|
||||
84a82d8b-1d4f-4673-b1e2-b115bbe5b618,Soul Origin,CODE_128
|
||||
84faf272-0010-4f93-8aa1-154caaa11ac2,Pro-Duo Nur für Profis,EAN_8
|
||||
85,Diamond Club,CODE_128
|
||||
@@ -6194,6 +6239,7 @@ _id,name,barcodeFormat
|
||||
87737e38-8052-4fdc-a90a-3511b9157481,PETS&CO,CODE_128
|
||||
878,Jula,CODE_39
|
||||
879,KappAhl,CODE_128
|
||||
879a9dd3-45e3-4633-9376-9183fee6ab3e,Bernardi’s Marketplace,CODE_128
|
||||
87b3f071-9af7-4163-b512-679717b696ac,Caucciu,EAN_13
|
||||
87b925d1-4d9a-47e3-9e54-deaef1981b77,Impfausweis,QR_CODE
|
||||
87d141a6-cac3-4d39-9357-a6365850e57f,Coeur de frais,CODE_128
|
||||
@@ -6247,13 +6293,14 @@ _id,name,barcodeFormat
|
||||
8a0dca6e-de83-4e48-a42d-a3009da56653,Park 'N Fly,CODE_39
|
||||
8a25357e-ebc3-4ae1-b7fc-a10ff3b1abd0,Конфил,CODE_128
|
||||
8a53dffe-df27-40f0-b2ff-58e53add0b3e,La Cartissima,EAN_13
|
||||
8a59226e-9895-4924-8616-345549a56aec,Munhowen Drinx,CODE_128
|
||||
8a702666-368b-48a5-96fd-4e10aac5ae7f,Brooklyn Jeans,ITF
|
||||
8a8095fe-f449-4242-83a1-0d3055874233,Little Sparrow,CODE_128
|
||||
8a9c58f4-4db3-4aef-8cf0-d2caa0fcc4d1,EU COVID-19 Potrdilo o cepljenju,QR_CODE
|
||||
8aa58d48-ad60-4b6d-aa1d-054f94b6453b,Granola,PDF_417
|
||||
8ac5093b-8fc4-49d6-b271-dd845252b60c,Idea Verde Maschi,CODE_128
|
||||
8ad83ece-2e55-4937-80c9-04584c598439,COM,EAN_13
|
||||
8b0f2db1-ae97-4af8-8e82-c4067a4ac322,Toyota,CODE_128
|
||||
8b0f2db1-ae97-4af8-8e82-c4067a4ac322,Ma Toyota Extra,CODE_128
|
||||
8b398aea-e5bd-484d-bdf2-5030bacf9157,Thèoria Milano,CODE_128
|
||||
8b4c413c-effc-4912-9a34-6baea2972199,Karla,CODE_39
|
||||
8b653178-4f49-4f73-9091-7763e039b539,Aléa Déco,CODE_128
|
||||
@@ -6304,6 +6351,7 @@ _id,name,barcodeFormat
|
||||
903,W.KRUK,CODE_128
|
||||
904,Galeria Wileńska,UPC_A
|
||||
905,YES,EAN_13
|
||||
90574104-b485-489f-9872-3d32b7e07c59,America Today,CODE_128
|
||||
906,ZiKO Klub,EAN_13
|
||||
9062c2a3-eeb1-4797-afb6-41a0394bb481,Městská knihovna - Česká Třebová,EAN_13
|
||||
90705634-f152-487c-97eb-27e1728285ef,Миртек,EAN_13
|
||||
@@ -6332,6 +6380,7 @@ _id,name,barcodeFormat
|
||||
91915513-4447-47b0-93ae-d489f6ee3a97,Chrome,EAN_8
|
||||
92,Düsseldorf International,EAN_13
|
||||
920,Drummond Golf,CODE_39
|
||||
92063e91-526a-4327-ba87-f487bfaec724,Rue du Commerce,CODE_128
|
||||
920c9bd0-d85c-42c6-9301-fc1ddedd38c2,Idea Casa,CODE_128
|
||||
920ce49c-9728-41f1-b9e9-9f9d06f53d92,Русские Самоцветы,EAN_13
|
||||
921,NWZ,EAN_13
|
||||
@@ -6368,11 +6417,13 @@ _id,name,barcodeFormat
|
||||
935ef7c3-a93c-43e1-9abd-075bd05c3051,Форне,EAN_13
|
||||
936,Orlen - Vitay,CODE_128
|
||||
937,Wojas,EAN_13
|
||||
937cef67-4a01-42fc-9f51-0a3f3210a686,Idea Città Company,GS1_128
|
||||
938,Sizeer,CODE_128
|
||||
939,T2 Tea,CODE_128
|
||||
93a8cca4-73cd-405c-8142-359a41127416,しまむらグループ,CODE_128
|
||||
93a9836f-0984-45ee-97c6-3e6675a34b11,Ludwig Beck,QR_CODE
|
||||
93b76ad4-76f3-4132-8fe5-972f6ca5eb8a,Київфарм,EAN_13
|
||||
93bda8ac-884e-4db0-ab72-09e12f86a3d2,Naturino Family Store,CODE_39
|
||||
93c53a6b-2efb-4167-aa67-c4905f1692b1,ВелоДрайв,EAN_13
|
||||
93d1d2d1-801d-4293-a1f1-cdf314ba341a,Nilufar,EAN_13
|
||||
93d42408-df2a-42fd-a10c-9f9c725e8000,TuttintiMO,UPC_A
|
||||
@@ -6420,6 +6471,7 @@ _id,name,barcodeFormat
|
||||
962,Монро,EAN_13
|
||||
963,Jeans Symphony,EAN_13
|
||||
9630a33b-0869-4246-91db-80f928bd7b3a,Harfa Sport,EAN_13
|
||||
96394b6b-b91f-4fbd-991c-242b7189e0b0,Shoprite,CODE_128
|
||||
963a19ff-687c-434a-a960-c5e9c6d27c1c,La Cage,CODE_128
|
||||
964,Спектр,EAN_13
|
||||
964bee1b-84ac-42cb-ac20-b182e043a983,SIR,CODE_39
|
||||
@@ -6469,6 +6521,7 @@ _id,name,barcodeFormat
|
||||
989,Toys Center,EAN_13
|
||||
98959593-9b79-4d3a-98bf-fd965d99825e,ташир пицца,PDF_417
|
||||
98afc021-2350-4686-89de-03bc9bb686a4,Coeliac Australia,EAN_13
|
||||
98c597ea-20b1-4d9e-a6ae-0ed84e0f591d,Juttu,CODE_128
|
||||
98d5694e-ee5e-4f60-9a32-0ac43d66f54f,Vaprio,CODE_128
|
||||
99,Ernsting's Family,ITF
|
||||
990,Nando's,CODE_128
|
||||
@@ -6530,6 +6583,7 @@ _id,name,barcodeFormat
|
||||
9dc29233-9613-4851-8630-15b7b39222c3,Kasztelan,CODE_128
|
||||
9dc3174d-0990-4d88-a4d6-3c7a6431160d,Янтарь,EAN_13
|
||||
9dc63493-8062-498a-99be-db701dfc03a4,Farmacia,CODE_128
|
||||
9dd46ad3-336b-4af2-9cbc-4526140558ef,Kiriel,EAN_13
|
||||
9e02cf7a-da20-428d-a363-952f7a3fb25c,Kéddo,EAN_13
|
||||
9e82e20d-4da0-46c0-bb94-c2ba7b9b3d74,Индустрия красоты,EAN_13
|
||||
9ec73fed-0974-4b7c-98e0-27aba810e8e1,Spielwarentraum,CODE_128
|
||||
@@ -6541,6 +6595,7 @@ _id,name,barcodeFormat
|
||||
9fd0773f-f0ee-476c-8351-c02fb65b9360,Plus Market,EAN_13
|
||||
a00761f0-abf1-4690-a95a-b18e41c527d2,Pet and Pool,CODE_128
|
||||
a017f67b-3483-4587-97a0-2c5c4af6834e,SchuhMarke,CODE_128
|
||||
a0284158-4eaf-4891-9768-f93e1049413a,Десятка,EAN_13
|
||||
a04e9cdb-caec-4f4f-bf96-9e40fd90cb09,PharmaSave,CODE_128
|
||||
a05edd71-80dd-4e23-87cf-5df65a193281,Andre Tan,EAN_13
|
||||
a08ccd9d-76ce-4245-8582-24d2840ff7b9,Chanel,CODABAR
|
||||
@@ -6562,6 +6617,7 @@ a238f465-ff8e-4077-b5fe-a1f250ed90d9,BJ's Wholesale,UPC_A
|
||||
a2756aea-2ca4-4870-811e-100871fdb73e,Pratiko,EAN_13
|
||||
a29668f6-dd2e-4281-917e-49e28ebff6a1,Koloria,CODE_128
|
||||
a2b352d9-5d5d-4080-9f52-eb6a798aa6c6,Ferlenz,CODE_128
|
||||
a322cee9-b5c6-4384-a365-c970f335cc5c,Erdkorn,QR_CODE
|
||||
a323e0ec-2b0b-4a82-a950-11f7516f2584,OnePass,EAN_13
|
||||
a36556e0-433a-4b16-b72c-4751a386d707,EU COVID-19 Impfzertifikat - Erstimpfung,QR_CODE
|
||||
a3828047-ff01-4eb4-be10-6e4d635ca029,Leffers,ITF
|
||||
@@ -6590,6 +6646,7 @@ a6060858-7d83-4f60-8318-b80635013f45,Detershop,EAN_13
|
||||
a645973d-7e87-46ab-8c77-0380ca06ae32,Perth Zoo,CODE_39
|
||||
a65e3023-fa06-47c0-bfdc-4dc79f54c825,丁丁藥局,EAN_13
|
||||
a69154f5-16a8-4543-bb49-b7a68bb3d301,EU COVID-19 Potvrda o cijepljenju,QR_CODE
|
||||
a69d8b79-a0e7-422b-a149-64c66b23aea4,Plus More,CODE_128
|
||||
a6aa66ba-00b8-4922-b628-98cea029c9e2,Coop,EAN_13
|
||||
a6ab3df9-10bc-47df-bed4-839fe1e908be,零食物語,CODE_128
|
||||
a6b2c527-afbc-4e71-ae24-e5e5e270d474,Pappert,PDF_417
|
||||
@@ -6599,6 +6656,7 @@ a7634961-1509-4902-9b25-714ef789e926,2HB,EAN_13
|
||||
a78ee36a-3682-404f-9c83-307c1a6b421e,Moda Lina,EAN_13
|
||||
a79b9a92-9821-4824-978e-1a257abfbaff,Wormland,CODE_128
|
||||
a7b3e795-4746-45a4-9c80-d331fb051632,BonBon,EAN_13
|
||||
a7e263c3-75fd-4ac2-98ea-0e7b3e425a74,SUPEREFECTIVO,CODE_39
|
||||
a7f1c8c5-2895-4a74-98ac-9740e7c59922,Coffeelat,QR_CODE
|
||||
a8090907-7e2e-4038-8831-0c72adaa0664,US FashionStore,EAN_13
|
||||
a83b00dc-1bfd-41b6-9fee-3c7f5d33fef5,Baden,EAN_13
|
||||
@@ -6628,6 +6686,7 @@ aaa82398-d78f-46d6-bfb5-a40843e94cc8,CLEVER WEAR,EAN_13
|
||||
aabf2ea4-170c-42e4-906b-ea1253ebf580,Родные масла,EAN_13
|
||||
aac03de2-6c97-4bd9-8d72-a7bba15bea6d,La capsuleria,EAN_13
|
||||
aae4f87d-ee8c-4ff0-9cb2-88c478b7a0dc,Bonjour,EAN_13
|
||||
aae6aab3-e5fb-47c1-b6c1-c30c3f386793,Netto,CODE_128
|
||||
aaf65c10-a78e-4b18-8c79-371d5cdef871,La Provençale,CODE_39
|
||||
ab0c09c4-d1cc-40a4-8b46-f101dc376655,Trade group SMIT,CODE_128
|
||||
ab0c5857-5b3d-4ac3-8910-ec6b8c49a0dc,Three,EAN_13
|
||||
@@ -6636,6 +6695,7 @@ ab245924-7af0-4996-84a2-f19a6b6a62fa,Hollister,CODE_128
|
||||
ab37459c-4368-4684-9ffa-3ac84c69e87a,ДомДоктор,EAN_13
|
||||
ab4a36d9-9a11-4575-a6cb-1bd053c6e00f,СБА,CODE_128
|
||||
ab6de5de-ea68-47d6-87ad-884e63f63f48,EU COVID-19 Удостоверение за ваксинация - Първа ваксинация,QR_CODE
|
||||
ab73cd57-b075-425f-afe6-868e56207a42,Rewe,QR_CODE
|
||||
ab7a0e82-ad67-40fb-a85f-83cdd10fb44a,Depot,QR_CODE
|
||||
ab9d5459-25c3-4040-bff0-b7804375065f,Забіяка,CODE_128
|
||||
aba38815-1a55-456f-84b6-0321d8d34102,Андреич,EAN_13
|
||||
@@ -6676,11 +6736,13 @@ b000bec7-fe1d-4a01-8134-7e93c72fcf2c,фаэтон,EAN_13
|
||||
b00fc66a-460d-43c9-a5f1-86b0a92b125a,Дачник,CODE_128
|
||||
b0210273-794f-427b-bba1-c940a7aac7df,Helen,CODE_39
|
||||
b0382f02-57d7-4d7a-a3f1-25ea85507c64,Laser Game Evolution,CODE_128
|
||||
b059eafb-017b-49f0-9d74-62889d8ee777,City of Whitehorse,CODE_128
|
||||
b063caac-e875-4475-8ae6-09a0f979fb85,CLUB SALUTE,CODE_39
|
||||
b07244fc-81d3-492b-a9e5-a813a57eea9c,Faciba,EAN_8
|
||||
b07e5b4d-d658-4ba6-9305-d497af7a19ae,Nijhof Schoenen,ITF
|
||||
b086ef99-b8b8-45a9-80f5-33a4cb01aba8,spudshed,CODE_128
|
||||
b0973d67-75d0-45e3-9f17-0f4cb80a4824,Motozem,CODE_128
|
||||
b0cfcd52-01a5-4533-8970-6e402e52bcb0,Brikon,UPC_A
|
||||
b0e24b5a-4034-44b9-b22b-2a008d0bcde5,Eurodì,CODE_128
|
||||
b0efcdb1-872a-44f0-961a-a97ee45c7ba8,Porsche Group,QR_CODE
|
||||
b0f4291f-8d68-4071-8d10-cc212b4495cc,Iper d'Oriente,EAN_13
|
||||
@@ -6707,12 +6769,14 @@ b2ab5d25-1981-4120-be54-86ccda399861,Vitulano,UPC_A
|
||||
b2b50b52-83c6-43d3-bb13-008544e2cfa5,Turčianska knižnica,EAN_13
|
||||
b2b7d24b-fdbc-468b-be59-b189d4d5fdf9,Het Certificaat B.V.,QR_CODE
|
||||
b2c03313-9621-4233-9b61-5faa8d2c66e0,JILL STUART,EAN_13
|
||||
b2e520a4-c21a-4ba0-822b-c9ac5fe79f4d,BLUME2000,QR_CODE
|
||||
b2f90e3a-4669-4cd4-8c31-65fbb91dc26e,Advantage Pharmacy,CODE_128
|
||||
b31982e9-7c22-4e92-8210-e08eaa123727,Linberg,EAN_13
|
||||
b334927e-9574-457c-9a1f-1b7dd5928304,Farmanoi,CODE_128
|
||||
b359db35-9be6-4369-b796-04b47b4044be,Signorizza,EAN_13
|
||||
b36ae43e-8a9c-41f7-8c54-d5ae673c94f5,Bio&Co,EAN_13
|
||||
b43d0b6b-db53-44a7-b518-30cace59c222,British Garden Centres,CODE_39
|
||||
b4606b36-853e-4014-9524-fc07fa6e1d4a,Cantina Rauscedo,EAN_13
|
||||
b4663d4f-dd9f-43cc-ba0e-4ce9b0beccd2,Пивлавка,EAN_13
|
||||
b4725b6c-105f-4898-a8d5-ba426ddf9508,Yamazaki,CODE_128
|
||||
b472df21-8f40-44ff-a11f-bbe1d76d6d58,Company Shop Group,CODE_39
|
||||
@@ -6720,9 +6784,11 @@ b497667e-0c92-4db6-9579-63bbe35af881,Праздничный,QR_CODE
|
||||
b4b5583a-3d0e-458e-b800-3b43968a8421,Pirex,CODE_128
|
||||
b4c412d7-ad0b-4afd-aed8-0cf113f445ca,Аквафор,CODE_128
|
||||
b4e4e61f-8605-45b6-b672-fce67898ba4e,Schuhkay,EAN_8
|
||||
b4f37441-b068-443f-bbfb-fca23c9f5eec,Tuttigiorni,EAN_13
|
||||
b4f4c3c3-4ad3-4431-9048-1d6b0e47a649,Tezenis,CODE_128
|
||||
b52836be-a999-4bf8-ba0b-5f2b9b96a509,Youth Hostels Luxembourg,CODE_128
|
||||
b54963ea-a217-434b-b0fa-e8114fd6b999,Пинта,EAN_13
|
||||
b54ed01d-e46b-4f24-8ce9-e08f624f2ddb,IGA,CODE_128
|
||||
b5656988-55fb-46c8-91ab-24a5b8422549,Moja Starówka,CODE_128
|
||||
b5695b84-a5cf-4286-87ab-afbe9368be1f,Tulipes,CODE_39
|
||||
b5dc4188-75d6-4cf1-b7f2-b0e85a57bc9a,Boulangeries Maison Toulorge,CODE_128
|
||||
@@ -6757,6 +6823,7 @@ b9c4e2bd-88ee-4345-b0c4-3828e076637c,Pro-Duo Exclusief Professionals,EAN_8
|
||||
b9f36613-ed74-441e-abce-66d465b83594,Accademia Italiana della Cucina,CODE_39
|
||||
b9f3eacc-e6d9-43e2-93f0-a1e63221b1fe,Più Medical,CODE_128
|
||||
b9fc9d9a-da0e-4fe2-82d8-5d6672263b4b,Kačka,CODE_128
|
||||
ba063e76-f5be-4e98-a549-7040a825caf7,Trendevice,CODE_128
|
||||
ba0d23c2-0030-4b68-9bec-6daf6c0db596,Zoomarket,CODE_128
|
||||
ba119be5-7382-453c-93be-625c555aec84,Vitaminas,CODE_128
|
||||
ba5aca20-b0fd-417d-8739-ba9b347c8fff,Клиника ЛМС,CODE_128
|
||||
@@ -6822,6 +6889,7 @@ bfbe8661-ae7a-4338-bb37-fde8cd6c57a1,Хмель и Солод,EAN_13
|
||||
bfcd1bbc-3671-4a2b-99d4-8195c5246644,Metalmark,EAN_13
|
||||
bfe5aac8-ea2d-41e0-ba15-af949e5437d7,Каприз,EAN_13
|
||||
bff24292-b2e3-4322-9462-d5ecc80ce044,Halfords Motoring Club,QR_CODE
|
||||
bricoman-it,Bricoman,CODE_128
|
||||
c03f0f47-ce09-4bf1-95f8-c1d0c6f1a8ca,Coop,EAN_13
|
||||
c043ef0e-49a9-4f10-877f-974247cf0f16,IperBiobottega,EAN_13
|
||||
c0712c54-a6a6-4695-b9ba-4f5a296b66cf,Apothical,EAN_13
|
||||
@@ -6871,6 +6939,7 @@ c51b31d2-056b-41a0-9347-c4d02375df01,офисмаг,EAN_13
|
||||
c51c692c-9e90-48fb-9047-38d3bb7fec2d,Мясницкий Ряд,CODE_128
|
||||
c53f804f-29e6-4dc0-9f66-0b9b016cdade,Möbel Borst,CODE_39
|
||||
c54a0027-fd79-457e-80eb-e73e1332e3e9,Ni Hao,CODE_128
|
||||
c57001e2-db2b-4f15-8c49-29c6502a86e8,Underwood Meat Company,CODE_39
|
||||
c5846a8f-687a-4de9-a5b5-b575488ac84b,Radhe Wholesale & Retail,EAN_13
|
||||
c59fc214-7895-40fc-8f94-9d1d800b66d2,Conradt,CODE_39
|
||||
c5acc06c-0b7d-4e4d-bee3-2134e2fb3b9c,Belles Fleurs,EAN_13
|
||||
@@ -6910,6 +6979,7 @@ c9231cc7-92f2-447c-ad84-8d167c23e9cd,Zwitserse Apotheek,CODE_128
|
||||
c925f293-54ee-47ba-ba48-792945c5fa94,Смайл,UPC_A
|
||||
c9295edb-4acf-4e21-b931-d07d1b97e9be,Weingärtner Gartencenter,EAN_13
|
||||
c935a5b9-03f1-4194-8aa2-39545b376065,Alpina Intimo,CODE_39
|
||||
c94a90ff-4118-4310-bcf2-588463110b83,knihovna Rosice,CODE_128
|
||||
c964ff0f-5ac9-4976-967f-a55c7ec72e14,Mega Pet Warehouse,CODE_128
|
||||
c998f7d2-6403-46c5-ba21-270195e61cd3,MAX & Co,EAN_13
|
||||
c9d387cb-7a0f-492f-a18d-f4d559ccbade,Информат,EAN_13
|
||||
@@ -6921,10 +6991,13 @@ ca4944a1-3892-4803-8b04-b72cd996511f,Diadema,CODE_128
|
||||
ca650de4-55cc-4df6-8994-3378274bebf5,Moby Dick,CODE_128
|
||||
caa55951-513c-4dca-b0bc-3cb80d85e4f2,PANORAMICO,EAN_13
|
||||
cab2ae0e-10bc-4c58-b159-59f4e8566ca7,Hawkesbury Library Service,CODE_39
|
||||
cad853d8-b9fa-43d6-b37d-39274a571269,Harmony Beauty,EAN_8
|
||||
caddfc56-1d2a-454c-bece-1516b13fa249,Millstream,EAN_13
|
||||
cae4d233-caae-43ff-aaba-affdc99c2d98,ALTERNATURA d.o.o.,EAN_13
|
||||
cae69560-d7e6-4cb7-9ac5-95199c15f9cc,Blumenmarkt Dietrich,CODE_128
|
||||
caff4297-2ae6-4315-9329-614c8510eb7f,Вместе Выгодно,CODE_128
|
||||
cb03988e-5063-4f48-aef2-9f959f9771a2,DVV,CODE_128
|
||||
cb12d304-17dc-45ba-be1c-5602237320ce,Vero Moda,QR_CODE
|
||||
cb1f1114-d1ea-4987-badc-7194d1ab1ca8,Zahradní Centrum,CODE_128
|
||||
cb4ead90-a2f7-41ba-80eb-d4970bed83bd,A-Kaart,CODABAR
|
||||
cb7b9237-0c2d-437a-ba38-fa6decca977e,萊爾富,CODE_128
|
||||
@@ -6947,6 +7020,7 @@ cd121cb8-988c-454f-a4ac-10365bf4aa6c,Shop Santé,CODE_128
|
||||
cd26930f-c1ac-4543-a23c-0b90cfa0b1f7,36.6 Здоровье,EAN_13
|
||||
cd38f71a-1a0a-4ba7-ac1d-43974fd42e1a,Gel Market,EAN_13
|
||||
cd73cbfb-68f5-4d67-9411-310695558c6b,NKC,CODE_128
|
||||
cd840f28-f17c-44ed-9ec7-15b48aa2f0e1,Knihovna Matěje Josefa Sychry,EAN_13
|
||||
cd9d6482-a7dd-4283-a776-f0982ade57a5,Biraghi,EAN_13
|
||||
cdd777ae-6fa4-458d-b7e5-f7c18fff857a,EU COVID-19 Vaccinationsintyg,QR_CODE
|
||||
cdd87d70-3e73-48a2-a88a-5e1083e41d0a,1000 мелочей,EAN_13
|
||||
@@ -6968,7 +7042,9 @@ cf4f5874-aef4-492c-ae9c-b47cb2f14224,Jardinerie Loiseau,EAN_13
|
||||
cfce4667-ff5d-44f0-8ba7-fbc44bbf2cb5,Orange Club,CODE_128
|
||||
cfd15fb5-1bac-455b-a5f7-b808390fba06,Сакура Суши,EAN_8
|
||||
cff8ca3d-3620-4098-9b8b-e181f84f6ec8,365,CODE_128
|
||||
d0153291-afc6-4d0f-8120-74c0b321434a,SA Guild of Actors,CODE_128
|
||||
d0540b51-9716-4d59-bc2f-1582b044c029,Wedding Price Card,CODE_128
|
||||
d05b520c-091a-4a9b-84de-689484927109,Lotto Niedersachsen,DATA_MATRIX
|
||||
d0a04b4f-df54-4fcd-b410-87ea5d0986aa,EU COVID-19 Očkovací preukaz - Záber na prvé očkovanie,QR_CODE
|
||||
d0b9a6b8-f724-4fe7-8195-e810297505af,Chocolaterie Albèrt,EAN_13
|
||||
d1018675-b1b2-44bc-91b6-a985d744836f,La Sirena,EAN_13
|
||||
@@ -7004,6 +7080,7 @@ d403852e-7683-49f0-9de5-6e1ec5ac842d,Andreas,CODE_128
|
||||
d4115422-7d2e-4001-9c49-4c1353c8b88d,Secom,EAN_13
|
||||
d44c1355-2941-4393-aeb8-1a7ad7122f67,HUALI MARKET,EAN_13
|
||||
d4502068-af6b-43ab-b9a5-46dc1899e22a,Ябко,EAN_13
|
||||
d4517693-3f1c-45a6-86f2-d60ad19d04e9,U Baristu,QR_CODE
|
||||
d4934c41-3cae-40dd-bd5c-2ca88bdcf9f5,Bau-Buy,EAN_8
|
||||
d4b67cb7-cfbf-4bac-8711-2088b8592e5f,Wara,EAN_13
|
||||
d4e44512-0ac2-4d1f-8603-01cd0497416c,The co-operative,CODE_128
|
||||
@@ -7034,6 +7111,7 @@ d6eb202f-ba2f-4253-8f5d-1dce44d13bef,Канцлер,EAN_13
|
||||
d71e4888-dd0b-4aac-ae5b-937b17ee4149,FQCC,EAN_13
|
||||
d7893d3c-c704-4daa-955b-a97f061d0138,ВАБИ САБИ,CODE_128
|
||||
d78fc335-cab2-40d7-a56c-333f568b36b4,социалочка,EAN_13
|
||||
d7959c14-98b1-4187-9088-494d1a7c5f9f,Canningvale,CODE_128
|
||||
d79a1500-206d-407a-b111-724b898aa154,Sportsman's Warehouse,CODE_39
|
||||
d7a18a8f-32b5-43f5-8290-5caf4297aaf8,Halfords Colleague Discount,CODE_128
|
||||
d7b8deb4-4006-4223-9600-331458fade3d,Пиватерра,EAN_13
|
||||
@@ -7100,6 +7178,7 @@ dema-be,DEMA,EAN_13
|
||||
df2f73ec-a3c1-4169-b47e-4742bcab704d,Digizenz,QR_CODE
|
||||
df3228e8-78d0-42c7-8e45-30089e5267ea,Эдисон,EAN_13
|
||||
df53a52a-320b-41ce-8ca0-92da86fcae0c,Koutný spol,CODE_93
|
||||
df5ad302-ae2d-47db-b9c9-b5e030d3b553,ALDI,CODE_128
|
||||
df62dc4f-b31a-4615-a289-94410da0ce7b,Melkior,CODE_128
|
||||
df668825-ed7c-4f05-b74b-47ec6daa69f0,Breakers,CODE_39
|
||||
dfc5ba69-483e-46ab-8951-3afc7c6d7460,Chaussexpo,CODE_128
|
||||
@@ -7112,6 +7191,7 @@ e0491f99-5f5b-4bfa-bb1d-f7cfe688ca26,Хмельная Миля,CODE_128
|
||||
e0663514-cb9c-413a-ad94-8b83dde796f8,Hommy,EAN_13
|
||||
e0b022eb-bc2b-4553-8345-5869e4f644e2,Life 2.0,CODE_39
|
||||
e0b2fcbb-e302-4a5e-aa4b-3991fcee7831,KanclerCom,EAN_13
|
||||
e0d0863f-c345-4e3d-baf7-853414056795,Sport 2000,EAN_13
|
||||
e0db8778-d9a2-4b6c-bece-1b2c4bef11c0,Everyone Fitness,CODE_39
|
||||
e0eadec9-539e-4316-b9bd-9e29d59c1abb,Containers for change,CODE_128
|
||||
e132948b-f6a2-44cb-b0c1-d9366151a0e2, BSTRONG,CODE_128
|
||||
@@ -7146,11 +7226,13 @@ e435e3ee-a81f-40f8-86be-2def0a610ac1,Спорт-Марафон,EAN_13
|
||||
e4561f48-5c68-4c2e-88ea-7eeb531a8b41,Lubo,CODE_128
|
||||
e456ceeb-d76a-4684-9e2a-54935e77daa5,Tendenze Calzature,EAN_13
|
||||
e4dfacd9-9513-4231-b09b-51af53151edd,Дворик,EAN_13
|
||||
e4f5270b-5a69-41a3-a39e-e3e7e4460ddd,OSCARwash,QR_CODE
|
||||
e4f54b47-0238-4fd6-9109-d5ce424981c6,Фламинго,EAN_13
|
||||
e5059f27-dc93-4296-b4d5-1162b692c5ec,Северная Звезда,CODE_128
|
||||
e550a9a1-c25b-4658-a9fa-38764c584693,Mon Grand Plaisir,QR_CODE
|
||||
e55b3ee0-ac34-480c-8fd3-c63c3a6ae28c,Муниципальная Аптека,EAN_13
|
||||
e55f98ef-9258-4eb7-97fb-7e97d2aacdaa,COOK Kitchen,QR_CODE
|
||||
e5616ded-48e7-45d7-b706-a82ef5ab9667,OROCASH,CODE_39
|
||||
e569e534-de02-4cde-a15e-ee5f3e70794e,Partyland,CODE_128
|
||||
e570f1ac-a109-4473-8644-9b6daf701d8d,najlepšia lekáreň,CODE_128
|
||||
e580263e-726d-4768-a756-1cec4966dbb6,Lower Plenty Hotel,CODE_128
|
||||
@@ -7163,10 +7245,12 @@ e6b0d8c0-2e2b-4d2c-9c3d-4420ced94877,Багира,EAN_13
|
||||
e6b4a59b-4d9a-42c6-aae3-5baf468c1999,Evolution,EAN_13
|
||||
e6c68ae5-12f0-4c8b-b5ca-8f725874c704,Полушка,EAN_13
|
||||
e6e830c8-16b9-4382-9b84-93dca76ee66c,домаркет,CODE_128
|
||||
e6edbb92-d988-4bf3-87f8-e9684b5a3983,UFS Dispensaries,CODE_39
|
||||
e6ece7bc-ac39-45c6-b4f3-c225719c3a0e,Mikado,CODE_128
|
||||
e6edbb92-d988-4bf3-87f8-e9684b5a3983,UFS Healthcare,CODE_39
|
||||
e6efc01d-98bf-478e-a916-f51178a01690,Erborian,CODE_128
|
||||
e6f32c21-af1b-4da3-9c8e-36757cccde3b,Sally Beauty,CODE_128
|
||||
e6f9e7a3-2b1f-4ec7-8c99-8c5d16988f56,Iндустрiя краси,EAN_13
|
||||
e71a67d2-6898-4a05-91dd-7ae19095129f,FMBrikon,UPC_A
|
||||
e71b01e0-cdf1-4f6b-bee6-d7e2fc9b3a81,Walder Schuhe,CODE_128
|
||||
e760dd3f-aeb2-42a2-bf38-5866c061c2e9,Cash Piscines,CODE_128
|
||||
e79c474b-4ee0-4885-a9eb-7349bdc2bfc9,KIA,CODE_39
|
||||
@@ -7200,6 +7284,7 @@ eaacfd6c-54dd-4bbd-81a2-0394b7b57496,Kmart,EAN_13
|
||||
eab09679-f885-46a1-8f96-3f82ea3b9d82,Niké,ITF
|
||||
eac387cc-ae67-4874-b420-12dae0150abc,Woss,EAN_13
|
||||
eacb1c97-e7c2-4ed6-bf64-84db244fbdd5,Медтехника Ортосалон,EAN_13
|
||||
eacdf92e-6601-437d-af01-15156a3ee199,Barossa Co-op,QR_CODE
|
||||
eb01f161-6d42-4ae9-b381-2ca0be34cd6f,PiùMe,CODE_128
|
||||
eb2cfbfc-1d25-4ff7-9eb6-743a74c302c4,Клеопатра,EAN_13
|
||||
eb32c9d7-80b8-4147-942f-3b94ad7dd8fd,Brico Pro,EAN_13
|
||||
@@ -7253,6 +7338,7 @@ ef56f2fe-b4b0-4639-a0dc-db4c6bd01d06,7я,QR_CODE
|
||||
ef8b1a62-353b-44e3-bfba-b1331b6509ab,Evoluphar,CODE_128
|
||||
ef8f92d7-a5a1-441e-8e91-133b64da57e5,Anabel Arto,CODE_128
|
||||
efdfda06-b4ad-4bd6-ad00-41d6ab9aeaf8,Profi Center,CODE_128
|
||||
effbec31-0ed6-4eb3-969b-17d99d340d78, Sedici Piadina,CODE_128
|
||||
f01c0047-5952-4805-a48b-4d455d833777,ХозСити,EAN_13
|
||||
f032c0d2-9f71-47fa-9574-8970a917b63b,Brianza Biblioteche,EAN_13
|
||||
f0637a9d-47a8-44a0-8342-c409b6c55b6b,Baby,EAN_13
|
||||
@@ -7269,6 +7355,7 @@ f1843eba-2bcd-49dc-be2c-1444ff5cfd91,EU COVID-19 Očkovací Průkaz,QR_CODE
|
||||
f1df75b9-1d7a-4cba-9e9d-f4411f4ea48b,Индейкин Дом,EAN_13
|
||||
f1e508d1-b901-45ba-9ace-b98e96c8fd38,Dalbe,EAN_13
|
||||
f1f1c15f-8a75-4a18-9b01-251778c8fb45,Optika Anda,CODE_128
|
||||
f1fe28ce-0c9a-4b64-a455-c9f14c3fa2be,PME Legend,CODE_128
|
||||
f2153289-2b50-463f-91d4-37ceb62f304b,Колесо2,CODE_39
|
||||
f21a2eea-3a15-4765-8ea6-3f1ec10fdd87,EU COVID-19 Vaccinationsattest - Anden vaccination Skudt,QR_CODE
|
||||
f2292778-e0fe-4925-b939-b4716342fa44,Tread & Miller,CODE_128
|
||||
@@ -7283,8 +7370,10 @@ f2a92584-5ef8-4220-b0ca-7aa48decd2e4,Artex Ieper,EAN_13
|
||||
f2b9fa76-c78f-4d2c-821f-70678bc8d4d5,Parfümerie Becker,EAN_8
|
||||
f2c8f722-9c5f-423d-9989-deca7901aa11,Poetry,CODE_128
|
||||
f2d3f68c-7b77-4464-91d2-3162e74bea48,Neinver,EAN_13
|
||||
f2dc6f84-01cc-4e13-aec2-2ce88367a27f,Ljekarne Prima Pharme,CODE_128
|
||||
f3189d64-dd39-468b-872d-3bb70e4d416c,The Watergardens Hotel ,CODE_128
|
||||
f3287ab2-0308-42f8-92dc-3147456a4a69,НУЖНО!,EAN_13
|
||||
f359407e-234b-4fbb-af07-f3b293a51bbb,MaRinella,EAN_13
|
||||
f35a3882-27b2-417d-8093-e87f8f25509a,Первый Семейный,CODE_128
|
||||
f3852d29-47fe-4528-83cd-5ae7b31fdb0e,Kraus,PDF_417
|
||||
f3e63893-802b-4e40-9480-f3fbfda0a3e4,Аптека живика,EAN_13
|
||||
@@ -7297,6 +7386,7 @@ f49e49df-1b1c-4e19-994d-3a56c693d91c,GROSBASKET,EAN_13
|
||||
f4aefdf7-e66f-4980-a0ee-7e6f1afcc8df,Color Line,EAN_13
|
||||
f4b16522-478d-4c84-bfa5-e0825ebf4917,bonVito,PDF_417
|
||||
f4d0cac3-70a0-43dc-a204-fe5fd9ab428f,KüstenCard Flexi,CODE_128
|
||||
f4e09fa3-b712-4be5-915b-002082002246,Club VW Suisse,QR_CODE
|
||||
f5002bd9-8e95-4c11-8a7c-e3d2fae42fe3,BCAA,CODE_128
|
||||
f5356dd8-8762-4f36-8c50-f7383eccb840,Twój Market,EAN_13
|
||||
f546e937-86b4-40eb-98cb-9a348d5dccec,МаксиФлора,EAN_13
|
||||
@@ -7332,6 +7422,7 @@ f8f0bd64-d1ae-4560-9c22-0eed805f2016,Дивный Колибри,EAN_8
|
||||
f8fa2370-261e-4e19-ba9c-46cd33ead64d,Agri Sud Est,EAN_13
|
||||
f90691bf-2879-4424-b2d5-5c09ee9ff700,Кроха,CODE_128
|
||||
f915ed01-85f9-4a61-921b-0d33eaf6fd23,ЗооОптТорг.Рф,EAN_13
|
||||
f9223231-26b6-4f86-9d2e-5756488c2e74,Jack & Jones,QR_CODE
|
||||
f93e7a30-4351-47e5-b8b2-3a9546ad9bb8,BOTICINAL POWERSANTÉ,EAN_13
|
||||
f940a1b8-c04b-4541-b307-7fdc1fa8eb91,Veggie Grill,CODE_128
|
||||
f9447f67-140e-402d-9a27-e7c11cefebda,Eleganza,CODE_128
|
||||
@@ -7350,6 +7441,7 @@ fa009005-250b-4994-a6ad-8043b28634fe,No One,CODE_128
|
||||
fa11b2c7-a768-4d4b-b03d-c845df6cb341,Terra Viva,CODE_128
|
||||
fa1670c0-1713-44f0-b57d-902b278ba741,нива,EAN_13
|
||||
fa24b789-4774-41e1-8a52-216efc9de8ba,foodmaster,QR_CODE
|
||||
fa3bdecd-2216-4d2b-b39d-fb14681f62fc,Fusion Gyms,CODE_128
|
||||
fa5593eb-2f35-4a7f-8c69-1c4a726759be,Форум,EAN_13
|
||||
fa7407ee-0ddd-4727-bfc7-05c206c159d0,Toto,EAN_13
|
||||
fa7f3968-0cba-4adb-b1bb-fb2083b98b2f,Der Bäcker Eifler,QR_CODE
|
||||
@@ -7360,6 +7452,7 @@ fac3cc98-d990-4106-b17a-e8b5afe1b843,Fidenza Village,CODE_128
|
||||
fadd868f-b34b-4604-8a24-c7fbcd8ea573,Big Marlin,EAN_13
|
||||
fae896a0-9c57-4ff8-be30-195fbf137a0b,Lotteria degli Scontrini,CODE_128
|
||||
fafa23c9-5cda-4fb8-aab5-6faebc6386a8,NETTO,CODE_128
|
||||
fb340faf-4fe5-4446-b811-217d615f5514, Abbonamento Musei,QR_CODE
|
||||
fb507b68-ecf4-4397-969a-23e2427f76f2,Veritas,EAN_13
|
||||
fb5e84a1-5e9f-4fa5-ad36-c6060927c415,BIT BY BIT,CODE_128
|
||||
fb6edc61-a282-4217-9b44-ac2611b5977c,Kierrätyskeskus,CODE_128
|
||||
@@ -7400,8 +7493,10 @@ fe488a32-17aa-4b93-8e88-b2df166b30b8,BIEMAR BOIS,CODE_39
|
||||
fe54303c-8e1c-4c62-8ee6-b9485e333419,Liverpool Library,CODE_128
|
||||
fe889ad0-ea52-4069-a051-b5ceb4c4b4e7,Аптека Гермес,EAN_13
|
||||
febc239e-ed07-45ac-905d-b6048a203784,Scarpamondo,EAN_13
|
||||
fed489b7-1d23-4b3f-b20f-52c229575de0,Autowaspark Kuzee,QR_CODE
|
||||
fee32f93-2fe4-4fa1-ab62-159bdc375668,Покупочка,CODE_128
|
||||
fefcdd70-4aa8-4f78-b9e6-1dc18f9cd731,Button Blue,EAN_13
|
||||
ff50e5dc-1f3a-43a7-a55d-4a7d96b12757,Le Guidon Niortais,CODE_128
|
||||
ff92fe3e-1b38-409f-9701-ee7665fccb5e,EU COVID-19 Certificado de Vacinação - Primeira injeção,QR_CODE
|
||||
ff9fd337-4765-4ad1-90a3-62e4a78dc3ec,Нияма,QR_CODE
|
||||
ffa57152-01bd-48bc-be45-46bac303c450,Мед Сервис,CODE_128
|
||||
|
||||
|
@@ -75,7 +75,7 @@
|
||||
<string name="groups">Списъци</string>
|
||||
<string name="enter_group_name">Въведете име на списъка</string>
|
||||
<string name="intent_import_card_from_url_share_text">Искам да споделя тази карта с вас</string>
|
||||
<string name="settings_display_barcode_max_brightness">Максимална яркост при видим щрихкод</string>
|
||||
<string name="settings_display_barcode_max_brightness">Максимална яркост на екрана</string>
|
||||
<string name="settings_keep_screen_on">Без изключване на екрана</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Без заключване на екрана</string>
|
||||
<string name="settings_dark_theme">Тъмна</string>
|
||||
@@ -203,7 +203,7 @@
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Черен фон за тъмната тема</string>
|
||||
<string name="include_if_asking_support">Ако искате да потърсите поддръжка, включете следната информация:</string>
|
||||
<string name="settings_card_orientation">Завъртане на щрихкода</string>
|
||||
<string name="settings_card_orientation">Завъртане на екрана</string>
|
||||
<string name="settings_follow_system_orientation">Според системата</string>
|
||||
<string name="settings_portrait_orientation">Портрет</string>
|
||||
<string name="settings_landscape_orientation">Пейзаж</string>
|
||||
@@ -258,7 +258,7 @@
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Без заключване на екрана при преглед на карта</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Приложенията ще искат разрешение, за да получат достъп</string>
|
||||
<string name="settings_oled_dark_summary">Намалява разхода на батерия от OLED дисплеи</string>
|
||||
<string name="settings_category_title_cards">Карти</string>
|
||||
<string name="settings_category_title_cards">Преглед на карта</string>
|
||||
<string name="settings_category_title_general">Общи</string>
|
||||
<string name="settings_category_title_privacy">Поверителност</string>
|
||||
<string name="settings_keep_screen_on_summary">Спира автоматичното заключване на екрана при преглед на карти</string>
|
||||
@@ -292,4 +292,17 @@
|
||||
<string name="exportCancelled">Изнасянето е спряно</string>
|
||||
<string name="useFrontImage">Използване на предната страна</string>
|
||||
<string name="useBackImage">Използване на задната страна</string>
|
||||
<string name="settings_use_volume_keys_navigation">Сменяне на картите с бутоните за звука</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Бутоните за силата на звука сменят видимата карта</string>
|
||||
<string name="settings_automatic_column_count">Автоматично</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="settings_column_count_landscape">Колони в пейзажен изглед</string>
|
||||
<string name="settings_column_count_portrait">Колони в портретен изглед</string>
|
||||
<string name="settings_category_title_cards_overview">Списък с карти</string>
|
||||
</resources>
|
||||
@@ -75,4 +75,4 @@
|
||||
<string name="exportFailedTitle">রপ্তানি ব্যর্থ</string>
|
||||
<string name="settings_card_orientation">বারকোড অভিমুখ (ওরিয়েন্টেশন)</string>
|
||||
<string name="app_name">ক্যাটিমা</string>
|
||||
</resources>
|
||||
</resources>
|
||||
@@ -159,7 +159,7 @@
|
||||
<string name="groups">Skupiny</string>
|
||||
<string name="enter_group_name">Zadejte název skupiny</string>
|
||||
<string name="exportSuccessful">Data exportována</string>
|
||||
<string name="settings_display_barcode_max_brightness">Vysoký jas při zobrazení čárového kódu</string>
|
||||
<string name="settings_display_barcode_max_brightness">Rozjasnit obrazovku</string>
|
||||
<string name="starImage">Hvězdička u oblíbených</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one">Vybrána <xliff:g>%d</xliff:g> karta</item>
|
||||
@@ -213,7 +213,7 @@
|
||||
<string name="archive">Archivovat</string>
|
||||
<string name="unarchive">Vrátit z archivu</string>
|
||||
<string name="unarchived">Karta vrácena z archivu</string>
|
||||
<string name="settings_card_orientation">Orientace čárového kódu</string>
|
||||
<string name="settings_card_orientation">Orientace obrazovky</string>
|
||||
<string name="settings_landscape_orientation">Na šířku</string>
|
||||
<string name="duplicateCard">Duplikovat</string>
|
||||
<string name="archived">Karta archivována</string>
|
||||
@@ -265,7 +265,7 @@
|
||||
<string name="settings_category_title_privacy">Soukromí</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">U některých čteček je to potřeba</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Při prohlížení karty zabránit zamčení obrazovky</string>
|
||||
<string name="settings_category_title_cards">Karty</string>
|
||||
<string name="settings_category_title_cards">Zobrazení karty</string>
|
||||
<string name="settings_category_title_general">Obecné</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019–<xliff:g>%d</xliff:g> Sylvia van Os a přispěvatelé</string>
|
||||
<string name="app_copyright_short">Copyright © Sylvia van Os a přispěvatelé</string>
|
||||
@@ -298,4 +298,6 @@
|
||||
<string name="exportCancelled">Export zrušen</string>
|
||||
<string name="useBackImage">Použijte předchozí obrázek</string>
|
||||
<string name="useFrontImage">Použijte přední obrázek</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Pomocí tlačítek hlasitosti můžete změnit, která karta se zobrazí</string>
|
||||
<string name="settings_use_volume_keys_navigation">Přepínat karty pomocí tlačítek hlasitosti</string>
|
||||
</resources>
|
||||
@@ -17,7 +17,7 @@
|
||||
<string name="ok">OK</string>
|
||||
<string name="sendLabel">Senden…</string>
|
||||
<string name="editCardTitle">Karte bearbeiten</string>
|
||||
<string name="addCardTitle">Neue Karte</string>
|
||||
<string name="addCardTitle">Karte hinzufügen</string>
|
||||
<string name="scanCardBarcode">Barcode scannen</string>
|
||||
<string name="cardShortcut">Kartenkürzel</string>
|
||||
<string name="noCardsMessage">Füge zuerst eine Karte hinzu</string>
|
||||
@@ -34,10 +34,10 @@
|
||||
<string name="importing">Importiere…</string>
|
||||
<string name="exporting">Exportiere…</string>
|
||||
<string name="importOptionFilesystemTitle">Aus Dateisystem importieren</string>
|
||||
<string name="importOptionFilesystemExplanation">Eine bestimmte Datei aus dem Dateisystem auswählen.</string>
|
||||
<string name="importOptionFilesystemExplanation">Wähle eine bestimmte Datei aus dem Dateisystem aus.</string>
|
||||
<string name="importOptionFilesystemButton">vom Dateisystem</string>
|
||||
<string name="importOptionApplicationTitle">Andere App verwenden</string>
|
||||
<string name="importOptionApplicationExplanation">Beliebige Anwendung oder deinen bevorzugten Dateimanager zur Dateiauswahl verwenden.</string>
|
||||
<string name="importOptionApplicationExplanation">Benutze eine beliebige App oder deinen bevorzugten Dateimanager zur Dateiauswahl.</string>
|
||||
<string name="importOptionApplicationButton">Andere App verwenden</string>
|
||||
<string name="about">Über</string>
|
||||
<string name="app_license">Freie Software, lizensiert unter der GPLv3+</string>
|
||||
@@ -46,7 +46,7 @@
|
||||
<string name="selectBarcodeTitle">Barcode auswählen</string>
|
||||
<string name="thumbnailDescription">Vorschaubild</string>
|
||||
<string name="settings">Einstellungen</string>
|
||||
<string name="settings_display_barcode_max_brightness">Displayhelligkeit in der Barcodeansicht erhöhen</string>
|
||||
<string name="settings_display_barcode_max_brightness">Displayhelligkeit erhöhen</string>
|
||||
<string name="exportSuccessful">Daten exportiert</string>
|
||||
<string name="importSuccessful">Daten importiert</string>
|
||||
<string name="intent_import_card_from_url_share_text">Ich würde gerne diese Karte mit dir teilen</string>
|
||||
@@ -71,7 +71,7 @@
|
||||
<string name="leaveWithoutSaveTitle">Beenden</string>
|
||||
<string name="failedOpeningFileManager">Installiere zuerst einen Dateimanager.</string>
|
||||
<string name="noBarcode">Kein Barcode</string>
|
||||
<string name="addManually">Code manuell eingeben</string>
|
||||
<string name="addManually">Barcode manuell eingeben</string>
|
||||
<string name="moveDown">Nach unten verschieben</string>
|
||||
<string name="moveUp">Nach oben verschieben</string>
|
||||
<plurals name="groupCardCount">
|
||||
@@ -97,14 +97,12 @@
|
||||
<string name="settings_keep_screen_on">Bildschirm aktiv lassen</string>
|
||||
<string name="accept">Annehmen</string>
|
||||
<string name="privacy_policy">Datenschutzrichtlinie</string>
|
||||
<string name="importVoucherVaultMessage">Wähle deinen <i>vouchervault.json</i>-Export aus Voucher Vault zum Importieren aus.
|
||||
\nErstellen Sie ihn, indem du zuerst auf Export in Voucher Vault drückst.</string>
|
||||
<string name="importVoucherVaultMessage">Wähle deinen <i>vouchervault.json</i>-Export aus Voucher Vault zum Importieren aus. \nErstelle ihn, indem du zuerst auf Export in Voucher Vault drückst.</string>
|
||||
<string name="importVoucherVault">Aus Voucher Vault importieren</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Wählen du deinen <i>LoyaltyCardKeychain.csv</i>-Export aus Loyalty Card Keychain zum Importieren aus.
|
||||
\nErstelle ihn über das Menü Import/Export in Loyalty Card Keychain, indem du dort zuerst auf Export drückst.</string>
|
||||
<string name="importLoyaltyCardKeychain">Aus Loyalty Card Keychain importieren</string>
|
||||
<string name="importFidmeMessage">Wähle deinen <i>fidme-export-request-xxxxxx.zip</i>-Export aus FidMe zum Importieren aus und wähle anschließend die Strichcodetypen manuell aus.
|
||||
\nOder erstelle ihn aus deinem FidMe-Profil, indem du Datenschutz wählst und dann zuerst auf Meine Daten extrahieren drückst.</string>
|
||||
<string name="importFidmeMessage">Wähle deinen <i>fidme-export-request-xxxxxx.zip</i>-Export aus FidMe zum Importieren aus und wähle anschließend die Barcodetypen manuell aus. \nOder erstelle ihn aus deinem FidMe-Profil, indem du Datenschutz wählst und dann zuerst auf Meine Daten extrahieren drückst.</string>
|
||||
<string name="importFidme">Aus FidMe importieren</string>
|
||||
<string name="importCatimaMessage">Wähle deinen <i>catima.zip</i>-Export aus Catima zum Importieren aus.
|
||||
\nErstelle ihn aus dem Import/Export-Menü einer anderen Catima-Anwendung, indem du dort zuerst Export drückst.</string>
|
||||
@@ -113,7 +111,7 @@
|
||||
<string name="sameAsCardId">Entspricht Kartennummer</string>
|
||||
<string name="barcodeId">Barcodewert</string>
|
||||
<string name="errorReadingImage">Konnte das Bild nicht lesen</string>
|
||||
<string name="noBarcodeFound">Kein Barcode erkannt</string>
|
||||
<string name="noBarcodeFound">Keinen Barcode erkannt</string>
|
||||
<string name="addFromImage">Bild aus der Galerie wählen</string>
|
||||
<string name="unsupportedBarcodeType">Dieser Barcodetyp kann noch nicht angezeigt werden. Wir hoffen das Format in einer zukünftigen Version zu unterstützen.</string>
|
||||
<string name="wrongValueForBarcodeType">Der Wert ist für den gewählten Barcodetyp leider nicht gültig</string>
|
||||
@@ -132,8 +130,7 @@
|
||||
<string name="frontImageDescription">Vorderseite</string>
|
||||
<string name="backImageDescription">Rückseite</string>
|
||||
<string name="passwordRequired">Bitte gib das Passwort ein</string>
|
||||
<string name="importStocardMessage">Wähle deinen <i>***.zip</i>-Export aus Stocard zum Importieren aus.
|
||||
\nSie erhalten ihn, indem du eine E-Mail an support@stocardapp.com sendest und um einen Export deiner Daten bitten.</string>
|
||||
<string name="importStocardMessage">Wähle deinen <i>***.zip</i>-Export aus Stocard zum Importieren aus. \nDu erhälst ihn, indem du eine E-Mail an support@stocardapp.com sendest und um einen Export deiner Daten bittest.</string>
|
||||
<string name="importStocard">Von Stocard importieren</string>
|
||||
<string name="turn_flashlight_off">Blitzlicht ausschalten</string>
|
||||
<string name="turn_flashlight_on">Blitzlicht einschalten</string>
|
||||
@@ -143,7 +140,7 @@
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> ausgewählt</item>
|
||||
</plurals>
|
||||
<string name="deleteTitle">Karte löschen</string>
|
||||
<string name="deleteConfirmation">Diese Karte wirklich löschen?</string>
|
||||
<string name="deleteConfirmation">Diese Karte endgültig löschen?</string>
|
||||
<plurals name="deleteCardsConfirmation">
|
||||
<item quantity="one">Diese <xliff:g>%d</xliff:g> Karte endgültig löschen\?</item>
|
||||
<item quantity="other">Diese <xliff:g>%d</xliff:g> Karten endgültig löschen\?</item>
|
||||
@@ -173,9 +170,9 @@
|
||||
<string name="reverse">…in umgekehrter Reihenfolge</string>
|
||||
<string name="version_history">Versionshistorie</string>
|
||||
<string name="credits">Dank an</string>
|
||||
<string name="help_translate_this_app">Hilfe bei der Übersetzung</string>
|
||||
<string name="help_translate_this_app">Hilf bei der Übersetzung</string>
|
||||
<string name="and_data_usage">und Datennutzung</string>
|
||||
<string name="rate_this_app">Bewerte die Anwendung</string>
|
||||
<string name="rate_this_app">Bewerte die App</string>
|
||||
<string name="on_google_play">auf Google Play</string>
|
||||
<string name="license">Lizenz</string>
|
||||
<string name="source_repository">Quellcode</string>
|
||||
@@ -192,7 +189,7 @@
|
||||
<string name="setIcon">Vorschaubild festlegen</string>
|
||||
<string name="selectColor">Farbe auswählen</string>
|
||||
<string name="translate_platform">auf Weblate</string>
|
||||
<string name="shortcutSelectCard">Wähle eine Karte</string>
|
||||
<string name="shortcutSelectCard">Karte wählen</string>
|
||||
<string name="options">Optionen</string>
|
||||
<string name="showMoreInfo">Infos anzeigen</string>
|
||||
<string name="starred">als Favorit</string>
|
||||
@@ -206,9 +203,9 @@
|
||||
<string name="settings_landscape_orientation">Querformat</string>
|
||||
<string name="settings_portrait_orientation">Hochformat</string>
|
||||
<string name="duplicateCard">Duplizieren</string>
|
||||
<string name="unarchive">Archivierung aufheben</string>
|
||||
<string name="settings_card_orientation">Barcode-Ausrichtung</string>
|
||||
<string name="unarchived">Karte aus dem Archiv entfernt</string>
|
||||
<string name="unarchive">Aus dem Archiv wiederherstellen</string>
|
||||
<string name="settings_card_orientation">Bildschirm-Ausrichtung</string>
|
||||
<string name="unarchived">Karte aus dem Archiv wiederhergestellt</string>
|
||||
<string name="archive">Archivieren</string>
|
||||
<string name="archived">Karte archiviert</string>
|
||||
<string name="settings_lock_on_opening_orientation">Kartenausrichtung nach dem Öffnen beibehalten</string>
|
||||
@@ -216,16 +213,16 @@
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> Karte (<xliff:g id="archivedCount">%2$d</xliff:g> archiviert)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> Karten (<xliff:g id="archivedCount">%2$d</xliff:g> archiviert)</item>
|
||||
</plurals>
|
||||
<string name="failedLaunchingPhotoPicker">Es konnte keine unterstützte Galerie-Anwendung gefunden werden</string>
|
||||
<string name="failedLaunchingPhotoPicker">Es konnte keine unterstützte Galerie-App gefunden werden</string>
|
||||
<string name="previousCard">Vorherige</string>
|
||||
<string name="nextCard">Nächste</string>
|
||||
<string name="failedToOpenUrl">Bitte installiere einen Webbrowser</string>
|
||||
<string name="failedToOpenUrl">Bitte installiere zuerst einen Webbrowser</string>
|
||||
<string name="welcome">Willkommen bei Catima</string>
|
||||
<string name="barcodeLongPressMessage">In der Galerie können nur Bilder geöffnet werden</string>
|
||||
<string name="failedToRetrieveImageFile">Bilddatei konnte nicht abgerufen werden</string>
|
||||
<string name="updateBalanceTitle">Wie viel hast du ausgegeben oder erhalten?</string>
|
||||
<string name="cameraPermissionDeniedTitle">Kein Zugriff auf die Kamera möglich</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Um Strichcodes zu scannen, benötigt Catima Zugriff auf deine Kamera. Tippe hier, um deine Berechtigungseinstellungen zu ändern.</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Um Barcodes zu scannen, benötigt Catima Zugriff auf deine Kamera. Tippe hier, um deine Berechtigungseinstellungen zu ändern.</string>
|
||||
<string name="updateBalanceHint">Betrag eingeben</string>
|
||||
<string name="importCards">Karten importieren</string>
|
||||
<string name="currentBalanceSentence">Aktuelles Guthaben: <xliff:g>%s</xliff:g></string>
|
||||
@@ -258,7 +255,7 @@
|
||||
<string name="settings_keep_screen_on_summary">Deaktiviert die Bildschirmzeitüberschreitung beim Anzeigen einer Karte</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Deaktiviert die Bildschirmsperre während der Anzeige einer Karte</string>
|
||||
<string name="settings_oled_dark_summary">Reduziert den Batterieverbrauch bei OLED-Displays</string>
|
||||
<string name="settings_category_title_cards">Karten</string>
|
||||
<string name="settings_category_title_cards">Kartenansicht</string>
|
||||
<string name="settings_category_title_privacy">Datenschutz</string>
|
||||
<string name="settings_category_title_general">Allgemein</string>
|
||||
<string name="view_online">Online anzeigen</string>
|
||||
@@ -270,14 +267,14 @@
|
||||
<string name="balanceParsingFailed">Ungültiges Guthaben</string>
|
||||
<string name="add_a_card_in_a_different_way">Karte anders hinzufügen</string>
|
||||
<string name="action_more_options">Mehr Optionen</string>
|
||||
<string name="enter_card_id">Gib die Codenummer oder Ziffernfolge deiner Karte an</string>
|
||||
<string name="addWithoutBarcode">Eine Karte ohne Code hinzufügen</string>
|
||||
<string name="enter_card_id">Gib die Kartennummer oder den Text auf deiner Karte ein</string>
|
||||
<string name="addWithoutBarcode">Eine Karte ohne Barcode hinzufügen</string>
|
||||
<string name="field_must_not_be_empty">Feld darf nicht leer sein</string>
|
||||
<string name="manually_enter_barcode_instructions">Trage die ID Nummer oder Text deiner Karte ein und drücke auf den Barcode, der wie der auf deiner Karte aussieht.</string>
|
||||
<string name="manually_enter_barcode_instructions">Trage die Kartenummer oder Text deiner Karte ein und drücke auf den Barcode, der wie der auf deiner Karte aussieht.</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Immer drehen (ignoriert Systemeinstellungen)</string>
|
||||
<string name="continue_">Fortfahren</string>
|
||||
<string name="add_manually_warning_title">Es wird empfohlen, zu scannen</string>
|
||||
<string name="add_manually_warning_title">Scannen empfohlen</string>
|
||||
<string name="add_manually_warning_message">In einigen Geschäften weicht der Wert des Barcodes von dem auf der Karte angegebenen Wert ab. Aus diesem Grund funktioniert die manuelle Eingabe des Barcodes in einigen Fällen nicht. Es wird dringend empfohlen, den Barcode mit einer Kamera zu scannen. Möchtest du dennoch fortfahren?</string>
|
||||
<string name="spend">Zahlen</string>
|
||||
<string name="receive">Erhalten</string>
|
||||
@@ -287,9 +284,22 @@
|
||||
<string name="failedLaunchingFileManager">Konnte keinen unterstützten Dateimanager finden</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Welchen der gefundenen Barcodes möchtest du verwenden?</string>
|
||||
<string name="pageWithNumber">Seite <xliff:g>%d</xliff:g></string>
|
||||
<string name="noCameraFoundGuideText">Dein Gerät scheint nicht über eine Kamera zu verfügen. Wenn dies der Fall ist, versuche, das Gerät neu zu starten. Andernfalls verwende die Schaltfläche Weitere Optionen unten, um einen Barcode auf andere Weise hinzuzufügen.</string>
|
||||
<string name="noCameraFoundGuideText">Dein Gerät scheint nicht über eine Kamera zu verfügen. Falls doch, versuche, das Gerät neu zu starten. Andernfalls verwende die Schaltfläche Weitere Optionen unten, um einen Barcode auf andere Weise hinzuzufügen.</string>
|
||||
<string name="exportCancelled">Export abgebrochen</string>
|
||||
<string name="importCancelled">Import abgebrochen</string>
|
||||
<string name="useFrontImage">Vorderseite verwenden</string>
|
||||
<string name="useBackImage">Rückseite verwenden</string>
|
||||
<string name="settings_use_volume_keys_navigation">Karten mit Lautstärketasten wechseln</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Wähle mit den Lautstärketasten, welche Karte angezeigt werden soll</string>
|
||||
<string name="settings_column_count_portrait">Spalten im Hochformat</string>
|
||||
<string name="settings_column_count_landscape">Spalten im Querformat</string>
|
||||
<string name="settings_automatic_column_count">Automatisch</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_category_title_cards_overview">Kartenübersicht</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
</resources>
|
||||
@@ -4,7 +4,7 @@
|
||||
<string name="noGiftCards">Κάντε κλικ στο + κουμπί για να προσθέσετε μία κάρτα ή προσθέστε από το ⋮ μενού.</string>
|
||||
<string name="storeName">Όνομα</string>
|
||||
<string name="note">Σημείωση</string>
|
||||
<string name="cardId">Κωδικός Κάρτας</string>
|
||||
<string name="cardId">Κωδικός κάρτας</string>
|
||||
<string name="cancel">Άκυρο</string>
|
||||
<string name="save">Αποθήκευση</string>
|
||||
<string name="edit">Επεξεργασία</string>
|
||||
@@ -54,7 +54,7 @@
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> επιλέγχθηκαν</item>
|
||||
</plurals>
|
||||
<string name="noGiftCardsGroup">Δημιούργησε κάρτες και βάλτες σε αυτή την ομάδα.</string>
|
||||
<string name="addManually">Εισαγάγετε τον γραμμωτό κώδικα με μη αυτόματο τρόπο</string>
|
||||
<string name="addManually">Εισαγωγή γραμμωτού κώδικα με μη αυτόματο τρόπο</string>
|
||||
<string name="never">Ποτέ</string>
|
||||
<string name="share">Κοινοποίηση</string>
|
||||
<plurals name="balancePoints">
|
||||
@@ -71,12 +71,12 @@
|
||||
<string name="accept">Αποδοχή</string>
|
||||
<string name="yes">Ναι</string>
|
||||
<string name="no">Όχι</string>
|
||||
<string name="addFromImage">Επιλέξτε μια εικόνα από τη συλλογή</string>
|
||||
<string name="addFromImage">Επιλογή εικόνας από τη συλλογή</string>
|
||||
<string name="expiryStateSentence">Λήγει: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryDate">Ημερομηνία λήξης</string>
|
||||
<string name="settings_keep_screen_on">Κράτα την οθόνη ανοιχτή</string>
|
||||
<string name="settings_keep_screen_on">Διατήρηση ενεργής οθόνης</string>
|
||||
<string name="leaveWithoutSaveTitle">Έξοδος</string>
|
||||
<string name="reverse">... σε αντίθετη σειρά</string>
|
||||
<string name="reverse">...σε αντίστροφη σειρά</string>
|
||||
<string name="version_history">Ιστορικό έκδοσης</string>
|
||||
<string name="sort_by">Ταξινόμηση κατά</string>
|
||||
<string name="credits">Πιστώσεις</string>
|
||||
@@ -91,8 +91,7 @@
|
||||
<string name="importLoyaltyCardKeychainMessage">Επιλέξτε την <i>LoyaltyCardKeychain.csv</i> εξαγωγή από το Loyalty Card Keychain για εισαγωγή.
|
||||
\nΔημιουργήστε το από το μενού Εισαγωγής/Εξαγωγής στο Loyalty Card Keychain επιλέγοντας Εξαγωγή.</string>
|
||||
<string name="importFidme">Εισαγωγή από FidMe</string>
|
||||
<string name="importFidmeMessage">Επιλέξτε την <i>fidme-export-request-xxxxxx.zip</i> εξαγωγή από το FidMe για εισαγωγή και επιλέξτε χειροκίνητα τους τύπους γραμμωτού κώδικα μετέπειτα.
|
||||
\nΔημιουργήστε το από το FidMe προφίλ επιλέγοντας Προστασία Δεδομένων και πατώντας Εξαγωγή δεδομένων πρώτα.</string>
|
||||
<string name="importFidmeMessage">Επιλέξτε την <i>fidme-export-request-xxxxxx.zip</i> εξαγωγή από το FidMe για εισαγωγή και επιλέξτε χειροκίνητα τους τύπους γραμμωτού κώδικα μετέπειτα.\nΔημιουργήστε το από το FidMe προφίλ επιλέγοντας Προστασία Δεδομένων και πατώντας Εξαγωγή δεδομένων πρώτα.</string>
|
||||
<string name="setBarcodeId">Επιλέξτε τιμή γραμμωτού κώδικα</string>
|
||||
<string name="wrongValueForBarcodeType">Η τιμή δεν είναι έγκυρη για τον επιλεγμένο γραμμωτό κώδικα</string>
|
||||
<string name="setBackImage">Επιλογή οπίσθιας εικόνας</string>
|
||||
@@ -101,7 +100,7 @@
|
||||
<string name="updateBarcodeQuestionText">Αλλάξατε τον κωδικό. Θέλετε να ενημερώσετε και τον γραμμωτό κώδικα στην ίδια τιμή;</string>
|
||||
<string name="options">Επιλογές</string>
|
||||
<string name="noGroupCards">Αυτή η ομάδα είναι άδεια</string>
|
||||
<string name="settings_display_barcode_max_brightness">Επιπλέον φωτισμός γραμμωτού κώδικα</string>
|
||||
<string name="settings_display_barcode_max_brightness">Επιπλέον φωτισμός οθόνης</string>
|
||||
<string name="group_name_is_empty">Το όνομα της ομάδας δεν πρέπει να είναι κενό</string>
|
||||
<string name="group_edit">Επεξεργασία ομάδας</string>
|
||||
<string name="star">Προσθήκη στα αγαπημένα</string>
|
||||
@@ -125,16 +124,16 @@
|
||||
\nΠάρτε το στέλνοντας email στο: support@stocardapp.com ζητώντας μια εξαγωγή αρχείων των δεδομένων σας.</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Θέλω να μοιραστώ μερικές κάρτες μαζί σου</string>
|
||||
<string name="editGroup">Επεξεργασία Ομάδας: <xliff:g>%s</xliff:g></string>
|
||||
<string name="setFrontImage">Επιλογή μπροστινής εικόνας</string>
|
||||
<string name="setFrontImage">Επιλογή εμπρόσθιας εικόνας</string>
|
||||
<string name="importVoucherVaultMessage">Επιλέξτε την <i>vouchervault.json</i> εξαγωγή από το Voucher Vault για εισαγωγή.
|
||||
\nΔημιουργήστε το επιλέγοντας Εξαγωγή στο Voucher Vault.</string>
|
||||
<string name="unsupportedBarcodeType">Ο τύπος γραμμωτού κώδικα δεν μπορεί να εμφανιστεί ακόμα. Μπορεί να υποστηρίζεται σε μια μελλοντική έκδοση της εφαρμογής.</string>
|
||||
<string name="frontImageDescription">Μπροστινή εικόνα</string>
|
||||
<string name="frontImageDescription">Εμπρόσθια</string>
|
||||
<string name="photos">Φωτογραφίες</string>
|
||||
<string name="backImageDescription">Οπίσθια εικόνα</string>
|
||||
<string name="backImageDescription">Οπίσθια</string>
|
||||
<string name="updateBarcodeQuestionTitle">Ενημέρωση τιμής γραμμωτού κώδικα;</string>
|
||||
<string name="passwordRequired">Παρακαλώ εισάγετε τον κωδικό</string>
|
||||
<string name="sort_by_most_recently_used">Χρησιμοποιήθηκαν πρόσφατα</string>
|
||||
<string name="sort_by_most_recently_used">Χρήση</string>
|
||||
<string name="shortcutSelectCard">Επιλέξτε μία κάρτα</string>
|
||||
<string name="barcodeImageDescriptionWithType">Εικόνα <xliff:g>%s</xliff:g> γραμμωτού κώδικα</string>
|
||||
<string name="app_libraries">Ελεύθερες βιβλιοθήκες τρίτων: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
@@ -169,11 +168,11 @@
|
||||
<string name="app_copyright_old">Βασισμένο στο Loyalty Card Keychain
|
||||
\nπνευματικά δικαιώματα © 2016-2020 Branden Archer</string>
|
||||
<string name="settings_follow_system_orientation">Ακολούθηση συστήματος</string>
|
||||
<string name="settings_card_orientation">Προσανατολισμός γραμμωτού κώδικα</string>
|
||||
<string name="settings_card_orientation">Προσανατολισμός οθόνης</string>
|
||||
<string name="settings_portrait_orientation">Πορτραίτο</string>
|
||||
<string name="settings_landscape_orientation">Οριζόντια</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Πνευματικά δικαιώματα © 2019-<xliff:g>%d</xliff:g> Sylvia van Os</string>
|
||||
<string name="settings_lock_on_opening_orientation">Κλείδωμα τωρινού προσανατολισμού όταν ανοίγει μία κάρτα</string>
|
||||
<string name="settings_lock_on_opening_orientation">Κλείδωμα τρέχοντος προσανατολισμού όταν ανοίγει μία κάρτα</string>
|
||||
<string name="intent_import_card_from_url_share_text">Θέλω να μοιραστώ μία κάρτα μαζί σου</string>
|
||||
<string name="enter_group_name">Εισάγετε όνομα ομάδας</string>
|
||||
<string name="groups">Ομάδες</string>
|
||||
@@ -214,7 +213,7 @@
|
||||
<string name="and_data_usage">και δεδομένα χρήσης</string>
|
||||
<string name="rate_this_app">Βαθμολογήστε την εφαρμογή</string>
|
||||
<string name="duplicateCard">Αντίγραφο</string>
|
||||
<string name="archive">Αρχειοθετήστε</string>
|
||||
<string name="archive">Αρχειοθέτηση</string>
|
||||
<string name="archived">Η κάρτα αρχειοθετήθηκε</string>
|
||||
<string name="unarchived">Η κάρτα αφαιρέθηκε από το αρχείο</string>
|
||||
<string name="unarchive">Αφαίρεση από το αρχείο</string>
|
||||
@@ -238,16 +237,16 @@
|
||||
<string name="settings_allow_content_provider_read_title">Να επιτρέπεται σε άλλες εφαρμογές να έχουν πρόσβαση στα δεδομένα μου</string>
|
||||
<string name="app_copyright_short">Πνευματικά δικαιώματα © Sylvia van Os και συνεργάτες</string>
|
||||
<string name="height">Ύψος:</string>
|
||||
<string name="switchToFrontImage">Μετάβαση στην μπροστινή εικόνα</string>
|
||||
<string name="switchToFrontImage">Μετάβαση στην εμπρόσθια εικόνα</string>
|
||||
<string name="switchToBackImage">Μετάβαση στην οπίσθια εικόνα</string>
|
||||
<string name="switchToBarcode">Μετάβαση σε γραμμωτό κώδικα</string>
|
||||
<string name="validFromSentence">Ισχύει από: <xliff:g>%s</xliff:g></string>
|
||||
<string name="permissionReadCardsLabel">Διαβάστε τις κάρτες Catima</string>
|
||||
<string name="openBackImageInGalleryApp">Ανοίξτε την οπίσθια εικόνα στην εφαρμογή γκαλερί</string>
|
||||
<string name="openBackImageInGalleryApp">Ανοίξτε την οπίσθια εικόνα στη συλλογή εικόνων</string>
|
||||
<string name="permissionReadCardsDescription">Διάβασε τις Κάρτες σου Catima και όλες τους τις λεπτομέρειες, συμπεριλαμβανομένων των σημειώσεων και των εικόνων</string>
|
||||
<string name="donate">Δωρεά</string>
|
||||
<string name="icon_header_click_text">Πατήστε παρατεταμένα για επεξεργασία του εικονιδίου</string>
|
||||
<string name="openFrontImageInGalleryApp">Ανοίξτε την μπροστινή εικόνα στην εφαρμογή γκαλερί</string>
|
||||
<string name="openFrontImageInGalleryApp">Ανοίξτε την εμπρόσθια εικόνα στη συλλογή εικόνων</string>
|
||||
<string name="storageReadPermissionRequired">Δικαίωμα ανάγνωσης του χώρου αποθήκευσης απαραίτητο για αυτήν την ενέργεια…</string>
|
||||
<string name="settings_follow_sensor_orientation">Πάντα σε περιστροφή (αγνοεί τις ρυθμίσεις του συστήματος)</string>
|
||||
<string name="validFromDate">Ισχύει από</string>
|
||||
@@ -264,7 +263,7 @@
|
||||
<string name="amountParsingFailed">Μη έγκυρο ποσό</string>
|
||||
<string name="show_balance">Προβολή υπολοίπου</string>
|
||||
<string name="action_display_options">Επιλογές εμφάνισης</string>
|
||||
<string name="settings_category_title_cards">Κάρτες</string>
|
||||
<string name="settings_category_title_cards">Εμφάνιση καρτών</string>
|
||||
<string name="settings_category_title_general">Γενικά</string>
|
||||
<string name="show_archived_cards">Προβολή αρχειοθετημένων καρτών</string>
|
||||
<string name="addWithoutBarcode">Προσθήκη κάρτας χωρίς γραμμωτό κώδικα</string>
|
||||
@@ -279,17 +278,30 @@
|
||||
<string name="settings_oled_dark_summary">Μειώνει τη χρήση της μπαταρίας στις οθόνες OLED</string>
|
||||
<string name="show_note">Εμφάνιση σημείωσης</string>
|
||||
<string name="action_more_options">Περισσότερες επιλογές</string>
|
||||
<string name="enter_card_id">Εισαγάγετε τον κωδικό αριθμό ή το κείμενο στην κάρτα σας</string>
|
||||
<string name="enter_card_id">Εισάγετε τον κωδικό αριθμό ή το κείμενο στην κάρτα σας</string>
|
||||
<string name="show_validity">Εμφάνιση εγκυρότητας</string>
|
||||
<string name="add_a_card_in_a_different_way">Προσθέστε μια κάρτα με διαφορετικό τρόπο</string>
|
||||
<string name="card_id_must_not_be_empty">Ο κωδικός αριθμός της κάρτας δεν πρέπει να είναι κενός</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Οι εφαρμογές θα πρέπει ακόμα να ζητήσουν άδεια για να τους δοθεί πρόσβαση</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Οι εφαρμογές θα πρέπει ωστόσο να ζητήσουν άδεια για να τους δοθεί πρόσβαση</string>
|
||||
<string name="field_must_not_be_empty">Το πεδίο δεν πρέπει να είναι κενό</string>
|
||||
<string name="manually_enter_barcode_instructions">Εισαγάγετε τον κωδικό αριθμό ή το κείμενο στην κάρτα σας και πατήστε τον γραμμωτό κώδικα που μοιάζει με αυτόν της κάρτας σας.</string>
|
||||
<string name="manually_enter_barcode_instructions">Εισάγετε τον κωδικό αριθμό ή το κείμενο στην κάρτα σας και πατήστε τον γραμμωτό κώδικα που μοιάζει με αυτόν της κάρτας σας.</string>
|
||||
<string name="add_manually_warning_title">Συνιστάται η σάρωση</string>
|
||||
<string name="noCameraFoundGuideText">Η συσκευή σας δεν φαίνεται να διαθέτει κάμερα. Αν έχει, δοκιμάστε να κάνετε επανεκκίνηση της συσκευής. Διαφορετικά, χρησιμοποιήστε το κουμπί Περισσότερες επιλογές παρακάτω για να προσθέσετε έναν γραμμωτό κώδικα με άλλο τρόπο.</string>
|
||||
<string name="importCancelled">Η εισαγωγή ακυρώθηκε</string>
|
||||
<string name="exportCancelled">Η εξαγωγή ακυρώθηκε</string>
|
||||
<string name="useFrontImage">Χρήση μπροστινής εικόνας</string>
|
||||
<string name="useFrontImage">Χρήση εμπρόσθιας εικόνας</string>
|
||||
<string name="useBackImage">Χρήση οπίσθιας εικόνας</string>
|
||||
<string name="settings_use_volume_keys_navigation">Εναλλαγή καρτών με τα κουμπιά έντασης</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Χρησιμοποιήστε τα κουμπιά έντασης ήχου για να αλλάξετε την κάρτα που εμφανίζεται</string>
|
||||
<string name="settings_column_count_landscape">Στήλες σε οριζόντια λειτουργία</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_category_title_cards_overview">Επισκόπηση καρτών</string>
|
||||
<string name="settings_column_count_portrait">Στήλες σε κατακόρυφη λειτουργία</string>
|
||||
<string name="settings_automatic_column_count">Αυτόματα</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
</resources>
|
||||
@@ -40,7 +40,7 @@
|
||||
<string name="about_title_fmt">Acerca de <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">Versión: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="settings">Ajustes</string>
|
||||
<string name="settings_display_barcode_max_brightness">Iluminar vista del código de barras</string>
|
||||
<string name="settings_display_barcode_max_brightness">Iluminar pantalla</string>
|
||||
<string name="exportSuccessful">Datos exportados</string>
|
||||
<string name="importSuccessful">Datos importados</string>
|
||||
<string name="intent_import_card_from_url_share_text">Quiero compartirte una tarjeta</string>
|
||||
@@ -176,7 +176,7 @@
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> puntos</item>
|
||||
</plurals>
|
||||
<string name="barcodeImageDescriptionWithType">Imagen <xliff:g>%s</xliff:g> código de barras</string>
|
||||
<string name="settings_card_orientation">Orientación del código de barras</string>
|
||||
<string name="settings_card_orientation">Orientación de pantalla</string>
|
||||
<string name="settings_portrait_orientation">Formato vertical</string>
|
||||
<string name="group_edit">Editar grupo</string>
|
||||
<string name="group_updated">Grupo actualizado</string>
|
||||
@@ -264,7 +264,7 @@
|
||||
<string name="settings_keep_screen_on_summary">Deshabilita el tiempo de espera de la pantalla mientras se ve una tarjeta</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Las aplicaciones todavía tendrán que solicitar permiso para conseguir acceso</string>
|
||||
<string name="settings_oled_dark_summary">Reduce el uso de batería en pantallas OLED</string>
|
||||
<string name="settings_category_title_cards">Tarjetas</string>
|
||||
<string name="settings_category_title_cards">Vista de tarjeta</string>
|
||||
<string name="settings_category_title_general">General</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Deshabilita el bloqueo de pantalla mientras se ve una tarjeta</string>
|
||||
<string name="settings_category_title_privacy">Privacidad</string>
|
||||
@@ -298,4 +298,17 @@
|
||||
<string name="exportCancelled">Exportación cancelada</string>
|
||||
<string name="useFrontImage">Utilice la imagen frontal</string>
|
||||
<string name="useBackImage">Utilice la imagen trasera</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Utiliza los botones de volumen para cambiar que tarjeta se muestra</string>
|
||||
<string name="settings_use_volume_keys_navigation">Cambiar de tarjetas usando los botones de volumen</string>
|
||||
<string name="settings_automatic_column_count">Automático</string>
|
||||
<string name="settings_column_count_portrait">Columnas en modo vertical</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_category_title_cards_overview">Visión general de las tarjetas</string>
|
||||
<string name="settings_column_count_landscape">Columnas en modo horizontal</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
</resources>
|
||||
@@ -46,10 +46,10 @@
|
||||
<string name="settings_dark_theme">Tume kujundus</string>
|
||||
<string name="thumbnailDescription">Pisipilt</string>
|
||||
<string name="settings_theme">Kujundus</string>
|
||||
<string name="settings_card_orientation">Triipkoodi suund</string>
|
||||
<string name="settings_card_orientation">Ekraanipaigutuse suund</string>
|
||||
<string name="settings_follow_sensor_orientation">Alati pööra (eira süsteemset paigutust)</string>
|
||||
<string name="settings_landscape_orientation">Rõhtvaade</string>
|
||||
<string name="settings_display_barcode_max_brightness">Eredam triipkoodivaade</string>
|
||||
<string name="settings_display_barcode_max_brightness">Tee ekraan eredamaks</string>
|
||||
<string name="app_license">Copyleft-tüüpi autoriõiguste alusel loodud avatud lähtekoodiga tarkvara, mis on avaldatud GPLv3+ all</string>
|
||||
<string name="settings_keep_screen_on">Hoia ekraan sisselülitatuna</string>
|
||||
<string name="cardShortcut">Kaardi kiirviide</string>
|
||||
@@ -63,7 +63,7 @@
|
||||
<string name="importSuccessfulTitle">Imporditud</string>
|
||||
<string name="importFailedTitle">Import ei õnnestunud</string>
|
||||
<string name="exportSuccessfulTitle">Eksporditud</string>
|
||||
<string name="exportFailedTitle">Eksportimine ei õnenstunud</string>
|
||||
<string name="exportFailedTitle">Eksportimine ei õnnestunud</string>
|
||||
<string name="exportFailed">Eksportimist ei õnnestunud teha</string>
|
||||
<string name="importing">Impordime…</string>
|
||||
<string name="exporting">Ekspordime…</string>
|
||||
@@ -120,8 +120,7 @@
|
||||
<string name="expiryDate">Aegumise kuupäev</string>
|
||||
<string name="never">Mitte kunagi</string>
|
||||
<string name="showMoreInfo">Näita teavet</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Importimiseks vali oma <i>LoyaltyCardKeychain.csv</i> Loyalty Card Keychaini ekspordifail.
|
||||
\nSellise faili saad teha rakendusest Loyalty Card Keychain valides menüüst Import/Eksport valiku Eksport.</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Importimiseks vali oma <i>LoyaltyCardKeychain.csv</i> Loyalty Card Keychaini ekspordifail. \nSellise faili saad teha rakendusest Loyalty Card Keychain valides menüüst Import/Eksport valiku Eksport.</string>
|
||||
<string name="unsupportedBarcodeType">Sellist triipkoodi tüüpi pole veel võimalik kuvada, aga mõnes hilisemas rakenduse versioonis võib see võimalik olla.</string>
|
||||
<string name="wrongValueForBarcodeType">Väärtus ei sobi selle triipkoodi tüübiga</string>
|
||||
<string name="passwordRequired">Palun sisesta salasõna</string>
|
||||
@@ -182,19 +181,15 @@
|
||||
<string name="privacy_policy">Privaatsuspoliitika</string>
|
||||
<string name="accept">Nõustu</string>
|
||||
<string name="importCatima">Impordi Catima varukoopiast</string>
|
||||
<string name="importCatimaMessage">Importimiseks vali varem tehtud <i>catima.zip</i> Catima ekspordifail.
|
||||
\nSellise faili saad luua mõnes teises seadmes olevast Catima rakendusest Import/Eksport menüüst valikust Eksport.</string>
|
||||
<string name="importCatimaMessage">Importimiseks vali varem tehtud <i>catima.zip</i> Catima ekspordifail. \nSellise faili saad luua mõnes teises seadmes olevast Catima rakendusest Import/Eksport menüüst valikust Eksport.</string>
|
||||
<string name="importFidme">Impordi FidMe varukoopiast</string>
|
||||
<string name="importFidmeMessage">Importimiseks vali oma <i>fidme-export-request-xxxxxx.zip</i>, mille oled FidMe rakendusest eksportinud. Peale importi määra triipkoodi tüübid käsistsi.
|
||||
\nSellise faili loomiseks vali oma FidMe profiilist eelistuse Andmekaitse-Paki lahti.</string>
|
||||
<string name="importFidmeMessage">Importimiseks vali oma <i>fidme-export-request-xxxxxx.zip</i>, mille oled FidMe rakendusest eksportinud. Peale importi määra triipkoodi tüübid käsistsi. \nSellise faili loomiseks vali oma FidMe profiilist eelistuse Andmekaitse-Paki lahti.</string>
|
||||
<string name="importLoyaltyCardKeychain">Impordi rakendusest Loyalty Card Keychain</string>
|
||||
<string name="importStocard">Impordi Stocardist</string>
|
||||
<string name="importStocardMessage">Importimiseks vali oma <i>***.zip</i> Stocardi ekspordifail.
|
||||
\nSellise faili saad saates kirja aadressile support@stocardapp.com ning küsides oma andmeid.</string>
|
||||
<string name="importStocardMessage">Importimiseks vali oma <i>***.zip</i> Stocardi ekspordifail. \nSellise faili saad saates kirja aadressile support@stocardapp.com ning küsides oma andmeid.</string>
|
||||
<string name="chooseImportType">Importimise valikud</string>
|
||||
<string name="importVoucherVault">Impordi rakendusest Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Importimiseks vali oma <i>vouchervault.json</i> Voucher Vaulti ekspordifail.
|
||||
\nSellise faili saad teha rakenduses Voucher Vault menüüvalikust Eksport.</string>
|
||||
<string name="importVoucherVaultMessage">Importimiseks vali oma <i>vouchervault.json</i> Voucher Vaulti ekspordifail. \nSellise faili saad teha rakenduses Voucher Vault menüüvalikust Eksport.</string>
|
||||
<string name="barcodeId">Triipkoodi väärtus</string>
|
||||
<string name="sameAsCardId">Sama, kui ID</string>
|
||||
<string name="setBarcodeId">Sisesta triipkoodi väärtus</string>
|
||||
@@ -266,7 +261,7 @@
|
||||
<string name="noCameraFoundGuideText">Sinu nutiseadmed ei tundu olema kaamerat. Kui ta siiski on olemas, siis esmalt proovi, kas taaskäivitamine aitab. Lisaks võid nupust „Veel“ leida muid valikuid triipkoodi lisamiseks.</string>
|
||||
<string name="action_more_options">Lisavalikud</string>
|
||||
<string name="importCancelled">Import on katkestatud</string>
|
||||
<string name="settings_category_title_cards">Kaardid</string>
|
||||
<string name="settings_category_title_cards">Vahekaartide vaade</string>
|
||||
<string name="settings_category_title_general">Üldised seadistused</string>
|
||||
<string name="settings_category_title_privacy">Privaatsus</string>
|
||||
<string name="action_display_options">Ekraani valikud</string>
|
||||
@@ -292,4 +287,17 @@
|
||||
<string name="exportCancelled">Eksport on tühistatud</string>
|
||||
<string name="useFrontImage">Kasuta esikülje pilti</string>
|
||||
<string name="useBackImage">Kasuta tagakülje pilti</string>
|
||||
<string name="settings_use_volume_keys_navigation">Vaheta kaarte helivaljuse nuppudega</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Vaheta kuvatavaid vahekaarte helivaljuse nuppudega</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_category_title_cards_overview">Kaartide ülevaade</string>
|
||||
<string name="settings_column_count_landscape">Veerge rõhtvaates</string>
|
||||
<string name="settings_automatic_column_count">Automaatne</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_portrait">Veerge püstvaates</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
</resources>
|
||||
@@ -62,7 +62,7 @@
|
||||
<string name="intent_import_card_from_url_share_text">Haluan jakaa kortin kanssasi</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Estä näytön lukitus</string>
|
||||
<string name="settings_keep_screen_on">Pidä näyttö päällä</string>
|
||||
<string name="settings_display_barcode_max_brightness">Kirkasta viivakoodinäkymää</string>
|
||||
<string name="settings_display_barcode_max_brightness">Kirkasta näyttöä</string>
|
||||
<string name="settings_dark_theme">Tumma</string>
|
||||
<string name="settings_light_theme">Vaalea</string>
|
||||
<string name="settings_system_theme">Järjestelmän oletus</string>
|
||||
@@ -143,7 +143,7 @@
|
||||
</plurals>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> valittu</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> valittu</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> valitut</item>
|
||||
</plurals>
|
||||
<string name="importStocard">Tuo Stocardista</string>
|
||||
<string name="importStocardMessage">Valitse tuotava <i>***.zip</i>-vienti Stocardista.
|
||||
@@ -210,7 +210,7 @@
|
||||
<string name="unarchive">Poista arkistosta</string>
|
||||
<string name="archived">Kortti arkistoitu</string>
|
||||
<string name="failedLaunchingPhotoPicker">Tuettua galleriasovellusta ei löytynyt</string>
|
||||
<string name="settings_card_orientation">Viivakoodin suuntaus</string>
|
||||
<string name="settings_card_orientation">Näytön suunta</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> kortti (<xliff:g id="archivedCount">%2$d</xliff:g> arkistoitu)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> korttia (<xliff:g id="archivedCount">%2$d</xliff:g> arkistoitu)</item>
|
||||
@@ -260,7 +260,7 @@
|
||||
<string name="show_note">Näytä huomautus</string>
|
||||
<string name="show_balance">Näytä saldo</string>
|
||||
<string name="show_validity">Näytä kelpoisuus</string>
|
||||
<string name="settings_category_title_cards">Kortit</string>
|
||||
<string name="settings_category_title_cards">Korttinäkymä</string>
|
||||
<string name="settings_category_title_general">Yleiset</string>
|
||||
<string name="action_display_options">Näyttövalinnat</string>
|
||||
<string name="app_copyright_short">Tekijänoikeus © Sylvia van Os ja avustajat</string>
|
||||
@@ -287,4 +287,22 @@
|
||||
<string name="failedLaunchingFileManager">Tuettua tiedostonhallintasovellusta ei löytynyt</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Mitä löytyneistä viivakoodeista haluat käyttää?</string>
|
||||
<string name="pageWithNumber">Sivu <xliff:g>%d</xliff:g></string>
|
||||
<string name="noCameraFoundGuideText">Laitteessasi ei näytä olevan kameraa. Jos näin käy, yritä käynnistää laite uudelleen. Muussa tapauksessa käytä alla olevaa Lisää vaihtoehtoja -painiketta lisätäksesi viivakoodin toisella tavalla.</string>
|
||||
<string name="importCancelled">Tuonti peruttu</string>
|
||||
<string name="exportCancelled">Vienti peruttu</string>
|
||||
<string name="useBackImage">Käytä takakuvaa</string>
|
||||
<string name="useFrontImage">Käytä etukuvaa</string>
|
||||
<string name="settings_use_volume_keys_navigation">Vaihtele korttien välillä äänenvoimakkuuspainikkeilla</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Käytä äänenvoimakkuuspainikkeita vaihtaaksesi näytettävän kortin</string>
|
||||
<string name="settings_automatic_column_count">Automaattinen</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_category_title_cards_overview">Korttinäkymä</string>
|
||||
<string name="settings_column_count_portrait">Saraketta pystytilassa</string>
|
||||
<string name="settings_column_count_landscape">Saraketta vaakatilassa</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
</resources>
|
||||
@@ -42,7 +42,7 @@
|
||||
<string name="selectBarcodeTitle">Choisissez le code-barres</string>
|
||||
<string name="thumbnailDescription">Miniature</string>
|
||||
<string name="settings">Paramètres</string>
|
||||
<string name="settings_display_barcode_max_brightness">Augmenter la luminosité du code-barres</string>
|
||||
<string name="settings_display_barcode_max_brightness">Augmenter la luminosité</string>
|
||||
<string name="exportSuccessful">Données exportées</string>
|
||||
<string name="importSuccessful">Données importées</string>
|
||||
<string name="intent_import_card_from_url_share_text">Je veux partager une carte avec toi</string>
|
||||
@@ -207,7 +207,7 @@
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Fond noir pour le thème sombre</string>
|
||||
<string name="include_if_asking_support">Si vous voulez demander de l\'aide, incluez les informations suivantes :</string>
|
||||
<string name="settings_card_orientation">Orientation du code-barres</string>
|
||||
<string name="settings_card_orientation">Orientation de l\'écran</string>
|
||||
<string name="settings_follow_system_orientation">Suivre le système</string>
|
||||
<string name="settings_portrait_orientation">Portrait</string>
|
||||
<string name="settings_landscape_orientation">Paysage</string>
|
||||
@@ -263,7 +263,7 @@
|
||||
<string name="settings_display_barcode_max_brightness_summary">Nécessaire au fonctionnement de certains scanneurs</string>
|
||||
<string name="settings_keep_screen_on_summary">Désactive la temporisation de l\'écran lors de la visualisation d\'une carte</string>
|
||||
<string name="settings_oled_dark_summary">Réduit l\'utilisation de la batterie sur les écrans OLED</string>
|
||||
<string name="settings_category_title_cards">Cartes</string>
|
||||
<string name="settings_category_title_cards">Vue carte</string>
|
||||
<string name="settings_category_title_general">Généraux</string>
|
||||
<string name="settings_category_title_privacy">Confidentialité</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Désactive le verrouillage de l\'écran pendant la visualisation d\'une carte</string>
|
||||
@@ -298,4 +298,17 @@
|
||||
<string name="importCancelled">Importation annulée</string>
|
||||
<string name="useFrontImage">Utiliser l\'image de face</string>
|
||||
<string name="useBackImage">Utiliser l\'image arrière</string>
|
||||
<string name="settings_use_volume_keys_navigation">Changer de cartes avec les boutons de volume</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Utilisez les boutons de volume pour changer la carte affichée</string>
|
||||
<string name="settings_category_title_cards_overview">Aperçu des cartes</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_portrait">Colonnes en mode portrait</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_landscape">Colonnes en mode paysage</string>
|
||||
<string name="settings_automatic_column_count">Automatique</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
</resources>
|
||||
302
app/src/main/res/values-gl/strings.xml
Normal file
302
app/src/main/res/values-gl/strings.xml
Normal file
@@ -0,0 +1,302 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="action_add">Engadir</string>
|
||||
<string name="noGiftCards">Preme no botón + para engadir unha tarxeta ou desde o menú ⋮.</string>
|
||||
<string name="noGiftCardsGroup">Crear tarxetas e despois engádeas aquí ao grupo.</string>
|
||||
<string name="noMatchingGiftCards">Sen resultados. Intenta cambiar a busca.</string>
|
||||
<string name="storeName">Nome</string>
|
||||
<string name="barcodeType">Tipo de código de barras</string>
|
||||
<string name="noBarcode">Sen código de barras</string>
|
||||
<string name="star">Engadir a favoritas</string>
|
||||
<string name="save">Gardar</string>
|
||||
<string name="edit">Editar</string>
|
||||
<string name="cancel">Desbotar</string>
|
||||
<string name="delete">Eliminar</string>
|
||||
<string name="confirm">Confirmar</string>
|
||||
<plurals name="deleteCardsTitle">
|
||||
<item quantity="one">Eliminar <xliff:g>%d</xliff:g> tarxeta</item>
|
||||
<item quantity="other">Eliminar <xliff:g>%d</xliff:g> tarxetas</item>
|
||||
</plurals>
|
||||
<string name="deleteConfirmation">Eliminar definitivamente esta tarxeta?</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="share">Compartir</string>
|
||||
<string name="sendLabel">Enviar…</string>
|
||||
<string name="editCardTitle">Editar Tarxeta</string>
|
||||
<string name="addCardTitle">Engadir Tarxeta</string>
|
||||
<string name="scanCardBarcode">Escanear Código de Barras</string>
|
||||
<string name="cardShortcut">Atallo á Tarxeta</string>
|
||||
<string name="noCardsMessage">Primeiro engade a tarxeta</string>
|
||||
<string name="barcodeImageDescriptionWithType">Imaxe do código de barras de <xliff:g>%s</xliff:g></string>
|
||||
<string name="failedParsingImportUriError">Non se puido procesar o URI de importación</string>
|
||||
<string name="importExport">Importar/Exportar</string>
|
||||
<string name="exportName">Exportar</string>
|
||||
<string name="importExportHelp">Facendo copia de apoio dos datos podes movelos a outro dispositivo.</string>
|
||||
<string name="importSuccessfulTitle">Importados</string>
|
||||
<string name="importFailedTitle">Fallou a importación</string>
|
||||
<string name="exportSuccessfulTitle">Exportado</string>
|
||||
<string name="exportFailedTitle">Fallou a exportación</string>
|
||||
<string name="exportFailed">Non se puido exportar</string>
|
||||
<string name="importFailed">Non se puido importar</string>
|
||||
<string name="importing">Importando…</string>
|
||||
<string name="exporting">Exportando…</string>
|
||||
<string name="storageReadPermissionRequired">O preciso o permiso de lectura para realizar esta acción…</string>
|
||||
<string name="cameraPermissionRequired">O preciso o acceso á cámara para realizar esta acción…</string>
|
||||
<string name="permissionReadCardsLabel">Ler Tarxetas Catima</string>
|
||||
<string name="permissionReadCardsDescription">ler as tarxetas Catima e os seus detalles, incluíndo notas e imaxes</string>
|
||||
<string name="cameraPermissionDeniedTitle">Non puido acceder á cámara</string>
|
||||
<string name="noCameraPermissionDirectToSystemSetting">Catima precisa acceso á cámara para escanear códigos de barras. Toca aquí para cambiar os axustes do permiso.</string>
|
||||
<string name="exportOptionExplanation">Os datos vanse escribir na localización que elixas.</string>
|
||||
<string name="importOptionFilesystemTitle">Importar desde o sistema de ficheiros</string>
|
||||
<string name="importOptionApplicationExplanation">Usa outra app ou o xestor de ficheiros favorito para abrir un ficheiro.</string>
|
||||
<string name="importOptionApplicationButton">Usar outra app</string>
|
||||
<string name="about">Sobre</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019–<xliff:g>%d</xliff:g> Sylvia van Os e colaboradoras</string>
|
||||
<string name="app_copyright_short">Copyright © Sylvia van Os e colaboradoras</string>
|
||||
<string name="app_copyright_old">Baseada en Loyalty Card Keychain\ncopyright © 2016–2020 Branden Archer</string>
|
||||
<string name="app_license">Software Libre con Copyleft, licenza GPLv3+</string>
|
||||
<string name="about_title_fmt">Sobre <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="debug_version_fmt">Versión: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="app_libraries">Bibliotecas libres alleas: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Recursos alleos libres: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="selectBarcodeTitle">Elixir Código de barras</string>
|
||||
<string name="settings">Axustes</string>
|
||||
<string name="settings_theme">Decorado</string>
|
||||
<string name="settings_follow_sensor_orientation">Rotar sempre (ignora o axuste do sistema)</string>
|
||||
<string name="settings_portrait_orientation">Retrato</string>
|
||||
<string name="settings_landscape_orientation">Paisaxe</string>
|
||||
<string name="settings_lock_on_opening_orientation">Fixar a orientación ao abrir a tarxeta</string>
|
||||
<string name="settings_display_barcode_max_brightness">Brillo da pantalla</string>
|
||||
<string name="settings_keep_screen_on_summary">Evita que se apague a pantalla cando se ve unha tarxeta</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Evitar bloqueo da pantalla</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Desactiva o bloqueo da pantalla cando se ve unha tarxeta</string>
|
||||
<string name="settings_allow_content_provider_read_title">Permitir a outras apps acceder aos meus datos</string>
|
||||
<string name="settings_allow_content_provider_read_summary">As app terán que solicitar igualmente o permiso para acceder aos datos</string>
|
||||
<string name="settings_use_volume_keys_navigation">Cambiar de tarxeta cos botóns de volume</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Usar os botóns de volume para cambiar a tarxeta que se mostra</string>
|
||||
<string name="intent_import_card_from_url_share_text">Quero compartir unha tarxeta contigo</string>
|
||||
<string name="importSuccessful">Datos importados</string>
|
||||
<string name="exportSuccessful">Datos exportados</string>
|
||||
<string name="enter_group_name">Escribe o nome do grupo</string>
|
||||
<string name="groups">Grupos</string>
|
||||
<string name="group_edit">Editar Grupo</string>
|
||||
<string name="noGroups">Preme no botón + para engadir grupos por categorías.</string>
|
||||
<string name="noGroupCards">O grupo está baleiro</string>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> tarxeta</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> tarxetas</item>
|
||||
</plurals>
|
||||
<string name="group_name_already_in_use">O nome xa se está a usar</string>
|
||||
<string name="group_name_is_empty">O nome do grupo non pode estar baleiro</string>
|
||||
<string name="moveUp">Mover arriba</string>
|
||||
<string name="moveDown">Mover abaixo</string>
|
||||
<string name="leaveWithoutSaveTitle">Saír</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Saír antes de gardar?</string>
|
||||
<string name="addManually">Escribir manualmente o código</string>
|
||||
<string name="addFromImage">Elixe unha imaxe desde a galería</string>
|
||||
<string name="groupsList">Grupos: <xliff:g>%s</xliff:g></string>
|
||||
<string name="editGroup">Editando o Grupo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Caducidade: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Caducou: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> punto</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> puntos</item>
|
||||
</plurals>
|
||||
<string name="card">Tarxeta</string>
|
||||
<string name="editBarcode">Editar código</string>
|
||||
<string name="expiryDate">Data de caducidade</string>
|
||||
<string name="never">Nunca</string>
|
||||
<string name="chooseExpiryDate">Elixir data de caducidade</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Mover o código de barra á parte superior da pantalla</string>
|
||||
<string name="noBarcodeFound">Non se atopou un código de barras</string>
|
||||
<string name="errorReadingImage">Non se puido ler a imaxe</string>
|
||||
<string name="balance">Saldo</string>
|
||||
<string name="currency">Divisa</string>
|
||||
<string name="points">Puntos</string>
|
||||
<string name="balanceParsingFailed">Saldo non válido</string>
|
||||
<string name="chooseImportType">Importar datos desde</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="privacy_policy">Política de Privacidade</string>
|
||||
<string name="accept">Aceptar</string>
|
||||
<string name="importCatima">Importar desde Catima</string>
|
||||
<string name="importCatimaMessage">Selecciona o ficheiro de exportación <i>catima.zip</i> para importalo.\nCréao no menú Importar/Exportar noutra app Catima premendo en Exportar.</string>
|
||||
<string name="importFidme">Importar desde FidMe</string>
|
||||
<string name="importFidmeMessage">Elixe o ficheiro exportado <i>fidme-export-request-xxxxxx.zip</i> desde FidMe, e despois elixe manualmente o tipo de código de barras.\nCréao no teu perfil FidMe en Protección de Datos e despois premendo en Extraer os meus datos.</string>
|
||||
<string name="importLoyaltyCardKeychain">Importar desde Loyalty Card Keychain</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Elixe o ficheiro de exportación <i>LoyaltyCardKeychain.csv</i> desde Loyalty Card Keychain \nCréao no menú Importar/Exportar en Loyalty Card Keychain premendo en Exportar.</string>
|
||||
<string name="importStocard">Importar desde Stocard</string>
|
||||
<string name="importStocardMessage">Elixe o ficheiro <i>***.zip</i> desde Stocard. \nPodes obtelo escribindo un correo a support@stocardapp.com e pedindo a exportación dos datos.</string>
|
||||
<string name="importVoucherVault">Importar desde Voucher Vault</string>
|
||||
<string name="importVoucherVaultMessage">Selecciona o ficheiro de exportación <i>vouchervault.json</i> desde Voucher Vault. \nCréao premendo en Exportar en Voucher Vault.</string>
|
||||
<string name="barcodeId">Valor do código de barras</string>
|
||||
<string name="sameAsCardId">Igual que o ID</string>
|
||||
<string name="setBarcodeId">Establecer valor do código de barras</string>
|
||||
<string name="unsupportedBarcodeType">Este tipo de código de barras aínda non se pode mostrar. Intentaremos engadir a compatibilidade no futuro.</string>
|
||||
<string name="wrongValueForBarcodeType">O valor non é válido para o tipo de código de barras seleccionado</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Quero compartir unhas tarxetas contigo</string>
|
||||
<string name="frontImageDescription">Imaxe frontal</string>
|
||||
<string name="backImageDescription">Imaxe posterior</string>
|
||||
<string name="photos">Fotos</string>
|
||||
<string name="setFrontImage">Establecer imaxe frontal</string>
|
||||
<string name="setBackImage">Establecer imaxe posterior</string>
|
||||
<string name="removeImage">Retirar a imaxe</string>
|
||||
<string name="takePhoto">Facer unha foto</string>
|
||||
<string name="updateBarcodeQuestionTitle">Actualizar o valor do código?</string>
|
||||
<string name="updateBarcodeQuestionText">Cambiaches o ID. Queres cambiar tamén o código de barras para que use o mesmo valor?</string>
|
||||
<string name="yes">Si</string>
|
||||
<string name="no">Non</string>
|
||||
<string name="failedGeneratingShareURL">Non se puido crear un URL para compartir. Informa sobre o fallo.</string>
|
||||
<string name="turn_flashlight_on">Acender o flash</string>
|
||||
<string name="turn_flashlight_off">Apagar o flash</string>
|
||||
<string name="settings_oled_dark">Fondo en negro puro para o decorado escuro</string>
|
||||
<string name="settings_oled_dark_summary">Diminúe o uso da batería nas pantallas OLED</string>
|
||||
<string name="settings_system_locale">Sistema</string>
|
||||
<string name="selectColor">Elixir cor</string>
|
||||
<string name="settings_theme_color">Cor do decorado</string>
|
||||
<string name="settings_catima_theme">Catima</string>
|
||||
<string name="settings_pink_theme">Rosa</string>
|
||||
<string name="settings_magenta_theme">Maxenta</string>
|
||||
<string name="settings_violet_theme">Violeta</string>
|
||||
<string name="settings_sky_blue_theme">Azul celeste</string>
|
||||
<string name="settings_green_theme">Verde</string>
|
||||
<string name="settings_brown_theme">Marrón</string>
|
||||
<string name="app_contributors">Creada grazas a: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="sort">Orde</string>
|
||||
<string name="showMoreInfo">Ver info</string>
|
||||
<string name="updateBalance">Actualizar saldo</string>
|
||||
<string name="failedToRetrieveImageFile">Fallou a obtención do ficheiro de imaxe</string>
|
||||
<string name="barcodeLongPressMessage">Só imaxes que se abren na app de galería</string>
|
||||
<string name="sort_by_name">Nome</string>
|
||||
<string name="sort_by_most_recently_used">Usadas recentemente</string>
|
||||
<string name="sort_by_expiry">Caducidade</string>
|
||||
<string name="reverse">…orde inversa</string>
|
||||
<string name="sort_by">Orde por</string>
|
||||
<string name="version_history">Historial das versións</string>
|
||||
<string name="credits">Recoñecementos</string>
|
||||
<string name="help_translate_this_app">Axuda a traducir a app</string>
|
||||
<string name="license">Licenza</string>
|
||||
<string name="source_repository">Repositorio do código</string>
|
||||
<string name="on_github">en GitHub</string>
|
||||
<string name="and_data_usage">e uso de datos</string>
|
||||
<string name="rate_this_app">Valora esta app</string>
|
||||
<string name="on_google_play">en Google Play</string>
|
||||
<string name="report_error">Informar de fallo</string>
|
||||
<string name="translate_platform">en Weblate</string>
|
||||
<string name="shortcutSelectCard">Elixe unha tarxeta</string>
|
||||
<string name="options">Opcións</string>
|
||||
<string name="starred">Con estrela</string>
|
||||
<string name="include_if_asking_support">Se queres pedir axuda, inclúe esta información:</string>
|
||||
<string name="duplicateCard">Duplicar</string>
|
||||
<string name="archive">Arquivar</string>
|
||||
<string name="unarchive">Sacar do arquivo</string>
|
||||
<string name="archived">Arquivouse a tarxeta</string>
|
||||
<string name="unarchived">Sacouse do arquivo</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> tarxeta (<xliff:g id="archivedCount">%2$d</xliff:g> arquivada)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> tarxetas (<xliff:g id="archivedCount">%2$d</xliff:g> arquivadas)</item>
|
||||
</plurals>
|
||||
<string name="previousCard">Anterior</string>
|
||||
<string name="nextCard">Seguinte</string>
|
||||
<string name="failedToOpenUrl">Primeiro instala un navegador web</string>
|
||||
<string name="welcome">Ben vida a Catima</string>
|
||||
<string name="updateBalanceTitle">Canto gastaches ou recibiches?</string>
|
||||
<string name="updateBalanceHint">Escribe a cantidade</string>
|
||||
<string name="currentBalanceSentence">Saldo actual: <xliff:g>%s</xliff:g></string>
|
||||
<string name="newBalanceSentence">Novo saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="anyDate">Calquera data</string>
|
||||
<string name="chooseValidFromDate">Elixe data de inicio válida</string>
|
||||
<string name="validFromSentence">Válida desde: <xliff:g>%s</xliff:g></string>
|
||||
<string name="height">Alto:</string>
|
||||
<string name="switchToFrontImage">Cambiar á imaxe frontal</string>
|
||||
<string name="switchToBackImage">Cambiar á imaxe posterior</string>
|
||||
<string name="openFrontImageInGalleryApp">Abrir imaxe frontal na app de galería</string>
|
||||
<string name="openBackImageInGalleryApp">Abrir imaxe posterior na app de galería</string>
|
||||
<string name="setBarcodeHeight">Establecer altura do código de barras</string>
|
||||
<string name="icon_header_click_text">Pulsación longa para editar a miniatura</string>
|
||||
<string name="show_name_below_image_thumbnail">Mostrar nome debaixo da miniatura</string>
|
||||
<string name="show_note">Ver nota</string>
|
||||
<string name="show_balance">Ver saldo</string>
|
||||
<string name="settings_category_title_cards">Vista de tarxeta</string>
|
||||
<string name="settings_category_title_cards_overview">Vista xeral de tarxetas</string>
|
||||
<string name="settings_column_count_portrait">Columnas no modo retrato</string>
|
||||
<string name="settings_automatic_column_count">Automático</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_category_title_general">Xeral</string>
|
||||
<string name="settings_category_title_privacy">Privacidade</string>
|
||||
<string name="action_display_options">Opcións ao mostrar</string>
|
||||
<string name="show_archived_cards">Mostrar tarxetas arquivadas</string>
|
||||
<string name="view_online">Ver en liña</string>
|
||||
<string name="action_more_options">Máis opcións</string>
|
||||
<string name="addWithoutBarcode">Engadir unha tarxeta sen código de barras</string>
|
||||
<string name="enter_card_id">Escribe o número ID ou texto na túa tarxeta</string>
|
||||
<string name="card_id_must_not_be_empty">O ID da tarxeta non pode estar baleiro</string>
|
||||
<string name="add_a_card_in_a_different_way">Engadir unha tarxeta doutro xeito</string>
|
||||
<string name="field_must_not_be_empty">O campo non pode quedar baleiro</string>
|
||||
<string name="manually_enter_barcode_instructions">Escribe o número ID ou texto na túa tarxeta e preme no código de barras que se pareza ao da túa tarxeta.</string>
|
||||
<string name="add_manually_warning_title">Recomendamos escanear</string>
|
||||
<string name="add_manually_warning_message">Nalgunhas tendas o código de barras é diferente ao número escrito na tarxeta. Debido a isto escribir o código de barras manualmente non sempre funciona. Recomendamos que escanees o código de barras coa cámara. Queres continuar igualmente?</string>
|
||||
<string name="continue_">Continuar</string>
|
||||
<string name="spend">Gastar</string>
|
||||
<string name="receive">Recibir</string>
|
||||
<string name="amountParsingFailed">Cantidade non válida</string>
|
||||
<string name="failedLaunchingFileManager">Non se atopa un xestor de ficheiros compatible</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Cal destes códigos de barras atopados queres usar?</string>
|
||||
<string name="pageWithNumber">Páxina <xliff:g>%d</xliff:g></string>
|
||||
<string name="noCameraFoundGuideText">Parece que o teu dispositivo non ten cámara. Se a ten, intenta reiniciar o dispositivo. Se non, usa o botón inferior de Máis Opcións para engadir o código de barras doutro xeito.</string>
|
||||
<string name="importCancelled">Cancelouse a importación</string>
|
||||
<string name="exportCancelled">Cancelouse a exportación</string>
|
||||
<string name="useFrontImage">Usar imaxe frontal</string>
|
||||
<string name="useBackImage">Usar imaxe posterior</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> seleccionado</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> seleccionados</item>
|
||||
</plurals>
|
||||
<string name="action_search">Buscar</string>
|
||||
<string name="note">Nota</string>
|
||||
<string name="cardId">ID da tarxeta</string>
|
||||
<string name="unstar">Retirar das favoritas</string>
|
||||
<string name="deleteTitle">Eliminar tarxeta</string>
|
||||
<plurals name="deleteCardsConfirmation">
|
||||
<item quantity="one">Eliminar definitivamente <xliff:g>%d</xliff:g> tarxeta?</item>
|
||||
<item quantity="other">Eliminar definitivamente as <xliff:g>%d</xliff:g> tarxetas?</item>
|
||||
</plurals>
|
||||
<string name="noCardExistsError">Non atopamos esa tarxeta</string>
|
||||
<string name="settings_light_theme">Claro</string>
|
||||
<string name="importOptionFilesystemButton">Desde sistema de ficheiros</string>
|
||||
<string name="importOptionFilesystemExplanation">Elixe un ficheiro concreto no sistema de ficheiros.</string>
|
||||
<string name="importOptionApplicationTitle">Usar outra app</string>
|
||||
<string name="thumbnailDescription">Miniatura</string>
|
||||
<string name="starImage">Estrela de favorita</string>
|
||||
<string name="settings_system_theme">Sistema</string>
|
||||
<string name="settings_follow_system_orientation">Seguir ao sistema</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Preciso para que algúns escáneres funcionen</string>
|
||||
<string name="settings_keep_screen_on">Manter pantalla acendida</string>
|
||||
<string name="settings_dark_theme">Escuro</string>
|
||||
<string name="settings_card_orientation">Orientación da pantalla</string>
|
||||
<string name="group_updated">Grupo actualizado</string>
|
||||
<string name="all">Todo</string>
|
||||
<string name="deleteConfirmationGroup">Eliminar grupo?</string>
|
||||
<string name="failedOpeningFileManager">Primeiro instala un xestor de ficheiros.</string>
|
||||
<string name="settings_locale">Idioma</string>
|
||||
<string name="settings_blue_theme">Azul</string>
|
||||
<string name="passwordRequired">Escribe o contrasinal</string>
|
||||
<string name="exportPassword">Establece un contrasinal para protexer a exportación (optativo)</string>
|
||||
<string name="exportPasswordHint">Escribe o contrasinal</string>
|
||||
<string name="setIcon">Establecer miniatura</string>
|
||||
<string name="failedLaunchingPhotoPicker">Non se atopa unha app de galería compatible</string>
|
||||
<string name="importCards">Importar tarxetas</string>
|
||||
<string name="validFromDate">Válida desde</string>
|
||||
<string name="switchToBarcode">Cambiar ao código de barras</string>
|
||||
<string name="donate">Doar</string>
|
||||
<string name="show_validity">Ver validez</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_landscape">Columnas no modo paisaxe</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="addFromPdfFile">Elixe un ficheiro PDF</string>
|
||||
<string name="errorReadingFile">Non se puido ler o ficheiro</string>
|
||||
</resources>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<resources>
|
||||
<string name="action_add">הוספה</string>
|
||||
<string name="cardId">מזהה כרטיס</string>
|
||||
<string name="cancel">ביטול</string>
|
||||
@@ -61,4 +61,12 @@
|
||||
<item quantity="many">מעט</item>
|
||||
<item quantity="other">אחר</item>
|
||||
</plurals>
|
||||
<string name="importCancelled">ייבוא בוטל</string>
|
||||
<string name="exportCancelled">ייצוא בוטל</string>
|
||||
<string name="addFromPdfFile">בחר קובץ PDF</string>
|
||||
<string name="errorReadingFile">לא ניתן לקרוא את הקובץ</string>
|
||||
<string name="failedLaunchingFileManager">לא נמצא קובץ ניהול נתמך</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">באיזה מהברקודים שנמצאו אתה רוצה להשתמש?</string>
|
||||
<string name="useFrontImage">השתמש בתמונה קדמית</string>
|
||||
<string name="useBackImage">השתמש בתמונה אחורית</string>
|
||||
</resources>
|
||||
@@ -88,7 +88,7 @@
|
||||
<string name="settings_theme">Téma</string>
|
||||
<string name="settings_system_theme">Rendszer</string>
|
||||
<string name="settings_light_theme">Világos</string>
|
||||
<string name="settings_display_barcode_max_brightness">Vonalkód nézet világosítása</string>
|
||||
<string name="settings_display_barcode_max_brightness">Kijelző világosítása</string>
|
||||
<string name="settings_keep_screen_on">A képernyő bekapcsolva tartása</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Képernyőzárólás megakadályozása</string>
|
||||
<string name="intent_import_card_from_url_share_text">Meg akarok veled osztani egy kártyát</string>
|
||||
@@ -200,7 +200,7 @@
|
||||
\nLétrehozhatja az Importálás/exportálás menüből az Exportálást megnyomva egy másik Catima alkalmazásban.</string>
|
||||
<string name="importFidmeMessage">Válassza ki a FidMeből exportált <i>fidme-export-request-xxxxxx.zip</i> fájl majd importálja be, és utána válassza a kézi vonalkódbeírást.
|
||||
\nEzt hozza létre a FidMe-profiljában az Adatvédelem rész választásával, majd a Saját adatok kinyerése megnyomásával.</string>
|
||||
<string name="settings_card_orientation">Vonalkód tájolása</string>
|
||||
<string name="settings_card_orientation">Képernyő tájolása</string>
|
||||
<plurals name="groupCardCountWithArchived">
|
||||
<item quantity="one"><xliff:g>%1$d</xliff:g> kártya (<xliff:g id="archivedCount">%2$d</xliff:g> archiválva)</item>
|
||||
<item quantity="other"><xliff:g>%1$d</xliff:g> kártya (<xliff:g id="archivedCount">%2$d</xliff:g> archiválva)</item>
|
||||
@@ -256,7 +256,7 @@
|
||||
<string name="settings_oled_dark_summary">Csökkenti az OLED kijelzők akkumulátor-használatát</string>
|
||||
<string name="settings_category_title_privacy">Adatvédelem</string>
|
||||
<string name="settings_allow_content_provider_read_title">Engedélyezem más alkalmazások számára az adataimhoz való hozzáférést</string>
|
||||
<string name="settings_category_title_cards">Kártyák</string>
|
||||
<string name="settings_category_title_cards">Kártyanézet</string>
|
||||
<string name="settings_category_title_general">Általános</string>
|
||||
<string name="settings_keep_screen_on_summary">Letiltja a képernyő időtúllépését a kártya megtekintése közben</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Letiltja a képernyő időtúllépését a kártya megjelenítése közben</string>
|
||||
@@ -290,4 +290,12 @@
|
||||
<string name="noCameraFoundGuideText">Úgy tűnik, az eszközén nincs kamera. Ha van, próbálja meg újraindítani az eszközt. Másképp, használja a További beállítások gombot alul, hogy máshogy hozzáadjon egy vonalkódot.</string>
|
||||
<string name="importCancelled">Importálás megszakítva</string>
|
||||
<string name="exportCancelled">Exportálás megszakítva</string>
|
||||
<string name="settings_use_volume_keys_navigation">Kártyák váltása a hangerőgombokkal</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">A hangerőgombok használata a megjelenített kártya átváltásához</string>
|
||||
<string name="useFrontImage">Elülső kép használata</string>
|
||||
<string name="useBackImage">Hátsó kép használata</string>
|
||||
<string name="settings_category_title_cards_overview">Kártyák áttekintése</string>
|
||||
<string name="settings_column_count_landscape">Oszlopok fekvő módban</string>
|
||||
<string name="settings_automatic_column_count">Automatikus</string>
|
||||
<string name="settings_column_count_portrait">Oszlopok álló módban</string>
|
||||
</resources>
|
||||
@@ -107,7 +107,7 @@
|
||||
<string name="starImage">Favorit</string>
|
||||
<string name="settings_light_theme">Terang</string>
|
||||
<string name="settings_dark_theme">Gelap</string>
|
||||
<string name="settings_display_barcode_max_brightness">Terangkan tampilan barcode</string>
|
||||
<string name="settings_display_barcode_max_brightness">Cerahkan layar</string>
|
||||
<string name="settings_keep_screen_on">Biarkan layar menyala</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Cegah kunci layar</string>
|
||||
<string name="intent_import_card_from_url_share_text">Saya ingin berbagi kartu dengan anda</string>
|
||||
@@ -198,7 +198,7 @@
|
||||
<string name="failedLaunchingPhotoPicker">Tidak dapat menemukan aplikasi galeri yang didukung</string>
|
||||
<string name="previousCard">Sebelumnya</string>
|
||||
<string name="nextCard">Berikutnya</string>
|
||||
<string name="settings_card_orientation">Orientasi Barcode</string>
|
||||
<string name="settings_card_orientation">Orientasi layar</string>
|
||||
<string name="settings_follow_system_orientation">Ikuti sistem</string>
|
||||
<string name="settings_portrait_orientation">Potret</string>
|
||||
<string name="settings_landscape_orientation">Lanskap</string>
|
||||
@@ -254,7 +254,7 @@
|
||||
<string name="settings_category_title_general">Umum</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Diperlukan agar beberapa pemindai dapat berfungsi</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Menonaktifkan kunci layar saat melihat kartu</string>
|
||||
<string name="settings_category_title_cards">Kartu</string>
|
||||
<string name="settings_category_title_cards">Tampilan kartu</string>
|
||||
<string name="settings_category_title_privacy">Privasi</string>
|
||||
<string name="show_archived_cards">Tampilkan kartu yang sudah disimpan</string>
|
||||
<string name="action_display_options">Pilihan tampilan</string>
|
||||
@@ -282,4 +282,10 @@
|
||||
<string name="amountParsingFailed">Jumlah tidak valid</string>
|
||||
<string name="add_manually_warning_message">Untuk beberapa toko, nilai barcode berbeda dengan nomor yang tertulis di kartu. Oleh karena itu, memasukkan barcode secara manual mungkin tidak selalu berhasil. Sangat disarankan untuk memindai barcode dengan kamera anda. Apakah anda masih ingin melanjutkan?</string>
|
||||
<string name="noCameraFoundGuideText">Perangkat Anda sepertinya tidak memiliki kamera. Jika iya, coba mulai ulang perangkat. Jika tidak, gunakan tombol Opsi lainnya di bawah untuk menambahkan barcode dengan cara lain.</string>
|
||||
<string name="importCancelled">Impor dibatalkan</string>
|
||||
<string name="exportCancelled">Ekspor dibatalkan</string>
|
||||
<string name="useFrontImage">Gunakan gambar depan</string>
|
||||
<string name="useBackImage">Gunakan gambar belakang</string>
|
||||
<string name="settings_use_volume_keys_navigation">Ganti kartu menggunakan tombol volume</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Gunakan tombol volume untuk mengubah kartu mana yang ditampilkan</string>
|
||||
</resources>
|
||||
@@ -86,4 +86,4 @@
|
||||
<string name="nextCard">Næsta</string>
|
||||
<string name="settings_blue_theme">Blár</string>
|
||||
<string name="settings_sky_blue_theme">Himinblár</string>
|
||||
</resources>
|
||||
</resources>
|
||||
@@ -50,7 +50,7 @@
|
||||
<string name="settings_system_theme">Sistema</string>
|
||||
<string name="settings_light_theme">Chiaro</string>
|
||||
<string name="settings_dark_theme">Scuro</string>
|
||||
<string name="settings_display_barcode_max_brightness">Aumenta luminosità dello schermo quando viene aperto un codice a barre</string>
|
||||
<string name="settings_display_barcode_max_brightness">Aumenta la luminosità</string>
|
||||
<string name="intent_import_card_from_url_share_text">Voglio condividere una carta fedeltà con te</string>
|
||||
<string name="exportSuccessful">Dati della carta esportati</string>
|
||||
<string name="importSuccessful">Dati importati</string>
|
||||
@@ -207,7 +207,7 @@
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Sfondo nero puro per il tema scuro</string>
|
||||
<string name="include_if_asking_support">Se vuoi richiedere supporto, includi le seguenti informazioni:</string>
|
||||
<string name="settings_card_orientation">Orientamento del codice a barre</string>
|
||||
<string name="settings_card_orientation">Orientamento dello schermo</string>
|
||||
<string name="settings_follow_system_orientation">Segui il sistema</string>
|
||||
<string name="duplicateCard">Duplica</string>
|
||||
<string name="archive">Archivia</string>
|
||||
@@ -264,7 +264,7 @@
|
||||
<string name="settings_keep_screen_on_summary">Disattiva il timeout dello schermo durante la visualizzazione di una carta</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Disattiva il blocco dello schermo durante la visualizzazione di una carta</string>
|
||||
<string name="settings_oled_dark_summary">Riduce il consumo della batteria sui display OLED</string>
|
||||
<string name="settings_category_title_cards">Carte</string>
|
||||
<string name="settings_category_title_cards">Vista carta</string>
|
||||
<string name="settings_category_title_general">Generali</string>
|
||||
<string name="settings_category_title_privacy">Privacy</string>
|
||||
<string name="app_copyright_short">Copyright © Sylvia van Os e contributori</string>
|
||||
@@ -298,4 +298,17 @@
|
||||
<string name="exportCancelled">Esportazione annullata</string>
|
||||
<string name="useBackImage">Usa l\'immagine posteriore</string>
|
||||
<string name="useFrontImage">Usa l\'immagine anteriore</string>
|
||||
<string name="settings_use_volume_keys_navigation">Cambia carte con i pulsanti di volume</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Utilizza i pulsanti di volume per modificare la carta visualizzata</string>
|
||||
<string name="settings_column_count_portrait">Colonne in modalità verticale</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_landscape">Colonne in modalità orizzontale</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="settings_automatic_column_count">Automatico</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_category_title_cards_overview">Panoramica delle carte</string>
|
||||
</resources>
|
||||
@@ -17,4 +17,35 @@
|
||||
</plurals>
|
||||
<string name="note">ಸೂಚನೆ</string>
|
||||
<string name="action_add">ಸೇರಿಸಿ</string>
|
||||
<string name="addFromImage">ಗ್ಯಾಲರಿಯಿಂದ ಚಿತ್ರವನ್ನು ಆಯ್ಕೆಮಾಡಿ</string>
|
||||
<string name="balance">ಸಮತೋಲನ</string>
|
||||
<string name="balanceParsingFailed">ಅಮಾನ್ಯ ಬ್ಯಾಲೆನ್ಸ್</string>
|
||||
<string name="chooseImportType">ನಿಂದ ಡೇಟಾವನ್ನು ಆಮದು ಮಾಡಿ</string>
|
||||
<string name="currency">ಕರೆನ್ಸಿ</string>
|
||||
<string name="action_display_options">ಪ್ರದರ್ಶನ ಆಯ್ಕೆಗಳು</string>
|
||||
<string name="add_manually_warning_title">ಸ್ಕ್ಯಾನಿಂಗ್ ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ</string>
|
||||
<string name="cameraPermissionDeniedTitle">ಕ್ಯಾಮರಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</string>
|
||||
<string name="addManually">ಬಾರ್ಕೋಡ್ ಅನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ನಮೂದಿಸಿ</string>
|
||||
<string name="card">ಕಾರ್ಡ್</string>
|
||||
<string name="chooseExpiryDate">ಮುಕ್ತಾಯ ದಿನಾಂಕವನ್ನು ಆರಿಸಿ</string>
|
||||
<string name="barcodeId">ಬಾರ್ಕೋಡ್ ಮೌಲ್ಯ</string>
|
||||
<string name="backImageDescription">ಹಿಂದಿನ ಚಿತ್ರ</string>
|
||||
<string name="credits">ಸಾಲಗಳು</string>
|
||||
<string name="and_data_usage">ಮತ್ತು ಡೇಟಾ ಬಳಕೆ</string>
|
||||
<string name="anyDate">ಯಾವುದೇ ದಿನಾಂಕ</string>
|
||||
<string name="card_id_must_not_be_empty">ಕಾರ್ಡ್ ಐಡಿ ಖಾಲಿಯಾಗಿರಬಾರದು</string>
|
||||
<string name="donate">ದಾನ ಮಾಡಿ</string>
|
||||
<string name="action_more_options">ಹೆಚ್ಚಿನ ಆಯ್ಕೆಗಳು</string>
|
||||
<string name="add_a_card_in_a_different_way">ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಕಾರ್ಡ್ ಸೇರಿಸಿ</string>
|
||||
<string name="barcodeLongPressMessage">ಗ್ಯಾಲರಿ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಚಿತ್ರಗಳನ್ನು ಮಾತ್ರ ತೆರೆಯಬಹುದು</string>
|
||||
<string name="all">ಎಲ್ಲವೂ</string>
|
||||
<string name="chooseValidFromDate">ದಿನಾಂಕದಿಂದ ಮಾನ್ಯವಾಗಿ ಆಯ್ಕೆಮಾಡಿ</string>
|
||||
<string name="delete">ಅಳಿಸಿ</string>
|
||||
<string name="cardShortcut">ಕಾರ್ಡ್ ಶಾರ್ಟ್ಕಟ್</string>
|
||||
<string name="addCardTitle">ಕಾರ್ಡ್ ಸೇರಿಸಿ</string>
|
||||
<string name="about">ಸುಮಾರು</string>
|
||||
<string name="cameraPermissionRequired">ಈ ಕ್ರಿಯೆಗೆ ಕ್ಯಾಮರಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಅನುಮತಿ ಅಗತ್ಯವಿದೆ…</string>
|
||||
<string name="amountParsingFailed">ಅಮಾನ್ಯ ಮೊತ್ತ</string>
|
||||
<string name="accept">ಸ್ವೀಕರಿಸಿ</string>
|
||||
<string name="confirm">ದೃಢೀಕರಿಸಿ</string>
|
||||
</resources>
|
||||
@@ -218,7 +218,7 @@
|
||||
<string name="unarchive">Išarchyvuoti</string>
|
||||
<string name="archived">Kortelė archyvuota</string>
|
||||
<string name="unarchived">Kortelė išarchyvuota</string>
|
||||
<string name="updateBalanceTitle">Kiek išleidote?</string>
|
||||
<string name="updateBalanceTitle">Kiek išleidote arba gavote?</string>
|
||||
<string name="updateBalanceHint">Įveskite sumą</string>
|
||||
<string name="currentBalanceSentence">Dabartinis likutis: <xliff:g>%s</xliff:g></string>
|
||||
<string name="newBalanceSentence">Naujas balansas: <xliff:g>%s</xliff:g></string>
|
||||
@@ -252,4 +252,50 @@
|
||||
<string name="switchToFrontImage">Perjungti į priekinį vaizdą</string>
|
||||
<string name="openFrontImageInGalleryApp">Atidarykite priekinį vaizdą galerijos programėlėje</string>
|
||||
<string name="donate">Aukoti</string>
|
||||
<string name="settings_follow_sensor_orientation">Visada sukti (nekreipiant dėmesio į sistemos nustatymus)</string>
|
||||
<string name="settings_keep_screen_on_summary">Išjungti ekrano užmigdymą kol peržiūrite kortelę</string>
|
||||
<string name="manually_enter_barcode_instructions">Įveskite ID numerį arba tekstą ant jūsų kortelės ir paspauskite brūkšninį kodą, kuris atrodo kaip ant jūsų kortelės.</string>
|
||||
<string name="addWithoutBarcode">Pridėti kortelę be brūkšninio kodo</string>
|
||||
<string name="settings_oled_dark_summary">Umažina baterijos naudojimą OLED ekranuose</string>
|
||||
<string name="show_note">Rodyti nota</string>
|
||||
<string name="show_balance">Parodyti balansą</string>
|
||||
<string name="view_online">Rodyti internete</string>
|
||||
<string name="action_more_options">Daugiau galimybių</string>
|
||||
<string name="enter_card_id">Įveskite ID numerį arba tekstą ant jūsų kortelės</string>
|
||||
<string name="noCameraFoundGuideText">Atrodo, kad jūsų įrenginys neturi kameros. Jei jis turi kamerą, pabandykite perkrauti įrenginį. Naudokite žemiau esantį „Daugiau galimybių“ mygtuką, kad pridėtumėte brūkšninį kodą kitu būdu.</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Būtina, kad veiktų kai kurie skeneriai</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Išjungti ekrano užraktą kol peržiūrite kortelę</string>
|
||||
<string name="settings_allow_content_provider_read_title">Leisti kitoms programoms išrinkti mano informaciją</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Programos vis tiek turės prašyti leidimo, kad gautu informaciją</string>
|
||||
<string name="show_name_below_image_thumbnail">Rodyti pavadinimą po piktogramą</string>
|
||||
<string name="icon_header_click_text">Ilgai paspauskite, kad pakeisti piktogramą</string>
|
||||
<string name="add_manually_warning_title">Rekomenduojama skenuoti</string>
|
||||
<string name="continue_">Tęsti</string>
|
||||
<string name="add_manually_warning_message">Kai kuriuose parduotuvėse brūkšninio kodo vertė gali skirtis nuo kortelėje nurodyto numerio. Dėlto įvedus brūkšninį kodą rankiniu būdu gali nepavykti. Vietoj to, labai rekomenduojama nuskaityti brūkšninį kodą naudojant kamerą. Ar vis tiek norite tęsti?</string>
|
||||
<string name="permissionReadCardsLabel">Skenuoti Catima Korteles</string>
|
||||
<string name="settings_category_title_cards">Kortelės</string>
|
||||
<string name="settings_category_title_general">Bendri</string>
|
||||
<string name="settings_category_title_privacy">Privatumąi</string>
|
||||
<string name="importCancelled">Importas atšauktas</string>
|
||||
<string name="exportCancelled">Eksportas atšauktas</string>
|
||||
<string name="addFromPdfFile">isrinkti PDF failą</string>
|
||||
<string name="errorReadingFile">Nepavyko analizuoti failo</string>
|
||||
<string name="failedLaunchingFileManager">Nepavyko rasti suderinamo failų tvarkytuve</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Kurį iš rastų brūkšninių kodų norite naudoti?</string>
|
||||
<string name="pageWithNumber"><xliff:g>%d</xliff:g> Puslapis</string>
|
||||
<string name="spend">Išleisti</string>
|
||||
<string name="receive">Gauti</string>
|
||||
<string name="amountParsingFailed">Negaliojanti suma</string>
|
||||
<string name="balanceParsingFailed">Negaliojantis balansas</string>
|
||||
<string name="permissionReadCardsDescription">skaityti savo Catima korteles ir visą informaciją apie jas, įskaitant pastabas ir paveikslėlius</string>
|
||||
<string name="show_validity">Parodyti galiojimą</string>
|
||||
<string name="action_display_options">Rodymo parinktys</string>
|
||||
<string name="show_archived_cards">Rodyti archyvuotus korteles</string>
|
||||
<string name="card_id_must_not_be_empty">Kortelės ID negali būti tuščia</string>
|
||||
<string name="add_a_card_in_a_different_way">Pridėti kortelę kitu būdu</string>
|
||||
<string name="field_must_not_be_empty">Laukelis negali būti tuščias</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="app_copyright_short">Autorių teisės © Sylvia van Os ir Pagalbininkai</string>
|
||||
<string name="useFrontImage">Naudoti priekinį vaizdą</string>
|
||||
<string name="useBackImage">Naudoti galinį vaizdą</string>
|
||||
</resources>
|
||||
@@ -52,7 +52,7 @@
|
||||
<string name="settings_system_theme">Systeemthema</string>
|
||||
<string name="settings_light_theme">Licht thema</string>
|
||||
<string name="settings_dark_theme">Donker thema</string>
|
||||
<string name="settings_display_barcode_max_brightness">Scherm helderder maken bij tonen van barcode</string>
|
||||
<string name="settings_display_barcode_max_brightness">Scherm oplichten bij tonen van barcode</string>
|
||||
<string name="intent_import_card_from_url_share_text">Ik wil een klantenkaart met je delen</string>
|
||||
<string name="all">Alles</string>
|
||||
<string name="importSuccessful">De gegevens zijn geïmporteerd</string>
|
||||
@@ -260,7 +260,7 @@
|
||||
<string name="settings_display_barcode_max_brightness_summary">Benodigd voor de werking van sommige scanners</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Schakelt schermvergrendeling uit tijdens het bekijken van een kaart</string>
|
||||
<string name="settings_oled_dark_summary">Verlaagt het accuverbruik op oledschermen</string>
|
||||
<string name="settings_category_title_cards">Kaarten</string>
|
||||
<string name="settings_category_title_cards">Kaart</string>
|
||||
<string name="settings_category_title_general">Algemeen</string>
|
||||
<string name="app_copyright_short">Auteursrecht © Sylvia van Os en bijdragers</string>
|
||||
<string name="action_display_options">Weergave-instellingen</string>
|
||||
@@ -292,4 +292,17 @@
|
||||
<string name="exportCancelled">Exporteren geannuleerd</string>
|
||||
<string name="useFrontImage">Gebruik voorzijde van kaart</string>
|
||||
<string name="useBackImage">Gebruik achterzijde van kaart</string>
|
||||
<string name="settings_use_volume_keys_navigation">Verwissel kaart met de volume knoppen</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Gebruik de volume knoppen om te wisselen van getoonde kaart</string>
|
||||
<string name="settings_category_title_cards_overview">Kaartenoverzicht</string>
|
||||
<string name="settings_column_count_landscape">Kolommen in landschapmodus</string>
|
||||
<string name="settings_automatic_column_count">Automatisch</string>
|
||||
<string name="settings_column_count_portrait">Kolommen in portretmodus</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
</resources>
|
||||
@@ -50,7 +50,7 @@
|
||||
<string name="settings_system_theme">Systemowy</string>
|
||||
<string name="settings_light_theme">Jasny</string>
|
||||
<string name="settings_dark_theme">Ciemny</string>
|
||||
<string name="settings_display_barcode_max_brightness">Rozjaśnij widok kodu kreskowego</string>
|
||||
<string name="settings_display_barcode_max_brightness">Rozjaśnij ekran</string>
|
||||
<string name="intent_import_card_from_url_share_text">Chcę udostępnić Ci kartę lojalnościową</string>
|
||||
<string name="deleteConfirmationGroup">Usunąć grupę\?</string>
|
||||
<string name="all">Wszystko</string>
|
||||
@@ -212,7 +212,7 @@
|
||||
</plurals>
|
||||
<string name="include_if_asking_support">Jeśli chcesz poprosić o pomoc, podaj następujące informacje:</string>
|
||||
<string name="settings_oled_dark">Całkowicie czarne tło dla ciemnego motywu</string>
|
||||
<string name="settings_card_orientation">Orientacja kodu kreskowego</string>
|
||||
<string name="settings_card_orientation">Orientacja ekranu</string>
|
||||
<string name="settings_follow_system_orientation">Śledź orientację systemową</string>
|
||||
<string name="duplicateCard">Duplikuj</string>
|
||||
<string name="starred">Oznaczone gwiazdką</string>
|
||||
@@ -271,7 +271,7 @@
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Wyłącza blokadę ekranu kiedy wyświetlana jest karta</string>
|
||||
<string name="settings_allow_content_provider_read_summary">Aplikacje będą wymagały pozwolenia aby otrzymać dostęp do danych</string>
|
||||
<string name="settings_oled_dark_summary">Zmniejsza zużycie baterii na wyświetlaczach OLED</string>
|
||||
<string name="settings_category_title_cards">Karty</string>
|
||||
<string name="settings_category_title_cards">Widok karty</string>
|
||||
<string name="settings_category_title_general">Ogólne</string>
|
||||
<string name="settings_category_title_privacy">Prywatność</string>
|
||||
<string name="app_copyright_short">Wszelkie prawa zastrzeżone © Sylvia van Os i współtwórcy</string>
|
||||
@@ -304,4 +304,6 @@
|
||||
<string name="exportCancelled">Eksport anulowany</string>
|
||||
<string name="useBackImage">Użyj obrazu z tyłu</string>
|
||||
<string name="useFrontImage">Użyj obrazu z przodu</string>
|
||||
<string name="settings_use_volume_keys_navigation">Przełączaj karty przy użyciu przycisków głośności</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Użyj przycisków głośności do przełączania kart</string>
|
||||
</resources>
|
||||
@@ -210,7 +210,7 @@
|
||||
<string name="updateBalanceTitle">Quanto você gastou ou recebeu?</string>
|
||||
<string name="currentBalanceSentence">Saldo atual: <xliff:g>%s</xliff:g></string>
|
||||
<string name="newBalanceSentence">Novo saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="settings_category_title_cards">Cartões</string>
|
||||
<string name="settings_category_title_cards">Visualização do cartão</string>
|
||||
<string name="updateBalanceHint">Inserir quantidade</string>
|
||||
<string name="anyDate">Qualquer data</string>
|
||||
<string name="settings_category_title_general">Geral</string>
|
||||
@@ -223,7 +223,7 @@
|
||||
<string name="failedLaunchingFileManager">Não foi possível encontrar um gerenciador de arquivos compatível</string>
|
||||
<string name="pageWithNumber">Página <xliff:g>%d</xliff:g></string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Qual dos códigos de barras encontrados você quer usar?</string>
|
||||
<string name="settings_display_barcode_max_brightness">Clarear visão do código de barras</string>
|
||||
<string name="settings_display_barcode_max_brightness">Iluminar a tela</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Necessário para alguns scanners funcionarem</string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balance">Saldo</string>
|
||||
@@ -233,7 +233,7 @@
|
||||
<string name="settings_system_theme">Sistema</string>
|
||||
<string name="settings_dark_theme">Escuro</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Mover o código de barras para o topo da tela</string>
|
||||
<string name="settings_card_orientation">Orientação do código de barras</string>
|
||||
<string name="settings_card_orientation">Orientação da tela</string>
|
||||
<string name="settings_portrait_orientation">Retrato</string>
|
||||
<string name="settings_landscape_orientation">Paisagem</string>
|
||||
<string name="settings_keep_screen_on_summary">Desativa o tempo limite de tela enquanto estiver vendo um cartão</string>
|
||||
@@ -298,4 +298,17 @@
|
||||
<string name="exportCancelled">Exportação cancelada</string>
|
||||
<string name="useBackImage">Usar imagem traseira</string>
|
||||
<string name="useFrontImage">Usar imagem frontal</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Use os botões de volume para alterar qual cartão é exibido</string>
|
||||
<string name="settings_use_volume_keys_navigation">Trocar de cartão usando botões de volume</string>
|
||||
<string name="settings_category_title_cards_overview">Resumo dos cartões</string>
|
||||
<string name="settings_column_count_portrait">Colunas em modo retrato</string>
|
||||
<string name="settings_automatic_column_count">Automático</string>
|
||||
<string name="settings_column_count_landscape">Colunas em modo paisagem</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
</resources>
|
||||
@@ -45,7 +45,7 @@
|
||||
<string name="noGroups">Clique no botão + para adicionar grupos para categorização.</string>
|
||||
<string name="noGroupCards">Este grupo está vazio</string>
|
||||
<string name="intent_import_card_from_url_share_text">Quero partilhar um cartão</string>
|
||||
<string name="settings_display_barcode_max_brightness">Iluminar o código de barras</string>
|
||||
<string name="settings_display_barcode_max_brightness">Iluminar o ecrã</string>
|
||||
<string name="settings_keep_screen_on">Manter ecrã ligado</string>
|
||||
<string name="enter_group_name">Introduza o nome do grupo</string>
|
||||
<string name="groups">Grupos</string>
|
||||
@@ -210,7 +210,7 @@
|
||||
<string name="include_if_asking_support">Se quiser pedir ajuda, inclua as seguintes informações:</string>
|
||||
<string name="duplicateCard">Duplicar</string>
|
||||
<string name="archive">Arquivar</string>
|
||||
<string name="settings_card_orientation">Orientação do código de barras</string>
|
||||
<string name="settings_card_orientation">Orientação do ecrã</string>
|
||||
<string name="settings_follow_system_orientation">Definido no sistema</string>
|
||||
<string name="settings_portrait_orientation">Retrato</string>
|
||||
<string name="settings_landscape_orientation">Paisagem</string>
|
||||
@@ -265,7 +265,7 @@
|
||||
<string name="settings_allow_content_provider_read_summary">Os aplicativos ainda terão que solicitar permissão para receber acesso</string>
|
||||
<string name="settings_oled_dark_summary">Reduz a utilização da bateria em ecrãs OLED</string>
|
||||
<string name="icon_header_click_text">Pressione e segure para editar o icone</string>
|
||||
<string name="settings_category_title_cards">Cartões</string>
|
||||
<string name="settings_category_title_cards">Vista de cartão</string>
|
||||
<string name="settings_category_title_general">Geral</string>
|
||||
<string name="settings_category_title_privacy">Privacidade</string>
|
||||
<string name="card_id_must_not_be_empty">O ID do cartão não pode estar vazio</string>
|
||||
@@ -298,4 +298,17 @@
|
||||
<string name="exportCancelled">Exportação cancelada</string>
|
||||
<string name="useFrontImage">Utilizar imagem frontal</string>
|
||||
<string name="useBackImage">Utilizar imagem do verso</string>
|
||||
<string name="settings_use_volume_keys_navigation">Mudar de cartão usando os botões de volume</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Utilize os botões de volume para alterar o cartão que é apresentado</string>
|
||||
<string name="settings_category_title_cards_overview">Resumo dos cartões</string>
|
||||
<string name="settings_column_count_portrait">Colunas no modo vertical</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_landscape">Colunas no modo horizontal</string>
|
||||
<string name="settings_automatic_column_count">Automático</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
</resources>
|
||||
@@ -52,7 +52,7 @@
|
||||
<string name="settings_light_theme">Lumină</string>
|
||||
<string name="settings_dark_theme">Întuneric</string>
|
||||
<string name="noBarcodeFound">Nu a fost găsit niciun cod de bare</string>
|
||||
<string name="settings_display_barcode_max_brightness">Luminați vizualizarea codurilor de bare</string>
|
||||
<string name="settings_display_barcode_max_brightness">Iluminare ecran</string>
|
||||
<string name="settings_keep_screen_on">Păstrați ecranul pornit</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Preveniți blocarea ecranului</string>
|
||||
<string name="balance">Balanță</string>
|
||||
@@ -167,7 +167,7 @@
|
||||
<string name="group_name_is_empty">Numele grupului nu poate fi liber</string>
|
||||
<string name="importCards">Importați carduri</string>
|
||||
<string name="icon_header_click_text">Apăsați lung pentru a edita miniatura</string>
|
||||
<string name="settings_category_title_cards">Carduri</string>
|
||||
<string name="settings_category_title_cards">Afișare carduri</string>
|
||||
<string name="setBarcodeId">Setați valoarea codului de bare</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="unarchive">Dezarhivare</string>
|
||||
@@ -246,7 +246,7 @@
|
||||
<string name="settings_violet_theme">Violet</string>
|
||||
<string name="include_if_asking_support">Dacă doriți să cereți ajutor, includeți informațiile următoare:</string>
|
||||
<string name="show_archived_cards">Afișați cardurile arhivate</string>
|
||||
<string name="settings_card_orientation">Orientarea codului de bare</string>
|
||||
<string name="settings_card_orientation">Orientare ecran</string>
|
||||
<string name="app_libraries">Biblioteci terță deschise: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="updateBalanceTitle">Cât de mult ați cheltuit sau primit?</string>
|
||||
<string name="settings_blue_theme">Albastru</string>
|
||||
@@ -298,4 +298,6 @@
|
||||
<string name="exportCancelled">Exportare anulată</string>
|
||||
<string name="useBackImage">Utilizează imaginea din spate</string>
|
||||
<string name="useFrontImage">Utilizează imaginea din față</string>
|
||||
<string name="settings_use_volume_keys_navigation">Schimbă cardurile folosind butoanele de volum</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Folosiți butoanele de volum pentru a schimba ce card este afișat</string>
|
||||
</resources>
|
||||
@@ -52,7 +52,7 @@
|
||||
<string name="settings_system_theme">Системная</string>
|
||||
<string name="settings_light_theme">Светлая</string>
|
||||
<string name="settings_dark_theme">Тёмная</string>
|
||||
<string name="settings_display_barcode_max_brightness">Максимальная яркость при отображении карты</string>
|
||||
<string name="settings_display_barcode_max_brightness">Максимальная яркость экрана</string>
|
||||
<string name="intent_import_card_from_url_share_text">Я хочу поделиться с вами картой</string>
|
||||
<string name="exportSuccessful">Данные успешно экспортированы</string>
|
||||
<string name="all">Все</string>
|
||||
@@ -220,7 +220,7 @@
|
||||
<string name="unarchive">Разархивировать</string>
|
||||
<string name="settings_follow_system_orientation">Как в системе</string>
|
||||
<string name="duplicateCard">Дублировать</string>
|
||||
<string name="settings_card_orientation">Ориентация штрих-кода</string>
|
||||
<string name="settings_card_orientation">Ориентация экрана</string>
|
||||
<string name="archived">Карта архивирована</string>
|
||||
<string name="unarchived">Карта разархивирована</string>
|
||||
<string name="failedLaunchingPhotoPicker">Не найдено поддерживаемое приложение галереи</string>
|
||||
@@ -270,7 +270,7 @@
|
||||
<string name="settings_category_title_privacy">Конфиденциальность</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Необходимо для работы некоторых сканеров</string>
|
||||
<string name="settings_keep_screen_on_summary">Отключение функции автоотключения экрана при отображении карты</string>
|
||||
<string name="settings_category_title_cards">Карты</string>
|
||||
<string name="settings_category_title_cards">Отображение карт</string>
|
||||
<string name="settings_category_title_general">Общие</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Отключение функции блокировки экрана при отображении карты</string>
|
||||
<string name="settings_oled_dark_summary">Снижение расхода заряда батареи на OLED-экранах</string>
|
||||
@@ -304,4 +304,17 @@
|
||||
<string name="exportCancelled">Экспорт отменён</string>
|
||||
<string name="useFrontImage">Использовать лицевую сторону</string>
|
||||
<string name="useBackImage">Использовать заднюю сторону</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Использовать кнопки регулировки громкости для смены отображаемой карты</string>
|
||||
<string name="settings_use_volume_keys_navigation">Переключать карты кнопками громкости</string>
|
||||
<string name="settings_column_count_portrait">Столбцы в портретном режиме</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="settings_category_title_cards_overview">Список карт</string>
|
||||
<string name="settings_column_count_landscape">Столбцы в альбомном режиме</string>
|
||||
<string name="settings_automatic_column_count">Автовыбор</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
</resources>
|
||||
@@ -42,7 +42,7 @@
|
||||
<string name="selectBarcodeTitle">Vyberte čiarový kód</string>
|
||||
<string name="thumbnailDescription">Miniatúra</string>
|
||||
<string name="settings">Nastavenia</string>
|
||||
<string name="settings_display_barcode_max_brightness">Zvýšiť jas pri zobrazení čiarového kódu </string>
|
||||
<string name="settings_display_barcode_max_brightness">Zvýšiť jas pri zobrazení čiarového kódu</string>
|
||||
<string name="deleteTitle">Odstrániť kartu</string>
|
||||
<string name="deleteConfirmation">Naozaj chcete túto kartu odstrániť?</string>
|
||||
<string name="star">Pridať k obľúbeným</string>
|
||||
|
||||
@@ -244,7 +244,7 @@
|
||||
<string name="height">Höjd:</string>
|
||||
<string name="settings_category_title_general">Generellt</string>
|
||||
<string name="switchToBarcode">Byt till streckkod</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Stänger av skärmlåset när kortet visas</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">Stänger av skärmlåset medans kort visas</string>
|
||||
<string name="permissionReadCardsDescription">Se dina kort med alla dess detaljer, inklusive anteckningar och bilder</string>
|
||||
<string name="action_display_options">Visningsalternativ</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Nödvändigt för att en del skannrar ska fungera</string>
|
||||
@@ -265,7 +265,7 @@
|
||||
<string name="show_archived_cards">Visa arkiverade kort</string>
|
||||
<string name="settings_category_title_privacy">Sekretess</string>
|
||||
<string name="show_balance">Visa konto</string>
|
||||
<string name="settings_keep_screen_on_summary">Stänger av skärmens tidsgräns medan ett kort visas</string>
|
||||
<string name="settings_keep_screen_on_summary">Stänger av skärmtidsgräns medans ett kort visas</string>
|
||||
<string name="card_id_must_not_be_empty">Kort id får inte vara tomt</string>
|
||||
<string name="balanceParsingFailed">Ogiltiga balanser</string>
|
||||
<string name="add_a_card_in_a_different_way">Lägg till kort på annat sätt</string>
|
||||
@@ -275,4 +275,32 @@
|
||||
<string name="addWithoutBarcode">Lägg till kort utan streckkod</string>
|
||||
<string name="field_must_not_be_empty">Obligatoriskt fält</string>
|
||||
<string name="app_name">Catima</string>
|
||||
<string name="settings_follow_sensor_orientation">Rotera automatiskt (ignorerar systeminställningar)</string>
|
||||
<string name="continue_">Fortsätt</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_automatic_column_count">Automatiskt</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="add_manually_warning_title">Skanning rekommenderas</string>
|
||||
<string name="noCameraFoundGuideText">Din enhet verkar inte ha en kamera. Om den har det, prova att starta om enheten. Annars, använd knappen Fler alternativ nedan för att lägga till en streckkod på ett annat sätt.</string>
|
||||
<string name="importCancelled">Importeringen avbröts</string>
|
||||
<string name="exportCancelled">Exporteringen avbröts</string>
|
||||
<string name="addFromPdfFile">Välj en PDF-fil</string>
|
||||
<string name="errorReadingFile">Kunde inte läsa filen</string>
|
||||
<string name="failedLaunchingFileManager">Kunde inte hitta en filhanterare som stöds</string>
|
||||
<string name="spend">Spendera</string>
|
||||
<string name="receive">Ta emot</string>
|
||||
<string name="amountParsingFailed">Ogiltig summa</string>
|
||||
<string name="settings_use_volume_keys_navigation">Byt kort genom att använda volymknapparna</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Använd volymknapparna för att byta vilket kort som visas</string>
|
||||
<string name="settings_column_count_portrait">Kolumner i porträttläge</string>
|
||||
<string name="settings_column_count_landscape">Kolumner i landskapsläge</string>
|
||||
<string name="pageWithNumber">Sida <xliff:g>%d</xliff:g></string>
|
||||
<string name="useFrontImage">Använd bilden på framsidan</string>
|
||||
<string name="useBackImage">Använd bilden på baksidan</string>
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Vilka av de hittade streckkoderna vill du använda?</string>
|
||||
</resources>
|
||||
@@ -89,7 +89,7 @@
|
||||
<string name="intent_import_card_from_url_share_text">Seninle bir kart paylaşmak istiyorum</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Ekran kilidini engelle</string>
|
||||
<string name="settings_keep_screen_on">Ekranı açık tut</string>
|
||||
<string name="settings_display_barcode_max_brightness">Barkod görünümünü aydınlat</string>
|
||||
<string name="settings_display_barcode_max_brightness">Ekranı aydınlat</string>
|
||||
<string name="settings_dark_theme">Koyu</string>
|
||||
<string name="settings_light_theme">Açık</string>
|
||||
<string name="settings_system_theme">Sistem</string>
|
||||
@@ -209,7 +209,7 @@
|
||||
<string name="duplicateCard">Çoğalt</string>
|
||||
<string name="unarchive">Arşivden çıkar</string>
|
||||
<string name="archived">Kart arşivlendi</string>
|
||||
<string name="settings_card_orientation">Barkod yönü</string>
|
||||
<string name="settings_card_orientation">Ekran yönü</string>
|
||||
<string name="settings_lock_on_opening_orientation">Kartı açarken kullanılan yönü kilitle</string>
|
||||
<string name="unarchived">Kart arşivden çıkarıldı</string>
|
||||
<string name="archive">Arşivle</string>
|
||||
@@ -261,7 +261,7 @@
|
||||
<string name="settings_category_title_general">Genel</string>
|
||||
<string name="settings_category_title_privacy">Gizlilik</string>
|
||||
<string name="settings_oled_dark_summary">OLED ekranlarda güç kullanımını düşürür</string>
|
||||
<string name="settings_category_title_cards">Kartlar</string>
|
||||
<string name="settings_category_title_cards">Kart görünümü</string>
|
||||
<string name="app_copyright_short">Telif hakkı © Sylvia van Os ve katkıda bulunanlar</string>
|
||||
<string name="action_display_options">Görüntüleme seçenekleri</string>
|
||||
<string name="show_archived_cards">Arşivlenen kartları göster</string>
|
||||
@@ -292,4 +292,17 @@
|
||||
<string name="exportCancelled">Dışa aktarma iptal edildi</string>
|
||||
<string name="useFrontImage">Ön resmi kullan</string>
|
||||
<string name="useBackImage">Arka resmi kullan</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Hangi kartın görüntüleneceğini değiştirmek için ses düğmelerini kullanın</string>
|
||||
<string name="settings_use_volume_keys_navigation">Ses düğmelerini kullanarak kartları değiştir</string>
|
||||
<string name="settings_category_title_cards_overview">Kartları gözden geçir</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_landscape">Yatay alan modundaki sutunlar</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="settings_automatic_column_count">Otomatik</string>
|
||||
<string name="settings_column_count_portrait">Portre modundaki sutunlar</string>
|
||||
</resources>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="noGiftCards">Натисніть кнопку +, щоб додати картку, або ⋮ для імпорту з меню.</string>
|
||||
<string name="settings_display_barcode_max_brightness">Яскравіший штрих-код</string>
|
||||
<string name="settings_display_barcode_max_brightness">Збільшити яскравість екрана</string>
|
||||
<string name="selectBarcodeTitle">Оберіть штрих-код</string>
|
||||
<string name="scanCardBarcode">Відсканувати штрих-код</string>
|
||||
<string name="noBarcode">Без штрих-коду</string>
|
||||
@@ -35,7 +35,7 @@
|
||||
<string name="importCatima">Імпорт з Catima</string>
|
||||
<string name="accept">Прийняти</string>
|
||||
<string name="privacy_policy">Політика конфіденційності</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="app_loyalty_card_keychain">Брелок для картки лояльності</string>
|
||||
<string name="chooseImportType">Імпортувати дані з</string>
|
||||
<string name="points">Бали</string>
|
||||
<string name="currency">Валюта</string>
|
||||
@@ -137,8 +137,7 @@
|
||||
<string name="photos">Світлини</string>
|
||||
<string name="backImageDescription">Тильна сторона</string>
|
||||
<string name="frontImageDescription">Лицьова сторона</string>
|
||||
<string name="importStocardMessage">Виберіть експорт <i> ***.zip </i> з Stocard для імпорту.
|
||||
\nОтримайте його, надіславши електронного листа support@stocardapp.com з проханням експортувати ваші дані.</string>
|
||||
<string name="importStocardMessage">Виберіть експорт <i> ***.zip </i> з Stocard для імпорту.\nОтримайте його, надіславши електронного листа support@stocardapp.com з проханням експортувати ваші дані.</string>
|
||||
<string name="importStocard">Імпорт з Stocard</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one">Обрано: <xliff:g>%d</xliff:g></item>
|
||||
@@ -214,7 +213,7 @@
|
||||
</plurals>
|
||||
<string name="include_if_asking_support">Якщо ви хочете отримати техпідтримку, додайте цю інформацію:</string>
|
||||
<string name="unarchive">Розархівувати</string>
|
||||
<string name="settings_card_orientation">Орієнтація штрих-коду</string>
|
||||
<string name="settings_card_orientation">Орієнтація екрана</string>
|
||||
<string name="settings_follow_system_orientation">Як у системі</string>
|
||||
<string name="duplicateCard">Дублювати</string>
|
||||
<string name="archive">Архівувати</string>
|
||||
@@ -271,7 +270,7 @@
|
||||
<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_category_title_cards">Картки</string>
|
||||
<string name="settings_category_title_cards">Перегляд картки</string>
|
||||
<string name="settings_category_title_general">Загальні</string>
|
||||
<string name="settings_category_title_privacy">Конфіденційність</string>
|
||||
<string name="view_online">Переглянути онлайн</string>
|
||||
@@ -304,4 +303,17 @@
|
||||
<string name="exportCancelled">Експортування скасовано</string>
|
||||
<string name="useFrontImage">Використати фронтальне зображення</string>
|
||||
<string name="useBackImage">Використати зворотне зображення</string>
|
||||
<string name="settings_use_volume_keys_navigation">Перемикайте карти за допомогою кнопок гучності</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Використовуйте кнопки гучності, щоб змінити картку, яка відображається</string>
|
||||
<string name="settings_automatic_column_count">Автоматичний</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="settings_category_title_cards_overview">Огляд карток</string>
|
||||
<string name="settings_column_count_portrait">Стовпці в портретному режимі</string>
|
||||
<string name="settings_column_count_landscape">Стовпці в ландшафтному режимі</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
</resources>
|
||||
@@ -268,7 +268,7 @@
|
||||
<string name="openBackImageInGalleryApp">Mở lại hình ảnh trong ứng dụng thư viện</string>
|
||||
<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="app_license">Phần mềm miễn phí có bản quyền theo giấy phép GPLv3+</string>
|
||||
<string name="settings_follow_sensor_orientation">Luôn xoay (bỏ qua thiết đặt hệ thống)</string>
|
||||
<string name="continue_">Tiếp tục</string>
|
||||
<string name="add_manually_warning_title">Nên quét</string>
|
||||
@@ -282,4 +282,8 @@
|
||||
<string name="multipleBarcodesFoundPleaseChooseOne">Bạn muốn sử dụng mã vạch nào được tìm thấy?</string>
|
||||
<string name="failedLaunchingFileManager">Không thể tìm thấy trình quản lý tệp được hỗ trợ</string>
|
||||
<string name="noCameraFoundGuideText">Có vẻ như thiết bị của bạn không có camera. Nếu có, hãy thử khởi động lại thiết bị. Nếu không, hãy sử dụng nút Tùy chọn khác bên dưới để thêm mã vạch theo cách khác.</string>
|
||||
<string name="useFrontImage">Sử dụng hình ảnh phía trước</string>
|
||||
<string name="useBackImage">Sử dụng hình ảnh phía sau</string>
|
||||
<string name="importCancelled">Đã huỷ nhập</string>
|
||||
<string name="exportCancelled">Đã hủy xuất</string>
|
||||
</resources>
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<integer name="main_view_card_columns">3</integer>
|
||||
<integer name="main_view_card_columns">4</integer>
|
||||
</resources>
|
||||
@@ -64,7 +64,7 @@
|
||||
<string name="intent_import_card_from_url_share_text">我想和你分享一张卡</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">防止锁屏</string>
|
||||
<string name="settings_keep_screen_on">保持屏幕常亮</string>
|
||||
<string name="settings_display_barcode_max_brightness">提高条码界面亮度</string>
|
||||
<string name="settings_display_barcode_max_brightness">提高屏幕亮度</string>
|
||||
<string name="settings_dark_theme">暗色</string>
|
||||
<string name="settings_light_theme">浅色</string>
|
||||
<string name="settings_theme">主题</string>
|
||||
@@ -199,7 +199,7 @@
|
||||
<string name="failedLaunchingPhotoPicker">找不到支持的图库应用</string>
|
||||
<string name="previousCard">前一张</string>
|
||||
<string name="nextCard">下一张</string>
|
||||
<string name="settings_card_orientation">条形码朝向</string>
|
||||
<string name="settings_card_orientation">屏幕</string>
|
||||
<string name="settings_landscape_orientation">横向</string>
|
||||
<string name="settings_follow_system_orientation">跟随系统</string>
|
||||
<string name="settings_lock_on_opening_orientation">使用上次打开卡片时的朝向</string>
|
||||
@@ -253,7 +253,7 @@
|
||||
<string name="settings_category_title_privacy">隐私</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card_summary">查看卡片时禁用屏幕锁</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">一些扫描仪工作所必需的</string>
|
||||
<string name="settings_category_title_cards">卡包</string>
|
||||
<string name="settings_category_title_cards">卡片视图</string>
|
||||
<string name="settings_category_title_general">常规</string>
|
||||
<string name="action_display_options">显示选项</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">版权所有 © 2019–<xliff:g>%d</xliff:g> Sylvia van Os 及其贡献者们</string>
|
||||
@@ -286,4 +286,17 @@
|
||||
<string name="exportCancelled">取消了导出</string>
|
||||
<string name="useFrontImage">使用正面图</string>
|
||||
<string name="useBackImage">使用背面图</string>
|
||||
<string name="settings_use_volume_keys_navigation">用音量按钮切换卡片</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">是用音量按钮改变展示的卡片</string>
|
||||
<string name="settings_category_title_cards_overview">卡片概览</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_automatic_column_count">自动</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_portrait">竖屏模式下的列数</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_landscape">横屏模式下的列数</string>
|
||||
</resources>
|
||||
@@ -134,7 +134,7 @@
|
||||
<string name="noGroupCards">此群組為空</string>
|
||||
<string name="settings_light_theme">淺色</string>
|
||||
<string name="settings_dark_theme">深色</string>
|
||||
<string name="settings_display_barcode_max_brightness">調高條碼介面螢幕亮度</string>
|
||||
<string name="settings_display_barcode_max_brightness">調高螢幕亮度</string>
|
||||
<string name="settings_keep_screen_on">螢幕恆亮</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">防止螢幕鎖定</string>
|
||||
<string name="importSuccessful">已匯入資料</string>
|
||||
@@ -197,7 +197,7 @@
|
||||
<string name="translate_platform">於 Weblate</string>
|
||||
<string name="options">選項</string>
|
||||
<string name="include_if_asking_support">如果您想請求協助,請附上以下訊息:</string>
|
||||
<string name="settings_card_orientation">條碼方向</string>
|
||||
<string name="settings_card_orientation">螢幕方向</string>
|
||||
<string name="failedToRetrieveImageFile">無法擷取圖片檔案</string>
|
||||
<string name="barcodeLongPressMessage">圖庫應用程式僅可開啟圖片</string>
|
||||
<string name="duplicateCard">重複</string>
|
||||
@@ -257,7 +257,7 @@
|
||||
<string name="action_more_options">更多選項</string>
|
||||
<string name="action_display_options">螢幕</string>
|
||||
<string name="settings_oled_dark_summary">降低OLED螢幕使用的電力</string>
|
||||
<string name="settings_category_title_cards">卡片</string>
|
||||
<string name="settings_category_title_cards">卡片檢視</string>
|
||||
<string name="addWithoutBarcode">新增無條碼卡片</string>
|
||||
<string name="show_archived_cards">顯示已封存卡片</string>
|
||||
<string name="settings_category_title_privacy">隱私權</string>
|
||||
@@ -285,4 +285,6 @@
|
||||
<string name="importCancelled">已取消匯入</string>
|
||||
<string name="useFrontImage">使用正面圖片</string>
|
||||
<string name="useBackImage">使用背面圖片</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">使用音量按鈕來切換顯示的卡片</string>
|
||||
<string name="settings_use_volume_keys_navigation">使用音量按鈕切換卡片</string>
|
||||
</resources>
|
||||
@@ -36,6 +36,40 @@
|
||||
<item>@string/settings_brown_theme</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="column_count_portrait_values">
|
||||
<item>@string/settings_key_automatic_column_count</item>
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
<item>3</item>
|
||||
<item>4</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="column_count_portrait_value_strings">
|
||||
<item>@string/settings_automatic_column_count</item>
|
||||
<item>@string/settings_column_count_1</item>
|
||||
<item>@string/settings_column_count_2</item>
|
||||
<item>@string/settings_column_count_3</item>
|
||||
<item>@string/settings_column_count_4</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="column_count_landscape_values">
|
||||
<item>@string/settings_key_automatic_column_count</item>
|
||||
<item>3</item>
|
||||
<item>4</item>
|
||||
<item>5</item>
|
||||
<item>6</item>
|
||||
<item>7</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="column_count_landscape_value_strings">
|
||||
<item>@string/settings_automatic_column_count</item>
|
||||
<item>@string/settings_column_count_3</item>
|
||||
<item>@string/settings_column_count_4</item>
|
||||
<item>@string/settings_column_count_5</item>
|
||||
<item>@string/settings_column_count_6</item>
|
||||
<item>@string/settings_column_count_7</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="color_values_no_dynamic">
|
||||
<item>@string/settings_key_system_theme</item>
|
||||
<item>@string/settings_key_pink_theme</item>
|
||||
@@ -86,6 +120,7 @@
|
||||
<item>fi</item>
|
||||
<!-- <item>fil</item> -->
|
||||
<item>fr</item>
|
||||
<item>gl</item>
|
||||
<item>he-rIL</item>
|
||||
<item>hi</item>
|
||||
<item>hr</item>
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
<string name="settings_key_light_theme" translatable="false">light</string>
|
||||
<string name="settings_dark_theme">Dark</string>
|
||||
<string name="settings_key_dark_theme" translatable="false">dark</string>
|
||||
<string name="settings_card_orientation">Barcode orientation</string>
|
||||
<string name="settings_card_orientation">Screen orientation</string>
|
||||
<string name="settings_key_card_orientation" translatable="false">pref_card_orientation</string>
|
||||
<string name="settings_follow_system_orientation">Follow system</string>
|
||||
<string name="settings_key_follow_system_orientation" translatable="false">follow_system</string>
|
||||
@@ -108,7 +108,7 @@
|
||||
<string name="settings_lock_on_opening_orientation">Lock to orientation used when opening the card</string>
|
||||
<string name="settings_key_lock_on_opening_orientation" translatable="false">lock_on_opening</string>
|
||||
<string name="settings_key_max_font_size_scale" translatable="false">pref_max_font_size_scale</string>
|
||||
<string name="settings_display_barcode_max_brightness">Brighten barcode view</string>
|
||||
<string name="settings_display_barcode_max_brightness">Brighten screen</string>
|
||||
<string name="settings_display_barcode_max_brightness_summary">Necessary for some scanners to work</string>
|
||||
<string name="settings_key_display_barcode_max_brightness" translatable="false">pref_display_card_max_brightness</string>
|
||||
<string name="settings_keep_screen_on">Keep screen on</string>
|
||||
@@ -121,6 +121,9 @@
|
||||
<string name="settings_key_disable_lockscreen_while_viewing_card" translatable="false">pref_disable_lockscreen_while_viewing_card</string>
|
||||
<string name="settings_key_allow_content_provider_read" translatable="false">pref_allow_content_provider_read</string>
|
||||
<string name="settings_key_oled_dark" translatable="false">pref_oled_dark</string>
|
||||
<string name="settings_use_volume_keys_navigation">Switch cards using volume buttons</string>
|
||||
<string name="settings_use_volume_keys_navigation_summary">Use the volume buttons to change which card is displayed</string>
|
||||
<string name="settings_key_use_volume_keys_navigation" translatable="false">pref_use_volume_keys_navigation</string>
|
||||
<string name="sharedpreference_active_tab" translatable="false">sharedpreference_active_tab</string>
|
||||
<string name="sharedpreference_sort" translatable="false">sharedpreference_sort</string>
|
||||
<string name="sharedpreference_sort_order" translatable="false">sharedpreference_sort_order</string>
|
||||
@@ -314,7 +317,21 @@
|
||||
<string name="sharedpreference_card_details_show_balance" translatable="false">sharedpreference_card_details_show_balance</string>
|
||||
<string name="sharedpreference_card_details_show_validity" translatable="false">sharedpreference_card_details_show_validity</string>
|
||||
<string name="sharedpreference_card_details_show_archived_cards" translatable="false">sharedpreference_card_details_show_archived_cards</string>
|
||||
<string name="settings_category_title_cards">Cards</string>
|
||||
<string name="settings_category_title_cards">Card view</string>
|
||||
<string name="settings_category_title_cards_overview">Cards overview</string>
|
||||
<string name="settings_column_count_portrait">Columns in portrait mode</string>
|
||||
<string name="settings_column_count_landscape">Columns in landscape mode</string>
|
||||
<string name="settings_automatic_column_count">Automatic</string>
|
||||
<string name="settings_key_automatic_column_count" translatable="false">default</string>
|
||||
<string name="settings_column_count_1">1</string>
|
||||
<string name="settings_column_count_2">2</string>
|
||||
<string name="settings_column_count_3">3</string>
|
||||
<string name="settings_column_count_4">4</string>
|
||||
<string name="settings_column_count_5">5</string>
|
||||
<string name="settings_column_count_6">6</string>
|
||||
<string name="settings_column_count_7">7</string>
|
||||
<string name="setting_key_column_count_portrait" translatable="false">pref_column_count_portrait</string>
|
||||
<string name="setting_key_column_count_landscape" translatable="false">pref_column_count_landscape</string>
|
||||
<string name="settings_category_title_general">General</string>
|
||||
<string name="settings_category_title_privacy">Privacy</string>
|
||||
<string name="action_display_options">Display options</string>
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
<locale android:name="et" />
|
||||
<locale android:name="fi" />
|
||||
<locale android:name="fr" />
|
||||
<locale android:name="gl" />
|
||||
<locale android:name="he-IL" />
|
||||
<locale android:name="hi" />
|
||||
<locale android:name="hr" />
|
||||
|
||||
@@ -46,10 +46,44 @@
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/settings_category_title_cards_overview"
|
||||
app:iconSpaceReserved="false">
|
||||
|
||||
<ListPreference
|
||||
android:key="@string/setting_key_column_count_portrait"
|
||||
android:title="@string/settings_column_count_portrait"
|
||||
android:defaultValue="@string/settings_key_automatic_column_count"
|
||||
android:entries="@array/column_count_portrait_value_strings"
|
||||
android:entryValues="@array/column_count_portrait_values"
|
||||
app:iconSpaceReserved="false"
|
||||
app:singleLineTitle="false"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<ListPreference
|
||||
android:key="@string/setting_key_column_count_landscape"
|
||||
android:title="@string/settings_column_count_landscape"
|
||||
android:defaultValue="@string/settings_key_automatic_column_count"
|
||||
android:entries="@array/column_count_landscape_value_strings"
|
||||
android:entryValues="@array/column_count_landscape_values"
|
||||
app:iconSpaceReserved="false"
|
||||
app:singleLineTitle="false"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/settings_category_title_cards"
|
||||
app:iconSpaceReserved="false">
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:widgetLayout="@layout/preference_material_switch"
|
||||
android:defaultValue="false"
|
||||
android:key="@string/settings_key_use_volume_keys_navigation"
|
||||
android:summary="@string/settings_use_volume_keys_navigation_summary"
|
||||
android:title="@string/settings_use_volume_keys_navigation"
|
||||
app:iconSpaceReserved="false"
|
||||
app:singleLineTitle="false" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:widgetLayout="@layout/preference_material_switch"
|
||||
android:defaultValue="true"
|
||||
@@ -102,5 +136,5 @@
|
||||
app:singleLineTitle="false" />
|
||||
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
|
||||
</PreferenceScreen>
|
||||
|
||||
@@ -174,7 +174,7 @@ public class ImportExportTest {
|
||||
int index = 1;
|
||||
|
||||
while (cursor.moveToNext()) {
|
||||
LoyaltyCard card = LoyaltyCard.toLoyaltyCard(cursor);
|
||||
LoyaltyCard card = LoyaltyCard.fromCursor(cursor);
|
||||
|
||||
String expectedStore = String.format("store, \"%4d", index);
|
||||
String expectedNote = String.format("note, \"%4d", index);
|
||||
@@ -200,7 +200,7 @@ public class ImportExportTest {
|
||||
Cursor cursor = DBHelper.getLoyaltyCardCursor(mDatabase);
|
||||
|
||||
while (cursor.moveToNext()) {
|
||||
LoyaltyCard card = LoyaltyCard.toLoyaltyCard(cursor);
|
||||
LoyaltyCard card = LoyaltyCard.fromCursor(cursor);
|
||||
|
||||
// ID goes up for duplicates (b/c the cursor orders by store), down for originals
|
||||
int index = card.id > numCards ? card.id - numCards : numCards - card.id + 1;
|
||||
@@ -236,7 +236,7 @@ public class ImportExportTest {
|
||||
|
||||
while (index < 10) {
|
||||
cursor.moveToNext();
|
||||
LoyaltyCard card = LoyaltyCard.toLoyaltyCard(cursor);
|
||||
LoyaltyCard card = LoyaltyCard.fromCursor(cursor);
|
||||
|
||||
String expectedStore = String.format("store, \"%4d", index);
|
||||
String expectedNote = String.format("note, \"%4d", index);
|
||||
@@ -258,7 +258,7 @@ public class ImportExportTest {
|
||||
|
||||
index = 1;
|
||||
while (cursor.moveToNext() && index < 5) {
|
||||
LoyaltyCard card = LoyaltyCard.toLoyaltyCard(cursor);
|
||||
LoyaltyCard card = LoyaltyCard.fromCursor(cursor);
|
||||
|
||||
String expectedStore = String.format("store, \"%4d", index);
|
||||
String expectedNote = String.format("note, \"%4d", index);
|
||||
|
||||
@@ -137,7 +137,7 @@ public class LoyaltyCardCursorAdapterTest {
|
||||
assertEquals(4, cursor.getCount());
|
||||
|
||||
assertTrue(cursor.moveToFirst());
|
||||
LoyaltyCard loyaltyCard = LoyaltyCard.toLoyaltyCard(cursor);
|
||||
LoyaltyCard loyaltyCard = LoyaltyCard.fromCursor(cursor);
|
||||
assertEquals("storeD", loyaltyCard.store);
|
||||
View view = createView(cursor);
|
||||
ConstraintLayout star = view.findViewById(R.id.star);
|
||||
@@ -146,7 +146,7 @@ public class LoyaltyCardCursorAdapterTest {
|
||||
assertEquals(View.GONE, archive.getVisibility());
|
||||
|
||||
assertTrue(cursor.moveToNext());
|
||||
loyaltyCard = LoyaltyCard.toLoyaltyCard(cursor);
|
||||
loyaltyCard = LoyaltyCard.fromCursor(cursor);
|
||||
assertEquals("storeC", loyaltyCard.store);
|
||||
view = createView(cursor);
|
||||
star = view.findViewById(R.id.star);
|
||||
@@ -155,7 +155,7 @@ public class LoyaltyCardCursorAdapterTest {
|
||||
assertEquals(View.GONE, archive.getVisibility());
|
||||
|
||||
assertTrue(cursor.moveToNext());
|
||||
loyaltyCard = LoyaltyCard.toLoyaltyCard(cursor);
|
||||
loyaltyCard = LoyaltyCard.fromCursor(cursor);
|
||||
assertEquals("storeB", loyaltyCard.store);
|
||||
view = createView(cursor);
|
||||
star = view.findViewById(R.id.star);
|
||||
@@ -164,7 +164,7 @@ public class LoyaltyCardCursorAdapterTest {
|
||||
assertEquals(View.VISIBLE, archive.getVisibility());
|
||||
|
||||
assertTrue(cursor.moveToNext());
|
||||
loyaltyCard = LoyaltyCard.toLoyaltyCard(cursor);
|
||||
loyaltyCard = LoyaltyCard.fromCursor(cursor);
|
||||
assertEquals("storeA", loyaltyCard.store);
|
||||
view = createView(cursor);
|
||||
star = view.findViewById(R.id.star);
|
||||
|
||||
@@ -37,9 +37,11 @@ import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
|
||||
import com.google.android.material.bottomappbar.BottomAppBar;
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||
@@ -347,8 +349,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void noDataLossOnResumeOrRotate() {
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
registerMediaStoreIntentHandler();
|
||||
|
||||
Integer cardId;
|
||||
|
||||
for (boolean newCard : new boolean[]{false, true}) {
|
||||
System.out.println();
|
||||
System.out.println("=====");
|
||||
@@ -356,21 +363,14 @@ public class LoyaltyCardViewActivityTest {
|
||||
System.out.println("=====");
|
||||
System.out.println();
|
||||
|
||||
ActivityController activityController;
|
||||
|
||||
if (!newCard) {
|
||||
activityController = createActivityWithLoyaltyCard(true);
|
||||
cardId = (int) DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
} else {
|
||||
activityController = Robolectric.buildActivity(LoyaltyCardEditActivity.class).create();
|
||||
cardId = null;
|
||||
}
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true, cardId);
|
||||
LoyaltyCardEditActivity activity = (LoyaltyCardEditActivity) activityController.get();
|
||||
final Context context = activity.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
|
||||
if (!newCard) {
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
}
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -403,9 +403,9 @@ public class LoyaltyCardViewActivityTest {
|
||||
storeField.setText("correct store");
|
||||
noteField.setText("correct note");
|
||||
LoyaltyCardEditActivity.formatDateField(context, validFromField, validFromDate);
|
||||
activity.updateTempState(LoyaltyCardField.validFrom, validFromDate);
|
||||
activity.setLoyaltyCardValidFrom(validFromDate);
|
||||
LoyaltyCardEditActivity.formatDateField(context, expiryField, expiryDate);
|
||||
activity.updateTempState(LoyaltyCardField.expiry, expiryDate);
|
||||
activity.setLoyaltyCardExpiry(expiryDate);
|
||||
balanceField.setText("100");
|
||||
balanceTypeField.setText(currency.getSymbol());
|
||||
cardIdField.setText("12345678");
|
||||
@@ -461,6 +461,9 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startWithoutParametersCannotCreateLoyaltyCard() {
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
ActivityController activityController = Robolectric.buildActivity(LoyaltyCardEditActivity.class).create();
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -468,7 +471,6 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
assertEquals(0, DBHelper.getLoyaltyCardCount(database));
|
||||
|
||||
final EditText storeField = activity.findViewById(R.id.storeNameEdit);
|
||||
@@ -583,18 +585,20 @@ public class LoyaltyCardViewActivityTest {
|
||||
assertEquals(true, activity.isFinishing());
|
||||
}
|
||||
|
||||
private ActivityController createActivityWithLoyaltyCard(boolean editMode) {
|
||||
private ActivityController createActivityWithLoyaltyCard(boolean editMode, @Nullable Integer loyaltyCardId) {
|
||||
Intent intent = new Intent();
|
||||
final Bundle bundle = new Bundle();
|
||||
bundle.putInt("id", 1);
|
||||
|
||||
Class clazz;
|
||||
|
||||
if (editMode) {
|
||||
bundle.putBoolean("update", true);
|
||||
if (loyaltyCardId != null) {
|
||||
bundle.putInt(LoyaltyCardEditActivity.BUNDLE_ID, loyaltyCardId);
|
||||
bundle.putBoolean(LoyaltyCardEditActivity.BUNDLE_UPDATE, true);
|
||||
}
|
||||
clazz = LoyaltyCardEditActivity.class;
|
||||
} else {
|
||||
bundle.putBoolean("view", true);
|
||||
bundle.putInt(LoyaltyCardViewActivity.BUNDLE_ID, loyaltyCardId);
|
||||
clazz = LoyaltyCardViewActivity.class;
|
||||
}
|
||||
|
||||
@@ -605,12 +609,14 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startWithLoyaltyCardEditModeCheckDisplay() throws IOException {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
final Context context = activity.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -623,12 +629,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startWithLoyaltyCardViewModeCheckDisplay() {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(false);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
final Context context = activity.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(false, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -641,12 +648,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startWithLoyaltyCardWithBarcodeUpdateBarcode() throws IOException {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
final Context context = activity.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -665,12 +673,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startWithLoyaltyCardWithReceiptUpdateReceiptCancel() throws IOException {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true);
|
||||
LoyaltyCardEditActivity activity = (LoyaltyCardEditActivity) activityController.get();
|
||||
final Context context = activity.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true, (int) cardId);
|
||||
LoyaltyCardEditActivity activity = (LoyaltyCardEditActivity) activityController.get();
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -703,12 +712,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startWithLoyaltyCardNoExpirySetExpiry() throws IOException {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
final Context context = activity.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -735,12 +745,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startWithLoyaltyCardExpirySetNoExpiry() throws IOException {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
final Context context = activity.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, new Date(), new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, new Date(), new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -759,12 +770,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startWithLoyaltyCardNoBalanceSetBalance() throws IOException {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
final Context context = activity.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -809,12 +821,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startWithLoyaltyCardBalanceSetNoBalance() throws IOException {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
final Context context = activity.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("10.00"), Currency.getInstance("USD"), EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("10.00"), Currency.getInstance("USD"), EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -849,12 +862,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startWithLoyaltyCardSameAsCardIDUpdateBarcodeID() {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
final Context context = activity.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -880,12 +894,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startWithLoyaltyCardSameAsCardIDUpdateCardID() {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
final Context context = activity.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, null, EAN_BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -913,12 +928,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startWithLoyaltyCardDifferentFromCardIDUpdateCardIDUpdate() {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
final Context context = activity.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, "123456", EAN_BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, "123456", EAN_BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -949,12 +965,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startWithLoyaltyCardDifferentFromCardIDUpdateCardIDDoNotUpdate() {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
final Context context = activity.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, "123456", EAN_BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, EAN_BARCODE_DATA, "123456", EAN_BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -985,11 +1002,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void checkMenu() throws IOException {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(false);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(false, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -1011,15 +1030,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startWithMissingLoyaltyCard() throws IOException {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true);
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true, 1);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
activityController.resume();
|
||||
|
||||
// The activity should find that the card is missing and shut down
|
||||
|
||||
assertTrue(activity.isFinishing());
|
||||
|
||||
// Make sure the activity can close down
|
||||
@@ -1030,11 +1047,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startWithoutParametersViewBack() {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(false);
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(false, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -1049,11 +1068,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startWithoutColors() {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(false);
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, null, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(false, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, null, 0, null,0);
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -1068,11 +1089,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startLoyaltyCardWithoutColorsSave() throws IOException, ParseException {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true);
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, null, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, null, 0, null,0);
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -1086,11 +1109,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void startLoyaltyCardWithExplicitNoBarcodeSave() throws IOException, ParseException {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true);
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, null, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, null, Color.BLACK, 0, null,0);
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -1104,12 +1129,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void removeBarcodeFromLoyaltyCard() throws IOException, ParseException {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
final Context context = activity.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(true, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -1119,7 +1145,7 @@ public class LoyaltyCardViewActivityTest {
|
||||
checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", context.getString(R.string.anyDate), context.getString(R.string.never), "0", context.getString(R.string.points), BARCODE_DATA, context.getString(R.string.sameAsCardId), BARCODE_TYPE.prettyName(), null, null);
|
||||
|
||||
// Complete empty barcode selection successfully
|
||||
selectBarcodeWithResult(activity, BARCODE_DATA, "", true);
|
||||
selectBarcodeWithResult(activity, BARCODE_DATA, null, true);
|
||||
activityController.resume();
|
||||
|
||||
// Check if the barcode type is NO_BARCODE as expected
|
||||
@@ -1134,11 +1160,14 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void checkPushStarIcon() {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(false);
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(false, (int) cardId);
|
||||
Activity activity = (Activity) activityController.get();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
activityController.resume();
|
||||
@@ -1168,11 +1197,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void checkBarcodeFullscreenWorkflow() {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(false);
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(false, (int) cardId);
|
||||
AppCompatActivity activity = (AppCompatActivity) activityController.get();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, BARCODE_TYPE, Color.BLACK, 0, null,0);
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
@@ -1262,11 +1293,13 @@ public class LoyaltyCardViewActivityTest {
|
||||
|
||||
@Test
|
||||
public void checkNoBarcodeFullscreenWorkflow() {
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(false);
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(context).getWritableDatabase();
|
||||
|
||||
long cardId = DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, null, Color.BLACK, 0, null, 0);
|
||||
|
||||
ActivityController activityController = createActivityWithLoyaltyCard(false, (int) cardId);
|
||||
AppCompatActivity activity = (AppCompatActivity) activityController.get();
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(activity).getWritableDatabase();
|
||||
DBHelper.insertLoyaltyCard(database, "store", "note", null, null, new BigDecimal("0"), null, BARCODE_DATA, null, null, Color.BLACK, 0, null,0);
|
||||
|
||||
activityController.start();
|
||||
activityController.visible();
|
||||
|
||||
@@ -3,18 +3,22 @@ package protect.card_locker;
|
||||
import static android.os.Looper.getMainLooper;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.robolectric.Shadows.shadowOf;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.ComponentName;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Configuration;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.graphics.Color;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.widget.SearchView;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.tabs.TabLayout;
|
||||
@@ -210,9 +214,12 @@ public class MainActivityTest {
|
||||
|
||||
@Test
|
||||
public void testFiltering() {
|
||||
// FIXME: This test directly sets mFilter instead of using mSearchView, making it not test the search flow correctly
|
||||
// It may falsely succeed or fail, but we're leaving it here so we at least test something instead of nothing
|
||||
ActivityController activityController = Robolectric.buildActivity(MainActivity.class).create();
|
||||
|
||||
MainActivity mainActivity = (MainActivity) activityController.get();
|
||||
|
||||
activityController.start();
|
||||
activityController.resume();
|
||||
|
||||
@@ -244,6 +251,16 @@ public class MainActivityTest {
|
||||
activityController.pause();
|
||||
activityController.resume();
|
||||
|
||||
Configuration configuration = mainActivity.getResources().getConfiguration();
|
||||
configuration.orientation = Configuration.ORIENTATION_LANDSCAPE;
|
||||
mainActivity.onConfigurationChanged(configuration);
|
||||
|
||||
configuration.orientation = Configuration.ORIENTATION_PORTRAIT;
|
||||
mainActivity.onConfigurationChanged(configuration);
|
||||
|
||||
configuration.orientation = Configuration.ORIENTATION_LANDSCAPE;
|
||||
mainActivity.onConfigurationChanged(configuration);
|
||||
|
||||
assertEquals(View.GONE, helpSection.getVisibility());
|
||||
assertEquals(View.GONE, noMatchingCardsText.getVisibility());
|
||||
assertEquals(View.VISIBLE, list.getVisibility());
|
||||
@@ -337,6 +354,12 @@ public class MainActivityTest {
|
||||
|
||||
mainActivity.mFilter = "second";
|
||||
|
||||
configuration.orientation = Configuration.ORIENTATION_LANDSCAPE;
|
||||
mainActivity.onConfigurationChanged(configuration);
|
||||
|
||||
configuration.orientation = Configuration.ORIENTATION_PORTRAIT;
|
||||
mainActivity.onConfigurationChanged(configuration);
|
||||
|
||||
activityController.pause();
|
||||
activityController.resume();
|
||||
|
||||
@@ -371,6 +394,10 @@ public class MainActivityTest {
|
||||
|
||||
mainActivity.mFilter = "company";
|
||||
|
||||
// Rotate to landscape (right)
|
||||
configuration.orientation = Configuration.ORIENTATION_LANDSCAPE;
|
||||
mainActivity.onConfigurationChanged(configuration);
|
||||
|
||||
activityController.pause();
|
||||
activityController.resume();
|
||||
|
||||
@@ -443,4 +470,43 @@ public class MainActivityTest {
|
||||
|
||||
database.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSearchQueryRestorationAfterNavigatingBack() {
|
||||
ActivityController activityController = Robolectric.buildActivity(MainActivity.class).create();
|
||||
|
||||
MainActivity mainActivity = (MainActivity) activityController.get();
|
||||
activityController.start();
|
||||
activityController.resume();
|
||||
|
||||
final Menu menu = shadowOf(Robolectric.setupActivity(MainActivity.class)).getOptionsMenu();
|
||||
MenuItem searchMenuItem = menu.findItem(R.id.action_search);
|
||||
SearchView mSearchView = (SearchView) searchMenuItem.getActionView();
|
||||
|
||||
|
||||
SQLiteDatabase database = TestHelpers.getEmptyDb(mainActivity).getWritableDatabase();
|
||||
DBHelper.insertLoyaltyCard(database, "The First Store", "Initial note", null, null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), Color.BLACK, 0, null,0);
|
||||
DBHelper.insertLoyaltyCard(database, "The Second Store", "Secondary note", null, null, new BigDecimal("0"), null, "cardId", null, CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A), Color.BLACK, 0, null,0);
|
||||
|
||||
String finalQuery = "store";
|
||||
assert mSearchView != null;
|
||||
mSearchView.setQuery(finalQuery, false);
|
||||
|
||||
activityController.pause();
|
||||
activityController.resume();
|
||||
|
||||
// Simulation of what happens when users comes back after picking up card
|
||||
// We simulate expanding and setting the Query that we want to restore (in code it is from finalQuery String)
|
||||
searchMenuItem.expandActionView();
|
||||
|
||||
mSearchView.setQuery(finalQuery, false);
|
||||
|
||||
activityController.pause();
|
||||
activityController.resume();
|
||||
|
||||
assertTrue(searchMenuItem.isActionViewExpanded());
|
||||
assertEquals("store", mSearchView.getQuery().toString());
|
||||
|
||||
database.close();
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
|
||||
plugins {
|
||||
id("com.android.application") version "8.5.2" apply false
|
||||
id("com.android.application") version "8.7.2" apply false
|
||||
id("com.github.spotbugs") version "5.1.4" apply false
|
||||
}
|
||||
|
||||
|
||||
4
fastlane/metadata/android/cs-CZ/changelogs/136.txt
Normal file
4
fastlane/metadata/android/cs-CZ/changelogs/136.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
- Podpora vytvoření karty pří sdílení prostého textu
|
||||
- Zobrazení typu obrázku místo čárového kódu pod obrázky
|
||||
- Oprava možného pádu při pokusu o import zálohy z aplikace Nextcloud
|
||||
- Vylepšená podpora zařízení bez fotoaparátu
|
||||
4
fastlane/metadata/android/cs-CZ/changelogs/137.txt
Normal file
4
fastlane/metadata/android/cs-CZ/changelogs/137.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
- Povolení rozdělení dlouhých názvů obchodů v náhledu na více řádků
|
||||
- Možnost použít přední část zadního obrázku v nabídce miniatur
|
||||
- Drobné opravy importu/exportu
|
||||
- Drobné opravy uživatelského rozhraní
|
||||
1
fastlane/metadata/android/cs-CZ/changelogs/138.txt
Normal file
1
fastlane/metadata/android/cs-CZ/changelogs/138.txt
Normal file
@@ -0,0 +1 @@
|
||||
- Oprava gesta zpět na hlavní obrazovce při zamítnutí klávesnice a vyhledávání v systému Android 13+
|
||||
1
fastlane/metadata/android/cs-CZ/changelogs/139.txt
Normal file
1
fastlane/metadata/android/cs-CZ/changelogs/139.txt
Normal file
@@ -0,0 +1 @@
|
||||
- Možnost navigace po kartách pomocí tlačítek hlasitosti
|
||||
@@ -1,5 +1,5 @@
|
||||
- Karten-ID beim Bearbeiten vorab ausfüllen. (Pull #94 (https://github.com/brarcher/loyalty-card-locker/pull/94))
|
||||
- Barcode-Breite begrenzen, um Speicherprobleme zu vermeiden. (Pull #103 (https://github.com/brarcher/loyalty-card-locker/pull/103))
|
||||
- „Bearbeiten“ statt „Hinzufügen“ bei existierender ID anzeigen. (Pull #104 (https://github.com/brarcher/loyalty-card-locker/pull/104))
|
||||
- Farbschema und Layout überarbeitet. (Pull #107 (https://github.com/brarcher/loyalty-card-locker/pull/107))
|
||||
- Einführungsassistent bei der ersten Nutzung hinzugefügt. (Pull #108 (https://github.com/brarcher/loyalty-card-locker/pull/108))
|
||||
- Startet Bearbeiten bei Karten-ID (https://github.com/brarcher/loyalty-card-locker/pull/94)
|
||||
- Barcode-Breite begrenzt => keine Speicherproblem (https://github.com/brarcher/loyalty-card-locker/pull/103)
|
||||
- „Bearbeiten“ statt „Hinzufügen“ bei bekannter ID (https://github.com/brarcher/loyalty-card-locker/pull/104)
|
||||
- Farbschema + Layout überarbeitet (https://github.com/brarcher/loyalty-card-locker/pull/107)
|
||||
- Einführungsassistent hinzugefügt (https://github.com/brarcher/loyalty-card-locker/pull/108)
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
- Lange Store-Namen in der Vorschau auf mehrere Zeilen aufteilen
|
||||
- Vorder- oder Hintergrundbild im Thumbnail-Menü verwenden
|
||||
- Kleine Fehlerbehebungen bei Import/Export
|
||||
- Kleine Fehlerbehebungen beim UI
|
||||
|
||||
1
fastlane/metadata/android/de-DE/changelogs/138.txt
Normal file
1
fastlane/metadata/android/de-DE/changelogs/138.txt
Normal file
@@ -0,0 +1 @@
|
||||
- „Zurück-Geste“ zum Verlassen der Tastatur auf dem Hauptbildschirm und der Suche unter Android 13+ repariert
|
||||
3
fastlane/metadata/android/de-DE/changelogs/139.txt
Normal file
3
fastlane/metadata/android/de-DE/changelogs/139.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
- Möglichkeit, mit den Lautstärketasten durch die Karten zu navigieren
|
||||
- Korrigiert Stocard Import
|
||||
- Behebt die Meldung „Import abgebrochen“ nach erfolgreichem Import
|
||||
1
fastlane/metadata/android/de-DE/changelogs/140.txt
Normal file
1
fastlane/metadata/android/de-DE/changelogs/140.txt
Normal file
@@ -0,0 +1 @@
|
||||
- Textumbruch im Dialog „Hinzufügen“ korrigiert
|
||||
4
fastlane/metadata/android/de-DE/changelogs/141.txt
Normal file
4
fastlane/metadata/android/de-DE/changelogs/141.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
- Voreingestellte Spaltenanzahl für breite Bildschirme auf 4 geändert
|
||||
- Spaltenanzahl für Hoch- und Querformat kann in den Einstellungen überschrieben werden
|
||||
- Suchfilter im Hauptbildschirm aktiv halten, wenn der Bildschirm gedreht oder eine Karte geöffnet wird
|
||||
- Begrenzung der maximalen Länge, der im Hauptbildschirm angezeigten Notiz
|
||||
@@ -1,2 +1,2 @@
|
||||
- Unterstützung für App-Verknüpfungen hinzufügen (Android 7.1+), wobei die zuletzt verwendeten Karten als Verknüpfungen erscheinen. (Pull #145 (https://github.com/brarcher/loyalty-card-locker/pull/145))
|
||||
- Unterstützung für App-Verknüpfungen hinzugefügt (Android 7.1+), wobei die zuletzt verwendeten Karten als Verknüpfungen erscheinen. (Pull #145 (https://github.com/brarcher/loyalty-card-locker/pull/145))
|
||||
- Hinzufügen eines Widgets, das wie eine angeheftete App-Verknüpfung funktioniert, um Geräte zu unterstützen, die unter Android 7.1 laufen (pull #142 (https://github.com/brarcher/loyalty-card-locker/pull/142))
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
- Unterstützung für Home-Screen-Shortcuts beim Hinzufügen oder Bearbeiten einer Karte. (Pull #155 (https://github.com/brarcher/loyalty-card-locker/pull/155))
|
||||
- Widget entfernt, da es keine gute Alternative zu Shortcuts war. (Pull #155 (https://github.com/brarcher/loyalty-card-locker/pull/155))
|
||||
- Fehler beim Export von Backups auf Android 7+ behoben. (Pull #153 (https://github.com/brarcher/loyalty-card-locker/pull/153))
|
||||
- Genaueren MIME-Typ beim Export von Backup-Daten gemeldet. (Pull #156 (https://github.com/brarcher/loyalty-card-locker/pull/156))
|
||||
- Fehler beim Bearbeiten von Karten behoben. (Pull #155 (https://github.com/brarcher/loyalty-card-locker/pull/155))
|
||||
- Home-Screen-Shortcut bei Hinzufügen oder Bearbeiten einer Karte. (https://github.com/brarcher/loyalty-card-locker/pull/155)
|
||||
- Widget entfernt. (https://github.com/brarcher/loyalty-card-locker/pull/155)
|
||||
- Backup-Exportfehler auf Android 7+ behoben. (https://github.com/brarcher/loyalty-card-locker/pull/153)
|
||||
- MIME-Typ bei Daten-Export genauer. (https://github.com/brarcher/loyalty-card-locker/pull/156)
|
||||
- Kein Fehler bei Kartenbearbeitung. (https://github.com/brarcher/loyalty-card-locker/pull/155)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
- Suche nach Karten hinzugefügt. (#320 (https://github.com/brarcher/loyalty-card-locker/pull/320))
|
||||
- Karten teilen und empfangen möglich. (#321 (https://github.com/brarcher/loyalty-card-locker/pull/321))
|
||||
- Unterstützung für den Dunkelmodus. (#322 (https://github.com/brarcher/loyalty-card-locker/pull/322))
|
||||
- Treuekarten können jetzt ohne Barcode gespeichert werden. (#324 (https://github.com/brarcher/loyalty-card-locker/pull/324))
|
||||
- Notizen können mehrere Zeilen umfassen. (#326 (https://github.com/brarcher/loyalty-card-locker/pull/326))
|
||||
- Verbesserungen bei der Notizgröße. (#319 (https://github.com/brarcher/loyalty-card-locker/pull/319))
|
||||
- Benachrichtigungen und App-Icon sichtbarer gemacht. (#330 (https://github.com/brarcher/loyalty-card-locker/pull/330))
|
||||
- Ziel-SDK auf Android 10 aktualisiert.
|
||||
- Übersetzungen verbessert:
|
||||
- NEU: Kartensuche hinzugefügt
|
||||
- NEU: Karten teilen und empfangen hinzugefügt
|
||||
- NEU: "Dark mode" Unterstützung
|
||||
- NEU: Treuekarten können ab jetzt ohne Barcode gespeichert werden
|
||||
- NEU: Notizen über mehrere Zeilen
|
||||
- Optimierung der Größe von Notizen
|
||||
- Optimierung der Benachrichtigungen und der Sichtbarkeit des App-Icon
|
||||
- Ziel-SDK auf Android 10 aktualisiert
|
||||
- Folgende Übersetzungen wurden verbessert:
|
||||
- Deutsch
|
||||
- Italienisch
|
||||
- Niederländisch
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
- BREAKING CHANGE: Backup-Format geändert, siehe https://github.com/TheLastProject/Catima/wiki/Export-format
|
||||
- BREAKING CHANGE: URL-Sharing-Format geändert, siehe https://github.com/TheLastProject/Catima/wiki/Card-sharing-URL-format
|
||||
- Taschenlampe beim Scannen an/aus
|
||||
- UPC-E-Unterstützung hinzugefügt
|
||||
- Fotos von Vorder- und Rückseite der Karte hinzufügen
|
||||
- Passwortgeschützte Zip-Dateien importieren
|
||||
- Stocard-Import (Beta) unterstützt
|
||||
- Leerzeichen bei Fidme-Import entfernt
|
||||
- Neues Voucher Vault-Format unterstützt
|
||||
- CHANGE: Backup-Format (https://github.com/TheLastProject/Catima/wiki/Export-format)
|
||||
- CHANGE: URL-Teilen-Format (https://github.com/TheLastProject/Catima/wiki/Card-sharing-URL-format)
|
||||
- SCANNEN: Lampe AN/AUS
|
||||
- UPC-E-Unterstützung
|
||||
- Fotos für Vor- und Rückseite der Karten
|
||||
- Import passwortgeschützter Zip-Dateien
|
||||
- Stocard-Import (Beta)
|
||||
- Fidme-Import: Ohne überflüssige Leerzeichen
|
||||
- Voucher Vault-Format export
|
||||
- Floating Action Buttons auf Android 4 repariert
|
||||
- Oberer Rand der Appbar repariert
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
- Bildschirmhelligkeit auf Maximum beim Anzeigen einer Karte. (Pull #54 (https://github.com/brarcher/loyalty-card-locker/pull/54))
|
||||
- Bestätigung beim Löschen von Karten hinzugefügt. (Pull #55 (https://github.com/brarcher/loyalty-card-locker/pull/55))
|
||||
- Deutsche (Pull #57 (https://github.com/brarcher/loyalty-card-locker/pull/57)) und tschechische (Pull #58 (https://github.com/brarcher/loyalty-card-locker/pull/58)) Übersetzungen hinzugefügt.
|
||||
- Italienische Übersetzung verbessert. (Pull #66 (https://github.com/brarcher/loyalty-card-locker/pull/66))
|
||||
- Das Anzeigen einer Karte steigert die Bildschirmhelligkeit aufs Maximum. (https://github.com/brarcher/loyalty-card-locker/pull/54)
|
||||
- NEU: Bestätigung beim Löschen von Karten. (https://github.com/brarcher/loyalty-card-locker/pull/55)
|
||||
- NEU: Übersetzung für Deutsch (https://github.com/brarcher/loyalty-card-locker/pull/57) und Tschechisch (https://github.com/brarcher/loyalty-card-locker/pull/58).
|
||||
- Italienische Übersetzung verbessert. (https://github.com/brarcher/loyalty-card-locker/pull/66)
|
||||
|
||||
@@ -2,6 +2,6 @@ Der Name „Locker“ war missverständlich. Ein neues Icon von betsythefc und d
|
||||
|
||||
Zusätzliche Funktionen/Verbesserungen:
|
||||
|
||||
- Flexibleres Import/Export von Karten. (Pull #76 (https://github.com/brarcher/loyalty-card-locker/pull/76))
|
||||
- Litauische Übersetzung hinzugefügt. (Pull #62 (https://github.com/brarcher/loyalty-card-locker/pull/62))
|
||||
- Französische Übersetzung hinzugefügt. (Pull #80 (https://github.com/brarcher/loyalty-card-locker/pull/80))
|
||||
- Flexiblerer Import/Export von Karten. (https://github.com/brarcher/loyalty-card-locker/pull/76)
|
||||
- NEU: Litauische Übersetzung. (https://github.com/brarcher/loyalty-card-locker/pull/62)
|
||||
- NEU: Französische Übersetzung. (https://github.com/brarcher/loyalty-card-locker/pull/80)
|
||||
|
||||
3
fastlane/metadata/android/en-US/changelogs/139.txt
Normal file
3
fastlane/metadata/android/en-US/changelogs/139.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
- Option to navigate cards using the volume buttons
|
||||
- Fix Stocard import
|
||||
- Fix "Import cancelled" message appearing after successful import
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user