Răsfoiți Sursa

android: Convert SettingsActivityPresenter to Kotlin

Charles Lombardo 3 ani în urmă
părinte
comite
34ce4877bd

+ 0 - 122
src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivityPresenter.java

@@ -1,122 +0,0 @@
-package org.yuzu.yuzu_emu.features.settings.ui;
-
-import android.content.IntentFilter;
-import android.os.Bundle;
-import android.text.TextUtils;
-
-import org.yuzu.yuzu_emu.NativeLibrary;
-import org.yuzu.yuzu_emu.features.settings.model.Settings;
-import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile;
-import org.yuzu.yuzu_emu.utils.DirectoryInitialization;
-import org.yuzu.yuzu_emu.utils.DirectoryInitialization.DirectoryInitializationState;
-import org.yuzu.yuzu_emu.utils.DirectoryStateReceiver;
-import org.yuzu.yuzu_emu.utils.Log;
-import org.yuzu.yuzu_emu.utils.ThemeUtil;
-
-import java.io.File;
-
-public final class SettingsActivityPresenter {
-    private static final String KEY_SHOULD_SAVE = "should_save";
-
-    private SettingsActivityView mView;
-
-    private Settings mSettings = new Settings();
-
-    private boolean mShouldSave;
-
-    private DirectoryStateReceiver directoryStateReceiver;
-
-    private String menuTag;
-    private String gameId;
-
-    public SettingsActivityPresenter(SettingsActivityView view) {
-        mView = view;
-    }
-
-    public void onCreate(Bundle savedInstanceState, String menuTag, String gameId) {
-        if (savedInstanceState == null) {
-            this.menuTag = menuTag;
-            this.gameId = gameId;
-        } else {
-            mShouldSave = savedInstanceState.getBoolean(KEY_SHOULD_SAVE);
-        }
-    }
-
-    public void onStart() {
-        prepareDirectoriesIfNeeded();
-    }
-
-    void loadSettingsUI() {
-        if (mSettings.isEmpty()) {
-            if (!TextUtils.isEmpty(gameId)) {
-                mSettings.loadSettings(gameId, mView);
-            } else {
-                mSettings.loadSettings(mView);
-            }
-        }
-
-        mView.showSettingsFragment(menuTag, false, gameId);
-        mView.onSettingsFileLoaded(mSettings);
-    }
-
-    private void prepareDirectoriesIfNeeded() {
-        File configFile = new File(DirectoryInitialization.getUserDirectory() + "/config/" + SettingsFile.FILE_NAME_CONFIG + ".ini");
-        if (!configFile.exists()) {
-            Log.error(DirectoryInitialization.getUserDirectory() + "/config/" + SettingsFile.FILE_NAME_CONFIG + ".ini");
-            Log.error("yuzu config file could not be found!");
-        }
-        if (DirectoryInitialization.areDirectoriesReady()) {
-            loadSettingsUI();
-        } else {
-            mView.showLoading();
-            IntentFilter statusIntentFilter = new IntentFilter(
-                    DirectoryInitialization.BROADCAST_ACTION);
-
-            directoryStateReceiver =
-                    new DirectoryStateReceiver(directoryInitializationState ->
-                    {
-                        if (directoryInitializationState == DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED) {
-                            mView.hideLoading();
-                            loadSettingsUI();
-                        } else if (directoryInitializationState == DirectoryInitializationState.CANT_FIND_EXTERNAL_STORAGE) {
-                            mView.showExternalStorageNotMountedHint();
-                            mView.hideLoading();
-                        }
-                    });
-
-            mView.startDirectoryInitializationService(directoryStateReceiver, statusIntentFilter);
-        }
-    }
-
-    public void setSettings(Settings settings) {
-        mSettings = settings;
-    }
-
-    public Settings getSettings() {
-        return mSettings;
-    }
-
-    public void onStop(boolean finishing) {
-        if (directoryStateReceiver != null) {
-            mView.stopListeningToDirectoryInitializationService(directoryStateReceiver);
-            directoryStateReceiver = null;
-        }
-
-        if (mSettings != null && finishing && mShouldSave) {
-            Log.debug("[SettingsActivity] Settings activity stopping. Saving settings to INI...");
-            mSettings.saveSettings(mView);
-        }
-
-        ThemeUtil.applyTheme();
-
-        NativeLibrary.ReloadSettings();
-    }
-
-    public void onSettingChanged() {
-        mShouldSave = true;
-    }
-
-    public void saveState(Bundle outState) {
-        outState.putBoolean(KEY_SHOULD_SAVE, mShouldSave);
-    }
-}

