diff --git a/app/src/main/java/com/papi/nova/GameMenu.kt b/app/src/main/java/com/papi/nova/GameMenu.kt
index d5798431..3362347c 100644
--- a/app/src/main/java/com/papi/nova/GameMenu.kt
+++ b/app/src/main/java/com/papi/nova/GameMenu.kt
@@ -262,6 +262,12 @@ class GameMenu @JvmOverloads constructor(
),
)
}))
+ options.add(MenuOption(getString(R.string.game_menu_send_keys_ctrl_1), Runnable {
+ sendKeys(shortArrayOf(KeyboardTranslator.VK_LCONTROL.toShort(), KeyboardTranslator.VK_1.toShort()))
+ }))
+ options.add(MenuOption(getString(R.string.game_menu_send_keys_ctrl_2), Runnable {
+ sendKeys(shortArrayOf(KeyboardTranslator.VK_LCONTROL.toShort(), KeyboardTranslator.VK_2.toShort()))
+ }))
}
val preferences = game.getSharedPreferences(PREF_NAME, Activity.MODE_PRIVATE)
diff --git a/app/src/main/java/com/papi/nova/binding/input/KeyboardTranslator.kt b/app/src/main/java/com/papi/nova/binding/input/KeyboardTranslator.kt
index 9c404d31..b2d82eda 100644
--- a/app/src/main/java/com/papi/nova/binding/input/KeyboardTranslator.kt
+++ b/app/src/main/java/com/papi/nova/binding/input/KeyboardTranslator.kt
@@ -182,6 +182,8 @@ class KeyboardTranslator(private val prefConfig: PreferenceConfiguration) : Inpu
private const val KEY_PREFIX = 0x80
const val VK_0 = 48
+ const val VK_1 = 49
+ const val VK_2 = 50
const val VK_9 = 57
const val VK_A = 65
const val VK_Z = 90
diff --git a/app/src/main/java/com/papi/nova/ui/NovaQuickMenu.kt b/app/src/main/java/com/papi/nova/ui/NovaQuickMenu.kt
index c5e89b96..c31efca9 100644
--- a/app/src/main/java/com/papi/nova/ui/NovaQuickMenu.kt
+++ b/app/src/main/java/com/papi/nova/ui/NovaQuickMenu.kt
@@ -385,6 +385,8 @@ class NovaQuickMenu(private val game: Game) : Game.GameMenuCallbacks {
NovaQuickMenuActionId.QUICK_INSERT -> keys(KeyboardTranslator.VK_INSERT)
NovaQuickMenuActionId.QUICK_META -> keys(KeyboardTranslator.VK_LWIN)
NovaQuickMenuActionId.QUICK_CTRL_V -> keys(KeyboardTranslator.VK_LCONTROL, KeyboardTranslator.VK_V)
+ NovaQuickMenuActionId.QUICK_CTRL_1 -> keys(KeyboardTranslator.VK_LCONTROL, KeyboardTranslator.VK_1)
+ NovaQuickMenuActionId.QUICK_CTRL_2 -> keys(KeyboardTranslator.VK_LCONTROL, KeyboardTranslator.VK_2)
else -> return
}
dismiss()
diff --git a/app/src/main/java/com/papi/nova/ui/NovaQuickMenuContent.kt b/app/src/main/java/com/papi/nova/ui/NovaQuickMenuContent.kt
index 03613a40..644115f1 100644
--- a/app/src/main/java/com/papi/nova/ui/NovaQuickMenuContent.kt
+++ b/app/src/main/java/com/papi/nova/ui/NovaQuickMenuContent.kt
@@ -109,7 +109,9 @@ data class NovaQuickMenuCallbacks(
NovaQuickMenuActionId.QUICK_F11,
NovaQuickMenuActionId.QUICK_INSERT,
NovaQuickMenuActionId.QUICK_META,
- NovaQuickMenuActionId.QUICK_CTRL_V -> onQuickKey(action.id)
+ NovaQuickMenuActionId.QUICK_CTRL_V,
+ NovaQuickMenuActionId.QUICK_CTRL_1,
+ NovaQuickMenuActionId.QUICK_CTRL_2 -> onQuickKey(action.id)
NovaQuickMenuActionId.NOVA_HUD,
NovaQuickMenuActionId.PERF_STATS,
NovaQuickMenuActionId.DIAGNOSE_STREAM,
diff --git a/app/src/main/java/com/papi/nova/ui/NovaQuickMenuUiState.kt b/app/src/main/java/com/papi/nova/ui/NovaQuickMenuUiState.kt
index 2f96cac8..1e0f618c 100644
--- a/app/src/main/java/com/papi/nova/ui/NovaQuickMenuUiState.kt
+++ b/app/src/main/java/com/papi/nova/ui/NovaQuickMenuUiState.kt
@@ -29,6 +29,8 @@ enum class NovaQuickMenuActionId {
QUICK_INSERT,
QUICK_META,
QUICK_CTRL_V,
+ QUICK_CTRL_1,
+ QUICK_CTRL_2,
NOVA_HUD,
PERF_STATS,
DIAGNOSE_STREAM,
@@ -892,6 +894,14 @@ data class NovaQuickMenuUiState(
NovaQuickMenuAction(
id = NovaQuickMenuActionId.QUICK_CTRL_V,
label = context.getString(R.string.game_menu_send_keys_ctrl_v)
+ ),
+ NovaQuickMenuAction(
+ id = NovaQuickMenuActionId.QUICK_CTRL_1,
+ label = context.getString(R.string.game_menu_send_keys_ctrl_1)
+ ),
+ NovaQuickMenuAction(
+ id = NovaQuickMenuActionId.QUICK_CTRL_2,
+ label = context.getString(R.string.game_menu_send_keys_ctrl_2)
)
)
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 7f6449dc..3b35a445 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -889,6 +889,8 @@
Insert
Alt + F4
Ctrl + V
+ Ctrl + 1
+ Ctrl + 2
Win (Meta)
Win + D
ALT + B
diff --git a/app/src/test/java/com/papi/nova/ui/NovaQuickMenuUiStateTest.kt b/app/src/test/java/com/papi/nova/ui/NovaQuickMenuUiStateTest.kt
index f5c4573c..dcda3319 100644
--- a/app/src/test/java/com/papi/nova/ui/NovaQuickMenuUiStateTest.kt
+++ b/app/src/test/java/com/papi/nova/ui/NovaQuickMenuUiStateTest.kt
@@ -162,6 +162,8 @@ class NovaQuickMenuUiStateTest {
assertTrue(state.quickKeys.any { it.id == NovaQuickMenuActionId.QUICK_ESC && it.label == "ESC" })
assertTrue(state.quickKeys.any { it.id == NovaQuickMenuActionId.QUICK_CTRL_V && it.label == "Ctrl + V" })
assertTrue(state.quickKeys.any { it.id == NovaQuickMenuActionId.QUICK_INSERT && it.label == "Insert" })
+ assertTrue(state.quickKeys.any { it.id == NovaQuickMenuActionId.QUICK_CTRL_1 && it.label == "Ctrl + 1" })
+ assertTrue(state.quickKeys.any { it.id == NovaQuickMenuActionId.QUICK_CTRL_2 && it.label == "Ctrl + 2" })
assertTrue(state.overlayRows.any { it.id == NovaQuickMenuActionId.PERF_STATS && it.label == "Stats Overlay" })
assertTrue(state.advancedRows.any { it.id == NovaQuickMenuActionId.MANGOHUD && it.label == "MangoHud" })
assertTrue(state.sessionRows.any { it.id == NovaQuickMenuActionId.MORE_KEYS && it.label == "More Keys" })