diff options
author | Aaron Knight <starlightknight@slkdev.net> | 2016-07-31 18:35:42 -0400 |
---|---|---|
committer | Michael Bestas <mikeioannina@gmail.com> | 2016-12-30 22:25:35 +0200 |
commit | 4c61dd60fe79cbfbf6fc7a1e62e0197aed481a3d (patch) | |
tree | 4b07b985cca9f2e56c210d1693d2d437e2f63fcc | |
parent | e57c616b7ef624b1233feedba577f973ed1907a5 (diff) | |
download | android_packages_providers_TelephonyProvider-4c61dd60fe79cbfbf6fc7a1e62e0197aed481a3d.tar.gz android_packages_providers_TelephonyProvider-4c61dd60fe79cbfbf6fc7a1e62e0197aed481a3d.tar.bz2 android_packages_providers_TelephonyProvider-4c61dd60fe79cbfbf6fc7a1e62e0197aed481a3d.zip |
TelephonyProvider: Fix Default APN Preference Overlay on 1st Boot
In the current code on CM13, the overlay preference can only be
called when Reset APN Settings is called.
Looking at the source history this is a regression. Comparing with
history, I've restored reading the overlay and tested that the
default preference is now marked on the first boot.
Change-Id: I3141d486afd45405c57ed25a89d9fa838fadf794
-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; |