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

Commit d0aee4d9 authored by helencheuk's avatar helencheuk
Browse files

[Custom Key Glyph] Make display order of shortcuts the same before and after the flag is enabled

The order of shortcut is different because hardwareShortcuts is added before systemControlsShortcuts in SystemShortcutsSource.
Issue: https://screenshot.googleplex.com/6u66SMThR5DSG2B
Before and after fix: https://screenshot.googleplex.com/B39fjELbUfXPVeW

This fix also sorts the shortcuts by key size ascendingly to display the function row keys (e.g. Home,back,overview key) first, same as before the flag is enabled.

Bug: 376433516
Test: ShortcutHelperCategoriesInteractorTest
Flag: com.android.systemui.shortcut_helper_key_glyph
Change-Id: I851273a5433c2e5c3769e9c6d50a8f4d20e23e26
parent bb77d47c
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
@@ -75,6 +75,27 @@ object TestShortcuts {
            /* modifiers = */ KeyEvent.META_SHIFT_ON,
        )

    private val ShortcutsWithDiffSizeOfKeys =
        KeyboardShortcutInfo(
            /* label = */ "Shortcuts with diff size of keys",
            /* keycode = */ KeyEvent.KEYCODE_HOME,
            /* modifiers = */ 0,
        )

    private val ShortcutsWithDiffSizeOfKeys2 =
        KeyboardShortcutInfo(
            /* label = */ ShortcutsWithDiffSizeOfKeys.label,
            /* keycode = */ KeyEvent.KEYCODE_1,
            /* modifiers = */ META_META_ON,
        )

    private val ShortcutsWithDiffSizeOfKeys3 =
        KeyboardShortcutInfo(
            /* label = */ ShortcutsWithDiffSizeOfKeys.label,
            /* keycode = */ KeyEvent.KEYCODE_2,
            /* modifiers = */ META_META_ON or META_FUNCTION_ON,
        )

    private val shortcutWithGroupedRepeatedLabel =
        shortcut(shortcutInfoWithRepeatedLabel.label!!.toString()) {
            command {
@@ -382,6 +403,16 @@ object TestShortcuts {
            groupWithSupportedAndUnsupportedModifierShortcut,
        )

    val groupWithDifferentSizeOfShortcutKeys =
        KeyboardShortcutGroup(
            "Group with different size of shortcut keys",
            listOf(
                ShortcutsWithDiffSizeOfKeys3,
                ShortcutsWithDiffSizeOfKeys,
                ShortcutsWithDiffSizeOfKeys2,
            ),
        )

    val subCategoriesWithUnsupportedModifiersRemoved =
        listOf(subCategoryWithStandardShortcut, subCategoryWithUnsupportedShortcutsRemoved)

+14 −0
Original line number Diff line number Diff line
@@ -369,6 +369,20 @@ class ShortcutHelperCategoriesInteractorTest : SysuiTestCase() {
        }
    }

    @Test
    fun categories_showShortcutsInAscendingOrderOfKeySize() =
        testScope.runTest {
            systemShortcutsSource.setGroups(TestShortcuts.groupWithDifferentSizeOfShortcutKeys)
            val categories by collectLastValue(interactor.shortcutCategories)

            helper.showFromActivity()

            val systemCategoryShortcuts = categories?.get(0)?.subCategories?.get(0)?.shortcuts
            val shortcutKeyCount =
                systemCategoryShortcuts?.flatMap { it.commands }?.map { it.keys.size }
            assertThat(shortcutKeyCount).containsExactly(1, 2, 3).inOrder()
        }

    private fun setCustomInputGestures(customInputGestures: List<InputGestureData>) {
        whenever(fakeInputManager.inputManager.getCustomInputGestures(/* filter= */ anyOrNull()))
            .thenReturn(customInputGestures)
+1 −1
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ constructor(@Main private val resources: Resources, private val inputManager: In
        listOf(
            KeyboardShortcutGroup(
                resources.getString(R.string.shortcut_helper_category_system_controls),
                hardwareShortcuts(deviceId) + systemControlsShortcuts(),
                systemControlsShortcuts() + hardwareShortcuts(deviceId),
            ),
            KeyboardShortcutGroup(
                resources.getString(R.string.shortcut_helper_category_system_apps),
+1 −1
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ constructor(
                Shortcut(
                    label = commonLabel,
                    icon = groupedShortcuts.firstOrNull()?.icon,
                    commands = groupedShortcuts.flatMap { it.commands },
                    commands = groupedShortcuts.flatMap { it.commands }.sortedBy { it.keys.size },
                    contentDescription =
                        toContentDescription(commonLabel, groupedShortcuts.flatMap { it.commands }),
                )