aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/cyanogenmod/wallpapers/photophase/RequestPermissionsActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/cyanogenmod/wallpapers/photophase/RequestPermissionsActivity.java')
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/RequestPermissionsActivity.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/org/cyanogenmod/wallpapers/photophase/RequestPermissionsActivity.java b/src/org/cyanogenmod/wallpapers/photophase/RequestPermissionsActivity.java
new file mode 100644
index 0000000..5999d10
--- /dev/null
+++ b/src/org/cyanogenmod/wallpapers/photophase/RequestPermissionsActivity.java
@@ -0,0 +1,55 @@
+package org.cyanogenmod.wallpapers.photophase;
+
+import android.Manifest;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.app.Activity;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.Bundle;
+import android.widget.Toast;
+
+public class RequestPermissionsActivity extends Activity {
+
+ public static final int REQUEST_STORAGE_PERMISSION = 1;
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ if (!hasRequestedPermissions(this)) {
+ requestPermissions(new String[] {Manifest.permission.READ_EXTERNAL_STORAGE},
+ REQUEST_STORAGE_PERMISSION);
+ } else {
+ setResult(Activity.RESULT_OK);
+ finish();
+ }
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
+ @NonNull int[] grantResults) {
+ switch (requestCode) {
+ case REQUEST_STORAGE_PERMISSION: {
+ // If request is cancelled, the result arrays are empty.
+ if (grantResults.length > 0
+ && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ setResult(Activity.RESULT_OK);
+ } else {
+ Toast.makeText(this, R.string.runtime_permission_warning, Toast.LENGTH_SHORT)
+ .show();
+ setResult(Activity.RESULT_CANCELED);
+ }
+ finish();
+ return;
+ }
+ }
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+ }
+
+ public static boolean hasRequestedPermissions(Context context) {
+ return context.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) ==
+ PackageManager.PERMISSION_GRANTED;
+ }
+
+}