diff options
3 files changed, 17 insertions, 1 deletions
diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index f628a420d8fa..90dcde683e66 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -948,7 +948,6 @@ android:launchMode="singleInstance" android:configChanges="screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden|orientation" android:visibleToInstantApps="true" - android:exported="true" /> <activity android:name=".wallet.ui.WalletActivity" diff --git a/packages/SystemUI/src/com/android/systemui/controls/settings/ControlsSettingsDialogManager.kt b/packages/SystemUI/src/com/android/systemui/controls/settings/ControlsSettingsDialogManager.kt index 4e391b7662e3..3544bde553ff 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/settings/ControlsSettingsDialogManager.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/settings/ControlsSettingsDialogManager.kt @@ -23,6 +23,7 @@ import android.content.Context.MODE_PRIVATE import android.content.DialogInterface import android.content.SharedPreferences import android.provider.Settings +import android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS import androidx.annotation.VisibleForTesting import com.android.systemui.res.R import com.android.systemui.controls.settings.ControlsSettingsDialogManager.Companion.MAX_NUMBER_ATTEMPTS_CONTROLS_DIALOG @@ -148,6 +149,8 @@ internal constructor( } } + d.window?.addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS) + SystemUIDialog.registerDismissListener(d) { dialog = null } SystemUIDialog.setDialogSize(d) SystemUIDialog.setShowForAllUsers(d, true) diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/settings/ControlsSettingsDialogManagerImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/settings/ControlsSettingsDialogManagerImplTest.kt index aee334f82f63..be4a1c6ece7c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/controls/settings/ControlsSettingsDialogManagerImplTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/controls/settings/ControlsSettingsDialogManagerImplTest.kt @@ -23,6 +23,7 @@ import android.database.ContentObserver import android.provider.Settings.Secure.LOCKSCREEN_ALLOW_TRIVIAL_CONTROLS import android.provider.Settings.Secure.LOCKSCREEN_SHOW_CONTROLS import android.testing.TestableLooper +import android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase @@ -327,6 +328,19 @@ class ControlsSettingsDialogManagerImplTest : SysuiTestCase() { assertThat(secureSettings.getBool(SETTING_ACTION)).isTrue() } + @Test + fun dialogHidesNonSystemOverlayWindows() { + sharedPreferences.putAttempts(0) + secureSettings.putBool(SETTING_SHOW, false) + secureSettings.putBool(SETTING_ACTION, false) + + underTest.maybeShowDialog(context, completedRunnable) + + val flags = dialog!!.window!!.attributes.privateFlags + assertThat(flags and SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS) + .isEqualTo(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS) + } + private fun clickButton(which: Int) { dialog?.clickButton(which) } |