diff options
-rw-r--r-- | src/com/android/settings/ApnSettings.java | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/com/android/settings/ApnSettings.java b/src/com/android/settings/ApnSettings.java index 3b3ce2f..fdc0914 100644 --- a/src/com/android/settings/ApnSettings.java +++ b/src/com/android/settings/ApnSettings.java @@ -114,6 +114,7 @@ public class ApnSettings extends SettingsPreferenceFragment implements private boolean mUnavailable; private boolean mHideImsApn; + private boolean mAllowAddingApns; private final BroadcastReceiver mMobileStateReceiver = new BroadcastReceiver() { @Override @@ -171,6 +172,7 @@ public class ApnSettings extends SettingsPreferenceFragment implements getSystemService(Context.CARRIER_CONFIG_SERVICE); PersistableBundle b = configManager.getConfig(); mHideImsApn = b.getBoolean(CarrierConfigManager.KEY_HIDE_IMS_APN_BOOL); + mAllowAddingApns = b.getBoolean(CarrierConfigManager.KEY_ALLOW_ADDING_APNS_BOOL); } @Override @@ -235,16 +237,16 @@ public class ApnSettings extends SettingsPreferenceFragment implements final String mccmnc = mSubscriptionInfo == null ? "" : tm.getSimOperator(mSubscriptionInfo.getSubscriptionId()); Log.d(TAG, "mccmnc = " + mccmnc); - String where = "numeric=\"" - + mccmnc - + "\" AND NOT (type='ia' AND (apn=\"\" OR apn IS NULL))"; + StringBuilder where = new StringBuilder("numeric=\"" + mccmnc + + "\" AND NOT (type='ia' AND (apn=\"\" OR apn IS NULL)) AND user_visible!=0"); + if (mHideImsApn) { - where = where + " AND NOT (type='ims')"; + where.append(" AND NOT (type='ims')"); } Cursor cursor = getContentResolver().query(Telephony.Carriers.CONTENT_URI, new String[] { - "_id", "name", "apn", "type", "mvno_type", "mvno_match_data"}, where, null, - Telephony.Carriers.DEFAULT_SORT_ORDER); + "_id", "name", "apn", "type", "mvno_type", "mvno_match_data"}, where.toString(), + null, Telephony.Carriers.DEFAULT_SORT_ORDER); if (cursor != null) { IccRecords r = null; @@ -326,10 +328,12 @@ public class ApnSettings extends SettingsPreferenceFragment implements @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { if (!mUnavailable) { - menu.add(0, MENU_NEW, 0, - getResources().getString(R.string.menu_new)) - .setIcon(android.R.drawable.ic_menu_add) - .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); + if (mAllowAddingApns) { + menu.add(0, MENU_NEW, 0, + getResources().getString(R.string.menu_new)) + .setIcon(android.R.drawable.ic_menu_add) + .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); + } menu.add(0, MENU_RESTORE, 0, getResources().getString(R.string.menu_restore)) .setIcon(android.R.drawable.ic_menu_upload); |