diff --git a/src/com/android/settings/network/ProviderModelSlice.java b/src/com/android/settings/network/ProviderModelSlice.java index 0aae349e72f..86ba5639859 100644 --- a/src/com/android/settings/network/ProviderModelSlice.java +++ b/src/com/android/settings/network/ProviderModelSlice.java @@ -34,6 +34,7 @@ import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.net.Uri; import android.telephony.SubscriptionManager; +import android.util.EventLog; import android.util.Log; import android.view.WindowManager.LayoutParams; @@ -103,6 +104,12 @@ public class ProviderModelSlice extends WifiSlice { // Fifth section: Add the Wi-Fi items which are not connected. // Sixth section: Add the See All item. final ListBuilder listBuilder = mHelper.createListBuilder(getUri()); + if (isGuestUser(mContext)) { + Log.e(TAG, "Guest user is not allowed to configure Internet!"); + EventLog.writeEvent(0x534e4554, "227470877", -1 /* UID */, "User is a guest"); + return listBuilder.build(); + } + int maxListSize = 0; final NetworkProviderWorker worker = getWorker(); if (worker != null) { @@ -297,6 +304,8 @@ public class ProviderModelSlice extends WifiSlice { @Override public Class getBackgroundWorkerClass() { + if (isGuestUser(mContext)) return null; + return NetworkProviderWorker.class; } diff --git a/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java b/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java index 66247d3623e..345631cf5f6 100644 --- a/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java +++ b/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java @@ -42,6 +42,7 @@ import android.graphics.drawable.ColorDrawable; import android.net.ConnectivityManager; import android.net.Uri; import android.net.wifi.WifiManager; +import android.os.UserManager; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; @@ -86,6 +87,8 @@ public class ProviderModelSliceTest { private ListBuilder mListBuilder; private MockNetworkProviderWorker mMockNetworkProviderWorker; + @Mock + private UserManager mUserManager; @Mock private SubscriptionManager mSubscriptionManager; @Mock @@ -122,6 +125,8 @@ public class ProviderModelSliceTest { any(), any(), any(), any(), any(), anyLong(), anyLong(), any())) .thenReturn(mWifiPickerTracker); + when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager); + when(mUserManager.isGuestUser()).thenReturn(false); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); when(mContext.getSystemService(ConnectivityManager.class)).thenReturn(mConnectivityManager); when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); @@ -162,6 +167,17 @@ public class ProviderModelSliceTest { .isEqualTo(Intent.FLAG_RECEIVER_FOREGROUND); } + @Test + @UiThreadTest + public void getSlice_isGuestUser_shouldNotAddRow() { + when(mUserManager.isGuestUser()).thenReturn(true); + + final Slice slice = mMockProviderModelSlice.getSlice(); + + assertThat(slice).isNotNull(); + verify(mListBuilder, never()).addRow(any()); + } + @Test @UiThreadTest public void getSlice_noWifiAndHasCarrierNoData_oneCarrier() { @@ -319,6 +335,21 @@ public class ProviderModelSliceTest { assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue(); } + @Test + public void getBackgroundWorkerClass_isGuestUser_returnNull() { + when(mUserManager.isGuestUser()).thenReturn(true); + + assertThat(mMockProviderModelSlice.getBackgroundWorkerClass()).isNull(); + } + + @Test + public void getBackgroundWorkerClass_notGuestUser_returnWorkerClass() { + when(mUserManager.isGuestUser()).thenReturn(false); + + assertThat(mMockProviderModelSlice.getBackgroundWorkerClass()) + .isEqualTo(NetworkProviderWorker.class); + } + @Test public void providerModelSlice_hasCorrectUri() { assertThat(mMockProviderModelSlice.getUri()).isEqualTo(PROVIDER_MODEL_SLICE_URI);