Skip to content

Commit 1539d88

Browse files
Merge pull request #2389 from CatimaLoyalty/fix/pkpassCrash
Fix pkpass reading crashing Catima
2 parents 1e0a52d + 91ee846 commit 1539d88

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

app/src/main/java/protect/card_locker/Utils.java

+15-2
Original file line numberDiff line numberDiff line change
@@ -198,12 +198,25 @@ static public List<ParseResult> retrieveBarcodesFromPkPass(Context context, Uri
198198

199199
List<String> locales = pkpassParser.listLocales();
200200
if (locales.isEmpty()) {
201-
return Collections.singletonList(new ParseResult(ParseResultType.FULL, pkpassParser.toLoyaltyCard(null)));
201+
try {
202+
return Collections.singletonList(new ParseResult(ParseResultType.FULL, pkpassParser.toLoyaltyCard(null)));
203+
} catch (Exception e) {
204+
Log.e(TAG, "Error calling toLoyaltyCard on pkpass file", e);
205+
Toast.makeText(context, R.string.errorReadingFile, Toast.LENGTH_LONG).show();
206+
return new ArrayList<>();
207+
}
202208
}
203209

204210
List<ParseResult> parseResultList = new ArrayList<>();
205211
for (String locale : locales) {
206-
ParseResult parseResult = new ParseResult(ParseResultType.FULL, pkpassParser.toLoyaltyCard(locale));
212+
ParseResult parseResult;
213+
try {
214+
parseResult = new ParseResult(ParseResultType.FULL, pkpassParser.toLoyaltyCard(locale));
215+
} catch (Exception e) {
216+
Log.e(TAG, "Error calling toLoyaltyCard on pkpass file", e);
217+
Toast.makeText(context, R.string.errorReadingFile, Toast.LENGTH_LONG).show();
218+
return new ArrayList<>();
219+
}
207220
parseResult.setNote(locale);
208221
parseResultList.add(parseResult);
209222
}

0 commit comments

Comments
 (0)