diff options
Diffstat (limited to 'src/com/android/providers/telephony')
-rw-r--r-- | src/com/android/providers/telephony/TelephonyProvider.java | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java index de1e100..e1201af 100644 --- a/src/com/android/providers/telephony/TelephonyProvider.java +++ b/src/com/android/providers/telephony/TelephonyProvider.java @@ -1539,11 +1539,24 @@ public class TelephonyProvider extends ContentProvider SharedPreferences sp = getContext().getSharedPreferences(PREF_FILE_APN, Context.MODE_PRIVATE); long apnId = sp.getLong(COLUMN_APN_ID + subId, INVALID_APN_ID); - if (apnId == INVALID_APN_ID && checkApnSp) { - apnId = getDefaultPreferredApnId(); - if (apnId > INVALID_APN_ID) { - setPreferredApnId(apnId, subId); - deletePreferredApn(subId); + if (apnId == INVALID_APN_ID) { + if (checkApnSp) { + apnId = getPreferredApnIdFromApn(subId); + if (apnId == INVALID_APN_ID) { + apnId = getDefaultPreferredApnId(); + + if (apnId != INVALID_APN_ID) { + setPreferredApnId(apnId, subId); + } + } else { + setPreferredApnId(apnId, subId); + deletePreferredApn(subId); + } + } else { + apnId = getDefaultPreferredApnId(); + if (apnId != INVALID_APN_ID) { + setPreferredApnId(apnId, subId); + } } } return apnId; |