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

Commit 6920c8ab authored by Josh's avatar Josh
Browse files

Ensure that shortcut customization dialog opens on same display as

shortcut helper

Fix: 443698616
Flag: com.android.systemui.shortcut_helper_multi_display_support
Test: Manual - ensure that when shortcut helper shows on an external
display, the shortcut customization dialog also shows on that display

Change-Id: If19d081723364d0c43eceb6e26d53c9ef24f0aab
parent ecb9ca6e
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.keyboard.shortcut.ui

import android.app.Dialog
import android.content.Context
import android.content.res.Resources
import android.view.WindowManager.LayoutParams.PRIVATE_FLAG_ALLOW_ACTION_KEY_EVENTS
import androidx.compose.foundation.layout.padding
@@ -40,6 +41,7 @@ import com.android.systemui.res.R
import com.android.systemui.statusbar.phone.SystemUIDialog
import com.android.systemui.statusbar.phone.SystemUIDialogFactory
import com.android.systemui.statusbar.phone.create
import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
import kotlinx.coroutines.awaitCancellation
@@ -51,6 +53,7 @@ class ShortcutCustomizationDialogStarter
constructor(
    viewModelFactory: ShortcutCustomizationViewModel.Factory,
    private val dialogFactory: SystemUIDialogFactory,
    @Assisted private val displayContext: Context,
    @Main private val resources: Resources,
) : ExclusiveActivatable() {

@@ -86,8 +89,10 @@ constructor(
    }

    private fun createDialog(): Dialog {
        return dialogFactory.create(dialogDelegate = ShortcutCustomizationDialogDelegate()) { dialog
            ->
        return dialogFactory.create(
            context = displayContext,
            dialogDelegate = ShortcutCustomizationDialogDelegate(),
        ) { dialog ->
            val uiState by viewModel.shortcutCustomizationUiState.collectAsStateWithLifecycle()
            val coroutineScope = rememberCoroutineScope()
            ShortcutCustomizationDialog(
@@ -141,6 +146,6 @@ constructor(

    @AssistedFactory
    interface Factory {
        fun create(): ShortcutCustomizationDialogStarter
        fun create(displayContext: Context): ShortcutCustomizationDialogStarter
    }
}
+7 −7
Original line number Diff line number Diff line
@@ -31,11 +31,11 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.compose.modifiers.thenIf
import com.android.systemui.Flags
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.display.dagger.SystemUIDisplaySubcomponent.DisplayAware
import com.android.systemui.display.dagger.SystemUIDisplaySubcomponent.LifecycleListener
import com.android.systemui.display.dagger.SystemUIDisplaySubcomponent.PerDisplaySingleton
import com.android.systemui.Flags
import com.android.systemui.keyboard.shortcut.ui.composable.ShortcutHelper
import com.android.systemui.keyboard.shortcut.ui.composable.ShortcutHelperBottomSheet
import com.android.systemui.keyboard.shortcut.ui.composable.getWidth
@@ -90,15 +90,15 @@ constructor(
                    shortcutHelperViewModel.shortcutsUiState.collectAsStateWithLifecycle()
                val shortcutCustomizationDialogStarter =
                    rememberActivated(traceName = "shortcutCustomizationDialogStarter") {
                        shortcutCustomizationDialogStarterFactory.create()
                        shortcutCustomizationDialogStarterFactory.create(displayContext)
                    }
                ShortcutHelper(
                    modifier =
                        Modifier
                            .width(getWidth())
                            .thenIf(hasExpandedWindowHeight()
                                    && Flags.shortcutHelperMultiDisplaySupport()
                            ) { Modifier.fillMaxHeight(0.72f) },
                        Modifier.width(getWidth()).thenIf(
                            hasExpandedWindowHeight() && Flags.shortcutHelperMultiDisplaySupport()
                        ) {
                            Modifier.fillMaxHeight(0.72f)
                        },
                    shortcutsUiState = shortcutsUiState,
                    onKeyboardSettingsClicked = { onKeyboardSettingsClicked(dialog) },
                    onSearchQueryChanged = { shortcutHelperViewModel.onSearchQueryChanged(it) },
+3 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.keyboard.shortcut

import android.app.role.mockRoleManager
import android.content.Context
import android.content.applicationContext
import android.content.res.mainResources
import android.hardware.input.fakeInputManager
@@ -252,10 +253,11 @@ val Kosmos.shortcutHelperViewModel by
val Kosmos.shortcutCustomizationDialogStarterFactory by
    Kosmos.Fixture {
        object : ShortcutCustomizationDialogStarter.Factory {
            override fun create(): ShortcutCustomizationDialogStarter {
            override fun create(displayContext: Context): ShortcutCustomizationDialogStarter {
                return ShortcutCustomizationDialogStarter(
                    shortcutCustomizationViewModelFactory,
                    systemUIDialogFactory,
                    displayContext,
                    mainResources,
                )
            }