summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt56
1 files changed, 28 insertions, 28 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
index c75ad580e..37469302d 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
@@ -10,8 +10,6 @@ import android.graphics.Color
import android.os.Bundle
import android.os.Handler
import android.view.*
-import android.widget.Button
-import android.widget.TextView
import android.widget.Toast
import androidx.fragment.app.Fragment
import androidx.localbroadcastmanager.content.LocalBroadcastManager
@@ -20,8 +18,8 @@ import org.yuzu.yuzu_emu.NativeLibrary
import org.yuzu.yuzu_emu.R
import org.yuzu.yuzu_emu.YuzuApplication
import org.yuzu.yuzu_emu.activities.EmulationActivity
+import org.yuzu.yuzu_emu.databinding.FragmentEmulationBinding
import org.yuzu.yuzu_emu.features.settings.model.Settings
-import org.yuzu.yuzu_emu.overlay.InputOverlay
import org.yuzu.yuzu_emu.utils.DirectoryInitialization
import org.yuzu.yuzu_emu.utils.DirectoryInitialization.DirectoryInitializationState
import org.yuzu.yuzu_emu.utils.DirectoryStateReceiver
@@ -29,13 +27,14 @@ import org.yuzu.yuzu_emu.utils.Log
class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.FrameCallback {
private lateinit var preferences: SharedPreferences
- private var inputOverlay: InputOverlay? = null
private lateinit var emulationState: EmulationState
private var directoryStateReceiver: DirectoryStateReceiver? = null
private var emulationActivity: EmulationActivity? = null
- private lateinit var perfStats: TextView
private var perfStatsUpdater: (() -> Unit)? = null
+ private var _binding: FragmentEmulationBinding? = null
+ private val binding get() = _binding!!
+
override fun onAttach(context: Context) {
super.onAttach(context)
if (context is EmulationActivity) {
@@ -66,22 +65,19 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
- ): View? {
- val contents = inflater.inflate(R.layout.fragment_emulation, container, false)
- val surfaceView = contents.findViewById<SurfaceView>(R.id.surface_emulation)
- surfaceView.holder.addCallback(this)
- inputOverlay = contents.findViewById(R.id.surface_input_overlay)
- perfStats = contents.findViewById(R.id.show_fps_text)
- perfStats.setTextColor(Color.YELLOW)
- val doneButton = contents.findViewById<Button>(R.id.done_control_config)
- doneButton?.setOnClickListener { stopConfiguringControls() }
+ ): View {
+ _binding = FragmentEmulationBinding.inflate(layoutInflater)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ binding.surfaceEmulation.holder.addCallback(this)
+ binding.showFpsText.setTextColor(Color.YELLOW)
+ binding.doneControlConfig.setOnClickListener { stopConfiguringControls() }
// Setup overlay.
resetInputOverlay()
updateShowFpsOverlay()
-
- // The new Surface created here will get passed to the native code via onSurfaceChanged.
- return contents
}
override fun onResume() {
@@ -108,6 +104,11 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram
super.onPause()
}
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+
override fun onDetach() {
NativeLibrary.clearEmulationActivity()
super.onDetach()
@@ -144,7 +145,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram
}
fun refreshInputOverlay() {
- inputOverlay!!.refreshControls()
+ binding.surfaceInputOverlay.refreshControls()
}
fun resetInputOverlay() {
@@ -152,7 +153,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram
preferences.edit()
.putInt(Settings.PREF_CONTROL_SCALE, 50)
.apply()
- inputOverlay!!.resetButtonPlacement()
+ binding.surfaceInputOverlay.resetButtonPlacement()
}
private fun updateShowFpsOverlay() {
@@ -165,17 +166,17 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram
perfStatsUpdater = {
val perfStats = NativeLibrary.GetPerfStats()
if (perfStats[FPS] > 0) {
- this.perfStats.text = String.format("FPS: %.1f", perfStats[FPS])
+ binding.showFpsText.text = String.format("FPS: %.1f", perfStats[FPS])
}
perfStatsUpdateHandler.postDelayed(perfStatsUpdater!!, 100)
}
perfStatsUpdateHandler.post(perfStatsUpdater!!)
- perfStats.visibility = View.VISIBLE
+ binding.showFpsText.visibility = View.VISIBLE
} else {
if (perfStatsUpdater != null) {
perfStatsUpdateHandler.removeCallbacks(perfStatsUpdater!!)
}
- perfStats.visibility = View.GONE
+ binding.showFpsText.visibility = View.GONE
}
}
@@ -203,18 +204,17 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram
}
fun startConfiguringControls() {
- requireView().findViewById<View>(R.id.done_control_config).visibility =
- View.VISIBLE
- inputOverlay!!.setIsInEditMode(true)
+ binding.doneControlConfig.visibility = View.VISIBLE
+ binding.surfaceInputOverlay.setIsInEditMode(true)
}
fun stopConfiguringControls() {
- requireView().findViewById<View>(R.id.done_control_config).visibility = View.GONE
- inputOverlay!!.setIsInEditMode(false)
+ binding.doneControlConfig.visibility = View.GONE
+ binding.surfaceInputOverlay.setIsInEditMode(false)
}
val isConfiguringControls: Boolean
- get() = inputOverlay!!.isInEditMode
+ get() = binding.surfaceInputOverlay.isInEditMode
private class EmulationState(private val mGamePath: String?) {
private var state: State