Browse Source

fix orientation and list bug

dmnt2
Maufeat 4 days ago
parent
commit
2685e8f877
  1. 3
      src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/AddonAdapter.kt
  2. 6
      src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AddonsFragment.kt
  3. 7
      src/android/app/src/main/java/org/yuzu/yuzu_emu/model/AddonViewModel.kt

3
src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/AddonAdapter.kt

@ -32,8 +32,9 @@ class AddonAdapter(val addonViewModel: AddonViewModel) :
binding.addonSwitch.performClick()
}
binding.title.text = model.name
binding.addonSwitch.isChecked = model.enabled
binding.addonSwitch.setOnCheckedChangeListener(null)
binding.addonSwitch.isChecked = model.enabled
binding.addonSwitch.setOnCheckedChangeListener { _, checked ->
model.enabled = checked
}

6
src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AddonsFragment.kt

@ -73,7 +73,7 @@ class AddonsFragment : Fragment() {
}
addonViewModel.addonList.collect(viewLifecycleOwner) {
(binding.listAddons.adapter as AddonAdapter).submitList(it)
(binding.listAddons.adapter as AddonAdapter).submitList(it.toList())
}
addonViewModel.showModInstallPicker.collect(
viewLifecycleOwner,
@ -127,7 +127,9 @@ class AddonsFragment : Fragment() {
override fun onDestroy() {
super.onDestroy()
addonViewModel.onCloseAddons()
if (!requireActivity().isChangingConfigurations) {
addonViewModel.onCloseAddons()
}
}
val installAddon =

7
src/android/app/src/main/java/org/yuzu/yuzu_emu/model/AddonViewModel.kt

@ -31,10 +31,14 @@ class AddonViewModel : ViewModel() {
val addonToDelete = _addonToDelete.asStateFlow()
var game: Game? = null
private set
private val isRefreshing = AtomicBoolean(false)
fun onOpenAddons(game: Game) {
if (this.game?.programId == game.programId && _patchList.value.isNotEmpty()) {
return
}
this.game = game
refreshAddons()
}
@ -67,6 +71,7 @@ class AddonViewModel : ViewModel() {
PatchType.Mod -> NativeLibrary.removeMod(patch.programId, patch.name)
PatchType.Cheat -> {}
}
_patchList.value.clear()
refreshAddons()
}
@ -81,7 +86,7 @@ class AddonViewModel : ViewModel() {
if (it.enabled) {
null
} else {
it.getStorageKey() // Use storage key for proper cheat identification
it.getStorageKey()
}
}.toTypedArray()
)

Loading…
Cancel
Save