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

Commit 54c1ee7e authored by Joshua Mokut's avatar Joshua Mokut Committed by Android (Google) Code Review
Browse files

Merge "Add dialog title for shortuct customization dialogs" into main

parents 8719dba5 f91c2f1e
Loading
Loading
Loading
Loading
+24 −5
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.res.Resources
import android.view.WindowManager.LayoutParams.PRIVATE_FLAG_ALLOW_ACTION_KEY_EVENTS
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
@@ -26,6 +27,7 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.keyboard.shortcut.shared.model.ShortcutCustomizationRequestInfo
import com.android.systemui.keyboard.shortcut.ui.composable.ShortcutCustomizationDialog
import com.android.systemui.keyboard.shortcut.ui.model.ShortcutCustomizationUiState
@@ -34,6 +36,8 @@ import com.android.systemui.keyboard.shortcut.ui.model.ShortcutCustomizationUiSt
import com.android.systemui.keyboard.shortcut.ui.model.ShortcutCustomizationUiState.ResetShortcutDialog
import com.android.systemui.keyboard.shortcut.ui.viewmodel.ShortcutCustomizationViewModel
import com.android.systemui.lifecycle.ExclusiveActivatable
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.AssistedFactory
@@ -46,6 +50,7 @@ class ShortcutCustomizationDialogStarter
constructor(
    viewModelFactory: ShortcutCustomizationViewModel.Factory,
    private val dialogFactory: SystemUIDialogFactory,
    @Main private val resources: Resources,
) : ExclusiveActivatable() {

    private var dialog: Dialog? = null
@@ -97,13 +102,27 @@ constructor(
                    coroutineScope.launch { viewModel.resetAllCustomShortcuts() }
                },
            )
            dialog.setOnDismissListener { viewModel.onDialogDismissed() }
            setDialogProperties(dialog, uiState)
        }
    }

    private fun setDialogProperties(dialog: SystemUIDialog, uiState: ShortcutCustomizationUiState) {
        dialog.setOnDismissListener { viewModel.onDialogDismissed() }
        dialog.setTitle(
            resources.getString(
                when (uiState) {
                    is AddShortcutDialog ->
                        R.string.shortcut_customize_mode_add_shortcut_description
                    is DeleteShortcutDialog ->
                        R.string.shortcut_customize_mode_remove_shortcut_description
                    else -> R.string.shortcut_customize_mode_reset_shortcut_description
                }
            )
        )
        // By default, apps cannot intercept action key. The system always handles it. This
        // flag is needed to enable customisation dialog window to intercept action key
        dialog.window?.addPrivateFlags(PRIVATE_FLAG_ALLOW_ACTION_KEY_EVENTS)
    }
    }

    @AssistedFactory
    interface Factory {
+1 −0
Original line number Diff line number Diff line
@@ -211,6 +211,7 @@ val Kosmos.shortcutCustomizationDialogStarterFactory by
                return ShortcutCustomizationDialogStarter(
                    shortcutCustomizationViewModelFactory,
                    systemUIDialogFactory,
                    mainResources,
                )
            }
        }