diff options
author | Martin Brabham <optedoblivion@cyngn.com> | 2016-01-11 14:47:10 -0500 |
---|---|---|
committer | Martin Brabham <optedoblivion@cyngn.com> | 2016-01-15 17:16:52 -0500 |
commit | 271651a56d842efad68459065cb6ce5ab80e7252 (patch) | |
tree | 4a368270e075750e7e2ee81efb2dddd3d946fb67 /src/com | |
parent | 5fd5e2330ce931b1e9959fa0386be893086e3332 (diff) | |
download | android_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/com')
-rw-r--r-- | src/com/android/dreams/phototable/FlipperDreamSettings.java | 40 |
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) { |