mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-11-26 00:34:18 +01:00
Reorder settings pt.2
This commit is contained in:
parent
ddfa9013a9
commit
b2228a93da
@ -269,7 +269,7 @@ class EmulationActivity : AppCompatActivity(), SurfaceHolder.Callback, View.OnTo
|
||||
}
|
||||
)
|
||||
|
||||
if (appSettings.perfStats) {
|
||||
if (emulationSettings.perfStats) {
|
||||
if (emulationSettings.disableFrameThrottling)
|
||||
binding.perfStats.setTextColor(getColor(R.color.colorPerfStatsSecondary))
|
||||
|
||||
|
@ -34,6 +34,6 @@ class DocumentsProviderPreference @JvmOverloads constructor(context : Context, a
|
||||
override fun onClick() {
|
||||
if (launchOpenIntent(Intent.ACTION_VIEW) or launchOpenIntent("android.provider.action.BROWSE"))
|
||||
return
|
||||
Snackbar.make((context as SettingsActivity).binding.root, SkylineR.string.failed_open_directory, Snackbar.LENGTH_SHORT).show()
|
||||
Snackbar.make((context as SettingsActivity).binding.root, SkylineR.string.open_data_directory_failed, Snackbar.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
|
@ -16,15 +16,15 @@ import javax.inject.Singleton
|
||||
*/
|
||||
@Singleton
|
||||
class AppSettings @Inject constructor(@ApplicationContext private val context : Context) {
|
||||
// Emulator
|
||||
// Content
|
||||
var searchLocation by sharedPreferences(context, "")
|
||||
|
||||
// Appearance
|
||||
var appTheme by sharedPreferences(context, 2)
|
||||
var layoutType by sharedPreferences(context, 1)
|
||||
var groupByFormat by sharedPreferences(context, true)
|
||||
var sortAppsBy by sharedPreferences(context, 0)
|
||||
var groupByFormat by sharedPreferences(context, true)
|
||||
var selectAction by sharedPreferences(context, false)
|
||||
var perfStats by sharedPreferences(context, false)
|
||||
var logLevel by sharedPreferences(context, 3)
|
||||
|
||||
// Input
|
||||
var onScreenControl by sharedPreferences(context, true)
|
||||
@ -34,4 +34,5 @@ class AppSettings @Inject constructor(@ApplicationContext private val context :
|
||||
// Other
|
||||
var romFormatFilter by sharedPreferences(context, 0)
|
||||
var refreshRequired by sharedPreferences(context, false)
|
||||
var logLevel by sharedPreferences(context, 3)
|
||||
}
|
||||
|
@ -28,30 +28,31 @@ class EmulationSettings private constructor(context : Context, prefName : String
|
||||
var systemLanguage by sharedPreferences(context, 1, prefName = prefName)
|
||||
var systemRegion by sharedPreferences(context, -1, prefName = prefName)
|
||||
|
||||
// Audio
|
||||
var isAudioOutputDisabled by sharedPreferences(context, false, prefName = prefName)
|
||||
|
||||
// Display
|
||||
var forceTripleBuffering by sharedPreferences(context, true, prefName = prefName)
|
||||
var disableFrameThrottling by sharedPreferences(context, false, prefName = prefName)
|
||||
var perfStats by sharedPreferences(context, false, prefName = prefName)
|
||||
var maxRefreshRate by sharedPreferences(context, false, prefName = prefName)
|
||||
var aspectRatio by sharedPreferences(context, 0, prefName = prefName)
|
||||
var orientation by sharedPreferences(context, ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE, prefName = prefName)
|
||||
var aspectRatio by sharedPreferences(context, 0, prefName = prefName)
|
||||
var respectDisplayCutout by sharedPreferences(context, false, prefName = prefName)
|
||||
var disableShaderCache by sharedPreferences(context, false, prefName = prefName)
|
||||
|
||||
// GPU
|
||||
var gpuDriver by sharedPreferences(context, SYSTEM_GPU_DRIVER, prefName = prefName)
|
||||
var forceTripleBuffering by sharedPreferences(context, true, prefName = prefName)
|
||||
var disableFrameThrottling by sharedPreferences(context, false, prefName = prefName)
|
||||
var executorSlotCountScale by sharedPreferences(context, 6, prefName = prefName)
|
||||
var executorFlushThreshold by sharedPreferences(context, 256, prefName = prefName)
|
||||
var useDirectMemoryImport by sharedPreferences(context, false, prefName = prefName)
|
||||
var forceMaxGpuClocks by sharedPreferences(context, false, prefName = prefName)
|
||||
var disableShaderCache by sharedPreferences(context, false, prefName = prefName)
|
||||
|
||||
// Hacks
|
||||
var enableFastGpuReadbackHack by sharedPreferences(context, false, prefName = prefName)
|
||||
var enableFastReadbackWrites by sharedPreferences(context, false, prefName = prefName)
|
||||
var disableSubgroupShuffle by sharedPreferences(context, false, prefName = prefName)
|
||||
|
||||
// Audio
|
||||
var isAudioOutputDisabled by sharedPreferences(context, false, prefName = prefName)
|
||||
|
||||
// Debug
|
||||
var validationLayer by sharedPreferences(context, false, prefName = prefName)
|
||||
|
||||
|
@ -23,27 +23,25 @@ data class NativeSettings(
|
||||
var systemLanguage : Int,
|
||||
var systemRegion : Int,
|
||||
|
||||
// Display
|
||||
var forceTripleBuffering : Boolean,
|
||||
var disableFrameThrottling : Boolean,
|
||||
var disableShaderCache : Boolean,
|
||||
// Audio
|
||||
var isAudioOutputDisabled : Boolean,
|
||||
|
||||
// GPU
|
||||
var gpuDriver : String,
|
||||
var gpuDriverLibraryName : String,
|
||||
var forceTripleBuffering : Boolean,
|
||||
var disableFrameThrottling : Boolean,
|
||||
var executorSlotCountScale : Int,
|
||||
var executorFlushThreshold : Int,
|
||||
var useDirectMemoryImport : Boolean,
|
||||
var forceMaxGpuClocks : Boolean,
|
||||
var disableShaderCache : Boolean,
|
||||
|
||||
// Hacks
|
||||
var enableFastGpuReadbackHack : Boolean,
|
||||
var enableFastReadbackWrites : Boolean,
|
||||
var disableSubgroupShuffle : Boolean,
|
||||
|
||||
// Audio
|
||||
var isAudioOutputDisabled : Boolean,
|
||||
|
||||
// Debug
|
||||
var validationLayer : Boolean
|
||||
) {
|
||||
@ -53,19 +51,19 @@ data class NativeSettings(
|
||||
pref.profilePictureValue,
|
||||
pref.systemLanguage,
|
||||
pref.systemRegion,
|
||||
pref.forceTripleBuffering,
|
||||
pref.disableFrameThrottling,
|
||||
pref.disableShaderCache,
|
||||
pref.isAudioOutputDisabled,
|
||||
if (pref.gpuDriver == EmulationSettings.SYSTEM_GPU_DRIVER) "" else pref.gpuDriver,
|
||||
if (pref.gpuDriver == EmulationSettings.SYSTEM_GPU_DRIVER) "" else GpuDriverHelper.getLibraryName(context, pref.gpuDriver),
|
||||
pref.forceTripleBuffering,
|
||||
pref.disableFrameThrottling,
|
||||
pref.executorSlotCountScale,
|
||||
pref.executorFlushThreshold,
|
||||
pref.useDirectMemoryImport,
|
||||
pref.forceMaxGpuClocks,
|
||||
pref.disableShaderCache,
|
||||
pref.enableFastGpuReadbackHack,
|
||||
pref.enableFastReadbackWrites,
|
||||
pref.disableSubgroupShuffle,
|
||||
pref.isAudioOutputDisabled,
|
||||
BuildConfig.BUILD_TYPE != "release" && pref.validationLayer
|
||||
)
|
||||
|
||||
|
@ -4,6 +4,7 @@
|
||||
<string name="search">Search</string>
|
||||
<string name="error">An error has occurred</string>
|
||||
<string name="copied_to_clipboard">Copied to clipboard</string>
|
||||
<string name="emulator">Emulator</string>
|
||||
<!-- Toolbar Main -->
|
||||
<string name="settings">Settings</string>
|
||||
<string name="share_logs">Share Logs</string>
|
||||
@ -22,24 +23,29 @@
|
||||
<string name="invalid_file">Invalid file</string>
|
||||
<string name="missing_title_key">Missing title key</string>
|
||||
<string name="incomplete_prod_keys">Incomplete production keys</string>
|
||||
<!-- Settings - Emulator -->
|
||||
<string name="emulator">Emulator</string>
|
||||
<!-- Settings - Content -->
|
||||
<string name="content">Content</string>
|
||||
<string name="open_data_directory">View Internal Directory</string>
|
||||
<string name="open_data_directory_summary">Opens Skyline\'s internal directory in a file manager</string>
|
||||
<string name="failed_open_directory">Cannot find an external file manager to open Skyline\'s internal directory</string>
|
||||
<string name="theme">Theme</string>
|
||||
<string name="perf_stats">Show Performance Statistics</string>
|
||||
<string name="perf_stats_desc_off">Performance Statistics will not be shown</string>
|
||||
<string name="perf_stats_desc_on">Performance Statistics will be shown in the top-left corner</string>
|
||||
<string name="log_level">Log Level</string>
|
||||
<!-- Settings - App List -->
|
||||
<string name="app_list">App List</string>
|
||||
<string name="open_data_directory_failed">Cannot find an external file manager to open Skyline\'s internal directory</string>
|
||||
<string name="search_location">Search Location</string>
|
||||
<!-- Settings - Keys -->
|
||||
<string name="keys">Keys</string>
|
||||
<string name="prod_keys">Production Keys</string>
|
||||
<string name="title_keys">Title Keys</string>
|
||||
<string name="import_keys_success">Successfully imported keys</string>
|
||||
<string name="import_keys_invalid_input_path">The path to the provided keys is invalid</string>
|
||||
<string name="import_keys_invalid_keys">The keys you tried to import are invalid</string>
|
||||
<string name="import_keys_delete_previous_failed">Failed to delete the currently installed keys</string>
|
||||
<string name="import_keys_move_failed">Failed to move the keys to the internal directory</string>
|
||||
<!-- Settings - Appearance -->
|
||||
<string name="appearance">Appearance</string>
|
||||
<string name="theme">Theme</string>
|
||||
<string name="layout_type">Game Display Layout</string>
|
||||
<string name="sort_apps_by">Games Sorting Order</string>
|
||||
<string name="group_by_format">Group Games By Format</string>
|
||||
<string name="group_by_format_desc_off">Games will be shown as a single list</string>
|
||||
<string name="group_by_format_desc_on">Games will be shown grouped by format</string>
|
||||
<string name="sort_apps_by">Games Sorting Order</string>
|
||||
<string name="select_action">Always Show Game Information</string>
|
||||
<string name="select_action_desc_on">Game information will be shown on clicking a game</string>
|
||||
<string name="select_action_desc_off">Game information will only be shown on long-clicking a game</string>
|
||||
@ -61,36 +67,35 @@
|
||||
<string name="profile_picture">Profile picture</string>
|
||||
<string name="system_language">System language</string>
|
||||
<string name="system_region">System region</string>
|
||||
<!-- Settings - Keys -->
|
||||
<string name="keys">Keys</string>
|
||||
<string name="prod_keys">Production Keys</string>
|
||||
<string name="title_keys">Title Keys</string>
|
||||
<string name="import_keys_success">Successfully imported keys</string>
|
||||
<string name="import_keys_invalid_input_path">The path to the provided keys is invalid</string>
|
||||
<string name="import_keys_invalid_keys">The keys you tried to import are invalid</string>
|
||||
<string name="import_keys_delete_previous_failed">Failed to delete the currently installed keys</string>
|
||||
<string name="import_keys_move_failed">Failed to move the keys to the internal directory</string>
|
||||
<!-- Settings - Display -->
|
||||
<string name="display">Display</string>
|
||||
<string name="perf_stats">Show Performance Statistics</string>
|
||||
<string name="perf_stats_desc_off">Performance Statistics will not be shown</string>
|
||||
<string name="perf_stats_desc_on">Performance Statistics will be shown in the top-left corner</string>
|
||||
<string name="max_refresh_rate">Use Maximum Display Refresh Rate</string>
|
||||
<string name="max_refresh_rate_enabled">Sets the display refresh rate as high as possible (Will break most games)</string>
|
||||
<string name="max_refresh_rate_disabled">Sets the display refresh rate to 60Hz</string>
|
||||
<string name="screen_orientation">Screen orientation</string>
|
||||
<string name="aspect_ratio">Aspect Ratio</string>
|
||||
<string name="respect_display_cutout">Respect Display Cutout</string>
|
||||
<string name="respect_display_cutout_enabled">Do not draw UI elements in the cutout area</string>
|
||||
<string name="respect_display_cutout_disabled">Allow UI elements to be drawn in the cutout area</string>
|
||||
<!-- Settings - Audio -->
|
||||
<string name="audio">Audio</string>
|
||||
<string name="disable_audio_output">Disable Audio Output</string>
|
||||
<string name="disable_audio_output_enabled">Audio output is disabled</string>
|
||||
<string name="disable_audio_output_disabled">Audio output is enabled</string>
|
||||
<!-- Settings - GPU -->
|
||||
<string name="gpu">GPU</string>
|
||||
<string name="gpu_driver_config">GPU Driver Configuration</string>
|
||||
<string name="gpu_driver_config_desc">Active driver: %1$s</string>
|
||||
<string name="gpu_driver_config_desc_unsupported">Your device doesn\'t support custom drivers</string>
|
||||
<string name="force_triple_buffering">Force Triple Buffering</string>
|
||||
<string name="triple_buffering_enabled">Utilize at least three swapchain buffers (Higher FPS but more input lag)</string>
|
||||
<string name="triple_buffering_disabled">Utilize at least two swapchain buffers (Lower FPS but less input lag)</string>
|
||||
<string name="disable_frame_throttling">Disable Frame Throttling</string>
|
||||
<string name="disable_frame_throttling_enabled">Game is allowed to submit frames as fast as possible (Only for benchmarking)\n\n<b>Note:</b> An alternative method is utilized to measure the FPS with this enabled, the figures must not be compared to throttled FPS figures</string>
|
||||
<string name="disable_frame_throttling_disabled">Only allow the game to submit frames at the display refresh rate</string>
|
||||
<string name="max_refresh_rate">Use Maximum Display Refresh Rate</string>
|
||||
<string name="max_refresh_rate_enabled">Sets the display refresh rate as high as possible (Will break most games)</string>
|
||||
<string name="max_refresh_rate_disabled">Sets the display refresh rate to 60Hz</string>
|
||||
<string name="aspect_ratio">Aspect Ratio</string>
|
||||
<string name="respect_display_cutout">Respect Display Cutout</string>
|
||||
<string name="respect_display_cutout_enabled">Do not draw UI elements in the cutout area</string>
|
||||
<string name="respect_display_cutout_disabled">Allow UI elements to be drawn in the cutout area</string>
|
||||
<!-- Settings - GPU -->
|
||||
<string name="gpu">GPU</string>
|
||||
<string name="gpu_driver_config">GPU Driver Configuration</string>
|
||||
<string name="gpu_driver_config_desc">Active driver: %1$s</string>
|
||||
<string name="gpu_driver_config_desc_unsupported">Your device doesn\'t support custom drivers</string>
|
||||
<string name="executor_slot_count_scale">Executor Slot Count Scale</string>
|
||||
<string name="executor_slot_count_scale_desc">Scale controlling the maximum number of simultaneous GPU executions (Higher may sometimes perform better but will use more RAM)</string>
|
||||
<string name="executor_flush_threshold">Executor Flush Threshold</string>
|
||||
@ -114,13 +119,9 @@
|
||||
<string name="disable_subgroup_shuffle">Disable GPU subgroup shuffle</string>
|
||||
<string name="disable_subgroup_shuffle_enabled">Shader subgroup shuffle operations are disabled, may cause severe graphical issues</string>
|
||||
<string name="disable_subgroup_shuffle_disabled">Shader subgroup shuffle operations are enabled, ensures maximum accuracy</string>
|
||||
<!-- Settings - Audio -->
|
||||
<string name="audio">Audio</string>
|
||||
<string name="disable_audio_output">Disable Audio Output</string>
|
||||
<string name="disable_audio_output_enabled">Audio output is disabled</string>
|
||||
<string name="disable_audio_output_disabled">Audio output is enabled</string>
|
||||
<!-- Settings - Debug -->
|
||||
<string name="debug">Debug</string>
|
||||
<string name="log_level">Log Level</string>
|
||||
<string name="validation_layer">Enable validation layer</string>
|
||||
<string name="validation_layer_enabled">The Vulkan validation layer is enabled, major slowdowns are to be expected</string>
|
||||
<string name="validation_layer_disabled">The Vulkan validation layer is disabled</string>
|
||||
|
@ -1,38 +1,33 @@
|
||||
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<PreferenceCategory
|
||||
android:key="category_emulator"
|
||||
android:title="@string/emulator">
|
||||
android:key="category_content"
|
||||
android:title="@string/content">
|
||||
<emu.skyline.preference.DocumentsProviderPreference
|
||||
app:key="document_provider"
|
||||
app:summary="@string/open_data_directory_summary"
|
||||
app:title="@string/open_data_directory" />
|
||||
<emu.skyline.preference.FolderPickerPreference
|
||||
app:key="search_location"
|
||||
app:title="@string/search_location" />
|
||||
<emu.skyline.preference.KeyPickerPreference
|
||||
app:key="prod_keys"
|
||||
app:title="@string/prod_keys"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
<emu.skyline.preference.KeyPickerPreference
|
||||
app:key="title_keys"
|
||||
app:title="@string/title_keys"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:key="category_appearance"
|
||||
android:title="@string/appearance">
|
||||
<emu.skyline.preference.ThemePreference
|
||||
android:defaultValue="2"
|
||||
android:entries="@array/app_theme"
|
||||
app:key="app_theme"
|
||||
app:title="@string/theme"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:summaryOff="@string/perf_stats_desc_off"
|
||||
android:summaryOn="@string/perf_stats_desc_on"
|
||||
app:key="perf_stats"
|
||||
app:title="@string/perf_stats" />
|
||||
<emu.skyline.preference.LogLevelPreference
|
||||
android:defaultValue="2"
|
||||
android:entries="@array/log_level"
|
||||
app:key="log_level"
|
||||
app:title="@string/log_level"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:key="category_applist"
|
||||
android:title="@string/app_list"
|
||||
app:initialExpandedChildrenCount="3">
|
||||
<emu.skyline.preference.FolderPickerPreference
|
||||
app:key="search_location"
|
||||
app:title="@string/search_location" />
|
||||
<emu.skyline.preference.IntegerListPreference
|
||||
android:defaultValue="1"
|
||||
android:entries="@array/layout_type"
|
||||
@ -60,16 +55,4 @@
|
||||
app:key="select_action"
|
||||
app:title="@string/select_action" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:key="category_keys"
|
||||
android:title="@string/keys">
|
||||
<emu.skyline.preference.KeyPickerPreference
|
||||
app:key="prod_keys"
|
||||
app:title="@string/prod_keys"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
<emu.skyline.preference.KeyPickerPreference
|
||||
app:key="title_keys"
|
||||
app:title="@string/title_keys"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
</PreferenceCategory>
|
||||
</androidx.preference.PreferenceScreen>
|
||||
|
@ -36,6 +36,18 @@
|
||||
<PreferenceCategory
|
||||
android:key="category_presentation"
|
||||
android:title="@string/display">
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:summaryOff="@string/perf_stats_desc_off"
|
||||
android:summaryOn="@string/perf_stats_desc_on"
|
||||
app:key="perf_stats"
|
||||
app:title="@string/perf_stats" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:summaryOff="@string/max_refresh_rate_disabled"
|
||||
android:summaryOn="@string/max_refresh_rate_enabled"
|
||||
app:key="max_refresh_rate"
|
||||
app:title="@string/max_refresh_rate" />
|
||||
<emu.skyline.preference.IntegerListPreference
|
||||
android:defaultValue="6"
|
||||
android:entries="@array/orientation_entries"
|
||||
@ -55,6 +67,23 @@
|
||||
android:summaryOn="@string/respect_display_cutout_enabled"
|
||||
app:key="respect_display_cutout"
|
||||
app:title="@string/respect_display_cutout" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:key="category_audio"
|
||||
android:title="@string/audio">
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:summaryOff="@string/disable_audio_output_disabled"
|
||||
android:summaryOn="@string/disable_audio_output_enabled"
|
||||
app:key="is_audio_output_disabled"
|
||||
app:title="@string/disable_audio_output" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:key="category_gpu"
|
||||
android:title="@string/gpu">
|
||||
<emu.skyline.preference.GpuDriverPreference
|
||||
app:key="gpu_driver"
|
||||
app:title="@string/gpu_driver_config" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="true"
|
||||
android:summaryOff="@string/triple_buffering_disabled"
|
||||
@ -68,19 +97,6 @@
|
||||
android:summaryOn="@string/disable_frame_throttling_enabled"
|
||||
app:key="disable_frame_throttling"
|
||||
app:title="@string/disable_frame_throttling" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:summaryOff="@string/max_refresh_rate_disabled"
|
||||
android:summaryOn="@string/max_refresh_rate_enabled"
|
||||
app:key="max_refresh_rate"
|
||||
app:title="@string/max_refresh_rate" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:key="category_gpu"
|
||||
android:title="@string/gpu">
|
||||
<emu.skyline.preference.GpuDriverPreference
|
||||
app:key="gpu_driver"
|
||||
app:title="@string/gpu_driver_config" />
|
||||
<SeekBarPreference
|
||||
android:defaultValue="4"
|
||||
android:max="6"
|
||||
@ -137,21 +153,16 @@
|
||||
app:key="disable_subgroup_shuffle"
|
||||
app:title="@string/disable_subgroup_shuffle" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:key="category_audio"
|
||||
android:title="@string/audio"
|
||||
app:isPreferenceVisible="true">
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:summaryOff="@string/disable_audio_output_disabled"
|
||||
android:summaryOn="@string/disable_audio_output_enabled"
|
||||
app:key="is_audio_output_disabled"
|
||||
app:title="@string/disable_audio_output" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:key="category_debug"
|
||||
android:title="@string/debug"
|
||||
app:isPreferenceVisible="false">
|
||||
<emu.skyline.preference.LogLevelPreference
|
||||
android:defaultValue="2"
|
||||
android:entries="@array/log_level"
|
||||
app:key="log_level"
|
||||
app:title="@string/log_level"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:summaryOff="@string/validation_layer_disabled"
|
||||
|
Loading…
Reference in New Issue
Block a user