|
@@ -6,18 +6,22 @@ import android.os.Bundle;
|
|
|
import android.view.Menu;
|
|
import android.view.Menu;
|
|
|
import android.view.MenuInflater;
|
|
import android.view.MenuInflater;
|
|
|
import android.view.MenuItem;
|
|
import android.view.MenuItem;
|
|
|
|
|
+import android.widget.Toast;
|
|
|
|
|
|
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.NonNull;
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
import androidx.appcompat.widget.Toolbar;
|
|
import androidx.appcompat.widget.Toolbar;
|
|
|
|
|
|
|
|
|
|
+import org.yuzu.yuzu_emu.NativeLibrary;
|
|
|
import org.yuzu.yuzu_emu.R;
|
|
import org.yuzu.yuzu_emu.R;
|
|
|
import org.yuzu.yuzu_emu.activities.EmulationActivity;
|
|
import org.yuzu.yuzu_emu.activities.EmulationActivity;
|
|
|
import org.yuzu.yuzu_emu.features.settings.ui.SettingsActivity;
|
|
import org.yuzu.yuzu_emu.features.settings.ui.SettingsActivity;
|
|
|
import org.yuzu.yuzu_emu.model.GameProvider;
|
|
import org.yuzu.yuzu_emu.model.GameProvider;
|
|
|
import org.yuzu.yuzu_emu.ui.platform.PlatformGamesFragment;
|
|
import org.yuzu.yuzu_emu.ui.platform.PlatformGamesFragment;
|
|
|
import org.yuzu.yuzu_emu.utils.AddDirectoryHelper;
|
|
import org.yuzu.yuzu_emu.utils.AddDirectoryHelper;
|
|
|
|
|
+import org.yuzu.yuzu_emu.utils.DirectoryInitialization;
|
|
|
import org.yuzu.yuzu_emu.utils.FileBrowserHelper;
|
|
import org.yuzu.yuzu_emu.utils.FileBrowserHelper;
|
|
|
|
|
+import org.yuzu.yuzu_emu.utils.FileUtil;
|
|
|
import org.yuzu.yuzu_emu.utils.PicassoUtils;
|
|
import org.yuzu.yuzu_emu.utils.PicassoUtils;
|
|
|
import org.yuzu.yuzu_emu.utils.StartupHandler;
|
|
import org.yuzu.yuzu_emu.utils.StartupHandler;
|
|
|
import org.yuzu.yuzu_emu.utils.ThemeUtil;
|
|
import org.yuzu.yuzu_emu.utils.ThemeUtil;
|
|
@@ -116,8 +120,13 @@ public final class MainActivity extends AppCompatActivity implements MainView {
|
|
|
switch (request) {
|
|
switch (request) {
|
|
|
case MainPresenter.REQUEST_ADD_DIRECTORY:
|
|
case MainPresenter.REQUEST_ADD_DIRECTORY:
|
|
|
FileBrowserHelper.openDirectoryPicker(this,
|
|
FileBrowserHelper.openDirectoryPicker(this,
|
|
|
- MainPresenter.REQUEST_ADD_DIRECTORY,
|
|
|
|
|
- R.string.select_game_folder);
|
|
|
|
|
|
|
+ MainPresenter.REQUEST_ADD_DIRECTORY,
|
|
|
|
|
+ R.string.select_game_folder);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case MainPresenter.REQUEST_INSTALL_KEYS:
|
|
|
|
|
+ FileBrowserHelper.openFilePicker(this,
|
|
|
|
|
+ MainPresenter.REQUEST_INSTALL_KEYS,
|
|
|
|
|
+ R.string.install_keys);
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -132,7 +141,6 @@ public final class MainActivity extends AppCompatActivity implements MainView {
|
|
|
super.onActivityResult(requestCode, resultCode, result);
|
|
super.onActivityResult(requestCode, resultCode, result);
|
|
|
switch (requestCode) {
|
|
switch (requestCode) {
|
|
|
case MainPresenter.REQUEST_ADD_DIRECTORY:
|
|
case MainPresenter.REQUEST_ADD_DIRECTORY:
|
|
|
- // If the user picked a file, as opposed to just backing out.
|
|
|
|
|
if (resultCode == MainActivity.RESULT_OK) {
|
|
if (resultCode == MainActivity.RESULT_OK) {
|
|
|
int takeFlags = (Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
|
int takeFlags = (Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
|
|
getContentResolver().takePersistableUriPermission(Uri.parse(result.getDataString()), takeFlags);
|
|
getContentResolver().takePersistableUriPermission(Uri.parse(result.getDataString()), takeFlags);
|
|
@@ -144,6 +152,22 @@ public final class MainActivity extends AppCompatActivity implements MainView {
|
|
|
mPresenter.onDirectorySelected(FileBrowserHelper.getSelectedDirectory(result));
|
|
mPresenter.onDirectorySelected(FileBrowserHelper.getSelectedDirectory(result));
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
|
|
+
|
|
|
|
|
+ case MainPresenter.REQUEST_INSTALL_KEYS:
|
|
|
|
|
+ if (resultCode == MainActivity.RESULT_OK) {
|
|
|
|
|
+ int takeFlags = (Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
|
|
|
|
+ getContentResolver().takePersistableUriPermission(Uri.parse(result.getDataString()), takeFlags);
|
|
|
|
|
+ String dstPath = DirectoryInitialization.getUserDirectory() + "/keys/";
|
|
|
|
|
+ if (FileUtil.copyUriToInternalStorage(this, result.getData(), dstPath, "prod.keys")) {
|
|
|
|
|
+ if (NativeLibrary.ReloadKeys()) {
|
|
|
|
|
+ Toast.makeText(this, R.string.install_keys_success, Toast.LENGTH_SHORT).show();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ Toast.makeText(this, R.string.install_keys_failure, Toast.LENGTH_SHORT).show();
|
|
|
|
|
+ launchFileListActivity(MainPresenter.REQUEST_INSTALL_KEYS);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|