summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Brabham <optedoblivion@cyngn.com>2016-01-11 14:47:10 -0500
committerMartin Brabham <optedoblivion@cyngn.com>2016-01-15 17:16:52 -0500
commit271651a56d842efad68459065cb6ce5ab80e7252 (patch)
tree4a368270e075750e7e2ee81efb2dddd3d946fb67 /src
parent5fd5e2330ce931b1e9959fa0386be893086e3332 (diff)
downloadandroid_packages_screensavers_PhotoTable-271651a56d842efad68459065cb6ce5ab80e7252.tar.gz
android_packages_screensavers_PhotoTable-271651a56d842efad68459065cb6ce5ab80e7252.tar.bz2
android_packages_screensavers_PhotoTable-271651a56d842efad68459065cb6ce5ab80e7252.zip
Bump SDK version to 23
Implement runtime permissions for storage group Change-Id: I4645ebf2301166362b473409c75c48adc8635800 Ticket-Id: CYNGNOS-1563
Diffstat (limited to 'src')
-rw-r--r--src/com/android/dreams/phototable/FlipperDreamSettings.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/com/android/dreams/phototable/FlipperDreamSettings.java b/src/com/android/dreams/phototable/FlipperDreamSettings.java
index cd24721..55fc801 100644
--- a/src/com/android/dreams/phototable/FlipperDreamSettings.java
+++ b/src/com/android/dreams/phototable/FlipperDreamSettings.java
@@ -17,6 +17,7 @@ package com.android.dreams.phototable;
import android.app.ListActivity;
import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
import android.database.DataSetObserver;
import android.os.AsyncTask;
import android.os.AsyncTask.Status;
@@ -25,6 +26,8 @@ import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
+import android.widget.Toast;
+import android.Manifest;
import java.util.LinkedList;
@@ -56,7 +59,44 @@ public class FlipperDreamSettings extends ListActivity {
init();
}
+ private static final int REQUEST_CODE_STORAGE_PERMS = 321;
+ private boolean hasPermissions() {
+ int res = checkCallingOrSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE);
+ return (res == PackageManager.PERMISSION_GRANTED);
+ }
+
+ private void requestNecessaryPermissions() {
+ String[] permissions = new String[] {
+ Manifest.permission.READ_EXTERNAL_STORAGE,
+ };
+ requestPermissions(permissions, REQUEST_CODE_STORAGE_PERMS);
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, String[] permissions,
+ int[] grandResults) {
+ boolean allowed = true;
+ switch (requestCode) {
+ case REQUEST_CODE_STORAGE_PERMS:
+ for (int res : grandResults) {
+ allowed = allowed && (res == PackageManager.PERMISSION_GRANTED);
+ }
+ break;
+ default:
+ allowed = false;
+ break;
+ }
+ if (!allowed) {
+ String text = getResources().getString(R.string.storage_permissions_denied);
+ Toast.makeText(this, text, Toast.LENGTH_LONG).show();
+ finish();
+ }
+ }
protected void init() {
+ if (!hasPermissions()) {
+ requestNecessaryPermissions();
+ return;
+ }
mPhotoSource = new PhotoSourcePlexor(this, mSettings);
setContentView(R.layout.settingslist);
if (mLoadingTask != null && mLoadingTask.getStatus() != Status.FINISHED) {