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

Binary file not shown.

View File

Binary file not shown.

View File

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

View File

@@ -233,9 +233,8 @@ public class Utils {
return rotationAngle; 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) { 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() { executors.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
@@ -251,7 +250,7 @@ public class Utils {
try { try {
pfd = resolver.openFileDescriptor(uri, "r"); pfd = resolver.openFileDescriptor(uri, "r");
} catch (final FileNotFoundException e) { } catch (final FileNotFoundException e) {
mainHandler.post(new Runnable() { mHandler.post(new Runnable() {
@Override @Override
public void run() { public void run() {
callback.onError(e); callback.onError(e);
@@ -324,7 +323,7 @@ public class Utils {
final String finalError = error; final String finalError = error;
final Bitmap finalBitmap = bitmap; final Bitmap finalBitmap = bitmap;
mainHandler.post(new Runnable() { mHandler.post(new Runnable() {
@Override @Override
public void run() { public void run() {
if (finalError != null) { if (finalError != null) {
@@ -335,7 +334,7 @@ public class Utils {
} }
}); });
} catch (final Exception ex) { } catch (final Exception ex) {
mainHandler.post(new Runnable() { mHandler.post(new Runnable() {
@Override @Override
public void run() { public void run() {
callback.onError(ex); 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) { 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() { executors.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
@@ -374,7 +374,7 @@ public class Utils {
final Exception finalException = exception; final Exception finalException = exception;
final boolean finalIsSuccess = isSuccess; final boolean finalIsSuccess = isSuccess;
mainHandler.post(new Runnable() { mHandler.post(new Runnable() {
@Override @Override
public void run() { public void run() {
if (finalException != null) { 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) { 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() { executors.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
@@ -411,7 +412,7 @@ public class Utils {
final Exception finalException = exception; final Exception finalException = exception;
final String finalResult = result; final String finalResult = result;
mainHandler.post(new Runnable() { mHandler.post(new Runnable() {
@Override @Override
public void run() { public void run() {
if (finalException != null) { 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) { 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() { executors.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
@@ -471,7 +473,7 @@ public class Utils {
final Exception finalException = exception; final Exception finalException = exception;
final Bitmap finalResult = result; final Bitmap finalResult = result;
mainHandler.post(new Runnable() { mHandler.post(new Runnable() {
@Override @Override
public void run() { public void run() {
if (finalException != null) { if (finalException != null) {