Merge branch 'android-applet-settings' into 'master'

android: Add applet mode settings to UI

See merge request citron/rewrite!45
This commit is contained in:
Zephyron
2025-08-05 07:30:49 +00:00
5 changed files with 216 additions and 1 deletions

View File

@@ -35,7 +35,24 @@ enum class IntSetting(override val key: String) : AbstractIntSetting {
ASTC_DECODE_MODE("accelerate_astc"),
ASTC_RECOMPRESSION("astc_recompression"),
SHADER_BACKEND("shader_backend"),
VRAM_USAGE_MODE("vram_usage_mode");
VRAM_USAGE_MODE("vram_usage_mode"),
// Applet Mode settings
CABINET_APPLET_MODE("cabinet_applet_mode"),
CONTROLLER_APPLET_MODE("controller_applet_mode"),
DATA_ERASE_APPLET_MODE("data_erase_applet_mode"),
ERROR_APPLET_MODE("error_applet_mode"),
NET_CONNECT_APPLET_MODE("net_connect_applet_mode"),
PLAYER_SELECT_APPLET_MODE("player_select_applet_mode"),
SWKBD_APPLET_MODE("swkbd_applet_mode"),
MII_EDIT_APPLET_MODE("mii_edit_applet_mode"),
WEB_APPLET_MODE("web_applet_mode"),
SHOP_APPLET_MODE("shop_applet_mode"),
PHOTO_VIEWER_APPLET_MODE("photo_viewer_applet_mode"),
OFFLINE_WEB_APPLET_MODE("offline_web_applet_mode"),
LOGIN_SHARE_APPLET_MODE("login_share_applet_mode"),
WIFI_WEB_AUTH_APPLET_MODE("wifi_web_auth_applet_mode"),
MY_PAGE_APPLET_MODE("my_page_applet_mode");
override fun getInt(needsGlobal: Boolean): Int = NativeConfig.getInt(key, needsGlobal)

View File

@@ -443,6 +443,143 @@ abstract class SettingsItem(
valuesId = R.array.vramUsageModeValues
)
)
// Applet Mode Settings
put(
SingleChoiceSetting(
IntSetting.CABINET_APPLET_MODE,
titleId = R.string.cabinet_applet_mode,
descriptionId = R.string.cabinet_applet_mode_description,
choicesId = R.array.appletModeNames,
valuesId = R.array.appletModeValues
)
)
put(
SingleChoiceSetting(
IntSetting.CONTROLLER_APPLET_MODE,
titleId = R.string.controller_applet_mode,
descriptionId = R.string.controller_applet_mode_description,
choicesId = R.array.appletModeNames,
valuesId = R.array.appletModeValues
)
)
put(
SingleChoiceSetting(
IntSetting.DATA_ERASE_APPLET_MODE,
titleId = R.string.data_erase_applet_mode,
descriptionId = R.string.data_erase_applet_mode_description,
choicesId = R.array.appletModeNames,
valuesId = R.array.appletModeValues
)
)
put(
SingleChoiceSetting(
IntSetting.ERROR_APPLET_MODE,
titleId = R.string.error_applet_mode,
descriptionId = R.string.error_applet_mode_description,
choicesId = R.array.appletModeNames,
valuesId = R.array.appletModeValues
)
)
put(
SingleChoiceSetting(
IntSetting.NET_CONNECT_APPLET_MODE,
titleId = R.string.net_connect_applet_mode,
descriptionId = R.string.net_connect_applet_mode_description,
choicesId = R.array.appletModeNames,
valuesId = R.array.appletModeValues
)
)
put(
SingleChoiceSetting(
IntSetting.PLAYER_SELECT_APPLET_MODE,
titleId = R.string.player_select_applet_mode,
descriptionId = R.string.player_select_applet_mode_description,
choicesId = R.array.appletModeNames,
valuesId = R.array.appletModeValues
)
)
put(
SingleChoiceSetting(
IntSetting.SWKBD_APPLET_MODE,
titleId = R.string.swkbd_applet_mode,
descriptionId = R.string.swkbd_applet_mode_description,
choicesId = R.array.appletModeNames,
valuesId = R.array.appletModeValues
)
)
put(
SingleChoiceSetting(
IntSetting.MII_EDIT_APPLET_MODE,
titleId = R.string.mii_edit_applet_mode,
descriptionId = R.string.mii_edit_applet_mode_description,
choicesId = R.array.appletModeNames,
valuesId = R.array.appletModeValues
)
)
put(
SingleChoiceSetting(
IntSetting.WEB_APPLET_MODE,
titleId = R.string.web_applet_mode,
descriptionId = R.string.web_applet_mode_description,
choicesId = R.array.appletModeNames,
valuesId = R.array.appletModeValues
)
)
put(
SingleChoiceSetting(
IntSetting.SHOP_APPLET_MODE,
titleId = R.string.shop_applet_mode,
descriptionId = R.string.shop_applet_mode_description,
choicesId = R.array.appletModeNames,
valuesId = R.array.appletModeValues
)
)
put(
SingleChoiceSetting(
IntSetting.PHOTO_VIEWER_APPLET_MODE,
titleId = R.string.photo_viewer_applet_mode,
descriptionId = R.string.photo_viewer_applet_mode_description,
choicesId = R.array.appletModeNames,
valuesId = R.array.appletModeValues
)
)
put(
SingleChoiceSetting(
IntSetting.OFFLINE_WEB_APPLET_MODE,
titleId = R.string.offline_web_applet_mode,
descriptionId = R.string.offline_web_applet_mode_description,
choicesId = R.array.appletModeNames,
valuesId = R.array.appletModeValues
)
)
put(
SingleChoiceSetting(
IntSetting.LOGIN_SHARE_APPLET_MODE,
titleId = R.string.login_share_applet_mode,
descriptionId = R.string.login_share_applet_mode_description,
choicesId = R.array.appletModeNames,
valuesId = R.array.appletModeValues
)
)
put(
SingleChoiceSetting(
IntSetting.WIFI_WEB_AUTH_APPLET_MODE,
titleId = R.string.wifi_web_auth_applet_mode,
descriptionId = R.string.wifi_web_auth_applet_mode_description,
choicesId = R.array.appletModeNames,
valuesId = R.array.appletModeValues
)
)
put(
SingleChoiceSetting(
IntSetting.MY_PAGE_APPLET_MODE,
titleId = R.string.my_page_applet_mode,
descriptionId = R.string.my_page_applet_mode_description,
choicesId = R.array.appletModeNames,
valuesId = R.array.appletModeValues
)
)
}
}
}

