diff --git a/android-project/app/src/main/java/org/diasurgical/devilutionx/DataActivity.java b/android-project/app/src/main/java/org/diasurgical/devilutionx/DataActivity.java index c1a1fec34..91f13c0a5 100644 --- a/android-project/app/src/main/java/org/diasurgical/devilutionx/DataActivity.java +++ b/android-project/app/src/main/java/org/diasurgical/devilutionx/DataActivity.java @@ -130,6 +130,11 @@ public class DataActivity extends Activity { (!fileManager.hasFile("spawn.mpq") || isDownloadingSpawn); } + public void importData(View view) { + Intent intent = new Intent(this, ImportActivity.class); + startActivity(intent); + } + /** * Start downloading the shareware */ diff --git a/android-project/app/src/main/java/org/diasurgical/devilutionx/ImportActivity.java b/android-project/app/src/main/java/org/diasurgical/devilutionx/ImportActivity.java index ba9c8b75c..fcfe6140a 100644 --- a/android-project/app/src/main/java/org/diasurgical/devilutionx/ImportActivity.java +++ b/android-project/app/src/main/java/org/diasurgical/devilutionx/ImportActivity.java @@ -24,6 +24,7 @@ import java.util.Objects; public class ImportActivity extends Activity { private static final int IMPORT_REQUEST_CODE = 0xD1AB70; + private boolean userConfirmed = false; @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override @@ -36,12 +37,16 @@ public class ImportActivity extends Activity { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage(getString(R.string.import_data_info, externalFilesDir)); builder.setPositiveButton(R.string.ok_button, (dialog, which) -> { + this.userConfirmed = true; Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); intent.setType("*/*"); startActivityForResult(intent, IMPORT_REQUEST_CODE); }); + builder.setOnDismissListener(dialog -> { + if (!this.userConfirmed && !isFinishing()) finish(); + }); AlertDialog dialog = builder.create(); dialog.show(); @@ -76,6 +81,8 @@ public class ImportActivity extends Activity { AlertDialog dialog = builder.create(); dialog.show(); + } else { + super.onBackPressed(); } } diff --git a/android-project/app/src/main/res/layout/activity_data.xml b/android-project/app/src/main/res/layout/activity_data.xml index 0c6c3828b..979dc3db3 100644 --- a/android-project/app/src/main/res/layout/activity_data.xml +++ b/android-project/app/src/main/res/layout/activity_data.xml @@ -54,16 +54,37 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> -