From 950837b20f418df7a0583f5fa78df00a74a88c31 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Mon, 31 Oct 2022 16:46:10 +0800 Subject: [PATCH 1/2] 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 --- .../settings/wifi/dpp/WifiDppConfiguratorActivity.java | 2 ++ .../wifi/dpp/WifiDppConfiguratorActivityTest.java | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java b/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java index e6f0b31f384..6c9d4980f44 100644 --- a/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java +++ b/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java b/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java index d8605ded829..88fa83afbf7 100644 --- a/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java +++ b/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java @@ -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); From 0243771025e89578efb89881981de91e2b6351ac Mon Sep 17 00:00:00 2001 From: Arc Wang Date: Mon, 31 Oct 2022 15:45:24 +0800 Subject: [PATCH 2/2] Extend SearchView width To align SearchView x button with right border. Bug: 254403811 Test: manual, Settings > Apps > See all apps > tap the search icon > input something and observe. Change-Id: I5146c9ffb3c5177926e75f673497408092f6c065 --- .../applications/manageapplications/ManageApplications.java | 1 + .../android/settings/datetime/timezone/BaseTimeZonePicker.java | 1 + src/com/android/settings/print/PrintServiceSettingsFragment.java | 1 + 3 files changed, 3 insertions(+) diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java index 5ee059e631f..6b032fbbbd1 100644 --- a/src/com/android/settings/applications/manageapplications/ManageApplications.java +++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java @@ -691,6 +691,7 @@ public class ManageApplications extends InstrumentedFragment mSearchView = (SearchView) searchMenuItem.getActionView(); mSearchView.setQueryHint(getText(R.string.search_settings)); mSearchView.setOnQueryTextListener(this); + mSearchView.setMaxWidth(Integer.MAX_VALUE); if (mExpandSearch) { searchMenuItem.expandActionView(); } diff --git a/src/com/android/settings/datetime/timezone/BaseTimeZonePicker.java b/src/com/android/settings/datetime/timezone/BaseTimeZonePicker.java index 6ce9f6f9ae8..abdfc881b89 100644 --- a/src/com/android/settings/datetime/timezone/BaseTimeZonePicker.java +++ b/src/com/android/settings/datetime/timezone/BaseTimeZonePicker.java @@ -136,6 +136,7 @@ public abstract class BaseTimeZonePicker extends InstrumentedFragment mSearchView.setQueryHint(getText(mSearchHintResId)); mSearchView.setOnQueryTextListener(this); + mSearchView.setMaxWidth(Integer.MAX_VALUE); if (mDefaultExpandSearch) { searchMenuItem.expandActionView(); diff --git a/src/com/android/settings/print/PrintServiceSettingsFragment.java b/src/com/android/settings/print/PrintServiceSettingsFragment.java index eb7ab80e69f..39b5ab9e978 100644 --- a/src/com/android/settings/print/PrintServiceSettingsFragment.java +++ b/src/com/android/settings/print/PrintServiceSettingsFragment.java @@ -368,6 +368,7 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment MenuItem searchItem = menu.findItem(R.id.print_menu_item_search); if (mServiceEnabled && mPrintersAdapter.getUnfilteredCount() > 0) { mSearchView = (SearchView) searchItem.getActionView(); + mSearchView.setMaxWidth(Integer.MAX_VALUE); mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) {