summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Knight <starlightknight@slkdev.net>2016-07-31 18:35:42 -0400
committerAaron Knight <starlightknight@slkdev.net>2016-07-31 22:26:17 -0400
commit65f7537ec772c4b81cd7657088a977c1b088c280 (patch)
treeb44822dc469fd27679df68b3c0ba3fed4b656051
parentd62a920b65da5e7fb4e406a254d945efbad87d93 (diff)
downloadandroid_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.java23
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;