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