summaryrefslogtreecommitdiff
path: root/src/android
diff options
context:
space:
mode:
authorGravatar t8952023-12-12 13:58:25 -0500
committerGravatar t8952023-12-12 17:25:37 -0500
commit345fb6b22636d2677f9bcb6113d81a4833aadd5c (patch)
tree7d0855a3f71d0c82fb4a30d5b02a2aea226697a5 /src/android
parentandroid: Always use custom settings when launched from intent (diff)
downloadyuzu-345fb6b22636d2677f9bcb6113d81a4833aadd5c.tar.gz
yuzu-345fb6b22636d2677f9bcb6113d81a4833aadd5c.tar.xz
yuzu-345fb6b22636d2677f9bcb6113d81a4833aadd5c.zip
android: Use confirmation dialog when deleting shader cache
Diffstat (limited to 'src/android')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt52
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/model/HomeViewModel.kt7
-rw-r--r--src/android/app/src/main/res/values/strings.xml1
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
4package org.yuzu.yuzu_emu.fragments 4package org.yuzu.yuzu_emu.fragments
5 5
6import android.annotation.SuppressLint
6import android.os.Bundle 7import android.os.Bundle
7import android.text.TextUtils 8import android.text.TextUtils
8import android.view.LayoutInflater 9import 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>