summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java/org
diff options
context:
space:
mode:
authorRyan Meredith <rwm@udel.edu>2020-09-13 10:08:04 -0400
committerRyan Meredith <rwm@udel.edu>2020-09-13 10:08:04 -0400
commitd643723d3add5b319051afd44bf78ea4c2cee137 (patch)
treea867c2c08e8c3da91d0490f01527678209704166 /Source/Android/app/src/main/java/org
parentb1fecbb71ce256d7c70963414a30501570c2e871 (diff)
Android: Improve WRITE_EXTERNAL_STORAGE denial
Diffstat (limited to 'Source/Android/app/src/main/java/org')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java8
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java9
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AfterDirectoryInitializationRunner.java4
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PermissionsHandler.java28
4 files changed, 11 insertions, 38 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java
index d96efd27df..e2b12ed784 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java
@@ -207,6 +207,8 @@ public final class MainActivity extends AppCompatActivity implements MainView
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults)
{
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+
if (requestCode == PermissionsHandler.REQUEST_CODE_WRITE_PERMISSION)
{
if (grantResults[0] == PackageManager.PERMISSION_GRANTED)
@@ -217,13 +219,9 @@ public final class MainActivity extends AppCompatActivity implements MainView
}
else
{
- Toast.makeText(this, R.string.write_permission_needed, Toast.LENGTH_SHORT).show();
+ Toast.makeText(this, R.string.write_permission_needed, Toast.LENGTH_LONG).show();
}
}
- else
- {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- }
}
/**
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
index cf75b07c40..f3d1ca36f7 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
@@ -217,6 +217,8 @@ public final class TvMainActivity extends FragmentActivity implements MainView
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults)
{
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+
if (requestCode == PermissionsHandler.REQUEST_CODE_WRITE_PERMISSION)
{
if (grantResults[0] == PackageManager.PERMISSION_GRANTED)
@@ -226,14 +228,9 @@ public final class TvMainActivity extends FragmentActivity implements MainView
}
else
{
- Toast.makeText(this, R.string.write_permission_needed, Toast.LENGTH_SHORT)
- .show();
+ Toast.makeText(this, R.string.write_permission_needed, Toast.LENGTH_LONG).show();
}
}
- else
- {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- }
}
private void buildRowsAdapter()
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AfterDirectoryInitializationRunner.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AfterDirectoryInitializationRunner.java
index 4f8a5fc49c..2e7cae0a48 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AfterDirectoryInitializationRunner.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AfterDirectoryInitializationRunner.java
@@ -114,11 +114,11 @@ public class AfterDirectoryInitializationRunner
switch (state)
{
case EXTERNAL_STORAGE_PERMISSION_NEEDED:
- Toast.makeText(context, R.string.write_permission_needed, Toast.LENGTH_SHORT).show();
+ Toast.makeText(context, R.string.write_permission_needed, Toast.LENGTH_LONG).show();
return true;
case CANT_FIND_EXTERNAL_STORAGE:
- Toast.makeText(context, R.string.external_storage_not_mounted, Toast.LENGTH_SHORT).show();
+ Toast.makeText(context, R.string.external_storage_not_mounted, Toast.LENGTH_LONG).show();
return true;
default:
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PermissionsHandler.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PermissionsHandler.java
index d09469cb39..d8a80d59da 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PermissionsHandler.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PermissionsHandler.java
@@ -2,17 +2,12 @@ package org.dolphinemu.dolphinemu.utils;
import android.annotation.TargetApi;
import android.content.Context;
-import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.os.Build;
-import android.widget.Toast;
-import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentActivity;
-import org.dolphinemu.dolphinemu.R;
-
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
public class PermissionsHandler
@@ -31,14 +26,9 @@ public class PermissionsHandler
if (hasWritePermission != PackageManager.PERMISSION_GRANTED)
{
- if (activity.shouldShowRequestPermissionRationale(WRITE_EXTERNAL_STORAGE))
- {
- showMessageOKCancel(activity, activity.getString(R.string.write_permission_needed),
- (dialog, which) -> activity.requestPermissions(new String[]{WRITE_EXTERNAL_STORAGE},
- REQUEST_CODE_WRITE_PERMISSION));
- return false;
- }
-
+ // We only care about displaying the "Don't ask again" check and can ignore the result.
+ // Previous toasts already explained the rationale.
+ activity.shouldShowRequestPermissionRationale(WRITE_EXTERNAL_STORAGE);
activity.requestPermissions(new String[]{WRITE_EXTERNAL_STORAGE},
REQUEST_CODE_WRITE_PERMISSION);
return false;
@@ -57,16 +47,4 @@ public class PermissionsHandler
return true;
}
-
- private static void showMessageOKCancel(final FragmentActivity activity, String message,
- DialogInterface.OnClickListener okListener)
- {
- new AlertDialog.Builder(activity, R.style.DolphinDialogBase)
- .setMessage(message)
- .setPositiveButton(android.R.string.ok, okListener)
- .setNegativeButton(android.R.string.cancel, (dialogInterface, i) ->
- Toast.makeText(activity, R.string.write_permission_needed, Toast.LENGTH_SHORT)
- .show())
- .show();
- }
}