diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java
index dcf671522..3bd10c4ed 100644
--- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java
+++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java
@@ -25,6 +25,7 @@ import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
+import android.widget.Toast;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.integration.android.IntentIntegrator;
@@ -125,6 +126,13 @@ public class LoyaltyCardViewActivity extends AppCompatActivity
if(updateLoyaltyCard || viewLoyaltyCard)
{
final LoyaltyCard loyaltyCard = db.getLoyaltyCard(loyaltyCardId);
+ if(loyaltyCard == null)
+ {
+ Log.w(TAG, "Could not lookup loyalty card " + loyaltyCardId);
+ Toast.makeText(this, R.string.noCardExistsError, Toast.LENGTH_LONG).show();
+ finish();
+ return;
+ }
if(storeFieldEdit.getText().length() == 0)
{
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index 60ccf33e8..198ca24b8 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -35,6 +35,7 @@
Nebyl zadán Obchod
Nebylo zadáno ID karty
+ Could not lookup loyalty card
%1$s: %2$s
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 067d295eb..c5b777bc3 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -25,6 +25,7 @@
Import
Importiert von: %1$s
Keine Kartennummer angegeben
+ Could not lookup loyalty card
Ohne die Berechtigung für den externen Speicher kann kein Import oder Export erfolgen.
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.
Abbrechen
@@ -37,7 +38,7 @@
Unblock Rotation
Löschen
Bitte bestätigen Sie, dass diese Karte gelöscht werden soll.
- Lösche die Kundenkarte
+ Lösche die Kundenkarte
Bearbeiten
Kundenkarte bearbeiten
Karte einfügen
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index c42537876..97c4e5eed 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -35,6 +35,7 @@
Aucun nom n\'a été saisi
Aucun numéro n\'a été saisi
+ Could not lookup loyalty card
%1$s: %2$s
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 229c654d6..1d93c8c01 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -25,6 +25,7 @@
Nessun negozio inserito
Nessun codice carta inserito
+ Could not lookup loyalty card
%1$s: %2$s
Note
diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml
index f4120fae0..16adcf6e6 100644
--- a/app/src/main/res/values-lt/strings.xml
+++ b/app/src/main/res/values-lt/strings.xml
@@ -35,6 +35,7 @@
Parduotuvė neįvesta
Neįvestas kortelės ID
+ Could not lookup loyalty card
%1$s: %2$s
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index b3c57d4a6..3517d3c09 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -25,6 +25,7 @@
Geen winkel toegevoegd
Geen kaart-ID toegevoegd
+ Could not lookup loyalty card
%1$s: %2$s
Notitie
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b156543d7..628aab111 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -36,6 +36,7 @@
No Store entered
No Card ID entered
+ Could not lookup loyalty card
%1$s: %2$s
%1$s - %2$s
diff --git a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java
index 959b751a4..81320604c 100644
--- a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java
+++ b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java
@@ -439,4 +439,24 @@ public class LoyaltyCardViewActivityTest
assertEquals("Block Rotation", menu.findItem(R.id.action_lock_unlock).getTitle().toString());
assertEquals("Edit", menu.findItem(R.id.action_edit).getTitle().toString());
}
+
+ @Test
+ public void startWithMissingLoyaltyCard() throws IOException
+ {
+ ActivityController activityController = createActivityWithLoyaltyCard(true);
+ Activity activity = (Activity)activityController.get();
+
+ activityController.start();
+ activityController.visible();
+ activityController.resume();
+
+ // The activity should find that the card is missing and shut down
+
+ assertTrue(activity.isFinishing());
+
+ // Make sure the activity can close down
+ activityController.pause();
+ activityController.stop();
+ activityController.destroy();
+ }
}