summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/WirelessSettings.java
diff options
context:
space:
mode:
authorAndrew Flynn <flynn@google.com>2013-10-11 09:06:22 -0700
committerAndrew Flynn <flynn@google.com>2013-10-11 09:21:41 -0700
commit17c008e9d0037373305f4c51442da7532b145dd1 (patch)
tree18702aa167e4b8c7ee85ff18d39201747298c70f /src/com/android/settings/WirelessSettings.java
parentb05be5fe0f0c0352d0b56b7ad6f584c6720591ed (diff)
downloadpackages_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.java21
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
}