From 15425d51aaadb5dad438983c65f06fc0009100e4 Mon Sep 17 00:00:00 2001 From: Branden Archer Date: Sat, 22 Jul 2017 23:43:10 -0400 Subject: [PATCH 1/2] Add debugging when entering view activity --- .../java/protect/card_locker/LoyaltyCardViewActivity.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index 50f9d1327..dcf671522 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -79,6 +79,10 @@ public class LoyaltyCardViewActivity extends AppCompatActivity updateLoyaltyCard = b != null && b.getBoolean("update", false); viewLoyaltyCard = b != null && b.getBoolean("view", false); + Log.d(TAG, "View activity: id=" + loyaltyCardId + + ", updateLoyaltyCard=" + Boolean.toString(updateLoyaltyCard) + + ", viewLoyaltyCard=" + Boolean.toString(viewLoyaltyCard)); + db = new DBHelper(this); } From 4143e5c28663f312530cdfabac653943a1d65dc1 Mon Sep 17 00:00:00 2001 From: Branden Archer Date: Sun, 23 Jul 2017 10:05:05 -0400 Subject: [PATCH 2/2] Bail if loyalty card could not be found This case was hit at least once by a user, though the scenario is not known. If it is hit, post a message and bail gracefully, until the reason can be determined. --- .../card_locker/LoyaltyCardViewActivity.java | 8 ++++++++ app/src/main/res/values-cs/strings.xml | 1 + app/src/main/res/values-de/strings.xml | 3 ++- app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values-lt/strings.xml | 1 + app/src/main/res/values-nl/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + .../LoyaltyCardViewActivityTest.java | 20 +++++++++++++++++++ 9 files changed, 36 insertions(+), 1 deletion(-) 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(); + } }