+ 99 - 0
src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivityPresenter.kt

@@ -0,0 +1,99 @@
+package org.yuzu.yuzu_emu.features.settings.ui
+
+import android.content.IntentFilter
+import android.os.Bundle
+import android.text.TextUtils
+import org.yuzu.yuzu_emu.NativeLibrary
+import org.yuzu.yuzu_emu.features.settings.model.Settings
+import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile
+import org.yuzu.yuzu_emu.utils.DirectoryInitialization
+import org.yuzu.yuzu_emu.utils.DirectoryInitialization.DirectoryInitializationState
+import org.yuzu.yuzu_emu.utils.DirectoryStateReceiver
+import org.yuzu.yuzu_emu.utils.Log
+import java.io.File
+
+class SettingsActivityPresenter(private val activityView: SettingsActivityView) {
+    var settings: Settings? = Settings()
+    private var shouldSave = false
+    private var directoryStateReceiver: DirectoryStateReceiver? = null
+    private lateinit var menuTag: String
+    private lateinit var gameId: String
+
+    fun onCreate(savedInstanceState: Bundle?, menuTag: String, gameId: String) {
+        if (savedInstanceState == null) {
+            this.menuTag = menuTag
+            this.gameId = gameId
+        } else {
+            shouldSave = savedInstanceState.getBoolean(KEY_SHOULD_SAVE)
+        }
+    }
+
+    fun onStart() {
+        prepareDirectoriesIfNeeded()
+    }
+
+    private fun loadSettingsUI() {
+        if (settings!!.isEmpty) {
+            if (!TextUtils.isEmpty(gameId)) {
+                settings!!.loadSettings(gameId, activityView)
+            } else {
+                settings!!.loadSettings(activityView)
+            }
+        }
+        activityView.showSettingsFragment(menuTag, false, gameId)
+        activityView.onSettingsFileLoaded(settings)
+    }
+
+    private fun prepareDirectoriesIfNeeded() {
+        val configFile =
+            File(DirectoryInitialization.userDirectory + "/config/" + SettingsFile.FILE_NAME_CONFIG + ".ini")
+        if (!configFile.exists()) {
+            Log.error(DirectoryInitialization.userDirectory + "/config/" + SettingsFile.FILE_NAME_CONFIG + ".ini")
+            Log.error("yuzu config file could not be found!")
+        }
+        if (DirectoryInitialization.areDirectoriesReady()) {
+            loadSettingsUI()
+        } else {
+            activityView.showLoading()
+            val statusIntentFilter = IntentFilter(DirectoryInitialization.BROADCAST_ACTION)
+            directoryStateReceiver =
+                DirectoryStateReceiver { directoryInitializationState: DirectoryInitializationState ->
+                    if (directoryInitializationState == DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED) {
+                        activityView.hideLoading()
+                        loadSettingsUI()
+                    } else if (directoryInitializationState == DirectoryInitializationState.CANT_FIND_EXTERNAL_STORAGE) {
+                        activityView.showExternalStorageNotMountedHint()
+                        activityView.hideLoading()
+                    }
+                }
+            activityView.startDirectoryInitializationService(
+                directoryStateReceiver,
+                statusIntentFilter
+            )
+        }
+    }
+
+    fun onStop(finishing: Boolean) {
+        if (directoryStateReceiver != null) {
+            activityView.stopListeningToDirectoryInitializationService(directoryStateReceiver!!)
+            directoryStateReceiver = null
+        }
+        if (settings != null && finishing && shouldSave) {
+            Log.debug("[SettingsActivity] Settings activity stopping. Saving settings to INI...")
+            settings!!.saveSettings(activityView)
+        }
+        NativeLibrary.ReloadSettings()
+    }
+
+    fun onSettingChanged() {
+        shouldSave = true
+    }
+
+    fun saveState(outState: Bundle) {
+        outState.putBoolean(KEY_SHOULD_SAVE, shouldSave)
+    }
+
+    companion object {
+        private const val KEY_SHOULD_SAVE = "should_save"
+    }
+}