diff --git a/app/src/main/java/protect/card_locker/Utils.java b/app/src/main/java/protect/card_locker/Utils.java index 35b00cd73..5446c9648 100644 --- a/app/src/main/java/protect/card_locker/Utils.java +++ b/app/src/main/java/protect/card_locker/Utils.java @@ -32,6 +32,7 @@ import java.util.Calendar; import java.util.Currency; import java.util.Date; import java.util.GregorianCalendar; +import java.util.HashMap; import androidx.core.graphics.ColorUtils; @@ -345,4 +346,12 @@ public class Utils { return BitmapFactory.decodeStream(in); } + + static public Object hashmapGetOrDefault(HashMap hashMap, String key, Object defaultValue) { + Object value = hashMap.get(key); + if (value == null) { + return defaultValue; + } + return value; + } } 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 469725357..e88041182 100644 --- a/app/src/main/java/protect/card_locker/importexport/StocardImporter.java +++ b/app/src/main/java/protect/card_locker/importexport/StocardImporter.java @@ -140,9 +140,9 @@ public class StocardImporter implements Importer for (HashMap loyaltyCardData : loyaltyCardHashMap.values()) { String store = providers.get(loyaltyCardData.get("_providerId").toString()); - String note = (String) loyaltyCardData.getOrDefault("note", ""); + String note = (String) Utils.hashmapGetOrDefault(loyaltyCardData, "note", ""); String cardId = (String) loyaltyCardData.get("cardId"); - String barcodeTypeString = (String) loyaltyCardData.getOrDefault("barcodeType", null); + String barcodeTypeString = (String) Utils.hashmapGetOrDefault(loyaltyCardData, "barcodeType", null); BarcodeFormat barcodeType = null; if (barcodeTypeString != null) { if (barcodeTypeString.equals("RSS_DATABAR_EXPANDED")) { @@ -202,7 +202,10 @@ public class StocardImporter implements Importer } private HashMap> appendToLoyaltyCardHashMap(HashMap> loyaltyCardHashMap, String cardID, String key, Object value) { - HashMap loyaltyCardData = loyaltyCardHashMap.getOrDefault(cardID, new HashMap<>()); + HashMap loyaltyCardData = loyaltyCardHashMap.get(cardID); + if (loyaltyCardData == null) { + loyaltyCardData = new HashMap<>(); + } loyaltyCardData.put(key, value); loyaltyCardHashMap.put(cardID, loyaltyCardData);