Disallow screenshot on Wi-Fi QR code settings

- Add FLAG_SECURE to WifiDppConfiguratorActivity to avoid screenshot security issue

Bug: 249980936
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=WifiDppConfiguratorActivityTest

Change-Id: I5e62c2584122f79127ab505e8491565e163de296
This commit is contained in:
Weng Su
2022-10-31 16:46:10 +08:00
parent a7b9107027
commit 950837b20f
2 changed files with 12 additions and 0 deletions

View File

@@ -28,6 +28,7 @@ import android.os.UserManager;
import android.provider.Settings;
import android.util.EventLog;
import android.util.Log;
import android.view.WindowManager;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.FragmentTransaction;
@@ -99,6 +100,7 @@ public class WifiDppConfiguratorActivity extends WifiDppBaseActivity implements
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
if (savedInstanceState != null) {
String qrCode = savedInstanceState.getString(KEY_QR_CODE);

View File

@@ -16,6 +16,10 @@
package com.android.settings.wifi.dpp;
import static android.view.WindowManager.LayoutParams.FLAG_SECURE;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
@@ -72,6 +76,12 @@ public class WifiDppConfiguratorActivityTest {
Robolectric.setupActivity(WifiDppConfiguratorActivity.class);
}
@Test
public void launchActivity_shouldAddFlagSecure() {
assertThat(mActivity.getWindow().getAttributes().flags & FLAG_SECURE)
.isEqualTo(FLAG_SECURE);
}
@Test
public void handleIntent_isGuestUser_shouldFinish() {
when(mUserManager.isGuestUser()).thenReturn(true);