fixed android looper to show dialog for SD card permission

This commit is contained in:
Thibault Deckers 2020-04-25 09:36:19 +09:00
parent a08c5a3369
commit c1d6b95829
2 changed files with 8 additions and 4 deletions

View file

@ -12,6 +12,8 @@ import android.media.ExifInterface;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.os.ParcelFileDescriptor;
import android.provider.MediaStore;
import android.util.Log;
@ -76,7 +78,7 @@ public abstract class ImageProvider {
Uri sdCardTreeUri = PermissionManager.getSdCardTreeUri(activity);
if (sdCardTreeUri == null) {
Runnable runnable = () -> rename(activity, oldPath, oldUri, mimeType, newFilename, callback);
PermissionManager.showSdCardAccessDialog(activity, runnable);
new Handler(Looper.getMainLooper()).post(() -> PermissionManager.showSdCardAccessDialog(activity, runnable));
return;
}
renamed = StorageUtils.renameOnSdCard(activity, sdCardTreeUri, Env.getStorageVolumes(activity), oldPath, newFilename);
@ -162,7 +164,7 @@ public abstract class ImageProvider {
if (onSdCard) {
if (PermissionManager.getSdCardTreeUri(activity) == null) {
Runnable runnable = () -> rotate(activity, path, uri, mimeType, clockwise, callback);
PermissionManager.showSdCardAccessDialog(activity, runnable);
new Handler(Looper.getMainLooper()).post(() -> PermissionManager.showSdCardAccessDialog(activity, runnable));
return;
}
// copy original file to a temporary file for editing
@ -241,7 +243,7 @@ public abstract class ImageProvider {
boolean onSdCard = Env.isOnSdCard(activity, path);
if (onSdCard && PermissionManager.getSdCardTreeUri(activity) == null) {
Runnable runnable = () -> rotate(activity, path, uri, mimeType, clockwise, callback);
PermissionManager.showSdCardAccessDialog(activity, runnable);
new Handler(Looper.getMainLooper()).post(() -> PermissionManager.showSdCardAccessDialog(activity, runnable));
return;
}

View file

@ -7,6 +7,8 @@ import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.provider.MediaStore;
import android.util.Log;
@ -178,7 +180,7 @@ public class MediaStoreImageProvider extends ImageProvider {
Uri sdCardTreeUri = PermissionManager.getSdCardTreeUri(activity);
if (sdCardTreeUri == null) {
Runnable runnable = () -> delete(activity, path, uri, callback);
PermissionManager.showSdCardAccessDialog(activity, runnable);
new Handler(Looper.getMainLooper()).post(() -> PermissionManager.showSdCardAccessDialog(activity, runnable));
return;
}