summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Knight <starlightknight@slkdev.net>2016-07-31 18:35:42 -0400
committerMichael Bestas <mikeioannina@gmail.com>2016-12-30 22:25:35 +0200
commit4c61dd60fe79cbfbf6fc7a1e62e0197aed481a3d (patch)
tree4b07b985cca9f2e56c210d1693d2d437e2f63fcc
parente57c616b7ef624b1233feedba577f973ed1907a5 (diff)
downloadandroid_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.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 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;