committed by
bunnei
2 changed files with 66 additions and 81 deletions
-
81src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainPresenter.java
-
66src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainPresenter.kt
@ -1,81 +0,0 @@ |
|||||
package org.yuzu.yuzu_emu.ui.main; |
|
||||
|
|
||||
import android.os.SystemClock; |
|
||||
|
|
||||
import org.yuzu.yuzu_emu.BuildConfig; |
|
||||
import org.yuzu.yuzu_emu.YuzuApplication; |
|
||||
import org.yuzu.yuzu_emu.R; |
|
||||
import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile; |
|
||||
import org.yuzu.yuzu_emu.model.GameDatabase; |
|
||||
import org.yuzu.yuzu_emu.utils.AddDirectoryHelper; |
|
||||
|
|
||||
public final class MainPresenter { |
|
||||
public static final int REQUEST_ADD_DIRECTORY = 1; |
|
||||
public static final int REQUEST_INSTALL_KEYS = 2; |
|
||||
public static final int REQUEST_SELECT_GPU_DRIVER = 3; |
|
||||
private final MainView mView; |
|
||||
private String mDirToAdd; |
|
||||
private long mLastClickTime = 0; |
|
||||
|
|
||||
public MainPresenter(MainView view) { |
|
||||
mView = view; |
|
||||
} |
|
||||
|
|
||||
public void onCreate() { |
|
||||
String versionName = BuildConfig.VERSION_NAME; |
|
||||
mView.setVersionString(versionName); |
|
||||
refreshGameList(); |
|
||||
} |
|
||||
|
|
||||
public void launchFileListActivity(int request) { |
|
||||
if (mView != null) { |
|
||||
mView.launchFileListActivity(request); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
public boolean handleOptionSelection(int itemId) { |
|
||||
// Double-click prevention, using threshold of 500 ms |
|
||||
if (SystemClock.elapsedRealtime() - mLastClickTime < 500) { |
|
||||
return false; |
|
||||
} |
|
||||
mLastClickTime = SystemClock.elapsedRealtime(); |
|
||||
|
|
||||
switch (itemId) { |
|
||||
case R.id.menu_settings_core: |
|
||||
mView.launchSettingsActivity(SettingsFile.FILE_NAME_CONFIG); |
|
||||
return true; |
|
||||
|
|
||||
case R.id.button_add_directory: |
|
||||
launchFileListActivity(REQUEST_ADD_DIRECTORY); |
|
||||
return true; |
|
||||
|
|
||||
case R.id.button_install_keys: |
|
||||
launchFileListActivity(REQUEST_INSTALL_KEYS); |
|
||||
return true; |
|
||||
|
|
||||
case R.id.button_select_gpu_driver: |
|
||||
launchFileListActivity(REQUEST_SELECT_GPU_DRIVER); |
|
||||
return true; |
|
||||
} |
|
||||
|
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
public void addDirIfNeeded(AddDirectoryHelper helper) { |
|
||||
if (mDirToAdd != null) { |
|
||||
helper.addDirectory(mDirToAdd, mView::refresh); |
|
||||
|
|
||||
mDirToAdd = null; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
public void onDirectorySelected(String dir) { |
|
||||
mDirToAdd = dir; |
|
||||
} |
|
||||
|
|
||||
public void refreshGameList() { |
|
||||
GameDatabase databaseHelper = YuzuApplication.databaseHelper; |
|
||||
databaseHelper.scanLibrary(databaseHelper.getWritableDatabase()); |
|
||||
mView.refresh(); |
|
||||
} |
|
||||
} |
|
||||
@ -0,0 +1,66 @@ |
|||||
|
package org.yuzu.yuzu_emu.ui.main |
||||
|
|
||||
|
import org.yuzu.yuzu_emu.BuildConfig |
||||
|
import org.yuzu.yuzu_emu.R |
||||
|
import org.yuzu.yuzu_emu.YuzuApplication |
||||
|
import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile |
||||
|
import org.yuzu.yuzu_emu.utils.AddDirectoryHelper |
||||
|
|
||||
|
class MainPresenter(private val view: MainView) { |
||||
|
private var dirToAdd: String? = null |
||||
|
|
||||
|
fun onCreate() { |
||||
|
val versionName = BuildConfig.VERSION_NAME |
||||
|
view.setVersionString(versionName) |
||||
|
refreshGameList() |
||||
|
} |
||||
|
|
||||
|
private fun launchFileListActivity(request: Int) { |
||||
|
view.launchFileListActivity(request) |
||||
|
} |
||||
|
|
||||
|
fun handleOptionSelection(itemId: Int): Boolean { |
||||
|
when (itemId) { |
||||
|
R.id.menu_settings_core -> { |
||||
|
view.launchSettingsActivity(SettingsFile.FILE_NAME_CONFIG) |
||||
|
return true |
||||
|
} |
||||
|
R.id.button_add_directory -> { |
||||
|
launchFileListActivity(REQUEST_ADD_DIRECTORY) |
||||
|
return true |
||||
|
} |
||||
|
R.id.button_install_keys -> { |
||||
|
launchFileListActivity(REQUEST_INSTALL_KEYS) |
||||
|
return true |
||||
|
} |
||||
|
R.id.button_select_gpu_driver -> { |
||||
|
launchFileListActivity(REQUEST_SELECT_GPU_DRIVER) |
||||
|
return true |
||||
|
} |
||||
|
} |
||||
|
return false |
||||
|
} |
||||
|
|
||||
|
fun addDirIfNeeded(helper: AddDirectoryHelper) { |
||||
|
if (dirToAdd != null) { |
||||
|
helper.addDirectory(dirToAdd) { view.refresh() } |
||||
|
dirToAdd = null |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
fun onDirectorySelected(dir: String?) { |
||||
|
dirToAdd = dir |
||||
|
} |
||||
|
|
||||
|
private fun refreshGameList() { |
||||
|
val databaseHelper = YuzuApplication.databaseHelper |
||||
|
databaseHelper!!.scanLibrary(databaseHelper.writableDatabase) |
||||
|
view.refresh() |
||||
|
} |
||||
|
|
||||
|
companion object { |
||||
|
const val REQUEST_ADD_DIRECTORY = 1 |
||||
|
const val REQUEST_INSTALL_KEYS = 2 |
||||
|
const val REQUEST_SELECT_GPU_DRIVER = 3 |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue