diff options
| author | 2023-12-12 13:58:25 -0500 | |
|---|---|---|
| committer | 2023-12-12 17:25:37 -0500 | |
| commit | 345fb6b22636d2677f9bcb6113d81a4833aadd5c (patch) | |
| tree | 7d0855a3f71d0c82fb4a30d5b02a2aea226697a5 /src/android | |
| parent | android: Always use custom settings when launched from intent (diff) | |
| download | yuzu-345fb6b22636d2677f9bcb6113d81a4833aadd5c.tar.gz yuzu-345fb6b22636d2677f9bcb6113d81a4833aadd5c.tar.xz yuzu-345fb6b22636d2677f9bcb6113d81a4833aadd5c.zip | |
android: Use confirmation dialog when deleting shader cache
Diffstat (limited to 'src/android')
3 files changed, 45 insertions, 15 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt index e062425a1..6ede3f85c 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | 3 | ||
| 4 | package org.yuzu.yuzu_emu.fragments | 4 | package org.yuzu.yuzu_emu.fragments |
| 5 | 5 | ||
| 6 | import android.annotation.SuppressLint | ||
| 6 | import android.os.Bundle | 7 | import android.os.Bundle |
| 7 | import android.text.TextUtils | 8 | import android.text.TextUtils |
| 8 | import android.view.LayoutInflater | 9 | import android.view.LayoutInflater |
| @@ -73,6 +74,8 @@ class GamePropertiesFragment : Fragment() { | |||
| 73 | return binding.root | 74 | return binding.root |
| 74 | } | 75 | } |
| 75 | 76 | ||
| 77 | // This is using the correct scope, lint is just acting up | ||
| 78 | @SuppressLint("UnsafeRepeatOnLifecycleDetector") | ||
| 76 | override fun onViewCreated(view: View, savedInstanceState: Bundle?) { | 79 | override fun onViewCreated(view: View, savedInstanceState: Bundle?) { |
| 77 | super.onViewCreated(view, savedInstanceState) | 80 | super.onViewCreated(view, savedInstanceState) |
| 78 | homeViewModel.setNavigationVisibility(visible = false, animated = true) | 81 | homeViewModel.setNavigationVisibility(visible = false, animated = true) |
| @@ -99,12 +102,24 @@ class GamePropertiesFragment : Fragment() { | |||
| 99 | 102 | ||
| 100 | reloadList() | 103 | reloadList() |
| 101 | 104 | ||
| 102 | viewLifecycleOwner.lifecycleScope.launch { | 105 | viewLifecycleOwner.lifecycleScope.apply { |
| 103 | repeatOnLifecycle(Lifecycle.State.STARTED) { | 106 | launch { |
| 104 | homeViewModel.openImportSaves.collect { | 107 | repeatOnLifecycle(Lifecycle.State.STARTED) { |
| 105 | if (it) { | 108 | homeViewModel.openImportSaves.collect { |
| 106 | importSaves.launch(arrayOf("application/zip")) | 109 | if (it) { |
| 107 | homeViewModel.setOpenImportSaves(false) | 110 | importSaves.launch(arrayOf("application/zip")) |
| 111 | homeViewModel.setOpenImportSaves(false) | ||
| 112 | } | ||
| 113 | } | ||
| 114 | } | ||
| 115 | } | ||
| 116 | launch { | ||
| 117 | repeatOnLifecycle(Lifecycle.State.STARTED) { | ||
| 118 | homeViewModel.reloadPropertiesList.collect { | ||
| 119 | if (it) { | ||
| 120 | reloadList() | ||
| 121 | homeViewModel.reloadPropertiesList(false) | ||
| 122 | } | ||
| 108 | } | 123 | } |
| 109 | } | 124 | } |
| 110 | } | 125 | } |
| @@ -214,7 +229,7 @@ class GamePropertiesFragment : Fragment() { | |||
| 214 | R.string.save_data_deleted_successfully, | 229 | R.string.save_data_deleted_successfully, |
| 215 | Toast.LENGTH_SHORT | 230 | Toast.LENGTH_SHORT |
| 216 | ).show() | 231 | ).show() |
| 217 | reloadList() | 232 | homeViewModel.reloadPropertiesList(true) |
| 218 | } | 233 | } |
| 219 | ).show(parentFragmentManager, MessageDialogFragment.TAG) | 234 | ).show(parentFragmentManager, MessageDialogFragment.TAG) |
| 220 | } | 235 | } |
| @@ -242,13 +257,20 @@ class GamePropertiesFragment : Fragment() { | |||
| 242 | } | 257 | } |
| 243 | } | 258 | } |
| 244 | ) { | 259 | ) { |
| 245 | shaderCacheDir.deleteRecursively() | 260 | MessageDialogFragment.newInstance( |
| 246 | Toast.makeText( | 261 | requireActivity(), |
| 247 | YuzuApplication.appContext, | 262 | titleId = R.string.clear_shader_cache, |
| 248 | R.string.cleared_shaders_successfully, | 263 | descriptionId = R.string.clear_shader_cache_warning_description, |
| 249 | Toast.LENGTH_SHORT | 264 | positiveAction = { |
| 250 | ).show() | 265 | shaderCacheDir.deleteRecursively() |
| 251 | reloadList() | 266 | Toast.makeText( |
| 267 | YuzuApplication.appContext, | ||
| 268 | R.string.cleared_shaders_successfully, | ||
| 269 | Toast.LENGTH_SHORT | ||
| 270 | ).show() | ||
| 271 | homeViewModel.reloadPropertiesList(true) | ||
| 272 | } | ||
| 273 | ).show(parentFragmentManager, MessageDialogFragment.TAG) | ||
| 252 | } | 274 | } |
| 253 | ) | 275 | ) |
| 254 | } | 276 | } |
| @@ -388,7 +410,7 @@ class GamePropertiesFragment : Fragment() { | |||
| 388 | getString(R.string.save_file_imported_success), | 410 | getString(R.string.save_file_imported_success), |
| 389 | Toast.LENGTH_LONG | 411 | Toast.LENGTH_LONG |
| 390 | ).show() | 412 | ).show() |
| 391 | reloadList() | 413 | homeViewModel.reloadPropertiesList(true) |
| 392 | } | 414 | } |
| 393 | 415 | ||
| 394 | cacheSaveDir.deleteRecursively() | 416 | cacheSaveDir.deleteRecursively() |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/HomeViewModel.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/HomeViewModel.kt index d801db105..513ac2fc5 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/HomeViewModel.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/HomeViewModel.kt | |||
| @@ -28,6 +28,9 @@ class HomeViewModel : ViewModel() { | |||
| 28 | private val _contentToInstall = MutableStateFlow<List<Uri>?>(null) | 28 | private val _contentToInstall = MutableStateFlow<List<Uri>?>(null) |
| 29 | val contentToInstall get() = _contentToInstall.asStateFlow() | 29 | val contentToInstall get() = _contentToInstall.asStateFlow() |
| 30 | 30 | ||
| 31 | private val _reloadPropertiesList = MutableStateFlow(false) | ||
| 32 | val reloadPropertiesList get() = _reloadPropertiesList.asStateFlow() | ||
| 33 | |||
| 31 | var navigatedToSetup = false | 34 | var navigatedToSetup = false |
| 32 | 35 | ||
| 33 | fun setNavigationVisibility(visible: Boolean, animated: Boolean) { | 36 | fun setNavigationVisibility(visible: Boolean, animated: Boolean) { |
| @@ -59,4 +62,8 @@ class HomeViewModel : ViewModel() { | |||
| 59 | fun setContentToInstall(documents: List<Uri>?) { | 62 | fun setContentToInstall(documents: List<Uri>?) { |
| 60 | _contentToInstall.value = documents | 63 | _contentToInstall.value = documents |
| 61 | } | 64 | } |
| 65 | |||
| 66 | fun reloadPropertiesList(reload: Boolean) { | ||
| 67 | _reloadPropertiesList.value = reload | ||
| 68 | } | ||
| 62 | } | 69 | } |
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 50879b3a3..c86c43df2 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml | |||
| @@ -314,6 +314,7 @@ | |||
| 314 | <string name="add_ons_description">Toggle mods, updates and DLC</string> | 314 | <string name="add_ons_description">Toggle mods, updates and DLC</string> |
| 315 | <string name="clear_shader_cache">Clear shader cache</string> | 315 | <string name="clear_shader_cache">Clear shader cache</string> |
| 316 | <string name="clear_shader_cache_description">Removes all shaders built while playing this game</string> | 316 | <string name="clear_shader_cache_description">Removes all shaders built while playing this game</string> |
| 317 | <string name="clear_shader_cache_warning_description">You will experience more stuttering as the shader cache regenerates</string> | ||
| 317 | <string name="cleared_shaders_successfully">Cleared shaders successfully</string> | 318 | <string name="cleared_shaders_successfully">Cleared shaders successfully</string> |
| 318 | <string name="addons_game">Addons: %1$s</string> | 319 | <string name="addons_game">Addons: %1$s</string> |
| 319 | <string name="save_data">Save data</string> | 320 | <string name="save_data">Save data</string> |