From 6ca90cc2c4957c44088fa6da5bfb1a8cf5e23646 Mon Sep 17 00:00:00 2001 From: zhuw Date: Thu, 11 Apr 2019 16:46:14 +0800 Subject: fix cannot delete media files in SnapdragonGallery because of Android Q upgrade, Gallery need to grant "Gallery" role to edit media files Change-Id: I5f866d78ca23c8761acf2f9581897adf7fbe0d96 --- .../android/gallery3d/app/AbstractGalleryActivity.java | 1 + .../gallery3d/app/AbstractPermissionActivity.java | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) mode change 100644 => 100755 src/com/android/gallery3d/app/AbstractPermissionActivity.java diff --git a/src/com/android/gallery3d/app/AbstractGalleryActivity.java b/src/com/android/gallery3d/app/AbstractGalleryActivity.java index 824f6b9b1..7b3efb99c 100755 --- a/src/com/android/gallery3d/app/AbstractGalleryActivity.java +++ b/src/com/android/gallery3d/app/AbstractGalleryActivity.java @@ -256,6 +256,7 @@ public abstract class AbstractGalleryActivity extends AbstractPermissionActivity @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); mGLRootView.lockRenderThread(); try { getStateManager().notifyActivityResult( diff --git a/src/com/android/gallery3d/app/AbstractPermissionActivity.java b/src/com/android/gallery3d/app/AbstractPermissionActivity.java old mode 100644 new mode 100755 index f193e7f7a..8b32dbf54 --- a/src/com/android/gallery3d/app/AbstractPermissionActivity.java +++ b/src/com/android/gallery3d/app/AbstractPermissionActivity.java @@ -30,10 +30,13 @@ package com.android.gallery3d.app; import android.Manifest; import android.app.Activity; +import android.app.role.RoleManager; +import android.content.Intent; import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; import android.support.v4.app.FragmentActivity; +import android.widget.Toast; import java.util.ArrayList; @@ -41,6 +44,7 @@ public abstract class AbstractPermissionActivity extends FragmentActivity { public static final int PERMISSION_REQUEST_STORAGE = 1; private boolean permissionGranted = false; + private final int REQUEST_GALLERY_ROLE = 1001; protected abstract void onGetPermissionsSuccess(); protected abstract void onGetPermissionsFailure(); @@ -49,6 +53,20 @@ public abstract class AbstractPermissionActivity extends FragmentActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestStoragePermission(); + RoleManager roleManager = getSystemService(RoleManager.class); + if (!roleManager.isRoleHeld(RoleManager.ROLE_GALLERY)) { + startActivityForResult(roleManager.createRequestRoleIntent(RoleManager.ROLE_GALLERY), + REQUEST_GALLERY_ROLE); + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == REQUEST_GALLERY_ROLE && Activity.RESULT_CANCELED == resultCode) { + Toast.makeText(getApplicationContext(), + "Granting failed. SnapdragonGallery can't edit media files.", + Toast.LENGTH_SHORT).show(); + } } private void requestStoragePermission() { -- cgit v1.2.3