View File

@@ -996,6 +996,23 @@ class SettingsFragmentPresenter(
add(HeaderSetting(R.string.advanced_graphics_header))
add(IntSetting.SHADER_BACKEND.key)
add(IntSetting.VRAM_USAGE_MODE.key)
add(HeaderSetting(R.string.applet_settings_header))
add(IntSetting.CABINET_APPLET_MODE.key)
add(IntSetting.CONTROLLER_APPLET_MODE.key)
add(IntSetting.DATA_ERASE_APPLET_MODE.key)
add(IntSetting.ERROR_APPLET_MODE.key)
add(IntSetting.NET_CONNECT_APPLET_MODE.key)
add(IntSetting.PLAYER_SELECT_APPLET_MODE.key)
add(IntSetting.SWKBD_APPLET_MODE.key)
add(IntSetting.MII_EDIT_APPLET_MODE.key)
add(IntSetting.WEB_APPLET_MODE.key)
add(IntSetting.SHOP_APPLET_MODE.key)
add(IntSetting.PHOTO_VIEWER_APPLET_MODE.key)
add(IntSetting.OFFLINE_WEB_APPLET_MODE.key)
add(IntSetting.LOGIN_SHARE_APPLET_MODE.key)
add(IntSetting.WIFI_WEB_AUTH_APPLET_MODE.key)
add(IntSetting.MY_PAGE_APPLET_MODE.key)
}
}
}

