diff --git a/app/src/main/java/protect/card_locker/Utils.java b/app/src/main/java/protect/card_locker/Utils.java index a6f8ad731..ac0bb7c72 100644 --- a/app/src/main/java/protect/card_locker/Utils.java +++ b/app/src/main/java/protect/card_locker/Utils.java @@ -198,12 +198,25 @@ public class Utils { List locales = pkpassParser.listLocales(); if (locales.isEmpty()) { - return Collections.singletonList(new ParseResult(ParseResultType.FULL, pkpassParser.toLoyaltyCard(null))); + try { + return Collections.singletonList(new ParseResult(ParseResultType.FULL, pkpassParser.toLoyaltyCard(null))); + } catch (Exception e) { + Log.e(TAG, "Error calling toLoyaltyCard on pkpass file", e); + Toast.makeText(context, R.string.errorReadingFile, Toast.LENGTH_LONG).show(); + return new ArrayList<>(); + } } List parseResultList = new ArrayList<>(); for (String locale : locales) { - ParseResult parseResult = new ParseResult(ParseResultType.FULL, pkpassParser.toLoyaltyCard(locale)); + ParseResult parseResult; + try { + parseResult = new ParseResult(ParseResultType.FULL, pkpassParser.toLoyaltyCard(locale)); + } catch (Exception e) { + Log.e(TAG, "Error calling toLoyaltyCard on pkpass file", e); + Toast.makeText(context, R.string.errorReadingFile, Toast.LENGTH_LONG).show(); + return new ArrayList<>(); + } parseResult.setNote(locale); parseResultList.add(parseResult); }