summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/telephony
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 /src/com/android/providers/telephony
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
Diffstat (limited to 'src/com/android/providers/telephony')
-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;