View File

@@ -386,4 +386,15 @@
<item>1</item>
</integer-array>
<!-- Applet Mode setting arrays -->
<string-array name="appletModeNames">
<item>HLE (High-Level Emulation)</item>
<item>LLE (Low-Level Emulation)</item>
</string-array>
<integer-array name="appletModeValues">
<item>0</item>
<item>1</item>
</integer-array>
</resources>

View File

@@ -423,6 +423,39 @@
<string name="memory_layout_header">Memory Layout</string>
<string name="astc_settings_header">ASTC Settings</string>
<string name="advanced_graphics_header">Advanced Graphics</string>
<string name="applet_settings_header">Applet Settings</string>
<!-- Applet Mode Settings -->
<string name="cabinet_applet_mode">Cabinet Applet Mode</string>
<string name="cabinet_applet_mode_description">Controls how the Cabinet applet is emulated (HLE/LLE)</string>
<string name="controller_applet_mode">Controller Applet Mode</string>
<string name="controller_applet_mode_description">Controls how the Controller applet is emulated (HLE/LLE)</string>
<string name="data_erase_applet_mode">Data Erase Applet Mode</string>
<string name="data_erase_applet_mode_description">Controls how the Data Erase applet is emulated (HLE/LLE)</string>
<string name="error_applet_mode">Error Applet Mode</string>
<string name="error_applet_mode_description">Controls how the Error applet is emulated (HLE/LLE)</string>
<string name="net_connect_applet_mode">Network Connect Applet Mode</string>
<string name="net_connect_applet_mode_description">Controls how the Network Connect applet is emulated (HLE/LLE)</string>
<string name="player_select_applet_mode">Player Select Applet Mode</string>
<string name="player_select_applet_mode_description">Controls how the Player Select applet is emulated (HLE/LLE)</string>
<string name="swkbd_applet_mode">Software Keyboard Applet Mode</string>
<string name="swkbd_applet_mode_description">Controls how the Software Keyboard applet is emulated (HLE/LLE)</string>
<string name="mii_edit_applet_mode">Mii Edit Applet Mode</string>
<string name="mii_edit_applet_mode_description">Controls how the Mii Edit applet is emulated (HLE/LLE)</string>
<string name="web_applet_mode">Web Applet Mode</string>
<string name="web_applet_mode_description">Controls how the Web applet is emulated (HLE/LLE)</string>
<string name="shop_applet_mode">Shop Applet Mode</string>
<string name="shop_applet_mode_description">Controls how the Shop applet is emulated (HLE/LLE)</string>
<string name="photo_viewer_applet_mode">Photo Viewer Applet Mode</string>
<string name="photo_viewer_applet_mode_description">Controls how the Photo Viewer applet is emulated (HLE/LLE)</string>
<string name="offline_web_applet_mode">Offline Web Applet Mode</string>
<string name="offline_web_applet_mode_description">Controls how the Offline Web applet is emulated (HLE/LLE)</string>
<string name="login_share_applet_mode">Login Share Applet Mode</string>
<string name="login_share_applet_mode_description">Controls how the Login Share applet is emulated (HLE/LLE)</string>
<string name="wifi_web_auth_applet_mode">WiFi Web Auth Applet Mode</string>
<string name="wifi_web_auth_applet_mode_description">Controls how the WiFi Web Auth applet is emulated (HLE/LLE)</string>
<string name="my_page_applet_mode">My Page Applet Mode</string>
<string name="my_page_applet_mode_description">Controls how the My Page applet is emulated (HLE/LLE)</string>
<!-- Game properties -->
<string name="info">Info</string>