Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3c4532fb authored by Behnam Heydarshahi's avatar Behnam Heydarshahi
Browse files

Unexport ControlsActivity

Also do not draw non-system windows on top of ControlsSettingsDialog

Fix: 404256832
Flag: EXEMPT bugfix
Test: atest ControlsSettingsDialogManagerImplTest
Merged-In: I6280b501b799596099935dc61ecef0b431dd8333
Merged-In: Iaf71532a498c03592ba1d97495eb984b6973ce05
Change-Id: I5a4762ce3ceca123cf5bc559abd930c02a39e9d0
parent 45c8919e
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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.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)
+14 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.provider.Settings.Secure.LOCKSCREEN_ALLOW_TRIVIAL_CONTROLS
import android.provider.Settings.Secure.LOCKSCREEN_SHOW_CONTROLS
import android.testing.AndroidTestingRunner
import android.testing.TestableLooper
import android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.controls.settings.ControlsSettingsDialogManager.Companion.PREFS_SETTINGS_DIALOG_ATTEMPTS
@@ -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)
    }