diff options
author | Aaron Knight <starlightknight@slkdev.net> | 2016-07-31 18:35:42 -0400 |
---|---|---|
committer | Aaron Knight <starlightknight@slkdev.net> | 2016-07-31 22:26:17 -0400 |
commit | 65f7537ec772c4b81cd7657088a977c1b088c280 (patch) | |
tree | b44822dc469fd27679df68b3c0ba3fed4b656051 | |
parent | d62a920b65da5e7fb4e406a254d945efbad87d93 (diff) | |
download | android_packages_providers_TelephonyProvider-65f7537ec772c4b81cd7657088a977c1b088c280.tar.gz android_packages_providers_TelephonyProvider-65f7537ec772c4b81cd7657088a977c1b088c280.tar.bz2 android_packages_providers_TelephonyProvider-65f7537ec772c4b81cd7657088a977c1b088c280.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 354a009..f95fec4 100644 --- a/src/com/android/providers/telephony/TelephonyProvider.java +++ b/src/com/android/providers/telephony/TelephonyProvider.java @@ -1796,11 +1796,24 @@ public class TelephonyProvider extends ContentProvider private long getPreferredApnId(int subId, boolean checkApnSp) { SharedPreferences sp = getContext().getSharedPreferences(PREF_FILE, Context.MODE_PRIVATE); long apnId = sp.getLong(COLUMN_APN_ID + subId, INVALID_APN_ID); - if (apnId == INVALID_APN_ID && checkApnSp) { - apnId = getPreferredApnIdFromApn(subId); - 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; |