Merge "Protect entry points to add an eSIM when admin restricted" into qt-r1-dev
am: 4685c785b9

Change-Id: I5792ff5333005e2e0c66fd24d594b79bf67d140c
diff --git a/res/xml/mobile_network_list.xml b/res/xml/mobile_network_list.xml
index 13f9a59..01ddb28 100644
--- a/res/xml/mobile_network_list.xml
+++ b/res/xml/mobile_network_list.xml
@@ -20,9 +20,11 @@
     android:key="mobile_network_list_screen"
     android:title="@string/network_settings_title">
 
-    <Preference
+    <com.android.settingslib.RestrictedPreference
         android:key="add_more"
         settings:isPreferenceVisible="false"
+        settings:userRestriction="no_config_mobile_networks"
+        settings:useAdminDisabledSummary="true"
         android:title="@string/mobile_network_list_add_more"
         android:icon="@drawable/ic_menu_add_activated_tint"
         android:order="100" >
@@ -30,6 +32,6 @@
             <extra android:name="android.telephony.euicc.extra.FORCE_PROVISION"
                    android:value="true"/>
         </intent>
-    </Preference>
+    </com.android.settingslib.RestrictedPreference>
 
 </PreferenceScreen>
diff --git a/src/com/android/settings/network/MobileNetworkSummaryController.java b/src/com/android/settings/network/MobileNetworkSummaryController.java
index 0f76f24..bd3e2ef 100644
--- a/src/com/android/settings/network/MobileNetworkSummaryController.java
+++ b/src/com/android/settings/network/MobileNetworkSummaryController.java
@@ -130,7 +130,7 @@
     }
 
     private void update() {
-        if (mPreference == null) {
+        if (mPreference == null || mPreference.isDisabledByAdmin()) {
             return;
         }
         refreshSummary(mPreference);
diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java
index 99c9134..e24b0f2 100644
--- a/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java
@@ -42,6 +42,7 @@
 
 import com.android.settings.network.telephony.MobileNetworkActivity;
 import com.android.settings.widget.AddPreference;
+import com.android.settingslib.RestrictedLockUtils;
 
 import org.junit.After;
 import org.junit.Before;
@@ -373,4 +374,12 @@
         verify(mPreference, atLeastOnce()).setAddWidgetEnabled(captor.capture());
         assertThat(captor.getValue()).isTrue();
     }
+
+    @Test
+    public void onResume_disabledByAdmin_prefStaysDisabled() {
+        mPreference.setDisabledByAdmin(new RestrictedLockUtils.EnforcedAdmin());
+        mController.displayPreference(mPreferenceScreen);
+        mController.onResume();
+        verify(mPreference, never()).setEnabled(eq(true));
+    }
 }