summaryrefslogtreecommitdiff
path: root/Source/Android
diff options
context:
space:
mode:
authorCharles Lombardo <clombardo169@gmail.com>2023-03-01 14:38:59 -0500
committerCharles Lombardo <clombardo169@gmail.com>2023-03-01 14:38:59 -0500
commitdf21663d4c8fa169327528cc1ec9796c2e5873fb (patch)
tree38dd730ce8417b410357f5c5c67d5736da412022 /Source/Android
parent79d0ff55d2f68b96a064be320ce42b81e43efc21 (diff)
Android: Convert RiivolutionBootActivity to Kotlin
Diffstat (limited to 'Source/Android')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/riivolution/ui/RiivolutionBootActivity.java138
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/riivolution/ui/RiivolutionBootActivity.kt130
2 files changed, 130 insertions, 138 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/riivolution/ui/RiivolutionBootActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/riivolution/ui/RiivolutionBootActivity.java
deleted file mode 100644
index ffcfa8e2f1..0000000000
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/riivolution/ui/RiivolutionBootActivity.java
+++ /dev/null
@@ -1,138 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-package org.dolphinemu.dolphinemu.features.riivolution.ui;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.core.graphics.Insets;
-import androidx.core.view.ViewCompat;
-import androidx.core.view.WindowCompat;
-import androidx.core.view.WindowInsetsCompat;
-import androidx.recyclerview.widget.LinearLayoutManager;
-
-import com.google.android.material.color.MaterialColors;
-
-import org.dolphinemu.dolphinemu.R;
-import org.dolphinemu.dolphinemu.activities.EmulationActivity;
-import org.dolphinemu.dolphinemu.databinding.ActivityRiivolutionBootBinding;
-import org.dolphinemu.dolphinemu.features.riivolution.model.RiivolutionPatches;
-import org.dolphinemu.dolphinemu.features.settings.model.StringSetting;
-import org.dolphinemu.dolphinemu.utils.DirectoryInitialization;
-import org.dolphinemu.dolphinemu.utils.InsetsHelper;
-import org.dolphinemu.dolphinemu.utils.ThemeHelper;
-
-public class RiivolutionBootActivity extends AppCompatActivity
-{
- private static final String ARG_GAME_PATH = "game_path";
- private static final String ARG_GAME_ID = "game_id";
- private static final String ARG_REVISION = "revision";
- private static final String ARG_DISC_NUMBER = "disc_number";
-
- private RiivolutionPatches mPatches;
-
- private ActivityRiivolutionBootBinding mBinding;
-
- public static void launch(Context context, String gamePath, String gameId, int revision,
- int discNumber)
- {
- Intent launcher = new Intent(context, RiivolutionBootActivity.class);
- launcher.putExtra(ARG_GAME_PATH, gamePath);
- launcher.putExtra(ARG_GAME_ID, gameId);
- launcher.putExtra(ARG_REVISION, revision);
- launcher.putExtra(ARG_DISC_NUMBER, discNumber);
- context.startActivity(launcher);
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState)
- {
- ThemeHelper.setTheme(this);
-
- super.onCreate(savedInstanceState);
-
- mBinding = ActivityRiivolutionBootBinding.inflate(getLayoutInflater());
- setContentView(mBinding.getRoot());
-
- WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
-
- Intent intent = getIntent();
-
- String path = getIntent().getStringExtra(ARG_GAME_PATH);
- String gameId = intent.getStringExtra(ARG_GAME_ID);
- int revision = intent.getIntExtra(ARG_REVISION, -1);
- int discNumber = intent.getIntExtra(ARG_DISC_NUMBER, -1);
-
- String loadPath = StringSetting.MAIN_LOAD_PATH.getStringGlobal();
- if (loadPath.isEmpty())
- loadPath = DirectoryInitialization.getUserDirectory() + "/Load";
-
- mBinding.textSdRoot.setText(getString(R.string.riivolution_sd_root, loadPath + "/Riivolution"));
-
- mBinding.buttonStart.setOnClickListener((v) ->
- {
- if (mPatches != null)
- mPatches.saveConfig();
-
- EmulationActivity.launch(this, path, true);
- });
-
- new Thread(() ->
- {
- RiivolutionPatches patches = new RiivolutionPatches(gameId, revision, discNumber);
- patches.loadConfig();
- runOnUiThread(() -> populateList(patches));
- }).start();
-
- mBinding.toolbarRiivolution.setTitle(getString(R.string.riivolution_riivolution));
- setSupportActionBar(mBinding.toolbarRiivolution);
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-
- setInsets();
- ThemeHelper.enableScrollTint(this, mBinding.toolbarRiivolution, mBinding.appbarRiivolution);
- }
-
- @Override
- protected void onStop()
- {
- super.onStop();
-
- if (mPatches != null)
- mPatches.saveConfig();
- }
-
- @Override
- public boolean onSupportNavigateUp()
- {
- onBackPressed();
- return true;
- }
-
- private void populateList(RiivolutionPatches patches)
- {
- mPatches = patches;
-
- mBinding.recyclerView.setAdapter(new RiivolutionAdapter(this, patches));
- mBinding.recyclerView.setLayoutManager(new LinearLayoutManager(this));
- }
-
- private void setInsets()
- {
- ViewCompat.setOnApplyWindowInsetsListener(mBinding.appbarRiivolution, (v, windowInsets) ->
- {
- Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
-
- InsetsHelper.insetAppBar(insets, mBinding.appbarRiivolution);
-
- mBinding.scrollViewRiivolution.setPadding(insets.left, 0, insets.right, insets.bottom);
-
- InsetsHelper.applyNavbarWorkaround(insets.bottom, mBinding.workaroundView);
- ThemeHelper.setNavigationBarColor(this,
- MaterialColors.getColor(mBinding.appbarRiivolution, R.attr.colorSurface));
-
- return windowInsets;
- });
- }
-}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/riivolution/ui/RiivolutionBootActivity.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/riivolution/ui/RiivolutionBootActivity.kt
new file mode 100644
index 0000000000..a4d33badab
--- /dev/null
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/riivolution/ui/RiivolutionBootActivity.kt
@@ -0,0 +1,130 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+package org.dolphinemu.dolphinemu.features.riivolution.ui
+
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import android.view.View
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowCompat
+import androidx.core.view.WindowInsetsCompat
+import androidx.lifecycle.lifecycleScope
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.google.android.material.color.MaterialColors
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+import org.dolphinemu.dolphinemu.R
+import org.dolphinemu.dolphinemu.activities.EmulationActivity
+import org.dolphinemu.dolphinemu.databinding.ActivityRiivolutionBootBinding
+import org.dolphinemu.dolphinemu.features.riivolution.model.RiivolutionPatches
+import org.dolphinemu.dolphinemu.features.settings.model.StringSetting
+import org.dolphinemu.dolphinemu.utils.DirectoryInitialization
+import org.dolphinemu.dolphinemu.utils.InsetsHelper
+import org.dolphinemu.dolphinemu.utils.ThemeHelper
+
+class RiivolutionBootActivity : AppCompatActivity() {
+ private var patches: RiivolutionPatches? = null
+ private lateinit var binding: ActivityRiivolutionBootBinding
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ ThemeHelper.setTheme(this)
+
+ super.onCreate(savedInstanceState)
+
+ binding = ActivityRiivolutionBootBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+
+ WindowCompat.setDecorFitsSystemWindows(window, false)
+
+ val path = intent.getStringExtra(ARG_GAME_PATH)
+ val gameId = intent.getStringExtra(ARG_GAME_ID)
+ val revision = intent.getIntExtra(ARG_REVISION, -1)
+ val discNumber = intent.getIntExtra(ARG_DISC_NUMBER, -1)
+
+ var loadPath = StringSetting.MAIN_LOAD_PATH.stringGlobal
+ if (loadPath.isEmpty()) loadPath = DirectoryInitialization.getUserDirectory() + "/Load"
+
+ binding.textSdRoot.text = getString(R.string.riivolution_sd_root, "$loadPath/Riivolution")
+ binding.buttonStart.setOnClickListener {
+ if (patches != null) patches!!.saveConfig()
+ EmulationActivity.launch(this, path, true)
+ }
+
+ lifecycleScope.launch {
+ withContext(Dispatchers.IO) {
+ val patches = RiivolutionPatches(gameId!!, revision, discNumber)
+ patches.loadConfig()
+ withContext(Dispatchers.Main) {
+ populateList(patches)
+ }
+ }
+ }
+
+ binding.toolbarRiivolution.title = getString(R.string.riivolution_riivolution)
+ setSupportActionBar(binding.toolbarRiivolution)
+ supportActionBar!!.setDisplayHomeAsUpEnabled(true)
+
+ setInsets()
+ ThemeHelper.enableScrollTint(this, binding.toolbarRiivolution, binding.appbarRiivolution)
+ }
+
+ override fun onStop() {
+ super.onStop()
+ if (patches != null) patches!!.saveConfig()
+ }
+
+ override fun onSupportNavigateUp(): Boolean {
+ onBackPressed()
+ return true
+ }
+
+ private fun populateList(patches: RiivolutionPatches) {
+ this.patches = patches
+ binding.recyclerView.adapter = RiivolutionAdapter(this, patches)
+ binding.recyclerView.layoutManager = LinearLayoutManager(this)
+ }
+
+ private fun setInsets() {
+ ViewCompat.setOnApplyWindowInsetsListener(binding.appbarRiivolution) { v: View?, windowInsets: WindowInsetsCompat ->
+ val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
+
+ InsetsHelper.insetAppBar(insets, binding.appbarRiivolution)
+
+ binding.scrollViewRiivolution.setPadding(insets.left, 0, insets.right, insets.bottom)
+
+ InsetsHelper.applyNavbarWorkaround(insets.bottom, binding.workaroundView)
+ ThemeHelper.setNavigationBarColor(
+ this,
+ MaterialColors.getColor(binding.appbarRiivolution, R.attr.colorSurface)
+ )
+
+ windowInsets
+ }
+ }
+
+ companion object {
+ private const val ARG_GAME_PATH = "game_path"
+ private const val ARG_GAME_ID = "game_id"
+ private const val ARG_REVISION = "revision"
+ private const val ARG_DISC_NUMBER = "disc_number"
+
+ @JvmStatic
+ fun launch(
+ context: Context,
+ gamePath: String?,
+ gameId: String?,
+ revision: Int,
+ discNumber: Int
+ ) {
+ val launcher = Intent(context, RiivolutionBootActivity::class.java)
+ launcher.putExtra(ARG_GAME_PATH, gamePath)
+ launcher.putExtra(ARG_GAME_ID, gameId)
+ launcher.putExtra(ARG_REVISION, revision)
+ launcher.putExtra(ARG_DISC_NUMBER, discNumber)
+ context.startActivity(launcher)
+ }
+ }
+}