From 5787be339f75f6f04c04477c249c4b0069b1f8b5 Mon Sep 17 00:00:00 2001 From: Amit Mahajan Date: Mon, 5 Oct 2015 11:06:54 -0700 Subject: [PATCH] Change to add user_visible field to Carriers table. Also adding config to control if adding APNs is allowed. Bug: 24519879 Bug: 24681288 Change-Id: I59466f5489606162a10e883ede378e575a189fb3 --- src/com/android/settings/ApnSettings.java | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/com/android/settings/ApnSettings.java b/src/com/android/settings/ApnSettings.java index 3b3ce2fa74..fdc09148f7 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); -- 2.11.0