Merge "Import translations. DO NOT MERGE" into oc-dr1-dev
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index 65287a2..9fbee90 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -131,6 +131,21 @@
cr, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
}
+ /**
+ * Whether to show the Enhanced 4G LTE settings.
+ *
+ * <p>We show this settings if the VoLTE can be enabled by this device and the carrier app
+ * doesn't set {@link CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL} to false.
+ */
+ public static boolean hideEnhanced4gLteSettings(Context context,
+ PersistableBundle carrierConfig) {
+ return !(ImsManager.isVolteEnabledByPlatform(context)
+ && ImsManager.isVolteProvisionedOnDevice(context))
+ || carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL);
+
+ }
+
public static class MobileNetworkFragment extends PreferenceFragment implements
Preference.OnPreferenceChangeListener, RoamingDialogFragment.RoamingDialogListener {
@@ -796,10 +811,7 @@
android.util.Log.d(LOG_TAG, "keep ltePref");
}
- if (!(ImsManager.isVolteEnabledByPlatform(activity)
- && ImsManager.isVolteProvisionedOnDevice(activity))
- || carrierConfig.getBoolean(
- CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL)) {
+ if (hideEnhanced4gLteSettings(getActivity(), carrierConfig)) {
Preference pref = prefSet.findPreference(BUTTON_4G_LTE_KEY);
if (pref != null) {
prefSet.removePreference(pref);
diff --git a/src/com/android/phone/PhoneSearchIndexablesProvider.java b/src/com/android/phone/PhoneSearchIndexablesProvider.java
index 209d100..1cee227 100644
--- a/src/com/android/phone/PhoneSearchIndexablesProvider.java
+++ b/src/com/android/phone/PhoneSearchIndexablesProvider.java
@@ -36,6 +36,7 @@
import android.provider.SearchIndexablesContract.RawData;
import android.provider.SearchIndexablesProvider;
import android.support.annotation.VisibleForTesting;
+import android.telephony.TelephonyManager;
import android.telephony.euicc.EuiccManager;
public class PhoneSearchIndexablesProvider extends SearchIndexablesProvider {
@@ -97,6 +98,7 @@
@Override
public Cursor queryNonIndexableKeys(String[] projection) {
MatrixCursor cursor = new MatrixCursor(NON_INDEXABLES_KEYS_COLUMNS);
+
if (!mUserManager.isAdminUser()) {
final String[] values = new String[]{"preferred_network_mode_key", "button_roaming_key",
"cdma_lte_data_service_key", "enabled_networks_key", "enhanced_4g_lte",
@@ -105,8 +107,13 @@
for (String nik : values) {
cursor.addRow(createNonIndexableRow(nik));
}
- } else if (isEuiccSettingsHidden()) {
- cursor.addRow(createNonIndexableRow("esim_list_profile" /* key */));
+ } else {
+ if (isEuiccSettingsHidden()) {
+ cursor.addRow(createNonIndexableRow("esim_list_profile" /* key */));
+ }
+ if (isEnhanced4gLteHidden()) {
+ cursor.addRow(createNonIndexableRow("enhanced_4g_lte" /* key */));
+ }
}
cursor.addRow(createNonIndexableRow("carrier_settings_euicc_key" /* key */));
return cursor;
@@ -116,6 +123,13 @@
return !MobileNetworkSettings.showEuiccSettings(getContext());
}
+ @VisibleForTesting boolean isEnhanced4gLteHidden() {
+ TelephonyManager telephonyManager =
+ (TelephonyManager) getContext().getSystemService(Context.TELEPHONY_SERVICE);
+ return MobileNetworkSettings
+ .hideEnhanced4gLteSettings(getContext(), telephonyManager.getCarrierConfig());
+ }
+
private Object[] createNonIndexableRow(String key) {
final Object[] ref = new Object[NON_INDEXABLES_KEYS_COLUMNS.length];
ref[COLUMN_INDEX_NON_INDEXABLE_KEYS_KEY_VALUE] = key;
diff --git a/tests/src/com/android/phone/PhoneSearchIndexablesProviderTest.java b/tests/src/com/android/phone/PhoneSearchIndexablesProviderTest.java
index 2573780..730db93 100644
--- a/tests/src/com/android/phone/PhoneSearchIndexablesProviderTest.java
+++ b/tests/src/com/android/phone/PhoneSearchIndexablesProviderTest.java
@@ -50,14 +50,23 @@
private class PhoneSearchIndexablesTestProvider extends PhoneSearchIndexablesProvider {
private boolean mIsEuiccSettingsHidden = false;
+ private boolean mIsEnhanced4gLteHidden = false;
@Override boolean isEuiccSettingsHidden() {
return mIsEuiccSettingsHidden;
}
+ @Override boolean isEnhanced4gLteHidden() {
+ return mIsEnhanced4gLteHidden;
+ }
+
public void setIsEuiccSettingsHidden(boolean isEuiccSettingsHidden) {
mIsEuiccSettingsHidden = isEuiccSettingsHidden;
}
+
+ public void setIsEnhanced4gLteHidden(boolean isEnhanced4gLteHidden) {
+ mIsEnhanced4gLteHidden = isEnhanced4gLteHidden;
+ }
}
@Before
@@ -103,8 +112,9 @@
@Test
public void testQueryNonIndexableKeys() {
+ mProvider.setIsEnhanced4gLteHidden(false /* isEnhanced4gLteHidden */);
+ mProvider.setIsEuiccSettingsHidden(false /* isEuiccSettingsHiden */);
when(mUserManager.isAdminUser()).thenReturn(false);
- mProvider.setIsEuiccSettingsHidden(false /* isEuiccSettingsHidden */);
Cursor cursor1 = mProvider.queryNonIndexableKeys(
SearchIndexablesContract.NON_INDEXABLES_KEYS_COLUMNS);
assertThat(cursor1.getColumnNames()).isEqualTo(
@@ -120,5 +130,10 @@
Cursor cursor3 = mProvider
.queryNonIndexableKeys(SearchIndexablesContract.NON_INDEXABLES_KEYS_COLUMNS);
assertThat(cursor3.getCount()).isEqualTo(2);
+
+ mProvider.setIsEnhanced4gLteHidden(true /* isEnhanced4gLteHidden */);
+ Cursor cursor4 = mProvider
+ .queryNonIndexableKeys(SearchIndexablesContract.NON_INDEXABLES_KEYS_COLUMNS);
+ assertThat(cursor4.getCount()).isEqualTo(3);
}
}