mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-20 16:25:45 +00:00
fix: refactor EmulationFragment
*handler callbacks using nullable Runnables * Remove unused `cpuBackend` and `gpuDriver` variables. * Use lambda syntax for `Slider.OnChangeListener`. * Remove unused imports.
This commit is contained in:
parent
4c66f6aceb
commit
c03b93e1f0
1 changed files with 23 additions and 36 deletions
|
@ -44,7 +44,6 @@ import androidx.core.view.updateLayoutParams
|
||||||
import androidx.drawerlayout.widget.DrawerLayout
|
import androidx.drawerlayout.widget.DrawerLayout
|
||||||
import androidx.drawerlayout.widget.DrawerLayout.DrawerListener
|
import androidx.drawerlayout.widget.DrawerLayout.DrawerListener
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.FragmentActivity
|
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import androidx.navigation.findNavController
|
import androidx.navigation.findNavController
|
||||||
import androidx.navigation.fragment.navArgs
|
import androidx.navigation.fragment.navArgs
|
||||||
|
@ -53,7 +52,6 @@ import androidx.window.layout.WindowInfoTracker
|
||||||
import androidx.window.layout.WindowLayoutInfo
|
import androidx.window.layout.WindowLayoutInfo
|
||||||
import com.google.android.material.color.MaterialColors
|
import com.google.android.material.color.MaterialColors
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import com.google.android.material.slider.Slider
|
|
||||||
import com.google.android.material.textview.MaterialTextView
|
import com.google.android.material.textview.MaterialTextView
|
||||||
import org.yuzu.yuzu_emu.HomeNavigationDirections
|
import org.yuzu.yuzu_emu.HomeNavigationDirections
|
||||||
import org.yuzu.yuzu_emu.NativeLibrary
|
import org.yuzu.yuzu_emu.NativeLibrary
|
||||||
|
@ -95,9 +93,6 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||||
private var perfStatsUpdater: (() -> Unit)? = null
|
private var perfStatsUpdater: (() -> Unit)? = null
|
||||||
private var socUpdater: (() -> Unit)? = null
|
private var socUpdater: (() -> Unit)? = null
|
||||||
|
|
||||||
private lateinit var cpuBackend: String
|
|
||||||
private lateinit var gpuDriver: String
|
|
||||||
|
|
||||||
private var _binding: FragmentEmulationBinding? = null
|
private var _binding: FragmentEmulationBinding? = null
|
||||||
|
|
||||||
private val binding get() = _binding!!
|
private val binding get() = _binding!!
|
||||||
|
@ -117,6 +112,9 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||||
private var intentGame: Game? = null
|
private var intentGame: Game? = null
|
||||||
private var isCustomSettingsIntent = false
|
private var isCustomSettingsIntent = false
|
||||||
|
|
||||||
|
private var perfStatsRunnable: Runnable? = null
|
||||||
|
private var socRunnable: Runnable? = null
|
||||||
|
|
||||||
override fun onAttach(context: Context) {
|
override fun onAttach(context: Context) {
|
||||||
super.onAttach(context)
|
super.onAttach(context)
|
||||||
if (context is EmulationActivity) {
|
if (context is EmulationActivity) {
|
||||||
|
@ -536,16 +534,11 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||||
ViewUtils.showView(binding.loadingIndicator)
|
ViewUtils.showView(binding.loadingIndicator)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
emulationViewModel.emulationStopped.collect(viewLifecycleOwner) {
|
|
||||||
if (it && emulationViewModel.programChanged.value != -1) {
|
|
||||||
if (perfStatsUpdater != null) {
|
|
||||||
perfStatsUpdateHandler.removeCallbacks(perfStatsUpdater!!)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (socUpdater != null) {
|
|
||||||
socUpdateHandler.removeCallbacks(socUpdater!!)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
emulationViewModel.emulationStopped.collect(viewLifecycleOwner) { stopped ->
|
||||||
|
if (stopped && emulationViewModel.programChanged.value != -1) {
|
||||||
|
perfStatsRunnable?.let { runnable -> perfStatsUpdateHandler.removeCallbacks(runnable) }
|
||||||
|
socRunnable?.let { runnable -> socUpdateHandler.removeCallbacks(runnable) }
|
||||||
emulationState.changeProgram(emulationViewModel.programChanged.value)
|
emulationState.changeProgram(emulationViewModel.programChanged.value)
|
||||||
emulationViewModel.setProgramChanged(-1)
|
emulationViewModel.setProgramChanged(-1)
|
||||||
emulationViewModel.setEmulationStopped(false)
|
emulationViewModel.setEmulationStopped(false)
|
||||||
|
@ -765,13 +758,12 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||||
|
|
||||||
binding.showStatsOverlayText.text = sb.toString()
|
binding.showStatsOverlayText.text = sb.toString()
|
||||||
}
|
}
|
||||||
perfStatsUpdateHandler.postDelayed(perfStatsUpdater!!, 800)
|
perfStatsUpdateHandler.postDelayed(perfStatsRunnable!!, 800)
|
||||||
}
|
}
|
||||||
perfStatsUpdateHandler.post(perfStatsUpdater!!)
|
perfStatsRunnable = Runnable { perfStatsUpdater?.invoke() }
|
||||||
|
perfStatsUpdateHandler.post(perfStatsRunnable!!)
|
||||||
} else {
|
} else {
|
||||||
if (perfStatsUpdater != null) {
|
perfStatsRunnable?.let { perfStatsUpdateHandler.removeCallbacks(it) }
|
||||||
perfStatsUpdateHandler.removeCallbacks(perfStatsUpdater!!)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -884,13 +876,12 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
socUpdateHandler.postDelayed(socUpdater!!, 1000)
|
socUpdateHandler.postDelayed(socRunnable!!, 1000)
|
||||||
}
|
}
|
||||||
socUpdateHandler.post(socUpdater!!)
|
socRunnable = Runnable { socUpdater?.invoke() }
|
||||||
|
socUpdateHandler.post(socRunnable!!)
|
||||||
} else {
|
} else {
|
||||||
if (socUpdater != null) {
|
socRunnable?.let { socUpdateHandler.removeCallbacks(it) }
|
||||||
socUpdateHandler.removeCallbacks(socUpdater!!)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1183,22 +1174,18 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||||
inputScaleSlider.apply {
|
inputScaleSlider.apply {
|
||||||
valueTo = 150F
|
valueTo = 150F
|
||||||
value = IntSetting.OVERLAY_SCALE.getInt().toFloat()
|
value = IntSetting.OVERLAY_SCALE.getInt().toFloat()
|
||||||
addOnChangeListener(
|
addOnChangeListener { _, value, _ ->
|
||||||
Slider.OnChangeListener { _, value, _ ->
|
inputScaleValue.text = "${value.toInt()}%"
|
||||||
inputScaleValue.text = "${value.toInt()}%"
|
setControlScale(value.toInt())
|
||||||
setControlScale(value.toInt())
|
}
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
inputOpacitySlider.apply {
|
inputOpacitySlider.apply {
|
||||||
valueTo = 100F
|
valueTo = 100F
|
||||||
value = IntSetting.OVERLAY_OPACITY.getInt().toFloat()
|
value = IntSetting.OVERLAY_OPACITY.getInt().toFloat()
|
||||||
addOnChangeListener(
|
addOnChangeListener { _, value, _ ->
|
||||||
Slider.OnChangeListener { _, value, _ ->
|
inputOpacityValue.text = "${value.toInt()}%"
|
||||||
inputOpacityValue.text = "${value.toInt()}%"
|
setControlOpacity(value.toInt())
|
||||||
setControlOpacity(value.toInt())
|
}
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
inputScaleValue.text = "${inputScaleSlider.value.toInt()}%"
|
inputScaleValue.text = "${inputScaleSlider.value.toInt()}%"
|
||||||
inputOpacityValue.text = "${inputOpacitySlider.value.toInt()}%"
|
inputOpacityValue.text = "${inputOpacitySlider.value.toInt()}%"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue