mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-20 12:55:45 +00:00
Added option for software keyboard applet on android (#113)
Signed-off-by: Aleksandr Popovich <alekpopo@pm.me> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/113 Co-authored-by: Aleksandr Popovich <alekpopo@pm.me> Co-committed-by: Aleksandr Popovich <alekpopo@pm.me>
This commit is contained in:
parent
ed4b011cad
commit
244c07c999
6 changed files with 74 additions and 95 deletions
|
@ -33,7 +33,23 @@ enum class IntSetting(override val key: String) : AbstractIntSetting {
|
||||||
LOCK_DRAWER("lock_drawer"),
|
LOCK_DRAWER("lock_drawer"),
|
||||||
VERTICAL_ALIGNMENT("vertical_alignment"),
|
VERTICAL_ALIGNMENT("vertical_alignment"),
|
||||||
PERF_OVERLAY_POSITION("perf_overlay_position"),
|
PERF_OVERLAY_POSITION("perf_overlay_position"),
|
||||||
FSR_SHARPENING_SLIDER("fsr_sharpening_slider");
|
FSR_SHARPENING_SLIDER("fsr_sharpening_slider"),
|
||||||
|
CABINET_APPLET("cabinet_applet_mode"),
|
||||||
|
CONTROLLER_APPLET("controller_applet_mode"),
|
||||||
|
DATA_ERASE_APPLET("data_erase_applet_mode"),
|
||||||
|
ERROR_APPLET("error_applet_mode"),
|
||||||
|
NET_CONNECT_APPLET("net_connect_applet_mode"),
|
||||||
|
PLAYER_SELECT_APPLET("player_select_applet"),
|
||||||
|
SWKBD_APPLET("swkbd_applet_mode"),
|
||||||
|
MII_EDIT_APPLET("mii_edit_applet_mode"),
|
||||||
|
WEB_APPLET("web_applet_mode"),
|
||||||
|
SHOP_APPLET("shop_applet_mode"),
|
||||||
|
PHOTO_VIEWER_APPLET("photo_viewer_applet_mode"),
|
||||||
|
OFFLINE_WEB_APPLET("offline_web_applet_mode"),
|
||||||
|
LOGIN_SHARE_APPLET("login_share_applet_mode"),
|
||||||
|
WIFI_WEB_AUTH_APPLET("wifi_web_auth_applet_mode"),
|
||||||
|
MY_PAGE_APPLET("my_page_applet_mode"),
|
||||||
|
;
|
||||||
|
|
||||||
override fun getInt(needsGlobal: Boolean): Int = NativeConfig.getInt(key, needsGlobal)
|
override fun getInt(needsGlobal: Boolean): Int = NativeConfig.getInt(key, needsGlobal)
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,8 @@ object Settings {
|
||||||
SECTION_INPUT_PLAYER_EIGHT,
|
SECTION_INPUT_PLAYER_EIGHT,
|
||||||
SECTION_THEME(R.string.preferences_theme),
|
SECTION_THEME(R.string.preferences_theme),
|
||||||
SECTION_DEBUG(R.string.preferences_debug),
|
SECTION_DEBUG(R.string.preferences_debug),
|
||||||
SECTION_EDEN_VEIL(R.string.eden_veil);
|
SECTION_EDEN_VEIL(R.string.eden_veil),
|
||||||
|
SECTION_APPLETS(R.string.applets_menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getPlayerString(player: Int): String =
|
fun getPlayerString(player: Int): String =
|
||||||
|
|
|
@ -579,6 +579,16 @@ abstract class SettingsItem(
|
||||||
override fun reset() = setBoolean(defaultValue)
|
override fun reset() = setBoolean(defaultValue)
|
||||||
}
|
}
|
||||||
put(SwitchSetting(fastmem, R.string.fastmem))
|
put(SwitchSetting(fastmem, R.string.fastmem))
|
||||||
|
|
||||||
|
// Applet Settings
|
||||||
|
put(
|
||||||
|
SingleChoiceSetting(
|
||||||
|
IntSetting.SWKBD_APPLET,
|
||||||
|
titleId = R.string.swkbd_applet,
|
||||||
|
choicesId = R.array.appletEntries,
|
||||||
|
valuesId = R.array.appletValues
|
||||||
|
)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,7 +88,7 @@ class SettingsFragmentPresenter(
|
||||||
MenuTag.SECTION_ROOT -> addConfigSettings(sl)
|
MenuTag.SECTION_ROOT -> addConfigSettings(sl)
|
||||||
MenuTag.SECTION_SYSTEM -> addSystemSettings(sl)
|
MenuTag.SECTION_SYSTEM -> addSystemSettings(sl)
|
||||||
MenuTag.SECTION_RENDERER -> addGraphicsSettings(sl)
|
MenuTag.SECTION_RENDERER -> addGraphicsSettings(sl)
|
||||||
MenuTag.SECTION_PERFORMANCE_STATS -> addPerfomanceOverlaySettings(sl)
|
MenuTag.SECTION_PERFORMANCE_STATS -> addPerformanceOverlaySettings(sl)
|
||||||
MenuTag.SECTION_AUDIO -> addAudioSettings(sl)
|
MenuTag.SECTION_AUDIO -> addAudioSettings(sl)
|
||||||
MenuTag.SECTION_INPUT -> addInputSettings(sl)
|
MenuTag.SECTION_INPUT -> addInputSettings(sl)
|
||||||
MenuTag.SECTION_INPUT_PLAYER_ONE -> addInputPlayer(sl, 0)
|
MenuTag.SECTION_INPUT_PLAYER_ONE -> addInputPlayer(sl, 0)
|
||||||
|
@ -102,6 +102,7 @@ class SettingsFragmentPresenter(
|
||||||
MenuTag.SECTION_THEME -> addThemeSettings(sl)
|
MenuTag.SECTION_THEME -> addThemeSettings(sl)
|
||||||
MenuTag.SECTION_DEBUG -> addDebugSettings(sl)
|
MenuTag.SECTION_DEBUG -> addDebugSettings(sl)
|
||||||
MenuTag.SECTION_EDEN_VEIL -> addEdenVeilSettings(sl)
|
MenuTag.SECTION_EDEN_VEIL -> addEdenVeilSettings(sl)
|
||||||
|
MenuTag.SECTION_APPLETS -> addAppletSettings(sl)
|
||||||
}
|
}
|
||||||
settingsList = sl
|
settingsList = sl
|
||||||
adapter.submitList(settingsList) {
|
adapter.submitList(settingsList) {
|
||||||
|
@ -162,6 +163,14 @@ class SettingsFragmentPresenter(
|
||||||
menuKey = MenuTag.SECTION_EDEN_VEIL
|
menuKey = MenuTag.SECTION_EDEN_VEIL
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
add(
|
||||||
|
SubmenuSetting(
|
||||||
|
titleId = R.string.applets_menu,
|
||||||
|
descriptionId = R.string.applets_menu_description,
|
||||||
|
iconId = R.drawable.ic_applet,
|
||||||
|
menuKey = MenuTag.SECTION_APPLETS
|
||||||
|
)
|
||||||
|
)
|
||||||
add(
|
add(
|
||||||
RunnableSetting(
|
RunnableSetting(
|
||||||
titleId = R.string.reset_to_default,
|
titleId = R.string.reset_to_default,
|
||||||
|
@ -173,88 +182,6 @@ class SettingsFragmentPresenter(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val InterpolationSetting = object : AbstractBooleanSetting {
|
|
||||||
override val key = BooleanSetting.FRAME_INTERPOLATION.key
|
|
||||||
|
|
||||||
override fun getBoolean(needsGlobal: Boolean): Boolean {
|
|
||||||
return BooleanSetting.FRAME_INTERPOLATION.getBoolean(needsGlobal)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun setBoolean(value: Boolean) {
|
|
||||||
BooleanSetting.FRAME_INTERPOLATION.setBoolean(value)
|
|
||||||
}
|
|
||||||
|
|
||||||
override val defaultValue = BooleanSetting.FRAME_INTERPOLATION.defaultValue
|
|
||||||
|
|
||||||
override fun getValueAsString(needsGlobal: Boolean): String =
|
|
||||||
BooleanSetting.FRAME_INTERPOLATION.getValueAsString(needsGlobal)
|
|
||||||
|
|
||||||
override fun reset() = BooleanSetting.FRAME_INTERPOLATION.reset()
|
|
||||||
}
|
|
||||||
|
|
||||||
private val syncCoreSpeedSetting = object : AbstractBooleanSetting {
|
|
||||||
override val key = BooleanSetting.CORE_SYNC_CORE_SPEED.key
|
|
||||||
|
|
||||||
override fun getBoolean(needsGlobal: Boolean): Boolean {
|
|
||||||
return BooleanSetting.CORE_SYNC_CORE_SPEED.getBoolean(needsGlobal)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun setBoolean(value: Boolean) {
|
|
||||||
BooleanSetting.CORE_SYNC_CORE_SPEED.setBoolean(value)
|
|
||||||
}
|
|
||||||
|
|
||||||
override val defaultValue = BooleanSetting.CORE_SYNC_CORE_SPEED.defaultValue
|
|
||||||
|
|
||||||
override fun getValueAsString(needsGlobal: Boolean): String =
|
|
||||||
BooleanSetting.CORE_SYNC_CORE_SPEED.getValueAsString(needsGlobal)
|
|
||||||
|
|
||||||
override fun reset() = BooleanSetting.CORE_SYNC_CORE_SPEED.reset()
|
|
||||||
}
|
|
||||||
|
|
||||||
private val frameSkippingSetting = object : AbstractBooleanSetting {
|
|
||||||
override val key = BooleanSetting.FRAME_SKIPPING.key
|
|
||||||
|
|
||||||
override fun getBoolean(needsGlobal: Boolean): Boolean {
|
|
||||||
return BooleanSetting.FRAME_SKIPPING.getBoolean(needsGlobal)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun setBoolean(value: Boolean) {
|
|
||||||
BooleanSetting.FRAME_SKIPPING.setBoolean(value)
|
|
||||||
}
|
|
||||||
|
|
||||||
override val defaultValue = BooleanSetting.FRAME_SKIPPING.defaultValue
|
|
||||||
|
|
||||||
override fun getValueAsString(needsGlobal: Boolean): String =
|
|
||||||
BooleanSetting.FRAME_SKIPPING.getValueAsString(needsGlobal)
|
|
||||||
|
|
||||||
override fun reset() = BooleanSetting.FRAME_SKIPPING.reset()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun addEdenVeilSubmenu(sl: ArrayList<SettingsItem>) {
|
|
||||||
sl.apply {
|
|
||||||
add(
|
|
||||||
SubmenuSetting(
|
|
||||||
titleId = R.string.eden_veil,
|
|
||||||
descriptionId = R.string.eden_veil_description,
|
|
||||||
iconId = R.drawable.ic_code,
|
|
||||||
menuKey = MenuTag.SECTION_EDEN_VEIL
|
|
||||||
)
|
|
||||||
)
|
|
||||||
addEdenVeilSettings(sl)
|
|
||||||
|
|
||||||
add(BooleanSetting.FRAME_INTERPOLATION.key)
|
|
||||||
add(BooleanSetting.FRAME_SKIPPING.key)
|
|
||||||
add(BooleanSetting.CORE_SYNC_CORE_SPEED.key)
|
|
||||||
add(IntSetting.RENDERER_SHADER_BACKEND.key)
|
|
||||||
add(IntSetting.RENDERER_OPTIMIZE_SPIRV_OUTPUT.key)
|
|
||||||
add(IntSetting.RENDERER_NVDEC_EMULATION.key)
|
|
||||||
add(IntSetting.RENDERER_ASTC_DECODE_METHOD.key)
|
|
||||||
add(IntSetting.RENDERER_ASTC_RECOMPRESSION.key)
|
|
||||||
add(IntSetting.RENDERER_VRAM_USAGE_MODE.key)
|
|
||||||
add(BooleanSetting.USE_LRU_CACHE.key)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun addSystemSettings(sl: ArrayList<SettingsItem>) {
|
private fun addSystemSettings(sl: ArrayList<SettingsItem>) {
|
||||||
sl.apply {
|
sl.apply {
|
||||||
add(StringSetting.DEVICE_NAME.key)
|
add(StringSetting.DEVICE_NAME.key)
|
||||||
|
@ -288,7 +215,7 @@ class SettingsFragmentPresenter(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun addPerfomanceOverlaySettings(sl: ArrayList<SettingsItem>) {
|
private fun addPerformanceOverlaySettings(sl: ArrayList<SettingsItem>) {
|
||||||
sl.apply {
|
sl.apply {
|
||||||
add(HeaderSetting(R.string.stats_overlay_customization))
|
add(HeaderSetting(R.string.stats_overlay_customization))
|
||||||
add(BooleanSetting.SHOW_PERFORMANCE_OVERLAY.key)
|
add(BooleanSetting.SHOW_PERFORMANCE_OVERLAY.key)
|
||||||
|
@ -457,6 +384,7 @@ class SettingsFragmentPresenter(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO(alekpop): sort these into headers.
|
||||||
private fun addEdenVeilSettings(sl: ArrayList<SettingsItem>) {
|
private fun addEdenVeilSettings(sl: ArrayList<SettingsItem>) {
|
||||||
sl.apply {
|
sl.apply {
|
||||||
add(BooleanSetting.FRAME_INTERPOLATION.key)
|
add(BooleanSetting.FRAME_INTERPOLATION.key)
|
||||||
|
@ -479,6 +407,12 @@ class SettingsFragmentPresenter(
|
||||||
add(IntSetting.RENDERER_OPTIMIZE_SPIRV_OUTPUT.key)
|
add(IntSetting.RENDERER_OPTIMIZE_SPIRV_OUTPUT.key)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun addAppletSettings(sl: ArrayList<SettingsItem>) {
|
||||||
|
sl.apply {
|
||||||
|
add(IntSetting.SWKBD_APPLET.key)
|
||||||
|
}
|
||||||
|
}
|
||||||
private fun addInputPlayer(sl: ArrayList<SettingsItem>, playerIndex: Int) {
|
private fun addInputPlayer(sl: ArrayList<SettingsItem>, playerIndex: Int) {
|
||||||
sl.apply {
|
sl.apply {
|
||||||
val connectedSetting = object : AbstractBooleanSetting {
|
val connectedSetting = object : AbstractBooleanSetting {
|
||||||
|
|
|
@ -420,4 +420,13 @@
|
||||||
<item>2</item>
|
<item>2</item>
|
||||||
</integer-array>
|
</integer-array>
|
||||||
|
|
||||||
|
<string-array name="appletEntries">
|
||||||
|
<item>@string/applet_hle</item>
|
||||||
|
<item>@string/applet_lle</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
|
<integer-array name="appletValues">
|
||||||
|
<item>0</item>
|
||||||
|
<item>1</item>
|
||||||
|
</integer-array>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -859,6 +859,15 @@
|
||||||
<string name="center">Center</string>
|
<string name="center">Center</string>
|
||||||
<string name="bottom">Bottom</string>
|
<string name="bottom">Bottom</string>
|
||||||
|
|
||||||
|
<!-- Applet Modes -->
|
||||||
|
<string name="applets_menu">Applets</string>
|
||||||
|
<string name="applets_menu_description">(WIP) Change applet frontends and settings</string>
|
||||||
|
|
||||||
|
<string name="applet_hle">Custom Frontend</string>
|
||||||
|
<string name="applet_lle">Real Applet</string>
|
||||||
|
|
||||||
|
<string name="swkbd_applet">Software Keyboard</string>
|
||||||
|
|
||||||
<!-- Licenses screen strings -->
|
<!-- Licenses screen strings -->
|
||||||
<string name="licenses">Licenses</string>
|
<string name="licenses">Licenses</string>
|
||||||
<string name="license_fidelityfx_fsr" translatable="false">FidelityFX-FSR</string>
|
<string name="license_fidelityfx_fsr" translatable="false">FidelityFX-FSR</string>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue