Merge "Restrict WifiScanModeActivity for guest user" into tm-qpr-dev am: b4ad581fe7
am: 17070ee0c4
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/19394734 Change-Id: I505207cbd0ea7250583416c7fdfd898de6175948 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -18,11 +18,15 @@ package com.android.settings.wifi;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserManager;
|
||||
import android.text.TextUtils;
|
||||
import android.util.EventLog;
|
||||
import android.util.Log;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
@@ -39,6 +43,7 @@ import com.android.settingslib.wifi.WifiPermissionChecker;
|
||||
* This activity requests users permission to allow scanning even when Wi-Fi is turned off
|
||||
*/
|
||||
public class WifiScanModeActivity extends FragmentActivity {
|
||||
private static final String TAG = "WifiScanModeActivity";
|
||||
private DialogFragment mDialog;
|
||||
@VisibleForTesting
|
||||
String mApp;
|
||||
@@ -78,7 +83,15 @@ public class WifiScanModeActivity extends FragmentActivity {
|
||||
mApp = Utils.getApplicationLabel(getApplicationContext(), packageName).toString();
|
||||
}
|
||||
|
||||
private void createDialog() {
|
||||
@VisibleForTesting
|
||||
void createDialog() {
|
||||
if (isGuestUser(getApplicationContext())) {
|
||||
Log.e(TAG, "Guest user is not allowed to configure Wi-Fi Scan Mode!");
|
||||
EventLog.writeEvent(0x534e4554, "235601169", -1 /* UID */, "User is a guest");
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
if (mDialog == null) {
|
||||
mDialog = AlertDialogFragment.newInstance(mApp);
|
||||
mDialog.show(getSupportFragmentManager(), "dialog");
|
||||
@@ -169,4 +182,11 @@ public class WifiScanModeActivity extends FragmentActivity {
|
||||
((WifiScanModeActivity) getActivity()).doNegativeClick();
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isGuestUser(Context context) {
|
||||
if (context == null) return false;
|
||||
final UserManager userManager = context.getSystemService(UserManager.class);
|
||||
if (userManager == null) return false;
|
||||
return userManager.isGuestUser();
|
||||
}
|
||||
}
|
||||
|
@@ -18,11 +18,17 @@ package com.android.settings.wifi;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.UserManager;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
|
||||
import com.android.settings.testutils.shadow.ShadowUtils;
|
||||
import com.android.settingslib.wifi.WifiPermissionChecker;
|
||||
|
||||
@@ -32,6 +38,7 @@ import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Spy;
|
||||
import org.mockito.junit.MockitoJUnit;
|
||||
import org.mockito.junit.MockitoRule;
|
||||
import org.robolectric.Robolectric;
|
||||
@@ -47,6 +54,10 @@ public class WifiScanModeActivityTest {
|
||||
|
||||
@Rule
|
||||
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
|
||||
@Spy
|
||||
Context mContext = ApplicationProvider.getApplicationContext();
|
||||
@Mock
|
||||
UserManager mUserManager;
|
||||
@Mock
|
||||
WifiPermissionChecker mWifiPermissionChecker;
|
||||
|
||||
@@ -54,7 +65,11 @@ public class WifiScanModeActivityTest {
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
|
||||
when(mUserManager.isGuestUser()).thenReturn(false);
|
||||
|
||||
mActivity = spy(Robolectric.setupActivity(WifiScanModeActivity.class));
|
||||
when(mActivity.getApplicationContext()).thenReturn(mContext);
|
||||
mActivity.mWifiPermissionChecker = mWifiPermissionChecker;
|
||||
}
|
||||
|
||||
@@ -87,4 +102,22 @@ public class WifiScanModeActivityTest {
|
||||
|
||||
assertThat(mActivity.mApp).isEqualTo(APP_LABEL);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createDialog_isNotGuestUser_shouldNotFinishDialog() {
|
||||
when(mUserManager.isGuestUser()).thenReturn(false);
|
||||
|
||||
mActivity.createDialog();
|
||||
|
||||
verify(mActivity, never()).finish();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createDialog_isGuestUser_shouldFinishDialog() {
|
||||
when(mUserManager.isGuestUser()).thenReturn(true);
|
||||
|
||||
mActivity.createDialog();
|
||||
|
||||
verify(mActivity).finish();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user