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 | |
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
-rw-r--r-- | AndroidManifest.xml | 3 | ||||
-rw-r--r-- | res/values/strings.xml | 2 | ||||
-rw-r--r-- | src/com/android/dreams/phototable/FlipperDreamSettings.java | 40 |
3 files changed, 44 insertions, 1 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index c401ef7..0c8891e 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -6,7 +6,6 @@ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="com.google.android.gallery3d.permission.PICASA_STORE" /> - <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="17"/> <application android:label="@string/app_name" @@ -15,6 +14,7 @@ android:largeHeap="true"> <service android:name="PhotoTableDream" android:exported="true" + android:permission="android.permission.BIND_DREAM_SERVICE" android:icon="@mipmap/ic_launcher_phototable" android:label="@string/table_screensaver_name"> <meta-data @@ -36,6 +36,7 @@ </activity> <service android:name="FlipperDream" android:exported="true" + android:permission="android.permission.BIND_DREAM_SERVICE" android:icon="@mipmap/ic_launcher_photoframe" android:label="@string/flipper_screensaver_name"> <meta-data diff --git a/res/values/strings.xml b/res/values/strings.xml index 392c6a9..cad67fe 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -46,4 +46,6 @@ <!-- Text shown instead of a list of albums when there are no albums with photos. [CHAR LIMIT=50] --> <string name="no_photos">No photos on the device.</string> + + <string name="storage_permissions_denied">Storage permissions denied!</string> </resources> 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) { |