Try-catch for deletePreferredApnId()
Devices pre-dating lollipop have pref apn stored in shared pref
without sub id. That shared pref was removed in M, but devices
skipping M will run into this crash on trying to extract sub id
from the pref apn key.
Bug: 25587618
Change-Id: I5a7727acd390fe861a8bb71a0a6eab8246791c59
diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java
index bf7dc74..bf77aec 100644
--- a/src/com/android/providers/telephony/TelephonyProvider.java
+++ b/src/com/android/providers/telephony/TelephonyProvider.java
@@ -1453,10 +1453,14 @@
Map<String, ?> allPrefApnId = sp.getAll();
for (String key : allPrefApnId.keySet()) {
// extract subId from key by removing COLUMN_APN_ID
- int subId = Integer.parseInt(key.replace(COLUMN_APN_ID, ""));
- long apnId = getPreferredApnId(subId, false);
- if (apnId != INVALID_APN_ID) {
- setPreferredApn(apnId, subId);
+ try {
+ int subId = Integer.parseInt(key.replace(COLUMN_APN_ID, ""));
+ long apnId = getPreferredApnId(subId, false);
+ if (apnId != INVALID_APN_ID) {
+ setPreferredApn(apnId, subId);
+ }
+ } catch (Exception e) {
+ loge("Skipping over key " + key + " due to exception " + e);
}
}
SharedPreferences.Editor editor = sp.edit();