mirror of
https://github.com/CatimaLoyalty/Android.git
synced 2025-12-24 15:47:53 -05:00
Compare commits
162 Commits
v2.31.1
...
create-pul
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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
|
||||
|
||||
10
CHANGELOG.md
10
CHANGELOG.md
@@ -1,5 +1,15 @@
|
||||
# Changelog
|
||||
|
||||
## Unreleased - 140
|
||||
|
||||
- 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+
|
||||
|
||||
@@ -21,8 +21,8 @@ android {
|
||||
applicationId = "me.hackerchick.catima"
|
||||
minSdk = 21
|
||||
targetSdk = 34
|
||||
versionCode = 138
|
||||
versionName = "2.31.1"
|
||||
versionCode = 139
|
||||
versionName = "2.32.0"
|
||||
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
multiDexEnabled = true
|
||||
@@ -96,7 +96,7 @@ dependencies {
|
||||
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.2")
|
||||
|
||||
// Splash Screen
|
||||
implementation("androidx.core:core-splashscreen:1.0.1")
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
<resources>
|
||||
<string name="app_name">Catima Debug</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;
|
||||
}
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ public class CardShortcutConfigure extends CatimaAppCompatActivity implements Lo
|
||||
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) {
|
||||
|
||||
@@ -79,7 +79,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 +87,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) {
|
||||
@@ -192,7 +192,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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -426,15 +426,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
|
||||
@@ -781,14 +784,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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -91,4 +91,8 @@ public class Settings {
|
||||
public String getColor() {
|
||||
return getString(R.string.setting_key_theme_color, mContext.getResources().getString(R.string.settings_key_system_theme));
|
||||
}
|
||||
|
||||
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>
|
||||
@@ -13,49 +13,51 @@ mondstern
|
||||
IllusiveMan196
|
||||
Altonss
|
||||
Michael Moroni
|
||||
GM
|
||||
Eric
|
||||
GM
|
||||
Petr Novák
|
||||
laralem
|
||||
大王叫我来巡山
|
||||
Joel A
|
||||
Taco
|
||||
大王叫我来巡山
|
||||
pfaffenrodt
|
||||
Scrambled777
|
||||
Aayush Gupta
|
||||
Scrambled777
|
||||
HudobniVolk
|
||||
Nyatsuki
|
||||
Giovanni Donisi
|
||||
Jiri Grönroos
|
||||
Giovanni Donisi
|
||||
Priit Jõerüüt
|
||||
Samantaz Fox
|
||||
Cliff Heraldo
|
||||
Sergio Paredes
|
||||
Ankit Tiwari
|
||||
Arno-github
|
||||
Milo Ivir
|
||||
Jose Delvani
|
||||
Balázs Meskó
|
||||
Milo Ivir
|
||||
Arno-github
|
||||
Ankit Tiwari
|
||||
Sergio Paredes
|
||||
Cliff Heraldo
|
||||
Jose Delvani
|
||||
mdvhimself
|
||||
Milan Šalka
|
||||
ikanakova
|
||||
Skrripy
|
||||
huuhaa
|
||||
Projjal Moitra
|
||||
Quentin PAGÈS
|
||||
ikanakova
|
||||
ngocanhtve
|
||||
Silvério Santos
|
||||
waffshappen
|
||||
Ziad OUALHADJ
|
||||
Robin Liu
|
||||
Priit Jõerüüt
|
||||
Silvério Santos
|
||||
ngocanhtve
|
||||
Quentin PAGÈS
|
||||
Projjal Moitra
|
||||
Denis Shilin
|
||||
Robin Liu
|
||||
Ziad OUALHADJ
|
||||
しいたけ
|
||||
Alexander Ivanov
|
||||
Miha Frangež
|
||||
Viet Nguyen Hoang
|
||||
Miha Frangež
|
||||
stavpup
|
||||
ehrt74
|
||||
Virginie
|
||||
Tim Trek
|
||||
Renko
|
||||
Michael Gangolf
|
||||
rudy3
|
||||
Kim Seohyun
|
||||
|
||||
@@ -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,6 @@
|
||||
<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>
|
||||
</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,11 @@
|
||||
<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>
|
||||
</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,6 @@
|
||||
<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>
|
||||
</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,6 @@
|
||||
<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>
|
||||
</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>
|
||||
@@ -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,11 @@
|
||||
<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>
|
||||
</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,6 @@
|
||||
<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>
|
||||
</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,8 @@
|
||||
<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>
|
||||
</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,6 @@
|
||||
<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>
|
||||
</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">Kaartenoverzicht</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,6 @@
|
||||
<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>
|
||||
</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,6 @@
|
||||
<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>
|
||||
</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,6 @@
|
||||
<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>
|
||||
</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,6 @@
|
||||
<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>
|
||||
</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,5 @@
|
||||
<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>
|
||||
</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,6 @@
|
||||
<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>
|
||||
</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,6 @@
|
||||
<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>
|
||||
</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>
|
||||
@@ -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,6 @@
|
||||
<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>
|
||||
</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>
|
||||
@@ -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,7 @@
|
||||
<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_general">General</string>
|
||||
<string name="settings_category_title_privacy">Privacy</string>
|
||||
<string name="action_display_options">Display options</string>
|
||||
|
||||
@@ -50,6 +50,15 @@
|
||||
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 +111,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();
|
||||
|
||||
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.1" 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
|
||||
2
fastlane/metadata/android/de-DE/changelogs/139.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/139.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
- Möglichkeit, mit den Lautstärketasten durch die Karten zu navigieren
|
||||
- Stocard Importfehler behoben
|
||||
@@ -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
|
||||
1
fastlane/metadata/android/en-US/changelogs/140.txt
Normal file
1
fastlane/metadata/android/en-US/changelogs/140.txt
Normal file
@@ -0,0 +1 @@
|
||||
- Fix text wrapping on add dialog
|
||||
1
fastlane/metadata/android/es-ES/changelogs/139.txt
Normal file
1
fastlane/metadata/android/es-ES/changelogs/139.txt
Normal file
@@ -0,0 +1 @@
|
||||
- Opción para navegar por las tarjetas usando los botones de volumen
|
||||
BIN
fastlane/metadata/android/et/images/featureGraphic.png
Normal file
BIN
fastlane/metadata/android/et/images/featureGraphic.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
1
fastlane/metadata/android/et/short_description.txt
Normal file
1
fastlane/metadata/android/et/short_description.txt
Normal file
@@ -0,0 +1 @@
|
||||
Kaarditasku kliendikaartidele, liikmekaartidele, kupongidele ja piletitele.
|
||||
1
fastlane/metadata/android/et/title.txt
Normal file
1
fastlane/metadata/android/et/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
Catima — kliendikaartide tasku
|
||||
@@ -3,17 +3,17 @@ Nustokite ieškoti plastikinių lojalumo kortelių parduotuvėje ar parduotuvėj
|
||||
|
||||
Pamirškite piniginę arba laikykite ją itin lengvą tik vertingiems daiktams.
|
||||
|
||||
Naudodami šį būtiną kasdienio naudojimo (EDC) įrankį galite nenaudingą plastiką pakeisti grynaisiais pinigais.
|
||||
Su šiuo būtinu kasdienio nešiojimo (EDC) įrankiu nenaudingą plastiką galite pakeisti grynaisiais pinigais.
|
||||
|
||||
- Išvenkite šnipinėjimo, programėlė prašo labai nedaug leidimų. Jokios prieigos prie interneto ir jokių reklamų.
|
||||
- Pridėkite korteles ar kodus su pavadinimais ir pasirenkamomis spalvomis.
|
||||
- Rankiniu būdu įveskite kodą, jei nėra saugotino brūkšninio kodo arba jo negalima naudoti.
|
||||
- Pridėkite korteles arba kodus su pavadinimais ir pasirenkamomis spalvomis.
|
||||
- Rankiniu būdu įveskite kodą, jei nėra saugotino brūkšninio kodo arba jei jis neįskaitomas.
|
||||
- Importuokite korteles ir kodus iš failų, "Catima", "FidMe", "Loyalty Card Keychain", "Stocard", "Voucher Vault".
|
||||
- Padarykite atsarginę visų kortelių kopiją ir, jei norite, perkelkite jas į naują įrenginį.
|
||||
- Padarykite atsarginę kopiją visų kortelių ir, jei norite, perkelkite jas į naują įrenginį.
|
||||
- Dalinkitės kuponais, išskirtiniais pasiūlymais, reklaminiais kodais arba kortelėmis ir kodais naudodami bet kurią programą.
|
||||
- Tamsi tema ir parinktys naudotojams su regos sutrikimais.
|
||||
- "Libre" programinės įrangos bendruomenės sukurta visiems.
|
||||
- Lokalizuoti rankų darbo vertimai į daugiau nei 20 kalbų.
|
||||
- Lokalizuoti rankų darbo vertimai į daugiau nei 40 kalbų.
|
||||
- Nemokama, remiama bendruomenės įnašais.
|
||||
- Naudokite, studijuokite, keiskite ir dalinkitės, kaip norite; <i>su visais</i>.
|
||||
- Ne tik laisvoji programinė įranga / atvirasis kodas. <i>"Copylefted"</i> laisvosios programinės įrangos (GPLv3+) kortelių valdymas.
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
- Permitir que nomes longos de lojas na pré-visualização sejam divididos em várias linhas
|
||||
- Opção para utilizar a imagem de frente ou de verso no menu de miniaturas
|
||||
- Pequenas correcções de importação/exportação
|
||||
- Pequenas correções de importação/exportação
|
||||
- Pequenas correções na interface do utilizador
|
||||
|
||||
1
fastlane/metadata/android/pt-PT/changelogs/139.txt
Normal file
1
fastlane/metadata/android/pt-PT/changelogs/139.txt
Normal file
@@ -0,0 +1 @@
|
||||
- Opção para navegar entre cartões usando os botões de volume
|
||||
2
fastlane/metadata/android/pt/changelogs/100.txt
Normal file
2
fastlane/metadata/android/pt/changelogs/100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
- Esconder pesquisa, expandir e organizar ícones desde que haja pelo menos 1 cartão
|
||||
- Várias correções nos temas
|
||||
3
fastlane/metadata/android/pt/changelogs/101.txt
Normal file
3
fastlane/metadata/android/pt/changelogs/101.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
- Correção no recortado para que use a cor do tema
|
||||
- Correção de pequenos problemas nos temas
|
||||
- Adicionar tema escuro "pure black" para ecrãs OLED
|
||||
2
fastlane/metadata/android/pt/changelogs/102.txt
Normal file
2
fastlane/metadata/android/pt/changelogs/102.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
- Várias pequenas correções
|
||||
- Correção de falha quando Norueguês é utilizado
|
||||
2
fastlane/metadata/android/pt/changelogs/103.txt
Normal file
2
fastlane/metadata/android/pt/changelogs/103.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
- Correção em todo o lado da seleção manual de linguagem
|
||||
- Correção da falha na vista de editor em locais sem região
|
||||
1
fastlane/metadata/android/pt/short_description.txt
Normal file
1
fastlane/metadata/android/pt/short_description.txt
Normal file
@@ -0,0 +1 @@
|
||||
Para os seus códigos de barras, subscrições, cupões e bilhetes.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user