fix(android): file manipulation threw exception inside worker (#10076)

This commit is contained in:
Dimitris-Rafail Katsampas
2022-11-07 18:22:52 +02:00
committed by GitHub
parent 1a5faecba0
commit 25c862e148
4 changed files with 11 additions and 9 deletions

View File

@@ -43,7 +43,7 @@ public class FileHelper {
}
FileHelper(Uri uri) {
handler = new Handler(Looper.getMainLooper());
handler = new Handler(Looper.myLooper());
this.uri = uri;
}

View File

@@ -233,9 +233,8 @@ public class Utils {
return rotationAngle;
}
private static final Handler mainHandler = new Handler(Looper.getMainLooper());
public static void loadImageAsync(final Context context, final String src, final String options, final int maxWidth, final int maxHeight, final AsyncImageCallback callback) {
final Handler mHandler = new Handler(Looper.myLooper());
executors.execute(new Runnable() {
@Override
public void run() {
@@ -251,7 +250,7 @@ public class Utils {
try {
pfd = resolver.openFileDescriptor(uri, "r");
} catch (final FileNotFoundException e) {
mainHandler.post(new Runnable() {
mHandler.post(new Runnable() {
@Override
public void run() {
callback.onError(e);
@@ -324,7 +323,7 @@ public class Utils {
final String finalError = error;
final Bitmap finalBitmap = bitmap;
mainHandler.post(new Runnable() {
mHandler.post(new Runnable() {
@Override
public void run() {
if (finalError != null) {
@@ -335,7 +334,7 @@ public class Utils {
}
});
} catch (final Exception ex) {
mainHandler.post(new Runnable() {
mHandler.post(new Runnable() {
@Override
public void run() {
callback.onError(ex);
@@ -358,6 +357,7 @@ public class Utils {
public static void saveToFileAsync(final Bitmap bitmap, final String path, final String format, final int quality, final AsyncImageCallback callback) {
final Handler mHandler = new Handler(Looper.myLooper());
executors.execute(new Runnable() {
@Override
public void run() {
@@ -374,7 +374,7 @@ public class Utils {
final Exception finalException = exception;
final boolean finalIsSuccess = isSuccess;
mainHandler.post(new Runnable() {
mHandler.post(new Runnable() {
@Override
public void run() {
if (finalException != null) {
@@ -389,6 +389,7 @@ public class Utils {
}
public static void toBase64StringAsync(final Bitmap bitmap, final String format, final int quality, final AsyncImageCallback callback) {
final Handler mHandler = new Handler(Looper.myLooper());
executors.execute(new Runnable() {
@Override
public void run() {
@@ -411,7 +412,7 @@ public class Utils {
final Exception finalException = exception;
final String finalResult = result;
mainHandler.post(new Runnable() {
mHandler.post(new Runnable() {
@Override
public void run() {
if (finalException != null) {
@@ -447,6 +448,7 @@ public class Utils {
}
public static void resizeAsync(final Bitmap bitmap, final float maxSize, final String options, final AsyncImageCallback callback) {
final Handler mHandler = new Handler(Looper.myLooper());
executors.execute(new Runnable() {
@Override
public void run() {
@@ -471,7 +473,7 @@ public class Utils {
final Exception finalException = exception;
final Bitmap finalResult = result;
mainHandler.post(new Runnable() {
mHandler.post(new Runnable() {
@Override
public void run() {
if (finalException != null) {