Merge branch 'master' of ssh://github.com/brarcher/loyalty-card-locker into feature/pkpass

This commit is contained in:
Sylvia van Os
2020-01-12 22:50:29 +01:00
20 changed files with 309 additions and 130 deletions

View File

@@ -1,3 +1,26 @@
## v0.26.1 (2020-01-09)
Changes:
- Fix issue with sharing cards without background color ([#343](https://github.com/brarcher/loyalty-card-locker/pull/343))
## v0.26 (2020-01-05)
Changes:
- Add ability to search for a card ([#320](https://github.com/brarcher/loyalty-card-locker/pull/320))
- Add ability to share and receive loyalty cards ([#321](https://github.com/brarcher/loyalty-card-locker/pull/321))
- Dark mode support ([#322](https://github.com/brarcher/loyalty-card-locker/pull/322))
- Loyalty cards can now be barcodeless (e.g. not have a barcode) ([#324](https://github.com/brarcher/loyalty-card-locker/pull/324))
- Notes can span multiple lines ([#326](https://github.com/brarcher/loyalty-card-locker/pull/326))
- Improvements with the sizing of notes ([#319](https://github.com/brarcher/loyalty-card-locker/pull/319))
- Improve notification and app icon visibility ([#330](https://github.com/brarcher/loyalty-card-locker/pull/330))
- Update target SDK to Android 10
- Improve the following translations:
* German
* Italian
* Dutch
* Polish
* Russian
## v0.25.4 (2019-10-04)
Changes

View File

@@ -13,8 +13,8 @@ android {
applicationId "protect.card_locker"
minSdkVersion 16
targetSdkVersion 29
versionCode 35
versionName "0.25.4"
versionCode 37
versionName "0.26.1"
}
buildTypes {
release {

View File

@@ -43,12 +43,24 @@ public class ImportURIHelper {
}
try {
// These values are allowed to be null
Integer headerColor = null;
Integer headerTextColor = null;
String store = uri.getQueryParameter(STORE);
String note = uri.getQueryParameter(NOTE);
String cardId = uri.getQueryParameter(CARD_ID);
String barcodeType = uri.getQueryParameter(BARCODE_TYPE);
Integer headerColor = Integer.parseInt(uri.getQueryParameter(HEADER_COLOR));
Integer headerTextColor = Integer.parseInt(uri.getQueryParameter(HEADER_TEXT_COLOR));
String unparsedHeaderColor = uri.getQueryParameter(HEADER_COLOR);
if(unparsedHeaderColor != null)
{
headerColor = Integer.parseInt(unparsedHeaderColor);
}
String unparsedHeaderTextColor = uri.getQueryParameter(HEADER_TEXT_COLOR);
if(unparsedHeaderTextColor != null)
{
headerTextColor = Integer.parseInt(unparsedHeaderTextColor);
}
String iconData = uri.getQueryParameter(ICON);
Bitmap icon = null;
@@ -80,8 +92,14 @@ public class ImportURIHelper {
uriBuilder.appendQueryParameter(NOTE, loyaltyCard.note);
uriBuilder.appendQueryParameter(CARD_ID, loyaltyCard.cardId);
uriBuilder.appendQueryParameter(BARCODE_TYPE, loyaltyCard.barcodeType);
uriBuilder.appendQueryParameter(HEADER_COLOR, loyaltyCard.headerColor.toString());
uriBuilder.appendQueryParameter(HEADER_TEXT_COLOR, loyaltyCard.headerTextColor.toString());
if(loyaltyCard.headerColor != null)
{
uriBuilder.appendQueryParameter(HEADER_COLOR, loyaltyCard.headerColor.toString());
}
if(loyaltyCard.headerTextColor != null)
{
uriBuilder.appendQueryParameter(HEADER_TEXT_COLOR, loyaltyCard.headerTextColor.toString());
}
uriBuilder.appendQueryParameter(ICON, icon);
uriBuilder.appendQueryParameter(EXTRAS, loyaltyCard.extras.toJSON().toString());

View File

@@ -40,8 +40,9 @@ import java.io.InvalidObjectException;
public class LoyaltyCardEditActivity extends AppCompatActivity
{
private static final String TAG = "CardLocker";
protected static final String NO_BARCODE = "_NO_BARCODE_";
private static final int SELECT_BARCODE_REQUEST = 1;
protected static final int SELECT_BARCODE_REQUEST = 1;
EditText storeFieldEdit;
EditText noteFieldEdit;
@@ -269,42 +270,49 @@ public class LoyaltyCardEditActivity extends AppCompatActivity
if(cardIdFieldView.getText().length() > 0 && barcodeTypeField.getText().length() > 0)
{
String formatString = barcodeTypeField.getText().toString();
final BarcodeFormat format = BarcodeFormat.valueOf(formatString);
final String cardIdString = cardIdFieldView.getText().toString();
if(barcodeImage.getHeight() == 0)
if(barcodeTypeField.getText().equals(NO_BARCODE))
{
Log.d(TAG, "ImageView size is not known known at start, waiting for load");
// The size of the ImageView is not yet available as it has not
// yet been drawn. Wait for it to be drawn so the size is available.
barcodeImage.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener()
{
@Override
public void onGlobalLayout()
{
if (Build.VERSION.SDK_INT < 16)
{
barcodeImage.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
else
{
barcodeImage.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
Log.d(TAG, "ImageView size now known");
new BarcodeImageWriterTask(barcodeImage, cardIdString, format).execute();
}
});
barcodeImageLayout.setVisibility(View.GONE);
}
else
{
Log.d(TAG, "ImageView size known known, creating barcode");
new BarcodeImageWriterTask(barcodeImage, cardIdString, format).execute();
}
String formatString = barcodeTypeField.getText().toString();
final BarcodeFormat format = BarcodeFormat.valueOf(formatString);
final String cardIdString = cardIdFieldView.getText().toString();
barcodeImageLayout.setVisibility(View.VISIBLE);
if(barcodeImage.getHeight() == 0)
{
Log.d(TAG, "ImageView size is not known known at start, waiting for load");
// The size of the ImageView is not yet available as it has not
// yet been drawn. Wait for it to be drawn so the size is available.
barcodeImage.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener()
{
@Override
public void onGlobalLayout()
{
if (Build.VERSION.SDK_INT < 16)
{
barcodeImage.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
else
{
barcodeImage.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
Log.d(TAG, "ImageView size now known");
new BarcodeImageWriterTask(barcodeImage, cardIdString, format).execute();
}
});
}
else
{
Log.d(TAG, "ImageView size known known, creating barcode");
new BarcodeImageWriterTask(barcodeImage, cardIdString, format).execute();
}
barcodeImageLayout.setVisibility(View.VISIBLE);
}
}
View.OnClickListener captureCallback = new View.OnClickListener()
@@ -406,6 +414,13 @@ public class LoyaltyCardEditActivity extends AppCompatActivity
String cardId = cardIdFieldView.getText().toString();
String barcodeType = barcodeTypeField.getText().toString();
// We do not want to save the no barcode string to the database
// it is simply an empty there for no barcode
if(barcodeType.equals(NO_BARCODE))
{
barcodeType = "";
}
if(store.isEmpty())
{
Snackbar.make(storeFieldEdit, R.string.noStoreError, Snackbar.LENGTH_LONG).show();
@@ -540,7 +555,8 @@ public class LoyaltyCardEditActivity extends AppCompatActivity
cardIdView.setText(contents);
final TextView barcodeTypeField = findViewById(R.id.barcodeType);
barcodeTypeField.setText(format);
// Set special NO_BARCODE value to prevent onResume from overwriting it
barcodeTypeField.setText(format.isEmpty() ? LoyaltyCardEditActivity.NO_BARCODE : format);
onResume();
}
}

View File

@@ -5,12 +5,10 @@
<string name="action_add">Přidat</string>
<string name="noGiftCards">ZAtím némáte žádné věrnostní karty. Klikněte na tlačítko "+" (plus) nahoře a začněte.\n\nLoyalty Card Locker umožňuje nosit své věrnostní karty v telefonu, takže jsou vždy na dosah.</string>
<string name="storeName">Obchod</string>
<string name="note">Poznámka</string>
<string name="cardId">ID karty</string>
<string name="barcodeType">Typ čárového kódu</string>
<string name="cancel">Zrušit</string>
<string name="save">Uložit</string>
<string name="capture">Naskenovat kartu</string>
@@ -67,8 +65,6 @@
<string name="app_revision_fmt">Revizní informace: <xliff:g id="app_revision_url">%s</xliff:g></string>
<string name="app_libraries"><xliff:g id="app_name">%s</xliff:g> používá tyto knihovny třetích stran: <xliff:g id="app_libraries_list">%s</xliff:g></string>
<string name="selectBarcodeTitle">Vyberte čárový kód</string>
<string name="enterBarcodeInstructions">Zadejte hodnotu čárového kódu a potm vyberte kód, který představuje čárový kód, který je na kartě.</string>
<string name="copy_to_clipboard_toast">ID karty zkopírováno do schránky</string>
</resources>

View File

@@ -2,15 +2,16 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name">Loyalty Card Keychain</string>
<string name="action_search">Suche</string>
<string name="action_add">Neu</string>
<string name="noGiftCards">Sie haben noch keine Kundenkarte angelegt. Über den \"+\"-Button oben rechts können welche angelegt werden.\n\nDiese App ermöglicht es, Kundenkarten immer mit zu führen.</string>
<string name="noMatchingGiftCards">Es passen keine Kundenkarten zum Suchfilter. Bitte probiere verschiedene Begriffe aus.</string>
<string name="storeName">Geschäft</string>
<string name="note">Notiz</string>
<string name="cardId">Kartennummer</string>
<string name="barcodeType">Barcodeart</string>
<string name="cancel">Abbrechen</string>
<string name="save">Speichern</string>
<string name="capture">Karte scannen</string>
@@ -40,7 +41,6 @@
<string name="noStoreError">Kein Geschäft angegeben</string>
<string name="noCardIdError">Keine Kartennummer angegeben</string>
<string name="noCardExistsError">Karte konnte nicht gefunden werden</string>
<string name="cardIdFormat">%1$s: %2$s</string>
<string name="importExport">Import/Export</string>
<string name="importName">Import</string>
@@ -79,8 +79,6 @@
<string name="app_resources"><xliff:g id="app_name">%s</xliff:g> verwendet folgenden Dritt-Ressourcen: <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="selectBarcodeTitle">Barcode auswählen</string>
<string name="enterBarcodeInstructions">Fügen Sie die Kundennummer ein, anschließend wählen Sie die korrekte Barcodeart aus.</string>
<string name="copy_to_clipboard_toast">Nummer in die Zwischenablage kopiert</string>
<string name="thumbnailDescription">Vorschaubild für die Karte</string>
@@ -113,4 +111,5 @@
<string name="settings_card_id_font_size">Schriftgröße der Kartennummer</string>
<string name="settings_card_note_font_size">Schriftgröße der Notiz</string>
<string name="settings_display_barcode_max_brightness">Helligkeit bei Barcode Ansicht erhöhen</string>
<string name="settings_lock_barcode_orientation">Barcodeausrichtung sperren</string>
</resources>

View File

@@ -5,12 +5,10 @@
<string name="action_add">Προσθήκη</string>
<string name="noGiftCards">Δεν έχετε κάρτες προς το παρόν. Πατήστε το κουμπί \"+\" (συν) στο πάνω μέρος για να ξεκινήσετε.\n\nΤο Loyalty Card Keychain σας δίνει τη δυνατότητα να έχετε τις κάρτες σας στο τηλέφωνο σας, έτσι ώστε να τις έχετε πάντα μαζί σας.</string>
<string name="storeName">Κατάστημα</string>
<string name="note">Σημείωση</string>
<string name="cardId">Κωδικός Κάρτας</string>
<string name="barcodeType">Τύπος Barcode</string>
<string name="cancel">Άκυρο</string>
<string name="save">Αποθήκευση</string>
<string name="capture">Φωτογράφιση Κάρτας</string>
@@ -40,7 +38,6 @@
<string name="noStoreError">Δεν δώσατε κατάστημα</string>
<string name="noCardIdError">Δεν δώσατε κωδικό κάρτας</string>
<string name="noCardExistsError">Δεν ήταν δυνατό να εντοπιστεί κάρτα</string>
<string name="cardIdFormat">%1$s: %2$s</string>
<string name="importExport">Εισαγωγή/Εξαγωγή</string>
<string name="importName">Εισαγωγή</string>
@@ -79,8 +76,6 @@
<string name="app_resources">Το <xliff:g id="app_name">%s</xliff:g> χρησιμοποιεί τους παρακάτω πόρους τρίτων: <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="selectBarcodeTitle">Επιλέξτε Barcode</string>
<string name="enterBarcodeInstructions">Δώστε την τιμή του barcode και μετά επιλέξτε την εικόνα που αναπαριστά το barcode που θέλετε να χρησιμοποιείσετε</string>
<string name="copy_to_clipboard_toast">Ο κωδικός της κάρτας αντιγράφτηκε στο πρόχειρο</string>
<string name="thumbnailDescription">Μικρογραφία κάρτας</string>

View File

@@ -5,12 +5,10 @@
<string name="action_add">Añadir</string>
<string name="noGiftCards">Actualmente no tienes ninguna tarjeta guardada. Presiona el botón \"+\" para comenzar.\n\nEsta cartera te permite llevar tus tarjetas de fidelización en tu teléfono para que estén siempre a tu alcance.</string>
<string name="storeName">Tienda</string>
<string name="note">Nota</string>
<string name="cardId">ID de la Tarjeta</string>
<string name="barcodeType">Tipo de Código de Barras</string>
<string name="cancel">Cancelar</string>
<string name="save">Guardar</string>
<string name="capture">Escanear Tarjeta</string>
@@ -40,7 +38,6 @@
<string name="noStoreError">Establecimiento no especificado</string>
<string name="noCardIdError">ID de la Tarjeta no especificado</string>
<string name="noCardExistsError">No se ha podido encontrar la tarjeta de fidelización</string>
<string name="cardIdFormat">%1$s: %2$s</string>
<string name="importExport">Importar/Exportar</string>
<string name="importName">Importar</string>
@@ -79,8 +76,6 @@
<string name="app_resources"><xliff:g id="app_name">%s</xliff:g> utiliza los siguientes recursos de terceros: <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="selectBarcodeTitle">Selecciona el Código de Barras</string>
<string name="enterBarcodeInstructions">Introduce el valor del código de barras y después presiona en una imagen para seleccionar el tipo de código de barras.</string>
<string name="copy_to_clipboard_toast">ID de la Tarjeta copiado al portapapeles</string>
<string name="thumbnailDescription">Miniatura para la tarjeta</string>

View File

@@ -5,12 +5,10 @@
<string name="action_add">Ajouter</string>
<string name="noGiftCards">Aucune carte de fidélité enregistrée. Appuyez sur le bouton \"+\" (plus) pour commencer.\n\nLoyalty Card Locker vous permet d\'enregistrer vos cartes de fidélité sur votre téléphone pour toujours les avoir à portée de main.</string>
<string name="storeName">Nom</string>
<string name="note">Note</string>
<string name="cardId">Numéro</string>
<string name="barcodeType">Type de code-barres</string>
<string name="cancel">Annuler</string>
<string name="save">Enregistrer</string>
<string name="capture">Mode capture</string>
@@ -40,7 +38,6 @@
<string name="noStoreError">Aucun nom n\'a été saisi</string>
<string name="noCardIdError">Aucun numéro n\'a été saisi</string>
<string name="noCardExistsError">N\'a pas pu retrouver la carte de fidélité</string>
<string name="cardIdFormat">%1$s: %2$s</string>
<string name="importExport">Importer/Exporter</string>
<string name="importName">Importer</string>
@@ -79,8 +76,6 @@
<string name="app_resources"><xliff:g id="app_name">%s</xliff:g> utilise les ressources-tierces suivantes : <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="selectBarcodeTitle">Choisissez le code-barre</string>
<string name="enterBarcodeInstructions">Saisissez les chiffres du code-barres et sélectionnez l\'image qui le représente</string>
<string name="copy_to_clipboard_toast">Numéro de carte copié dans le presse-papier</string>
<string name="thumbnailDescription">Miniature pour la carte</string>

View File

@@ -5,7 +5,6 @@
<string name="cardId">מזהה כרטיס</string>
<string name="barcodeType">סוג ברקוד</string>
<string name="cancel">ביטול</string>
<string name="save">שמור</string>
<string name="capture">צלם כרטיס</string>

View File

@@ -2,14 +2,17 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name">Carte fedeltà</string>
<string name="action_search">Cerca</string>
<string name="action_add">Aggiungi</string>
<string name="noGiftCards">Non hai ancora alcuna tessera fedeltà al momento. Premi sul bottone "+" (più) in alto per incominciare.\n\nL\'app ti permette di portare con te le tue tessere fedeltà, così da averle sempre a disposizione.</string>
<string name="noGiftCards">Non hai ancora alcuna carta fedeltà. Premi sul bottone +(più) in alto per incominciare.\n\nL\'app ti permette di portare con te le tue carte fedeltà, così da averle sempre a disposizione.</string>
<string name="noMatchingGiftCards">Nessuna carta fedeltà corrisponde al filtro. Riprovare con altri valori</string>
<string name="storeName">Negozio</string>
<string name="note">Note</string>
<string name="cardId">Codice</string>
<string name="barcodeType">Tipo codice a barre</string>
<string name="barcodeNoBarcode">Questa carta non ha un codice a barre</string>
<string name="cancel">Annulla</string>
<string name="save">Salva</string>
@@ -25,6 +28,7 @@
<string name="deleteConfirmation">Conferma che vuoi eliminare questa carta.</string>
<string name="ok">Ok</string>
<string name="copy_to_clipboard">Copia ID negli appunti</string>
<string name="share">Condividi</string>
<string name="sendLabel">Invia&#8230;</string>
<string name="addedShortcut">Aggiunto al launcher</string>
@@ -39,11 +43,14 @@
<string name="noStoreError">Nessun negozio inserito</string>
<string name="noCardIdError">Nessun codice carta inserito</string>
<string name="noCardExistsError">Impossibile trovare la carta</string>
<string name="failedParsingImportUriError">Impossibile analizzare l\'URI</string>
<string name="cardIdFormat">%1$s: %2$s</string>
<string name="importExport">Importa/Esporta</string>
<string name="importName">Importa</string>
<string name="exportName">Esporta</string>
<string name="importExportHelp">Fare il backup dei dati ti permette di spostare le tue tessere da un dispositivo ad un altro.</string>
<string name="importExportHelp">Fare il backup dei dati ti permette di spostare le tue carte da un dispositivo ad un altro.</string>
<string name="importedFrom">Importato da: %1$s</string>
<string name="exportedTo">Esportato in: %1$s</string>
<string name="fileMissing">File mancante: %1$s</string>
@@ -72,18 +79,20 @@
<string name="app_license">Pubblicato sotto licenza GPLv3.</string>
<string name="about_title_fmt">Informazioni su <xliff:g id="app_name">%s</xliff:g></string>
<string name="debug_version_fmt">Versione: <xliff:g id="version">%s</xliff:g></string>
<string name="app_revision_fmt">Informazione sulla revisione: <xliff:g id="app_revision_url">%s</xliff:g></string>
<string name="app_revision_fmt">Informazione sulla versione: <xliff:g id="app_revision_url">%s</xliff:g></string>
<string name="app_libraries"><xliff:g id="app_name">%s</xliff:g> usa le seguenti librerie di terze parti: <xliff:g id="app_libraries_list">%s</xliff:g></string>
<string name="app_resources"><xliff:g id="app_name">%s</xliff:g> usa le seguenti risorse di terze parti: <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="selectBarcodeTitle">Seleziona codice a barre</string>
<string name="enterBarcodeInstructions">Digita il valore del codice a barre, quindi seleziona l\'immagine che rappresenta il codice a barre che vuoi usare.</string>
<string name="enterBarcodeInstructions">Immettere l\'ID della carta, quindi selezionare l\'immagine che rappresenta il codice a barre desiderato oppure selezionare &#8220;Questa carta non ha un codice a barre&#8221; per non valorizzare il dato.</string>
<string name="copy_to_clipboard_toast">ID della carta copiato negli appunti</string>
<string name="startIntro">Incomincia introduzione</string>
<string name="intro1Title">Benvenuto in Carte fedeltà\n</string>
<string name="intro1Description">Gestisci le tue tessere direttamente dal telefono!\n\n</string>
<string name="thumbnailDescription">Miniatura carta</string>
<string name="startIntro">Introduzione</string>
<string name="intro1Title">Benvenuto in Carte Fedeltà\n</string>
<string name="intro1Description">Gestisci le tue carte direttamente dal telefono!\n\n</string>
<string name="intro2Title">Aggiungi carte\n</string>
<string name="intro2Description">Aggiungi una nuova carta premendo il + dall\'elenco delle carte.\n\n</string>
<string name="intro3Title">Aggiungi carte\n</string>
@@ -93,6 +102,27 @@
<string name="intro5Title">Backup\n</string>
<string name="intro5Description">I dati delle tessere possono essere salvati. Per esportare o importare tessere premi Importa/Esporta nel menù nella schermata principale.\n\n</string>
<string name="intro6Title">Feedback\n</string>
<string name="intro6Description">Questa app è gratuita, priva di pubblicità e open source. Guarda i dettagli premendo su Informazioni nella schermata principale.\n\nPer favore, lascia un feedback nell\'app store! (:</string>
<string name="intro6Description">Questa app è gratuita, priva di pubblicità e open source. Guarda i dettagli premendo su \"Informazioni\" nella schermata principale.\n\nPer favore, lascia un feedback nell\'app store! (:</string>
<string name="change">Cambia</string>
<string name="storeTextColorTitle">Colore titolo</string>
<string name="storeTextBackgroundColorTitle">Colore scheda</string>
<string name="storeNameBackgroundColorDescription">Colore di sfondo del titolo carta</string>
<string name="storeNameColorDescription">Colore del titolo carta</string>
<string name="settings">Impostazioni</string>
<string name="settings_category_title_ui">Interfaccia utente</string>
<string name="settings_theme">Tema</string>
<string name="settings_system_theme">Tema del sistema</string>
<string name="settings_light_theme">Tema chiaro</string>
<string name="settings_dark_theme">Tema scuro</string>
<string name="settings_card_title_list_font_size">Dimensione testo del titolo carta (in lista carte)</string>
<string name="settings_card_note_list_font_size">Dimensione testo delle note carta (in lista carte)</string>
<string name="settings_card_title_font_size">Dimensione testo del titolo carta</string>
<string name="settings_card_id_font_size">Dimensione testo dell\'ID carta</string>
<string name="settings_card_note_font_size">Dimensione testo delle note carta</string>
<string name="settings_display_barcode_max_brightness">Aumenta luminosità dello schermo quando apro un codice a barre</string>
<string name="settings_lock_barcode_orientation">Blocca orientamento del codice a barre</string>
<string name="intent_import_card_from_url">Importa carte fedeltà</string>
<string name="intent_import_card_from_url_share_text">Voglio condividere una carta fedeltà con te</string>
</resources>

View File

@@ -5,12 +5,10 @@
<string name="action_add">Pridėti</string>
<string name="noGiftCards">Šiuo metu neturite nė vienos įvestos lojalumo kortelės. Paspauskite "+" (pliuso) pliuso mygtuką, kad pradėtumėte.\n\nLoyalty Card Locker leidžia Jums visada nešiotis lojalumo kortelių informaciją savo telefone ar planšetėje, taip jos visada pasiekiamos.</string>
<string name="storeName">Parduotuvė</string>
<string name="note">Užrašas</string>
<string name="cardId">Kortelės ID</string>
<string name="barcodeType">Brūkšninio kodo tipas</string>
<string name="cancel">Atšaukti</string>
<string name="save">Išsaugoti</string>
<string name="capture">Nufotografuoti kortelę</string>
@@ -50,8 +48,6 @@
<string name="app_revision_fmt">Revizijos informacija: <xliff:g id="app_revision_url">%s</xliff:g></string>
<string name="app_libraries"><xliff:g id="app_name">%s</xliff:g> naudoja šias trečiosios šalies bibliotekas: <xliff:g id="app_libraries_list">%s</xliff:g></string>
<string name="selectBarcodeTitle">Pasirinkite brūkšninį kodą</string>
<string name="enterBarcodeInstructions">Enter the barcode value then select the image which represents the barcode you want to use</string>
<string name="copy_to_clipboard_toast">Kortelės ID nukopijuota į iškarpinę</string>
</resources>

View File

@@ -2,44 +2,49 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name">Klantenkaartkluis</string>
<string name="action_search">Zoeken</string>
<string name="action_add">Toevoegen</string>
<string name="noGiftCards">Er zijn nog geen klantenkaarten aanwezig. Klik op de knop \"+\" (plus) om te beginnen.\n\nKlantenkaartenkluis beheert klantenkaarten op een smartphone of tablet, zodat ze altijd binnen handbereik zijn.</string>
<string name="noGiftCards">Je hebt nog geen klantenkaarten toegevoegd. Druk op de knop \'+\' (plus) om te beginnen.\n\nMet Klantenkaartkluis beheer je je klantenkaarten op je smartphone of tablet zodat ze altijd binnen handbereik zijn.</string>
<string name="noMatchingGiftCards">Er zijn geen kaarten die overeenkomen met je zoekopdracht. Probeer het opnieuw.</string>
<string name="storeName">Winkel</string>
<string name="note">Opmerking</string>
<string name="cardId">Kaart-ID</string>
<string name="barcodeType">Barcodetype</string>
<string name="note">Aantekening</string>
<string name="cardId">Kaartnummer</string>
<string name="barcodeType">Soort barcode</string>
<string name="barcodeNoBarcode">Deze kaart heeft geen barcode</string>
<string name="cancel">Annuleren</string>
<string name="save">Opslaan</string>
<string name="capture">Scan een kaart</string>
<string name="enterCard">Voer een kaart in</string>
<string name="enterCard">Voer een kaartnummer in</string>
<string name="editCard">Kaart bewerken</string>
<string name="edit">Bewerken</string>
<string name="delete">Verwijderen</string>
<string name="confirm">Bevestigen</string>
<string name="lockScreen">Draaien blokkeren</string>
<string name="unlockScreen">Draaien deblokkeren</string>
<string name="lockScreen">Draaien niet toestaan</string>
<string name="unlockScreen">Draaien toestaan</string>
<string name="deleteTitle">Kaart verwijderen</string>
<string name="deleteConfirmation">Bevestig dat je deze kaart wilt verwijderen.</string>
<string name="ok">Oké</string>
<string name="copy_to_clipboard">ID kopiëren naar klembord</string>
<string name="copy_to_clipboard">Kaartnummer kopiëren naar klembord</string>
<string name="share">Delen</string>
<string name="sendLabel">Versturen&#8230;</string>
<string name="addedShortcut">Toegevoegd aan beginscherm</string>
<string name="addedShortcut">Toegevoegd aan startscherm</string>
<string name="editCardTitle">Klantenkaart bewerken</string>
<string name="addCardTitle">Klantenkaart toevoegen</string>
<string name="viewCardTitle">Klantenkaart bekijken</string>
<string name="scanCardBarcode">Klantenkaart-barcode scannen</string>
<string name="viewCardTitle">Klantenkaart tonen</string>
<string name="scanCardBarcode">Scan de barcode van de kaart</string>
<string name="cardShortcut">Kaartsnelkoppeling</string>
<string name="noCardsMessage">Er zijn geen kaarten; voeg er één toe.</string>
<string name="noCardsMessage">Je hebt nog geen kaarten toegevoegd.</string>
<string name="barcodeImageDescription">Afbeelding van klantenkaart-barcode</string>
<string name="barcodeImageDescription">Afbeelding van barcode</string>
<string name="noStoreError">Geen winkel ingevoerd</string>
<string name="noCardIdError">Geen kaart-ID ingevoerd</string>
<string name="noCardExistsError">De klantenkaart kan niet worden opgevraagd.</string>
<string name="noStoreError">Geen winkelnaam ingevoerd</string>
<string name="noCardIdError">Geen kaartnummer ingevoerd</string>
<string name="noCardExistsError">De klantenkaart kan niet worden opgevraagd</string>
<string name="failedParsingImportUriError">Kan de import-uri niet verwerken</string>
<string name="cardIdFormat">%1$s: %2$s</string>
<string name="importExport">Importeren/Exporteren</string>
@@ -58,7 +63,7 @@
<string name="importing">Bezig met importeren&#8230;...</string>
<string name="exporting">Bezig met exporteren&#8230;...</string>
<string name="noExternalStoragePermissionError">Het importeren of exporteren van kaarten is niet mogelijk zonder de machtiging \'externe opslag\'.</string>
<string name="exportOptionExplanation">De gegevens zijn weggeschreven naar de hoogste map op de externe opslag.</string>
<string name="exportOptionExplanation">De gegevens worden weggeschreven naar de hoogste map op de externe opslag.</string>
<string name="importOptionFilesystemTitle">Importeren uit bestandssysteem</string>
<string name="importOptionFilesystemExplanation">Kies een specifiek bestand uit het bestandssysteem.</string>
<string name="importOptionFilesystemButton">Uit bestandssysteem</string>
@@ -75,31 +80,31 @@
<string name="about_title_fmt">Over <xliff:g id="app_name">%s</xliff:g></string>
<string name="debug_version_fmt">Versie: <xliff:g id="version">%s</xliff:g></string>
<string name="app_revision_fmt">Versie-informatie: <xliff:g id="app_revision_url">%s</xliff:g></string>
<string name="app_libraries"><xliff:g id="app_name">%s</xliff:g> gebruikt de volgende bibliotheken van derde partijen: <xliff:g id="app_libraries_list">%s</xliff:g></string>
<string name="app_resources"><xliff:g id="app_name">%s</xliff:g> gebruikt de volgende bronnen van derde partijen: <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="app_libraries"><xliff:g id="app_name">%s</xliff:g> gebruikt de volgende bibliotheken van externe partijen: <xliff:g id="app_libraries_list">%s</xliff:g></string>
<string name="app_resources"><xliff:g id="app_name">%s</xliff:g> gebruikt de volgende bronnen van externe partijen: <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="selectBarcodeTitle">Barcode selecteren</string>
<string name="enterBarcodeInstructions">Voer de waarde van de barcode in en kies daarna de afbeelding van de barcode die je wilt gebruiken.</string>
<string name="selectBarcodeTitle">Barcode toevoegen</string>
<string name="enterBarcodeInstructions">Voer de barcode in en kies daarna de afbeelding van de barcode die je wilt gebruiken., of druk op &#8220;Deze kaart heeft geen barcode&#8221; om geen barcode te gebruiken.</string>
<string name="copy_to_clipboard_toast">Kaart-ID is gekopieerd naar het klembord</string>
<string name="copy_to_clipboard_toast">Kaartnummer is gekopieerd naar het klembord</string>
<string name="thumbnailDescription">Voorbeeldminiatuur voor kaart</string>
<string name="thumbnailDescription">Miniatuurvoorbeeld van kaart</string>
<string name="startIntro">Rondleiding starten</string>
<string name="intro1Title">Welkom bij Klantenkaartkluis\n</string>
<string name="intro1Description">Beheer je op barcodes gebaseerde klantenkaarten op je telefoon!\n\n</string>
<string name="intro2Title">Kaarten toevoegen\n</string>
<string name="intro2Description">Voeg een nieuwe kaart toe door in de kaartenlijst op de plus-knop te drukken.\n\n</string>
<string name="intro2Description">Voeg een kaart toe door in de lijst met kaarten op de plus-knop te drukken.\n\n</string>
<string name="intro3Title">Kaarten toevoegen\n</string>
<string name="intro3Description">De barcode kan worden toegevoegd door deze handmatig in te voeren of te scannen met de camera.\n\n</string>
<string name="intro4Title">Kaart tonen\n</string>
<string name="intro4Description">Als je een kaart wilt tonen, druk dan op het beginscherm op de naam van de winkel.\n\n</string>
<string name="intro4Description">Toon een kaart door op het kaartoverzicht op de naam van de winkel te drukken.\n\n</string>
<string name="intro5Title">Back-uppen\n</string>
<string name="intro5Description">De kaarten kunnen worden geback-upt. Als je kaarten wilt exporteren of importeren, druk dan in het menu op het hoofdscherm op Importeren/Exporteren.\n\n</string>
<string name="intro5Description">Je kunt je kaarten back-uppen: druk in het menu op het kaartoverzicht op Importeren/Exporteren.\n\n</string>
<string name="intro6Title">Feedback\n</string>
<string name="intro6Description">Deze app is gratis, advertentievrij en open source. Bekijk de details hiervan door op Over te drukken in het menu op het hoofdscherm.\n\nGeef feedback in de app-winkel! (:</string>
<string name="intro6Description">Deze app is gratis, reclamevrij en open source. Bekijk alle details door op \'Over\' te drukken in het menu op het kaartoverzicht.\n\nGeef feedback in de app-winkel! (:</string>
<string name="change">Wijzigen</string>
<string name="change">Aanpassen</string>
<string name="storeTextColorTitle">Tekstkleur van winkelnaam</string>
<string name="storeTextBackgroundColorTitle">Kopkleur</string>
<string name="storeNameBackgroundColorDescription">Achtergrondkleur van winkeltekst</string>
@@ -107,11 +112,17 @@
<string name="settings">Instellingen</string>
<string name="settings_category_title_ui">Uiterlijk en bediening</string>
<string name="settings_card_title_list_font_size">Kaarttitel lijstlettertypegrootte</string>
<string name="settings_card_note_list_font_size">Kaartnotitie lijstlettertypegrootte</string>
<string name="settings_card_title_font_size">Kaarttitel-lettertypegrootte</string>
<string name="settings_card_id_font_size">Kaart-ID lettertypegrootte</string>
<string name="settings_card_note_font_size">Kaartnotitie lettertypegrootte</string>
<string name="settings_display_barcode_max_brightness">Barcodeweergave lichter maken</string>
<string name="settings_theme">Thema</string>
<string name="settings_system_theme">Systeemthema</string>
<string name="settings_light_theme">Licht</string>
<string name="settings_dark_theme">Donker</string>
<string name="settings_card_title_list_font_size">Lettergrootte van kaartnamen op de lijst</string>
<string name="settings_card_note_list_font_size">Lettergrootte van aantekeningen op de lijst</string>
<string name="settings_card_title_font_size">Lettergrootte van kaartnamen</string>
<string name="settings_card_id_font_size">Lettergrootte van kaartnummer</string>
<string name="settings_card_note_font_size">Lettergrootte van aantekeningen</string>
<string name="settings_display_barcode_max_brightness">Scherm helderder maken bij tonen van barcode</string>
<string name="settings_lock_barcode_orientation">Barcode-oriëntatie vergrendelen</string>
<string name="intent_import_card_from_url">Klantenkaart importeren</string>
<string name="intent_import_card_from_url_share_text">Ik wil een klantenkaart met je delen</string>
</resources>

View File

@@ -2,14 +2,17 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name">Loyalty Card Keychain</string>
<string name="action_search">Szukaj</string>
<string name="action_add">Dodaj</string>
<string name="noGiftCards">W tej chwili nie masz żadnych kart lojalnościowych. Kliknij przycisk \"+\" (plus) u góry, aby rozpocząć. \n\nLoyalty Locker Card pozwala nosić karty lojalnościowe w telefonie, dzięki czemu są zawsze w zasięgu ręki.</string>
<string name="noMatchingGiftCards">Żadne karty lojalnościowe nie pasują do filtra wyszukiwania. Spróbuj użyć innych warunków.</string>
<string name="storeName">Sklep</string>
<string name="note">Notatka</string>
<string name="cardId">Identyfikator karty</string>
<string name="barcodeType">Typ kodu kreskowego</string>
<string name="barcodeNoBarcode">Ta karta nie ma kodu kreskowego</string>
<string name="cancel">Anuluj</string>
<string name="save">Zapisz</string>
@@ -25,6 +28,7 @@
<string name="deleteConfirmation">Potwierdź, że chcesz usunąć tę kartę.</string>
<string name="ok">OK</string>
<string name="copy_to_clipboard">Skopiuj identyfikator do schowka</string>
<string name="share">Udostępnij</string>
<string name="sendLabel">Wyślij&#8230;</string>
<string name="addedShortcut">Dodano do ekranu głównego</string>
@@ -40,6 +44,7 @@
<string name="noStoreError">Nie wprowadzono nazwy sklepu</string>
<string name="noCardIdError">Nie wprowadzono identyfikatora karty</string>
<string name="noCardExistsError">Nie można wyszukać karty lojalnościowej</string>
<string name="failedParsingImportUriError">Nie można przeanalizować identyfikatora importu URI</string>
<string name="cardIdFormat">%1$s: %2$s</string>
<string name="importExport">Importuj/Eksportuj</string>
@@ -79,20 +84,20 @@
<string name="app_resources"><xliff:g id="app_name">%s</xliff:g> wykorzystuje następujące zasoby osób trzecich: <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="selectBarcodeTitle">Wybierz kod kreskowy</string>
<string name="enterBarcodeInstructions">Wprowadź wartość kodu kreskowego, a następnie wybierz obraz, który reprezentuje kod kreskowy, który chcesz użyć</string>
<string name="enterBarcodeInstructions">Wprowadź identyfikator karty, a następnie wybierz obraz reprezentujący kod kreskowy, którego chcesz użyć, lub wybierz &#8220;Ta karta nie ma kodu kreskowego&#8221;, aby nie używać kodu kreskowego.</string>
<string name="copy_to_clipboard_toast">Skopiowano identyfikator karty do schowka</string>
<string name="thumbnailDescription">Miniaturka karty</string>
<string name="startIntro">Pokaż ekran powitalny</string>
<string name="intro1Title">Witamy w Loyalty Card Keychain\n</string>
<string name="intro1Title">Witaj w Loyalty Card Keychain\n</string>
<string name="intro1Description">Zarządzaj kartami sklepowymi/lojalnościowymi opartymi na kodzie kreskowym na swoim telefonie!\n\n</string>
<string name="intro2Title">Dodawanie kart\n</string>
<string name="intro2Description">Dodaj nową kartę, dotykając znaku plus z listy kart. \n\n</string>
<string name="intro3Title">Dodawanie kart \n</string>
<string name="intro3Title">Dodawanie kart\n</string>
<string name="intro3Description">Aby dodać kod kreskowy, wykonaj zdjęcie aparatem lub wpisz ręcznie. \n\n</string>
<string name="intro4Title">Pokaż kartę \n</string>
<string name="intro4Title">Pokaż kartę\n</string>
<string name="intro4Description">Aby wyświetlić kartę, na głównym ekranie kliknij nazwę sklepu \n\n</string>
<string name="intro5Title">Kopia zapasowa\n</string>
<string name="intro5Description">Karty można zarchiwizować. Aby wyeksportować lub zaimportować dane karty, dotknij opcji Importuj/eksportuj w menu na stronie głównej. \n\n</string>
@@ -107,6 +112,10 @@
<string name="settings">Ustawienia</string>
<string name="settings_category_title_ui">Interfejs użytkownika</string>
<string name="settings_theme">Motyw</string>
<string name="settings_system_theme">Systemowy</string>
<string name="settings_light_theme">Jasny</string>
<string name="settings_dark_theme">Ciemny</string>
<string name="settings_card_title_list_font_size">Rozmiar czcionki listy tytułów kart</string>
<string name="settings_card_note_list_font_size">Rozmiar czcionki listy kart</string>
<string name="settings_card_title_font_size">Rozmiar czcionki tytułu karty</string>
@@ -114,4 +123,6 @@
<string name="settings_card_note_font_size">Rozmiar czcionki notatki karty</string>
<string name="settings_display_barcode_max_brightness">Rozjaśnij widok kodu kreskowego</string>
<string name="settings_lock_barcode_orientation">Zablokuj autoobracanie kodów kreskowych</string>
<string name="intent_import_card_from_url">Importuj kartę lojalnościową</string>
<string name="intent_import_card_from_url_share_text">Chcę udostępnić Ci kartę lojalnościową</string>
</resources>

View File

@@ -2,14 +2,17 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name">Карты лояльности</string>
<string name="action_search">Поиск</string>
<string name="action_add">Добавить карту</string>
<string name="noGiftCards">Пока нет ни одной карты. Нажмите на кнопку «+» (плюс) сверху для добавления.\n\n«Карты лояльности» позволяют хранить карты скидок в телефоне, так что они всегда будут под рукой.</string>
<string name="noMatchingGiftCards">Карт не найдено, попробуйте поискать по-другому.</string>
<string name="storeName">Магазин</string>
<string name="note">Примечание</string>
<string name="cardId">Номер карты</string>
<string name="barcodeType">Тип штрих-кода</string>
<string name="barcodeNoBarcode">Эта карта без штрихкода</string>
<string name="cancel">Отменить</string>
<string name="save">Сохранить</string>
@@ -25,6 +28,7 @@
<string name="deleteConfirmation">Пожалуйста подтвердите удаление карты.</string>
<string name="ok">ОК</string>
<string name="copy_to_clipboard">Скопировать номер карты в буфер обмена</string>
<string name="share">Переслать</string>
<string name="sendLabel">Отправить&#8230;</string>
<string name="addedShortcut">Карта добавлена на главный экран.</string>
@@ -40,6 +44,7 @@
<string name="noStoreError">Название магазина не указано</string>
<string name="noCardIdError">Номер карты не указан</string>
<string name="noCardExistsError">Карта не найдена</string>
<string name="failedParsingImportUriError">Не удалось разобрать импортируемый URI</string>
<string name="cardIdFormat">%1$s: %2$s</string>
<string name="importExport">Импорт/Экспорт</string>
@@ -79,7 +84,7 @@
<string name="app_resources"><xliff:g id="app_name">%s</xliff:g> использует следующие сторонние ресурсы: <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="selectBarcodeTitle">Выбор штрих-кода</string>
<string name="enterBarcodeInstructions">Введите значение и выберете вид штрих-кода</string>
<string name="enterBarcodeInstructions">Введите ID карты и выберите тип штрих-кода.</string>
<string name="copy_to_clipboard_toast">Номер карты скопирован в буфер обмена</string>
@@ -107,6 +112,10 @@
<string name="settings">Настройки</string>
<string name="settings_category_title_ui">Внешний вид</string>
<string name="settings_theme">Тема</string>
<string name="settings_system_theme">Системная тема</string>
<string name="settings_light_theme">Светлая тема</string>
<string name="settings_dark_theme">Тёмная тема</string>
<string name="settings_card_title_list_font_size">Размер шрифта названия карты для списка</string>
<string name="settings_card_note_list_font_size">Размер шрифта примечания для списка</string>
<string name="settings_card_title_font_size">Размер шрифта названия карты</string>
@@ -114,4 +123,6 @@
<string name="settings_card_note_font_size">Размер шрифта примечания</string>
<string name="settings_display_barcode_max_brightness">Максимальная яркость при показе карты</string>
<string name="settings_lock_barcode_orientation">Портретная ориентация экрана при показе карты</string>
<string name="intent_import_card_from_url">Импортировать карту</string>
<string name="intent_import_card_from_url_share_text">Я хочу поделиться картой с вами</string>
</resources>

View File

@@ -5,12 +5,10 @@
<string name="action_add">Pridať</string>
<string name="noGiftCards">Zatiaľ nemáte žiadne vernostné karty. Kliknite na tlačidlo \"+\" (plus) vyššie a začnite.\n\nAplikácia Vernostné karty umožňuje nosiť svoje vernostné karty v telefóne, kde sú vždy na dosah.</string>
<string name="storeName">Obchod</string>
<string name="note">Poznámka</string>
<string name="cardId">ID karty</string>
<string name="barcodeType">Typ čiarového kódu</string>
<string name="cancel">Zrušiť</string>
<string name="save">Uložiť</string>
<string name="capture">Zosnímať kartu</string>
@@ -40,7 +38,6 @@
<string name="noStoreError">Nebol zadaný obchod</string>
<string name="noCardIdError">Nebolo zadané ID karty</string>
<string name="noCardExistsError">Nie je možné vyhľadať vernostnú kartu</string>
<string name="cardIdFormat">%1$s: %2$s</string>
<string name="importExport">Import/Export</string>
<string name="importName">Import</string>
@@ -79,8 +76,6 @@
<string name="app_resources"><xliff:g id="app_name">%s</xliff:g> používa tieto knižnice tretích strán: <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="selectBarcodeTitle">Vyberte čiarový kód</string>
<string name="enterBarcodeInstructions">Zadajte čiarový kód a vyberte obrázok reprezentujúci čiarový kód, ktorý chcete použiť</string>
<string name="copy_to_clipboard_toast">ID karty skopírované do schránky</string>
<string name="thumbnailDescription">Náhľad karty</string>

View File

@@ -5,12 +5,10 @@
<string name="action_add">Dodaj</string>
<string name="noGiftCards">Trenutno nimate shranjene nobene kartice zvestobe. Kliknite \"+\" (plus) na vrhu, da jih dodate.\n\n Aplikacija Kartice zvestobe Vam omogoča, da imate kartice zvestobe shranjene na Vašem telefonu in vedno v dosegu roke.</string>
<string name="storeName">Shrani</string>
<string name="note">Zabeležka</string>
<string name="cardId">Št. kartice</string>
<string name="barcodeType">Vrsta črne kode</string>
<string name="cancel">Prekliči</string>
<string name="save">Shrani</string>
<string name="capture">Slikaj kartico</string>
@@ -40,7 +38,6 @@
<string name="noStoreError">Ime trgovine ni bilo vnešeno</string>
<string name="noCardIdError">Številka kartice ni bila vnešena</string>
<string name="noCardExistsError">Te kartice zvestobe ni bilo moč najti</string>
<string name="cardIdFormat">%1$s:%2$s</string>
<string name="importExport">Uvozi/izvozi</string>
<string name="importName">Uvozi</string>
@@ -79,8 +76,6 @@
<string name="app_resources"><xliff:g id="app_name">%s</xliff:g>uporablja sledeče zunanje vire: <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="selectBarcodeTitle">Izberite črtno kodo</string>
<string name="enterBarcodeInstructions">Vnesite vrednost črtne kode in izberite črtno kodo, ki jo želite uporabljati</string>
<string name="copy_to_clipboard_toast">Številka kartice je bila kopirana v odložišče</string>
<string name="thumbnailDescription">Ikona kartice</string>

View File

@@ -63,6 +63,8 @@ public class BarcodeSelectorActivityTest {
// Clicking button should create "empty" barcode
activity.findViewById(R.id.noBarcode).performClick();
Intent resultIntent = shadowOf(activity).getResultIntent();
// The BarcodeSelectorActivity should return an empty string
assertEquals("", resultIntent.getStringExtra(BarcodeSelectorActivity.BARCODE_FORMAT));
assertEquals("abcdefg", resultIntent.getStringExtra(BarcodeSelectorActivity.BARCODE_CONTENTS));
}

View File

@@ -20,6 +20,7 @@ import org.robolectric.annotation.Config;
import java.io.InvalidObjectException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static protect.card_locker.DBHelper.LoyaltyCardDbIds;
@@ -76,6 +77,30 @@ public class ImportURITest {
assertEquals(card.extras.toJSON().toString(), parsedCard.extras.toJSON().toString());
}
@Test
public void ensureNoCrashOnMissingHeaderFields() throws InvalidObjectException, JSONException
{
// Generate card
db.insertLoyaltyCard("store", "note", BarcodeFormat.UPC_A.toString(), LoyaltyCardDbIds.BARCODE_TYPE, null, null, null, new ExtrasHelper());
// Get card
LoyaltyCard card = db.getLoyaltyCard(1);
// Card to URI
Uri cardUri = importURIHelper.toUri(card);
// Parse URI
LoyaltyCard parsedCard = importURIHelper.parse(cardUri);
// Compare everything
assertEquals(card.barcodeType, parsedCard.barcodeType);
assertEquals(card.cardId, parsedCard.cardId);
assertEquals(card.note, parsedCard.note);
assertEquals(card.store, parsedCard.store);
assertNull(parsedCard.headerColor);
assertNull(parsedCard.headerTextColor);
}
@Test
public void failToParseInvalidUri()
{

View File

@@ -126,7 +126,16 @@ public class LoyaltyCardViewActivityTest
assertEquals(store, card.store);
assertEquals(note, card.note);
assertEquals(cardId, card.cardId);
assertEquals(barcodeType, card.barcodeType);
// The special "No barcode" string shouldn't actually be written to the loyalty card
if(barcodeType.equals(LoyaltyCardEditActivity.NO_BARCODE))
{
assertEquals("", card.barcodeType);
}
else
{
assertEquals(barcodeType, card.barcodeType);
}
assertNotNull(card.headerColor);
assertNotNull(card.headerTextColor);
}
@@ -155,10 +164,10 @@ public class LoyaltyCardViewActivityTest
assertNotNull(bundle);
Intent resultIntent = new Intent(intent);
Bundle resultBuddle = new Bundle();
resultBuddle.putString(Intents.Scan.RESULT, BARCODE_DATA);
resultBuddle.putString(Intents.Scan.RESULT_FORMAT, BARCODE_TYPE);
resultIntent.putExtras(resultBuddle);
Bundle resultBundle = new Bundle();
resultBundle.putString(Intents.Scan.RESULT, BARCODE_DATA);
resultBundle.putString(Intents.Scan.RESULT_FORMAT, BARCODE_TYPE);
resultIntent.putExtras(resultBundle);
// Respond to image capture, success
shadowOf(activity).receiveResult(
@@ -167,6 +176,38 @@ public class LoyaltyCardViewActivityTest
resultIntent);
}
/**
* Initiate and complete a barcode selection, either in success
* or in failure
*/
private void selectBarcodeWithResult(final Activity activity, final int buttonId, final String barcodeData, final String barcodeType, final boolean success) throws IOException
{
// Start image capture
final Button captureButton = activity.findViewById(buttonId);
captureButton.performClick();
ShadowActivity.IntentForResult intentForResult = shadowOf(activity).peekNextStartedActivityForResult();
assertNotNull(intentForResult);
Intent intent = intentForResult.intent;
assertNotNull(intent);
Bundle bundle = intent.getExtras();
assertNotNull(bundle);
Intent resultIntent = new Intent(intent);
Bundle resultBundle = new Bundle();
resultBundle.putString(BarcodeSelectorActivity.BARCODE_FORMAT, barcodeType);
resultBundle.putString(BarcodeSelectorActivity.BARCODE_CONTENTS, barcodeData);
resultIntent.putExtras(resultBundle);
// Respond to barcode selection, success
shadowOf(activity).receiveResult(
intent,
success ? Activity.RESULT_OK : Activity.RESULT_CANCELED,
resultIntent);
}
private void checkFieldProperties(final Activity activity, final int id, final int visibility,
final String contents)
{
@@ -540,7 +581,33 @@ public class LoyaltyCardViewActivityTest
activityController.resume();
// Save and check the loyalty card
saveLoyaltyCardWithArguments(activity, "store", "note", BARCODE_DATA, "", false);
saveLoyaltyCardWithArguments(activity, "store", "note", BARCODE_DATA, LoyaltyCardEditActivity.NO_BARCODE, false);
}
@Test
public void removeBarcodeFromLoyaltyCard() throws IOException, JSONException
{
ActivityController activityController = createActivityWithLoyaltyCard(true);
Activity activity = (Activity)activityController.get();
DBHelper db = new DBHelper(activity);
db.insertLoyaltyCard("store", "note", BARCODE_DATA, BARCODE_TYPE, Color.BLACK, Color.WHITE, null, new ExtrasHelper());
activityController.start();
activityController.visible();
activityController.resume();
// First check if the card is as expected
checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", BARCODE_DATA, BARCODE_TYPE);
// Complete empty barcode selection successfully
selectBarcodeWithResult(activity, R.id.enterButton, BARCODE_DATA, "", true);
// Check if the barcode type is NO_BARCODE as expected
checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", BARCODE_DATA, LoyaltyCardEditActivity.NO_BARCODE);
// Check if the special NO_BARCODE string doesn't get saved
saveLoyaltyCardWithArguments(activity, "store", "note", BARCODE_DATA, LoyaltyCardEditActivity.NO_BARCODE, false);
}
@Test