diff options
author | Andrew Flynn <flynn@google.com> | 2013-10-11 09:06:22 -0700 |
---|---|---|
committer | Andrew Flynn <flynn@google.com> | 2013-10-11 09:21:41 -0700 |
commit | 17c008e9d0037373305f4c51442da7532b145dd1 (patch) | |
tree | 18702aa167e4b8c7ee85ff18d39201747298c70f /src/com/android/settings/WirelessSettings.java | |
parent | b05be5fe0f0c0352d0b56b7ad6f584c6720591ed (diff) | |
download | packages_apps_Settings-17c008e9d0037373305f4c51442da7532b145dd1.zip packages_apps_Settings-17c008e9d0037373305f4c51442da7532b145dd1.tar.gz packages_apps_Settings-17c008e9d0037373305f4c51442da7532b145dd1.tar.bz2 |
Check for presence of carrier app in Mobile Plan.
When the user chooses Mobile Plan in Settings, first do a check to see if
a valid carrier app for the current MCC/MNC exists. If so, launch that app
instead of checking for a provisioning URL or hoping for a DNS redirect in
the browser. If no such app exists, continue on as normal.
Bug: 9623212
Change-Id: I81538063d4cdd147948a83ffc0c2641174ba9001
Diffstat (limited to 'src/com/android/settings/WirelessSettings.java')
-rw-r--r-- | src/com/android/settings/WirelessSettings.java | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java index 6724cc1..db39e12 100644 --- a/src/com/android/settings/WirelessSettings.java +++ b/src/com/android/settings/WirelessSettings.java @@ -80,6 +80,7 @@ public class WirelessSettings extends RestrictedSettingsFragment private ConnectivityManager mCm; private TelephonyManager mTm; + private PackageManager mPm; private static final int MANAGE_MOBILE_PLAN_DIALOG_ID = 1; private static final String SAVED_MANAGE_MOBILE_PLAN_MSG = "mManageMobilePlanMessage"; @@ -124,6 +125,15 @@ public class WirelessSettings extends RestrictedSettingsFragment NetworkInfo ni = mCm.getProvisioningOrActiveNetworkInfo(); if (mTm.hasIccCard() && (ni != null)) { + // Check for carrier apps that can handle provisioning first + Intent provisioningIntent = new Intent(TelephonyIntents.ACTION_CARRIER_SETUP); + provisioningIntent.addCategory(TelephonyIntents.CATEGORY_MCCMNC_PREFIX + + mTm.getSimOperator()); + if (mPm.resolveActivity(provisioningIntent, 0 /* flags */) != null) { + startActivity(provisioningIntent); + return; + } + // Get provisioning URL String url = mCm.getMobileProvisioningUrl(); if (!TextUtils.isEmpty(url)) { @@ -192,15 +202,14 @@ public class WirelessSettings extends RestrictedSettingsFragment CharSequence[] entryValues = new CharSequence[count]; Drawable[] entryImages = new Drawable[count]; - PackageManager packageManager = getPackageManager(); int i = 0; for (SmsApplicationData smsApplicationData : smsApplications) { entries[i] = smsApplicationData.mApplicationName; entryValues[i] = smsApplicationData.mPackageName; try { - entryImages[i] = packageManager.getApplicationIcon(smsApplicationData.mPackageName); + entryImages[i] = mPm.getApplicationIcon(smsApplicationData.mPackageName); } catch (NameNotFoundException e) { - entryImages[i] = packageManager.getDefaultActivityIcon(); + entryImages[i] = mPm.getDefaultActivityIcon(); } i++; } @@ -260,6 +269,7 @@ public class WirelessSettings extends RestrictedSettingsFragment mCm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); mTm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); + mPm = getPackageManager(); addPreferencesFromResource(R.xml.wireless_settings); @@ -342,7 +352,7 @@ public class WirelessSettings extends RestrictedSettingsFragment } // Remove Airplane Mode settings if it's a stationary device such as a TV. - if (getActivity().getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEVISION)) { + if (mPm.hasSystemFeature(PackageManager.FEATURE_TELEVISION)) { removePreference(KEY_TOGGLE_AIRPLANE); } @@ -370,8 +380,7 @@ public class WirelessSettings extends RestrictedSettingsFragment com.android.internal.R.bool.config_cellBroadcastAppLinks); try { if (isCellBroadcastAppLinkEnabled) { - PackageManager pm = getPackageManager(); - if (pm.getApplicationEnabledSetting("com.android.cellbroadcastreceiver") + if (mPm.getApplicationEnabledSetting("com.android.cellbroadcastreceiver") == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) { isCellBroadcastAppLinkEnabled = false; // CMAS app disabled } |