aboutsummaryrefslogtreecommitdiff
path: root/apps/TestingCamera/src/com/android/testingcamera/SnapshotDialogFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'apps/TestingCamera/src/com/android/testingcamera/SnapshotDialogFragment.java')
-rw-r--r--apps/TestingCamera/src/com/android/testingcamera/SnapshotDialogFragment.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/apps/TestingCamera/src/com/android/testingcamera/SnapshotDialogFragment.java b/apps/TestingCamera/src/com/android/testingcamera/SnapshotDialogFragment.java
index 6995320..3b1f19d 100644
--- a/apps/TestingCamera/src/com/android/testingcamera/SnapshotDialogFragment.java
+++ b/apps/TestingCamera/src/com/android/testingcamera/SnapshotDialogFragment.java
@@ -4,6 +4,8 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
+import android.Manifest;
+import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.ExifInterface;
@@ -118,6 +120,17 @@ class SnapshotDialogFragment extends DialogFragment
mJpegImage = image;
}
+ public void onRequestPermissionsResult(int requestCode, String[] permissions,
+ int[] grantResults) {
+ TestingCamera parent = (TestingCamera) getActivity();
+ if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ parent.log("Storage write permission granted");
+ saveFile();
+ } else {
+ parent.log("Denied storage write permission; cannot save");
+ }
+ }
+
private String getAttrib(ExifInterface exif, String tag) {
String attribute = exif.getAttribute(tag);
return (attribute == null) ? "???" : attribute;
@@ -128,6 +141,14 @@ class SnapshotDialogFragment extends DialogFragment
TestingCamera parent = (TestingCamera) getActivity();
parent.log("Saving image");
+ if (parent.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
+ != PackageManager.PERMISSION_GRANTED) {
+ parent.log("Requesting storage write permission");
+ parent.requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE},
+ parent.PERMISSIONS_REQUEST_SNAPSHOT);
+ return;
+ }
+
File targetFile = parent.getOutputMediaFile(TestingCamera.MEDIA_TYPE_IMAGE);
if (targetFile == null) {
parent.logE("Unable to create file name");