From 65d8d4501879c1c7b0e20b469a628dc555046e31 Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Tue, 4 Oct 2022 18:38:44 +0200 Subject: [PATCH] WIP --- .../card_locker/BarcodeImageWriterTask.java | 71 ++------------ .../card_locker/BarcodeSelectorActivity.java | 13 ++- .../card_locker/BarcodeSelectorAdapter.java | 17 ++-- .../protect/card_locker/CatimaBarcode.java | 97 ------------------- .../card_locker/CatimaBarcodeWithValue.java | 19 ---- .../java/protect/card_locker/DBHelper.java | 8 +- .../protect/card_locker/ImportURIHelper.java | 7 +- .../java/protect/card_locker/LoyaltyCard.java | 12 ++- .../card_locker/LoyaltyCardEditActivity.java | 24 ++--- .../card_locker/LoyaltyCardViewActivity.java | 14 +-- .../card_locker/barcodes/AztecBarcode.java | 35 +++++++ .../protect/card_locker/barcodes/Barcode.java | 22 +++++ .../card_locker/barcodes/BarcodeFactory.java | 62 ++++++++++++ .../barcodes/BarcodeWithValue.java | 19 ++++ .../card_locker/barcodes/CodabarBarcode.java | 35 +++++++ .../card_locker/barcodes/Code128Barcode.java | 30 ++++++ .../card_locker/barcodes/Code39Barcode.java | 35 +++++++ .../card_locker/barcodes/Code93Barcode.java | 30 ++++++ .../barcodes/DataMatrixBarcode.java | 30 ++++++ .../card_locker/barcodes/Ean13Barcode.java | 30 ++++++ .../card_locker/barcodes/Ean8Barcode.java | 30 ++++++ .../card_locker/barcodes/ItfBarcode.java | 30 ++++++ .../card_locker/barcodes/Pdf417Barcode.java | 35 +++++++ .../card_locker/barcodes/QrCodeBarcode.java | 35 +++++++ .../card_locker/barcodes/UpcABarcode.java | 30 ++++++ .../card_locker/barcodes/UpcEBarcode.java | 30 ++++++ .../importexport/CatimaImporter.java | 1 - .../importexport/FidmeImporter.java | 1 - .../importexport/StocardImporter.java | 1 - .../importexport/VoucherVaultImporter.java | 1 - app/src/main/res/values-ar/strings.xml | 1 - app/src/main/res/values-bg/strings.xml | 1 - app/src/main/res/values-bn-rIN/strings.xml | 1 - app/src/main/res/values-bs/strings.xml | 1 - app/src/main/res/values-cs/strings.xml | 1 - app/src/main/res/values-de/strings.xml | 1 - app/src/main/res/values-el-rGR/strings.xml | 1 - app/src/main/res/values-es/strings.xml | 1 - app/src/main/res/values-fi/strings.xml | 1 - app/src/main/res/values-fr/strings.xml | 1 - app/src/main/res/values-hu/strings.xml | 1 - app/src/main/res/values-in-rID/strings.xml | 1 - app/src/main/res/values-it/strings.xml | 1 - app/src/main/res/values-ja/strings.xml | 1 - app/src/main/res/values-lb/strings.xml | 1 - app/src/main/res/values-lt/strings.xml | 1 - app/src/main/res/values-nb-rNO/strings.xml | 1 - app/src/main/res/values-nl/strings.xml | 1 - app/src/main/res/values-pl/strings.xml | 1 - app/src/main/res/values-pt/strings.xml | 1 - app/src/main/res/values-ru/strings.xml | 1 - app/src/main/res/values-sk/strings.xml | 1 - app/src/main/res/values-sl/strings.xml | 1 - app/src/main/res/values-sv/strings.xml | 1 - app/src/main/res/values-tr/strings.xml | 1 - app/src/main/res/values-uk/strings.xml | 1 - app/src/main/res/values-zh-rCN/strings.xml | 1 - app/src/main/res/values-zh-rTW/strings.xml | 1 - app/src/main/res/values/strings.xml | 1 - 59 files changed, 575 insertions(+), 258 deletions(-) delete mode 100644 app/src/main/java/protect/card_locker/CatimaBarcode.java delete mode 100644 app/src/main/java/protect/card_locker/CatimaBarcodeWithValue.java create mode 100644 app/src/main/java/protect/card_locker/barcodes/AztecBarcode.java create mode 100644 app/src/main/java/protect/card_locker/barcodes/Barcode.java create mode 100644 app/src/main/java/protect/card_locker/barcodes/BarcodeFactory.java create mode 100644 app/src/main/java/protect/card_locker/barcodes/BarcodeWithValue.java create mode 100644 app/src/main/java/protect/card_locker/barcodes/CodabarBarcode.java create mode 100644 app/src/main/java/protect/card_locker/barcodes/Code128Barcode.java create mode 100644 app/src/main/java/protect/card_locker/barcodes/Code39Barcode.java create mode 100644 app/src/main/java/protect/card_locker/barcodes/Code93Barcode.java create mode 100644 app/src/main/java/protect/card_locker/barcodes/DataMatrixBarcode.java create mode 100644 app/src/main/java/protect/card_locker/barcodes/Ean13Barcode.java create mode 100644 app/src/main/java/protect/card_locker/barcodes/Ean8Barcode.java create mode 100644 app/src/main/java/protect/card_locker/barcodes/ItfBarcode.java create mode 100644 app/src/main/java/protect/card_locker/barcodes/Pdf417Barcode.java create mode 100644 app/src/main/java/protect/card_locker/barcodes/QrCodeBarcode.java create mode 100644 app/src/main/java/protect/card_locker/barcodes/UpcABarcode.java create mode 100644 app/src/main/java/protect/card_locker/barcodes/UpcEBarcode.java diff --git a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java index 43d9405ae6..4bdc4fd4a7 100644 --- a/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java +++ b/app/src/main/java/protect/card_locker/BarcodeImageWriterTask.java @@ -17,6 +17,7 @@ import java.lang.ref.WeakReference; import protect.card_locker.async.CompatCallable; +import protect.card_locker.barcodes.Barcode; /** * This task will generate a barcode and load it into an ImageView. @@ -38,7 +39,7 @@ public class BarcodeImageWriterTask implements CompatCallable { private final WeakReference imageViewReference; private final WeakReference textViewReference; private String cardId; - private final CatimaBarcode format; + private final Barcode format; private final int imageHeight; private final int imageWidth; private final boolean showFallback; @@ -46,7 +47,7 @@ public class BarcodeImageWriterTask implements CompatCallable { BarcodeImageWriterTask( Context context, ImageView imageView, String cardIdString, - CatimaBarcode barcodeFormat, TextView textView, + Barcode barcodeFormat, TextView textView, boolean showFallback, Runnable callback, boolean roundCornerPadding ) { mContext = context; @@ -90,68 +91,8 @@ public class BarcodeImageWriterTask implements CompatCallable { this.showFallback = showFallback; } - private int getMaxWidth(CatimaBarcode format) { - switch (format.format()) { - // 2D barcodes - case AZTEC: - case DATA_MATRIX: - case MAXICODE: - case PDF_417: - case QR_CODE: - return MAX_WIDTH_2D; - - // 1D barcodes: - case CODABAR: - case CODE_39: - case CODE_93: - case CODE_128: - case EAN_8: - case EAN_13: - case ITF: - case UPC_A: - case UPC_E: - case RSS_14: - case RSS_EXPANDED: - case UPC_EAN_EXTENSION: - default: - return MAX_WIDTH_1D; - } - } - - private String getFallbackString(CatimaBarcode format) { - switch (format.format()) { - // 2D barcodes - case AZTEC: - return "AZTEC"; - case DATA_MATRIX: - return "DATA_MATRIX"; - case PDF_417: - return "PDF_417"; - case QR_CODE: - return "QR_CODE"; - - // 1D barcodes: - case CODABAR: - return "C0C"; - case CODE_39: - return "CODE_39"; - case CODE_93: - return "CODE_93"; - case CODE_128: - return "CODE_128"; - case EAN_8: - return "32123456"; - case EAN_13: - return "5901234123457"; - case ITF: - return "1003"; - case UPC_A: - return "123456789012"; - case UPC_E: - return "0123456"; - default: - throw new IllegalArgumentException("No fallback known for this barcode type"); - } + private int getMaxWidth(Barcode format) { + return format.is2D() ? MAX_WIDTH_2D : MAX_WIDTH_1D; } private Bitmap generate() { @@ -227,7 +168,7 @@ public Bitmap doInBackground(Void... params) { if (showFallback && !Thread.currentThread().isInterrupted()) { Log.i(TAG, "Barcode generation failed, generating fallback..."); - cardId = getFallbackString(format); + cardId = format.exampleValue(); bitmap = generate(); return bitmap; } diff --git a/app/src/main/java/protect/card_locker/BarcodeSelectorActivity.java b/app/src/main/java/protect/card_locker/BarcodeSelectorActivity.java index e33df16147..7d123aa5ae 100644 --- a/app/src/main/java/protect/card_locker/BarcodeSelectorActivity.java +++ b/app/src/main/java/protect/card_locker/BarcodeSelectorActivity.java @@ -18,6 +18,9 @@ import androidx.appcompat.app.ActionBar; import androidx.appcompat.widget.Toolbar; +import protect.card_locker.barcodes.Barcode; +import protect.card_locker.barcodes.BarcodeFactory; +import protect.card_locker.barcodes.BarcodeWithValue; /** * This activity is callable and will allow a user to enter @@ -86,10 +89,10 @@ public void onTextChanged(CharSequence s, int start, int before, int count) { private void generateBarcodes(String value) { // Update barcodes - ArrayList barcodes = new ArrayList<>(); - for (BarcodeFormat barcodeFormat : CatimaBarcode.barcodeFormats) { - CatimaBarcode catimaBarcode = CatimaBarcode.fromBarcode(barcodeFormat); - barcodes.add(new CatimaBarcodeWithValue(catimaBarcode, value)); + ArrayList barcodes = new ArrayList<>(); + for (BarcodeFormat barcodeFormat : BarcodeFactory.getAllFormats()) { + Barcode catimaBarcode = BarcodeFactory.fromBarcode(barcodeFormat); + barcodes.add(new BarcodeWithValue(catimaBarcode, value)); } mAdapter.setBarcodes(barcodes); } @@ -118,7 +121,7 @@ public boolean onOptionsItemSelected(MenuItem item) { @Override public void onRowClicked(int inputPosition, View view) { - CatimaBarcodeWithValue barcodeWithValue = mAdapter.getItem(inputPosition); + BarcodeWithValue barcodeWithValue = mAdapter.getItem(inputPosition); CatimaBarcode catimaBarcode = barcodeWithValue.catimaBarcode(); if (!mAdapter.isValid(view)) { diff --git a/app/src/main/java/protect/card_locker/BarcodeSelectorAdapter.java b/app/src/main/java/protect/card_locker/BarcodeSelectorAdapter.java index def91e3893..3a6d24a176 100644 --- a/app/src/main/java/protect/card_locker/BarcodeSelectorAdapter.java +++ b/app/src/main/java/protect/card_locker/BarcodeSelectorAdapter.java @@ -13,8 +13,11 @@ import java.util.ArrayList; import protect.card_locker.async.TaskHandler; +import protect.card_locker.barcodes.Barcode; +import protect.card_locker.barcodes.BarcodeFactory; +import protect.card_locker.barcodes.BarcodeWithValue; -public class BarcodeSelectorAdapter extends ArrayAdapter { +public class BarcodeSelectorAdapter extends ArrayAdapter { private static final String TAG = "Catima"; private final TaskHandler mTasks = new TaskHandler(); @@ -29,12 +32,12 @@ public interface BarcodeSelectorListener { void onRowClicked(int inputPosition, View view); } - public BarcodeSelectorAdapter(Context context, ArrayList barcodes, BarcodeSelectorListener barcodeSelectorListener) { + public BarcodeSelectorAdapter(Context context, ArrayList barcodes, BarcodeSelectorListener barcodeSelectorListener) { super(context, 0, barcodes); mListener = barcodeSelectorListener; } - public void setBarcodes(ArrayList barcodes) { + public void setBarcodes(ArrayList barcodes) { clear(); addAll(barcodes); notifyDataSetChanged(); @@ -43,9 +46,9 @@ public void setBarcodes(ArrayList barcodes) { @Override public View getView(int position, View convertView, ViewGroup parent) { - CatimaBarcodeWithValue catimaBarcodeWithValue = getItem(position); - CatimaBarcode catimaBarcode = catimaBarcodeWithValue.catimaBarcode(); - String value = catimaBarcodeWithValue.value(); + BarcodeWithValue barcodeWithValue = getItem(position); + Barcode catimaBarcode = barcodeWithValue.barcode(); + String value = barcodeWithValue.value(); ViewHolder viewHolder; if (convertView == null) { @@ -73,7 +76,7 @@ public boolean isValid(View view) { } private void createBarcodeOption(final ImageView image, final String formatType, final String cardId, final TextView text) { - final CatimaBarcode format = CatimaBarcode.fromName(formatType); + final Barcode format = BarcodeFactory.fromName(formatType); image.setImageBitmap(null); image.setClipToOutline(true); diff --git a/app/src/main/java/protect/card_locker/CatimaBarcode.java b/app/src/main/java/protect/card_locker/CatimaBarcode.java deleted file mode 100644 index d19743a0b8..0000000000 --- a/app/src/main/java/protect/card_locker/CatimaBarcode.java +++ /dev/null @@ -1,97 +0,0 @@ -package protect.card_locker; - -import com.google.zxing.BarcodeFormat; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -public class CatimaBarcode { - public static final List barcodeFormats = Collections.unmodifiableList(Arrays.asList( - BarcodeFormat.AZTEC, - BarcodeFormat.CODE_39, - BarcodeFormat.CODE_93, - BarcodeFormat.CODE_128, - BarcodeFormat.CODABAR, - BarcodeFormat.DATA_MATRIX, - BarcodeFormat.EAN_8, - BarcodeFormat.EAN_13, - BarcodeFormat.ITF, - BarcodeFormat.PDF_417, - BarcodeFormat.QR_CODE, - BarcodeFormat.UPC_A, - BarcodeFormat.UPC_E - )); - - public static final List barcodePrettyNames = Collections.unmodifiableList(Arrays.asList( - "Aztec", - "Code 39", - "Code 93", - "Code 128", - "Codabar", - "Data Matrix", - "EAN 8", - "EAN 13", - "ITF", - "PDF 417", - "QR Code", - "UPC A", - "UPC E" - )); - - private final BarcodeFormat mBarcodeFormat; - - private CatimaBarcode(BarcodeFormat barcodeFormat) { - mBarcodeFormat = barcodeFormat; - } - - public static CatimaBarcode fromBarcode(BarcodeFormat barcodeFormat) { - return new CatimaBarcode(barcodeFormat); - } - - public static CatimaBarcode fromName(String name) { - return new CatimaBarcode(BarcodeFormat.valueOf(name)); - } - - public static CatimaBarcode fromPrettyName(String prettyName) { - try { - return new CatimaBarcode(barcodeFormats.get(barcodePrettyNames.indexOf(prettyName))); - } catch (IndexOutOfBoundsException e) { - throw new IllegalArgumentException("No barcode type with pretty name " + prettyName + " known!"); - } - } - - public boolean isSupported() { - return barcodeFormats.contains(mBarcodeFormat); - } - - public boolean isSquare() { - return mBarcodeFormat == BarcodeFormat.AZTEC - || mBarcodeFormat == BarcodeFormat.DATA_MATRIX - || mBarcodeFormat == BarcodeFormat.MAXICODE - || mBarcodeFormat == BarcodeFormat.QR_CODE; - } - - public boolean hasInternalPadding() { - return mBarcodeFormat == BarcodeFormat.PDF_417 - || mBarcodeFormat == BarcodeFormat.QR_CODE; - } - - public BarcodeFormat format() { - return mBarcodeFormat; - } - - public String name() { - return mBarcodeFormat.name(); - } - - public String prettyName() { - int index = barcodeFormats.indexOf(mBarcodeFormat); - - if (index == -1 || index >= barcodePrettyNames.size()) { - return mBarcodeFormat.name(); - } - - return barcodePrettyNames.get(index); - } -} diff --git a/app/src/main/java/protect/card_locker/CatimaBarcodeWithValue.java b/app/src/main/java/protect/card_locker/CatimaBarcodeWithValue.java deleted file mode 100644 index cd02ea3ee7..0000000000 --- a/app/src/main/java/protect/card_locker/CatimaBarcodeWithValue.java +++ /dev/null @@ -1,19 +0,0 @@ -package protect.card_locker; - -public class CatimaBarcodeWithValue { - private final CatimaBarcode mCatimaBarcode; - private final String mValue; - - public CatimaBarcodeWithValue(CatimaBarcode catimaBarcode, String value) { - mCatimaBarcode = catimaBarcode; - mValue = value; - } - - public CatimaBarcode catimaBarcode() { - return mCatimaBarcode; - } - - public String value() { - return mValue; - } -} diff --git a/app/src/main/java/protect/card_locker/DBHelper.java b/app/src/main/java/protect/card_locker/DBHelper.java index 7ae2f28bd4..98c830ff55 100644 --- a/app/src/main/java/protect/card_locker/DBHelper.java +++ b/app/src/main/java/protect/card_locker/DBHelper.java @@ -18,6 +18,8 @@ import java.util.Date; import java.util.List; +import protect.card_locker.barcodes.Barcode; + public class DBHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = "Catima.db"; public static final int ORIGINAL_DATABASE_VERSION = 1; @@ -360,7 +362,7 @@ private static void updateFTS(final SQLiteDatabase db, final int id, final Strin public static long insertLoyaltyCard( final SQLiteDatabase database, final String store, final String note, final Date expiry, final BigDecimal balance, final Currency balanceType, final String cardId, - final String barcodeId, final CatimaBarcode barcodeType, final Integer headerColor, + final String barcodeId, final Barcode barcodeType, final Integer headerColor, final int starStatus, final Long lastUsed, final int archiveStatus) { database.beginTransaction(); @@ -392,7 +394,7 @@ public static long insertLoyaltyCard( public static long insertLoyaltyCard( final SQLiteDatabase database, final int id, final String store, final String note, final Date expiry, final BigDecimal balance, final Currency balanceType, - final String cardId, final String barcodeId, final CatimaBarcode barcodeType, + final String cardId, final String barcodeId, final Barcode barcodeType, final Integer headerColor, final int starStatus, final Long lastUsed, final int archiveStatus) { database.beginTransaction(); @@ -425,7 +427,7 @@ public static long insertLoyaltyCard( public static boolean updateLoyaltyCard( SQLiteDatabase database, final int id, final String store, final String note, final Date expiry, final BigDecimal balance, final Currency balanceType, - final String cardId, final String barcodeId, final CatimaBarcode barcodeType, + final String cardId, final String barcodeId, final Barcode barcodeType, final Integer headerColor, final int starStatus, final Long lastUsed, final int archiveStatus) { database.beginTransaction(); diff --git a/app/src/main/java/protect/card_locker/ImportURIHelper.java b/app/src/main/java/protect/card_locker/ImportURIHelper.java index 1549ed9cd5..c15a02a2f4 100644 --- a/app/src/main/java/protect/card_locker/ImportURIHelper.java +++ b/app/src/main/java/protect/card_locker/ImportURIHelper.java @@ -15,6 +15,9 @@ import java.util.HashMap; import java.util.List; +import protect.card_locker.barcodes.Barcode; +import protect.card_locker.barcodes.BarcodeFactory; + public class ImportURIHelper { private static final String STORE = DBHelper.LoyaltyCardDbIds.STORE; private static final String NOTE = DBHelper.LoyaltyCardDbIds.NOTE; @@ -61,7 +64,7 @@ public LoyaltyCard parse(Uri uri) throws InvalidObjectException { try { // These values are allowed to be null - CatimaBarcode barcodeType = null; + Barcode barcodeType = null; Date expiry = null; BigDecimal balance = new BigDecimal("0"); Currency balanceType = null; @@ -95,7 +98,7 @@ public LoyaltyCard parse(Uri uri) throws InvalidObjectException { String unparsedBarcodeType = kv.get(BARCODE_TYPE); if (unparsedBarcodeType != null && !unparsedBarcodeType.equals("")) { - barcodeType = CatimaBarcode.fromName(unparsedBarcodeType); + barcodeType = BarcodeFactory.fromName(unparsedBarcodeType); } String unparsedBalance = kv.get(BALANCE); diff --git a/app/src/main/java/protect/card_locker/LoyaltyCard.java b/app/src/main/java/protect/card_locker/LoyaltyCard.java index 31255a0431..dd9d17cd71 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCard.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCard.java @@ -9,6 +9,8 @@ import java.util.Date; import androidx.annotation.Nullable; +import protect.card_locker.barcodes.Barcode; +import protect.card_locker.barcodes.BarcodeFactory; public class LoyaltyCard implements Parcelable { public final int id; @@ -23,7 +25,7 @@ public class LoyaltyCard implements Parcelable { public final String barcodeId; @Nullable - public final CatimaBarcode barcodeType; + public final Barcode barcodeType; @Nullable public final Integer headerColor; @@ -35,7 +37,7 @@ public class LoyaltyCard implements Parcelable { public LoyaltyCard(final int id, final String store, final String note, final Date expiry, final BigDecimal balance, final Currency balanceType, final String cardId, - @Nullable final String barcodeId, @Nullable final CatimaBarcode barcodeType, + @Nullable final String barcodeId, @Nullable final Barcode barcodeType, @Nullable final Integer headerColor, final int starStatus, final long lastUsed, final int zoomLevel, final int archiveStatus) { this.id = id; @@ -65,7 +67,7 @@ protected LoyaltyCard(Parcel in) { cardId = in.readString(); barcodeId = in.readString(); String tmpBarcodeType = in.readString(); - barcodeType = !tmpBarcodeType.isEmpty() ? CatimaBarcode.fromName(tmpBarcodeType) : null; + barcodeType = !tmpBarcodeType.isEmpty() ? BarcodeFactory.fromName(tmpBarcodeType) : null; int tmpHeaderColor = in.readInt(); headerColor = tmpHeaderColor != -1 ? tmpHeaderColor : null; starStatus = in.readInt(); @@ -109,13 +111,13 @@ public static LoyaltyCard toLoyaltyCard(Cursor cursor) { int balanceTypeColumn = cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.BALANCE_TYPE); int headerColorColumn = cursor.getColumnIndexOrThrow(DBHelper.LoyaltyCardDbIds.HEADER_COLOR); - CatimaBarcode barcodeType = null; + Barcode barcodeType = null; Currency balanceType = null; Date expiry = null; Integer headerColor = null; if (cursor.isNull(barcodeTypeColumn) == false) { - barcodeType = CatimaBarcode.fromName(cursor.getString(barcodeTypeColumn)); + barcodeType = BarcodeFactory.fromName(cursor.getString(barcodeTypeColumn)); } if (cursor.isNull(balanceTypeColumn) == false) { diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java index fcc3d11aed..0b1298c0bd 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java @@ -77,6 +77,8 @@ import androidx.exifinterface.media.ExifInterface; import androidx.fragment.app.DialogFragment; import protect.card_locker.async.TaskHandler; +import protect.card_locker.barcodes.Barcode; +import protect.card_locker.barcodes.BarcodeFactory; public class LoyaltyCardEditActivity extends CatimaAppCompatActivity { private static final String TAG = "Catima"; @@ -204,7 +206,7 @@ private static LoyaltyCard updateTempState(LoyaltyCard loyaltyCard, LoyaltyCardF (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), + (Barcode) (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 @@ -553,13 +555,7 @@ public void onTextChanged(CharSequence s, int start, int before, int count) { updateTempState(LoyaltyCardField.barcodeType, null); } else { try { - CatimaBarcode barcodeFormat = CatimaBarcode.fromPrettyName(s.toString()); - - updateTempState(LoyaltyCardField.barcodeType, barcodeFormat); - - if (!barcodeFormat.isSupported()) { - Toast.makeText(LoyaltyCardEditActivity.this, getString(R.string.unsupportedBarcodeType), Toast.LENGTH_LONG).show(); - } + updateTempState(LoyaltyCardField.barcodeType, barcodeTypeField.getTag()); } catch (IllegalArgumentException e) { } } @@ -820,7 +816,7 @@ public void onResume() { formatBalanceCurrencyField(tempLoyaltyCard.balanceType); cardIdFieldView.setText(tempLoyaltyCard.cardId); barcodeIdField.setText(tempLoyaltyCard.barcodeId != null ? tempLoyaltyCard.barcodeId : getString(R.string.sameAsCardId)); - barcodeTypeField.setText(tempLoyaltyCard.barcodeType != null ? tempLoyaltyCard.barcodeType.prettyName() : getString(R.string.noBarcode)); + setbarcodeTypeField(tempLoyaltyCard.barcodeType); if (groupsChips.getChildCount() == 0) { List existingGroups = DBHelper.getGroups(mDatabase); @@ -869,9 +865,10 @@ public void onResume() { // Update from intent if (barcodeType != null) { try { - barcodeTypeField.setText(CatimaBarcode.fromName(barcodeType).prettyName()); + Barcode barcode = BarcodeFactory.fromName(barcodeType); + setbarcodeTypeField(barcode); } catch (IllegalArgumentException e) { - barcodeTypeField.setText(getString(R.string.noBarcode)); + setbarcodeTypeField(null); } } @@ -949,6 +946,11 @@ protected void setCardImage(ImageView imageView, Bitmap bitmap, boolean applyFal } } + private void setbarcodeTypeField(Barcode barcode) { + barcodeTypeField.setTag(barcode); + barcodeTypeField.setText(barcode != null ? barcode.prettyName() : getString(R.string.noBarcode)); + } + protected static void formatExpiryField(Context context, EditText expiryField, Date expiry) { expiryField.setTag(expiry); diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index b301cf5f0e..d59b7d3507 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -64,6 +64,7 @@ import java.util.List; import protect.card_locker.async.TaskHandler; +import protect.card_locker.barcodes.Barcode; import protect.card_locker.preferences.Settings; public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements GestureDetector.OnGestureListener { @@ -101,7 +102,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements String cardIdString; String barcodeIdString; - CatimaBarcode format; + Barcode format; FloatingActionButton editButton; @@ -117,7 +118,6 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements int mainImageIndex = 0; List imageTypes; private ImageView[] dots; - boolean isBarcodeSupported = true; static final String STATE_IMAGEINDEX = "imageIndex"; static final String STATE_FULLSCREEN = "isFullscreen"; @@ -713,17 +713,9 @@ public void onResume() { // Set shadow colour of store text so even same color on same color would be readable storeName.setShadowLayer(1, 1, 1, backgroundNeedsDarkIcons ? Color.BLACK : Color.WHITE); - if (format != null && !format.isSupported()) { - isBarcodeSupported = false; - - Toast.makeText(this, getString(R.string.unsupportedBarcodeType), Toast.LENGTH_LONG).show(); - } else if (format == null) { - isBarcodeSupported = false; - } - imageTypes = new ArrayList<>(); - if (isBarcodeSupported) { + if (format != null) { imageTypes.add(ImageType.BARCODE); } diff --git a/app/src/main/java/protect/card_locker/barcodes/AztecBarcode.java b/app/src/main/java/protect/card_locker/barcodes/AztecBarcode.java new file mode 100644 index 0000000000..8f708eb2b8 --- /dev/null +++ b/app/src/main/java/protect/card_locker/barcodes/AztecBarcode.java @@ -0,0 +1,35 @@ +package protect.card_locker.barcodes; + +import com.google.zxing.BarcodeFormat; + +public class AztecBarcode extends Barcode { + @Override + public String prettyName() { + return "Aztec"; + } + + @Override + public BarcodeFormat format() { + return BarcodeFormat.AZTEC; + } + + @Override + public String exampleValue() { + return "AZTEC"; + } + + @Override + public boolean isSquare() { + return true; + } + + @Override + public boolean is2D() { + return true; + } + + @Override + public boolean hasInternalPadding() { + return false; + } +} diff --git a/app/src/main/java/protect/card_locker/barcodes/Barcode.java b/app/src/main/java/protect/card_locker/barcodes/Barcode.java new file mode 100644 index 0000000000..410bf130bc --- /dev/null +++ b/app/src/main/java/protect/card_locker/barcodes/Barcode.java @@ -0,0 +1,22 @@ +package protect.card_locker.barcodes; + +import com.google.zxing.BarcodeFormat; + +/** + * Abstract barcode class + */ +public abstract class Barcode { + public String name() { + return format().name(); + }; + abstract public String prettyName(); + abstract public BarcodeFormat format(); + abstract public String exampleValue(); + + abstract public boolean isSquare(); + abstract public boolean is2D(); + public boolean hasInternalPadding() { + return false; + }; + public boolean isSupported() { return true; }; +} diff --git a/app/src/main/java/protect/card_locker/barcodes/BarcodeFactory.java b/app/src/main/java/protect/card_locker/barcodes/BarcodeFactory.java new file mode 100644 index 0000000000..fc9eeabed8 --- /dev/null +++ b/app/src/main/java/protect/card_locker/barcodes/BarcodeFactory.java @@ -0,0 +1,62 @@ +package protect.card_locker.barcodes; + +import com.google.zxing.BarcodeFormat; + +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +public class BarcodeFactory { + public static final Map barcodeNames = new HashMap<>() {{ + put(BarcodeFormat.AZTEC.name(), BarcodeFormat.AZTEC); + put(BarcodeFormat.CODE_39.name(), BarcodeFormat.CODE_39); + put(BarcodeFormat.CODE_93.name(), BarcodeFormat.CODE_93); + put(BarcodeFormat.CODE_128.name(), BarcodeFormat.CODE_128); + put(BarcodeFormat.CODABAR.name(), BarcodeFormat.CODABAR); + put(BarcodeFormat.DATA_MATRIX.name(), BarcodeFormat.DATA_MATRIX); + put(BarcodeFormat.EAN_8.name(), BarcodeFormat.EAN_8); + put(BarcodeFormat.EAN_13.name(), BarcodeFormat.EAN_13); + put(BarcodeFormat.ITF.name(), BarcodeFormat.ITF); + put(BarcodeFormat.PDF_417.name(), BarcodeFormat.PDF_417); + put(BarcodeFormat.QR_CODE.name(), BarcodeFormat.QR_CODE); + put(BarcodeFormat.UPC_A.name(), BarcodeFormat.UPC_A); + put(BarcodeFormat.UPC_E.name(), BarcodeFormat.UPC_E); + }}; + + public static Barcode fromBarcode(BarcodeFormat barcodeFormat) { + switch (barcodeFormat) { + case AZTEC: return new AztecBarcode(); + case CODE_39: return new Code39Barcode(); + case CODE_93: return new Code93Barcode(); + case CODE_128: return new Code128Barcode(); + case CODABAR: return new CodabarBarcode(); + case DATA_MATRIX: return new DataMatrixBarcode(); + case EAN_8: return new Ean8Barcode(); + case EAN_13: return new Ean13Barcode(); + case ITF: return new ItfBarcode(); + case PDF_417: return new Pdf417Barcode(); + case QR_CODE: return new QrCodeBarcode(); + case UPC_A: return new UpcABarcode(); + case UPC_E: return new UpcEBarcode(); + default: throw new IllegalArgumentException(); + } + } + + public static Barcode fromName(String name) { + return fromBarcode(Objects.requireNonNull(barcodeNames.get(name))); + } + + public static boolean isSupported(BarcodeFormat barcodeFormat) { + return barcodeNames.containsValue(barcodeFormat); + } + + public static boolean isSupported(String name) { + return barcodeNames.containsKey(name); + } + + public static Collection getAllFormats() { + return barcodeNames.values(); + } +} diff --git a/app/src/main/java/protect/card_locker/barcodes/BarcodeWithValue.java b/app/src/main/java/protect/card_locker/barcodes/BarcodeWithValue.java new file mode 100644 index 0000000000..161dec9674 --- /dev/null +++ b/app/src/main/java/protect/card_locker/barcodes/BarcodeWithValue.java @@ -0,0 +1,19 @@ +package protect.card_locker.barcodes; + +public class BarcodeWithValue { + private final Barcode mBarcode; + private final String mValue; + + public BarcodeWithValue(Barcode barcode, String value) { + mBarcode = barcode; + mValue = value; + } + + public Barcode barcode() { + return mBarcode; + } + + public String value() { + return mValue; + } +} diff --git a/app/src/main/java/protect/card_locker/barcodes/CodabarBarcode.java b/app/src/main/java/protect/card_locker/barcodes/CodabarBarcode.java new file mode 100644 index 0000000000..3dcf7601c6 --- /dev/null +++ b/app/src/main/java/protect/card_locker/barcodes/CodabarBarcode.java @@ -0,0 +1,35 @@ +package protect.card_locker.barcodes; + +import com.google.zxing.BarcodeFormat; + +public class CodabarBarcode extends Barcode { + @Override + public String prettyName() { + return "Codabar"; + } + + @Override + public BarcodeFormat format() { + return BarcodeFormat.CODABAR; + } + + @Override + public String exampleValue() { + return "C0C"; + } + + @Override + public boolean isSquare() { + return false; + } + + @Override + public boolean is2D() { + return false; + } + + @Override + public boolean hasInternalPadding() { + return false; + } +} diff --git a/app/src/main/java/protect/card_locker/barcodes/Code128Barcode.java b/app/src/main/java/protect/card_locker/barcodes/Code128Barcode.java new file mode 100644 index 0000000000..a5935513b1 --- /dev/null +++ b/app/src/main/java/protect/card_locker/barcodes/Code128Barcode.java @@ -0,0 +1,30 @@ +package protect.card_locker.barcodes; + +import com.google.zxing.BarcodeFormat; + +public class Code128Barcode extends Barcode { + @Override + public String prettyName() { + return "Code 128"; + } + + @Override + public BarcodeFormat format() { + return BarcodeFormat.CODE_128; + } + + @Override + public String exampleValue() { + return "CODE_128"; + } + + @Override + public boolean isSquare() { + return false; + } + + @Override + public boolean is2D() { + return false; + } +} diff --git a/app/src/main/java/protect/card_locker/barcodes/Code39Barcode.java b/app/src/main/java/protect/card_locker/barcodes/Code39Barcode.java new file mode 100644 index 0000000000..b96f390be9 --- /dev/null +++ b/app/src/main/java/protect/card_locker/barcodes/Code39Barcode.java @@ -0,0 +1,35 @@ +package protect.card_locker.barcodes; + +import com.google.zxing.BarcodeFormat; + +public class Code39Barcode extends Barcode { + @Override + public String prettyName() { + return "Code 39"; + } + + @Override + public BarcodeFormat format() { + return BarcodeFormat.CODE_39; + } + + @Override + public String exampleValue() { + return "CODE_39"; + } + + @Override + public boolean isSquare() { + return false; + } + + @Override + public boolean is2D() { + return false; + } + + @Override + public boolean hasInternalPadding() { + return false; + } +} diff --git a/app/src/main/java/protect/card_locker/barcodes/Code93Barcode.java b/app/src/main/java/protect/card_locker/barcodes/Code93Barcode.java new file mode 100644 index 0000000000..ce27d73dcc --- /dev/null +++ b/app/src/main/java/protect/card_locker/barcodes/Code93Barcode.java @@ -0,0 +1,30 @@ +package protect.card_locker.barcodes; + +import com.google.zxing.BarcodeFormat; + +public class Code93Barcode extends Barcode { + @Override + public String prettyName() { + return "Code 93"; + } + + @Override + public BarcodeFormat format() { + return BarcodeFormat.CODE_93; + } + + @Override + public String exampleValue() { + return "CODE_93"; + } + + @Override + public boolean isSquare() { + return false; + } + + @Override + public boolean is2D() { + return false; + } +} diff --git a/app/src/main/java/protect/card_locker/barcodes/DataMatrixBarcode.java b/app/src/main/java/protect/card_locker/barcodes/DataMatrixBarcode.java new file mode 100644 index 0000000000..2c12246b6f --- /dev/null +++ b/app/src/main/java/protect/card_locker/barcodes/DataMatrixBarcode.java @@ -0,0 +1,30 @@ +package protect.card_locker.barcodes; + +import com.google.zxing.BarcodeFormat; + +public class DataMatrixBarcode extends Barcode { + @Override + public String prettyName() { + return "Data Matrix"; + } + + @Override + public BarcodeFormat format() { + return BarcodeFormat.DATA_MATRIX; + } + + @Override + public String exampleValue() { + return "DATA_MATRIX"; + } + + @Override + public boolean isSquare() { + return true; + } + + @Override + public boolean is2D() { + return true; + } +} diff --git a/app/src/main/java/protect/card_locker/barcodes/Ean13Barcode.java b/app/src/main/java/protect/card_locker/barcodes/Ean13Barcode.java new file mode 100644 index 0000000000..6349ede4ec --- /dev/null +++ b/app/src/main/java/protect/card_locker/barcodes/Ean13Barcode.java @@ -0,0 +1,30 @@ +package protect.card_locker.barcodes; + +import com.google.zxing.BarcodeFormat; + +public class Ean13Barcode extends Barcode { + @Override + public String prettyName() { + return "EAN 13"; + } + + @Override + public BarcodeFormat format() { + return BarcodeFormat.EAN_13; + } + + @Override + public String exampleValue() { + return "5901234123457"; + } + + @Override + public boolean isSquare() { + return false; + } + + @Override + public boolean is2D() { + return false; + } +} diff --git a/app/src/main/java/protect/card_locker/barcodes/Ean8Barcode.java b/app/src/main/java/protect/card_locker/barcodes/Ean8Barcode.java new file mode 100644 index 0000000000..3b2483fa80 --- /dev/null +++ b/app/src/main/java/protect/card_locker/barcodes/Ean8Barcode.java @@ -0,0 +1,30 @@ +package protect.card_locker.barcodes; + +import com.google.zxing.BarcodeFormat; + +public class Ean8Barcode extends Barcode { + @Override + public String prettyName() { + return "EAN 8"; + } + + @Override + public BarcodeFormat format() { + return BarcodeFormat.EAN_8; + } + + @Override + public String exampleValue() { + return "32123456"; + } + + @Override + public boolean isSquare() { + return false; + } + + @Override + public boolean is2D() { + return false; + } +} diff --git a/app/src/main/java/protect/card_locker/barcodes/ItfBarcode.java b/app/src/main/java/protect/card_locker/barcodes/ItfBarcode.java new file mode 100644 index 0000000000..a0d8ac8d82 --- /dev/null +++ b/app/src/main/java/protect/card_locker/barcodes/ItfBarcode.java @@ -0,0 +1,30 @@ +package protect.card_locker.barcodes; + +import com.google.zxing.BarcodeFormat; + +public class ItfBarcode extends Barcode { + @Override + public String prettyName() { + return "ITF"; + } + + @Override + public BarcodeFormat format() { + return BarcodeFormat.ITF; + } + + @Override + public String exampleValue() { + return "1003"; + } + + @Override + public boolean isSquare() { + return false; + } + + @Override + public boolean is2D() { + return false; + } +} diff --git a/app/src/main/java/protect/card_locker/barcodes/Pdf417Barcode.java b/app/src/main/java/protect/card_locker/barcodes/Pdf417Barcode.java new file mode 100644 index 0000000000..63ca4acc8b --- /dev/null +++ b/app/src/main/java/protect/card_locker/barcodes/Pdf417Barcode.java @@ -0,0 +1,35 @@ +package protect.card_locker.barcodes; + +import com.google.zxing.BarcodeFormat; + +public class Pdf417Barcode extends Barcode { + @Override + public String prettyName() { + return "PDF 417"; + } + + @Override + public BarcodeFormat format() { + return BarcodeFormat.PDF_417; + } + + @Override + public String exampleValue() { + return "PDF_417"; + } + + @Override + public boolean isSquare() { + return false; + } + + @Override + public boolean is2D() { + return true; + } + + @Override + public boolean hasInternalPadding() { + return true; + } +} diff --git a/app/src/main/java/protect/card_locker/barcodes/QrCodeBarcode.java b/app/src/main/java/protect/card_locker/barcodes/QrCodeBarcode.java new file mode 100644 index 0000000000..d7b27e3964 --- /dev/null +++ b/app/src/main/java/protect/card_locker/barcodes/QrCodeBarcode.java @@ -0,0 +1,35 @@ +package protect.card_locker.barcodes; + +import com.google.zxing.BarcodeFormat; + +public class QrCodeBarcode extends Barcode { + @Override + public String prettyName() { + return "QR Code"; + } + + @Override + public BarcodeFormat format() { + return BarcodeFormat.QR_CODE; + } + + @Override + public String exampleValue() { + return "QR_CODE"; + } + + @Override + public boolean isSquare() { + return true; + } + + @Override + public boolean is2D() { + return true; + } + + @Override + public boolean hasInternalPadding() { + return true; + } +} diff --git a/app/src/main/java/protect/card_locker/barcodes/UpcABarcode.java b/app/src/main/java/protect/card_locker/barcodes/UpcABarcode.java new file mode 100644 index 0000000000..6e70034901 --- /dev/null +++ b/app/src/main/java/protect/card_locker/barcodes/UpcABarcode.java @@ -0,0 +1,30 @@ +package protect.card_locker.barcodes; + +import com.google.zxing.BarcodeFormat; + +public class UpcABarcode extends Barcode { + @Override + public String prettyName() { + return "UPC A"; + } + + @Override + public BarcodeFormat format() { + return BarcodeFormat.UPC_A; + } + + @Override + public String exampleValue() { + return "123456789012"; + } + + @Override + public boolean isSquare() { + return false; + } + + @Override + public boolean is2D() { + return false; + } +} diff --git a/app/src/main/java/protect/card_locker/barcodes/UpcEBarcode.java b/app/src/main/java/protect/card_locker/barcodes/UpcEBarcode.java new file mode 100644 index 0000000000..ee51ad460a --- /dev/null +++ b/app/src/main/java/protect/card_locker/barcodes/UpcEBarcode.java @@ -0,0 +1,30 @@ +package protect.card_locker.barcodes; + +import com.google.zxing.BarcodeFormat; + +public class UpcEBarcode extends Barcode { + @Override + public String prettyName() { + return "UPC E"; + } + + @Override + public BarcodeFormat format() { + return BarcodeFormat.UPC_E; + } + + @Override + public String exampleValue() { + return "0123456"; + } + + @Override + public boolean isSquare() { + return false; + } + + @Override + public boolean is2D() { + return false; + } +} diff --git a/app/src/main/java/protect/card_locker/importexport/CatimaImporter.java b/app/src/main/java/protect/card_locker/importexport/CatimaImporter.java index d83c25655a..dc86807b4a 100644 --- a/app/src/main/java/protect/card_locker/importexport/CatimaImporter.java +++ b/app/src/main/java/protect/card_locker/importexport/CatimaImporter.java @@ -25,7 +25,6 @@ import java.util.Date; import java.util.List; -import protect.card_locker.CatimaBarcode; import protect.card_locker.DBHelper; import protect.card_locker.FormatException; import protect.card_locker.Group; diff --git a/app/src/main/java/protect/card_locker/importexport/FidmeImporter.java b/app/src/main/java/protect/card_locker/importexport/FidmeImporter.java index 62ab8c4642..26ec40c49a 100644 --- a/app/src/main/java/protect/card_locker/importexport/FidmeImporter.java +++ b/app/src/main/java/protect/card_locker/importexport/FidmeImporter.java @@ -18,7 +18,6 @@ import java.nio.charset.StandardCharsets; import java.text.ParseException; -import protect.card_locker.CatimaBarcode; import protect.card_locker.DBHelper; import protect.card_locker.FormatException; import protect.card_locker.Utils; diff --git a/app/src/main/java/protect/card_locker/importexport/StocardImporter.java b/app/src/main/java/protect/card_locker/importexport/StocardImporter.java index 9b519c9108..5c4aec2cba 100644 --- a/app/src/main/java/protect/card_locker/importexport/StocardImporter.java +++ b/app/src/main/java/protect/card_locker/importexport/StocardImporter.java @@ -24,7 +24,6 @@ import java.text.ParseException; import java.util.HashMap; -import protect.card_locker.CatimaBarcode; import protect.card_locker.DBHelper; import protect.card_locker.FormatException; import protect.card_locker.ImageLocationType; diff --git a/app/src/main/java/protect/card_locker/importexport/VoucherVaultImporter.java b/app/src/main/java/protect/card_locker/importexport/VoucherVaultImporter.java index 20f475e10f..ae8286c39a 100644 --- a/app/src/main/java/protect/card_locker/importexport/VoucherVaultImporter.java +++ b/app/src/main/java/protect/card_locker/importexport/VoucherVaultImporter.java @@ -23,7 +23,6 @@ import java.util.Date; import java.util.TimeZone; -import protect.card_locker.CatimaBarcode; import protect.card_locker.DBHelper; import protect.card_locker.FormatException; import protect.card_locker.Utils; diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index be7c53b99a..894643b9ca 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -102,7 +102,6 @@ قيمة الباركود نفس بطاقة الهوية قم بتعيين قيمة الباركود - لا يمكن عرض نوع الباركود هذا. قد يكون مدعومًا في إصدار أحدث من التطبيق. القيمة غير صالحة لنوع الباركود المحدد تم نسخ بطاقات الهوية إلى الحافظة أريد مشاركة بعض البطاقات معك diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 18b653e5c5..3f825f9ab4 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -148,7 +148,6 @@ Избор от галерията Ръчно въвеждане Оставяте промените незапазени\? - Щрихкод от този вид не може да бъде показан. Може да бъде поддържан в следващо издание. Внасяне от Stocard Внасяне от Voucher Vault Изберете файла vouchervault.json, предварително изнесен от Voucher Vault. diff --git a/app/src/main/res/values-bn-rIN/strings.xml b/app/src/main/res/values-bn-rIN/strings.xml index 1ed6af5bdd..a717d8be7c 100644 --- a/app/src/main/res/values-bn-rIN/strings.xml +++ b/app/src/main/res/values-bn-rIN/strings.xml @@ -34,7 +34,6 @@ বারকোড আইডি কার্ড আইডির মতো বারকোড আইডি সেট করুন - অসমর্থিত বারকোড টাইপ বারকোড টাইপের জন্য ভুল মান ক্লিপবোর্ড একাধিক টোস্টে অনুলিপি করুন url থেকে ইন্টেন্ট ইম্পোর্ট কার্ড একাধিক টেক্সট শেয়ার করে diff --git a/app/src/main/res/values-bs/strings.xml b/app/src/main/res/values-bs/strings.xml index 5d8a69d8eb..a5f4783169 100644 --- a/app/src/main/res/values-bs/strings.xml +++ b/app/src/main/res/values-bs/strings.xml @@ -34,7 +34,6 @@ Barcode vrijednost Isto kao i kartica Postavi vrijednost za bar kod - Ovaj bar kod još nije prikazan. Ona može biti podržana u kasnijoj verziji app. Izabrana vrijednost nije izvršna IDs kartica kopiran u clipboard Želim podijeliti karte s tobom diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 8bf82b9ef1..c0d530f889 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -129,7 +129,6 @@ Chci s vámi sdílet karty ID zkopírována do schránky Hodnota není platná pro vybraný typ čárového kódu - Tento typ čárového kódu zatím nelze zobrazit. Možná bude podporován v pozdější verzi aplikace. Hodnota čárového kódu Nastavení hodnoty čárového kódu Stejné jako ID diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index fb260f39ba..abe33ee414 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -131,7 +131,6 @@ Kein Barcode erkannt Bild aus der Galerie wählen Maximale Schriftgröße - Dieser Barcodetyp kann noch nicht angezeigt werden. Wir hoffen das Format in einer zukünftigen Version zu unterstützen. Der Wert ist für den gewählten Barcodetyp leider nicht gültig Freie Ressourcen von Drittanbietern: %s Freie Bibliotheken von Drittanbietern: %s diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index e7106f15dd..35e3644ce5 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -148,7 +148,6 @@ Επιλογή μπροστινής εικόνας Επιλέξτε την vouchervault.json εξαγωγή από το Voucher Vault για εισαγωγή. \nΔημιουργήστε το επιλέγοντας Εξαγωγή στο Voucher Vault. - Ο τύπος γραμμοκώδικα δεν γίνεται να εμφανιστεί ακόμα. Μπορεί να υποστηρίζεται σε μια μελλοντική έκδοση της εφαρμογής. Μπροστινή εικόνα Φωτογραφίες Οπίσθια εικόνα diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 03b48b2158..bbe56a85c1 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -132,7 +132,6 @@ Imagen frontal Códigos copiados al portapapeles El valor no es válido para el tipo de código de barras seleccionado - Este tipo de código de barras todavía no se puede visualizar. Es posible que se admita en una futura versión de la aplicación. Establecer valor de código de barra Igual que el código Valor de código de barra diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 84138aa53b..497d408a72 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -8,7 +8,6 @@ Haluan jakaa joitain kortteja kanssasi ID-tunnukset kopioitu leikepöydälle Arvo ei ole kelvollinen valitulle viivakoodityypille - Tätä viivakoodityyppiä ei voi vielä näyttää. Sitä saatetaan tukea sovelluksen myöhemmässä versiossa. Aseta viivakoodin arvo Sama kuin ID-tunnus Viivakoodin arvo diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 1d336c12b4..e114df7a34 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -131,7 +131,6 @@ Identique à l’identifiant Valeur du code-barres Taille max. de la police - Ce type de code-barres ne peut pas encore être affiché. Il sera peut-être pris en charge dans une version ultérieure de l’application. La valeur n’est pas valide pour le type de code-barres sélectionné Ressources tierces libres : %s Bibliothèques tierces libres : %s diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 41de89aae5..0790fa1b3d 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -151,7 +151,6 @@ Vonalkód érték Ugyanaz, mint az azonosító Vonalkód érték beállítása - Ez a vonalkód típus még nem megjeleníthető. Feltehetően támogatva lesz egy későbbi verzióban. Azonosítók a vágólapra másolva Meg akarok veled osztani pár kártyát Előlapi kép diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml index 7b235d2800..d5fada14ee 100644 --- a/app/src/main/res/values-in-rID/strings.xml +++ b/app/src/main/res/values-in-rID/strings.xml @@ -167,7 +167,6 @@ Impor dari Voucher Vault Pilih ekspor vouchervault.json Anda dari Vault Voucher untuk diimpor. \nBuat dengan menekan Ekspor di Vault Voucher terlebih dahulu. - Jenis barcode ini belum dapat ditampilkan. Ini mungkin didukung di versi aplikasi yang lebih baru. Nilai tidak berlaku untuk jenis barcode yang dipilih ID disalin ke papan klip Gambar depan diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index bd0e329b48..c87da3e1d7 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -131,7 +131,6 @@ Nessun codice a barre trovato Seleziona immagine dalla galleria Dimensione massima del carattere - Questo tipo di codice a barre non può ancora essere visualizzato. Potrebbe essere supportato in una versione successiva dell\'applicazione. Il valore non è valido per il tipo di codice a barre selezionato Risorse libere di terze parti: %s Librerie libere di terze parti: %s diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index aac7439037..642b296149 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -1,7 +1,6 @@ 選択したバーコード形式ではこの番号は使用できません - このバーコード形式は表示できません。将来のアップデートにより対応するかもしれません。 バーコード番号を設定 インポートするにはLoyalty Card Keychainでエクスポートした LoyaltyCardKeychain.csvファイルを選択してください。 \nファイルがない場合、 Loyalty Card Keychainアプリからファイルをエクスポートしてください。 diff --git a/app/src/main/res/values-lb/strings.xml b/app/src/main/res/values-lb/strings.xml index d5bbbc6651..31eed62da5 100644 --- a/app/src/main/res/values-lb/strings.xml +++ b/app/src/main/res/values-lb/strings.xml @@ -54,7 +54,6 @@ Aktualiséiert barcode-Wäert\? Ech wëll eng Kaart mat dir deelen Anere sproochen - Dee barcode-Typ kann net ugewise ginn. Et kann zu enger spéiderer Versioun vun der App ënnerstëtzt ginn. Jo Import fehlgeschlagen Kaarten konnten net anere sproochen ginn diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 141c308e60..4cc7661219 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -72,7 +72,6 @@ Noriu su jumis pasidalyti keliomis kortelėmis Kortelės ID nukopijuotas į iškarpinę Vertė netinkama pasirinktam brūkšninio kodo tipui - Šio brūkšninio kodo tipo dar negalima rodyti. Galbūt jis bus palaikomas vėlesnėje programėlės versijoje. Nustatyti brūkšninio kodo reikšmę Tokia pat kaip kortelės ID Brūkšninio kodo reikšmė diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 7da87ae1e2..77214e15ff 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -116,7 +116,6 @@ Kunne ikke lese bildet Fant ingen strekkode Velg bilde fra galleri - Denne strekkodetypen kan ikke vises for øyeblikket. Støtte kan bli lagt til i en senere versjon av programmet. Sett strekkodeverdi Samme som ID Strekkodeverdi diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index bbd43d870e..ca3af810cc 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -130,7 +130,6 @@ Gelijk aan kaart-id Barcodewaarde Max. tekstgrootte - Dit type barcode kan nog niet worden getoond - we hopen hiervoor in een nieuwere versie ondersteuning toe te voegen. Deze waarde komt niet overeen met het gekozen barcodetype Vrije externe bronnen: %s Vrije externe bibliotheken: %s diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 96a608c792..e0f3152c3b 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -109,7 +109,6 @@ Chcę Ci udostępnić karty Skopiowano ID do schowka Wartość nie jest prawidłowa dla wybranego typu kodu kreskowego - Nie można jeszcze wyświetlić tego typu kodu kreskowego. Być może będzie on obsługiwany w nowszej wersji aplikacji. Ustaw wartość kodu kreskowego Taki sam jak ID Wartość kodu kreskowego diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 1641638551..42820403a7 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -161,7 +161,6 @@ Importar do Voucher Vault Selecione a exportação vouchervault.json do Voucher Vault para importar. \nCrie-a primeiro pressionando a opção \"Exportar\" no Voucher Vault. - Este tipo de código de barras ainda não pode ser mostrado. Pode vir a ser suportado numa versão posterior da aplicação. Identificação copiado para a área de transferência Definir imagem frontal Definir imagem de trás diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 56d59f9c1a..fbe65d0964 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -132,7 +132,6 @@ Как номер Значение штрих-кода Максимальный размер шрифта - В настоящее время данный тип штрих-кодов не отображается. Его поддержка может быть добавлена в следующих версиях приложения. Недопустимое значение для выбранного типа штрих-кода Свободные сторонние ресурсы: %s Свободные сторонние библиотеки: %s diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index b53daf3af1..53fa03107a 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -190,7 +190,6 @@ Hodnota čiarového kódu Rovnaké ako ID Nastavenie hodnoty čiarového kódu - Tento typ čiarového kódu zatiaľ nie je možné zobraziť. Možno bude podporovaný v neskoršej verzii aplikácie. Hodnota nie je platná pre vybraný typ čiarového kódu Obrázok prednej strany Obrázok zadnej strany diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index cb47671155..b40cd9edf6 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -156,5 +156,4 @@ Spremenili ste številko kartice. Želite posodobiti tudi črtno kodo na enako vrednost? Posodobi črtno kodo? Odstrani sliko - Te vrste črtne kode aplikacija ne more prikazati. Morda bo to možno v prihodnosti. \ No newline at end of file diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index b01e53fb24..66d0f633be 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -72,7 +72,6 @@ Jag vill dela några kort med dig ID:n kopierades till Urklipp Värdet är inte giltigt för den valda streckkodstypen - Denna streckkodstyp kan ännu inte visas. Den kan komma att stödjas i en senare version av appen. Ange streckkodsvärde Samma som ID:t Sätt på ficklampa diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 28564ea94b..36bd6f1142 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -32,7 +32,6 @@ Seninle birkaç kart paylaşmak istiyorum Numaralar panoya kopyalandı Değer, seçilen barkod türü için geçerli değil - Bu barkod türü henüz görüntülenemiyor. Uygulamanın sonraki bir sürümünde desteklenebilir. Barkod değerini ayarla Numarayla aynı Barkod değeri diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 968dbb6db8..5518b01196 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -22,7 +22,6 @@ Ви змінили ID. Чи ви бажаєте оновити штрих-код для використання цього ж значення\? Оновити значення штрих-коду\? Значення не дійсне для обраного типу штрих-коду - Цей тип штрих-коду поки що не відображається. Підтримку може бути додано в подальших версіях програми. Встановіть значення штрих-коду Таке ж як ID Значення штрих-коду diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 4d1696159d..861fffbe86 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -19,7 +19,6 @@ 我想和你分享一些卡片 卡号已复制到剪贴板 该值对所选条形码类型无效 - 此条形码类型尚无法显示。较新版本的应用程序可能提供支持。 设置条形码值 与卡号相同 条形码值 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 39a5aaac3f..7c0e823271 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -194,7 +194,6 @@ 將條碼移至螢幕上方 將條碼移至螢幕中央 Loyalty Card Keychain - 尚支援此條碼種類,但未來版本的應用程式可能會支援此條碼種類。 條碼內容不適用於此條碼種類 背面圖片 您已更新了 ID,是否要更新條碼內容以匹配此 ID? diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ae2cf15892..96f16e8928 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -199,7 +199,6 @@ Barcode value Same as ID Set barcode value - This barcode type can\'t yet be displayed. It may be supported in a later version of the app. The value is not valid for the selected barcode type IDs copied to clipboard I want to share some cards with you