From 83e6182252ab79075ee66b793ca8764514d411ea Mon Sep 17 00:00:00 2001 From: tehcneko <7764726+tehcneko@users.noreply.github.com> Date: Fri, 12 Feb 2021 15:56:08 +0800 Subject: [PATCH] [app] Fix toast on worker thread (#120) --- app/src/main/java/io/github/lsposed/manager/App.java | 7 +++++++ .../java/io/github/lsposed/manager/repo/RepoLoader.java | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/github/lsposed/manager/App.java b/app/src/main/java/io/github/lsposed/manager/App.java index 10e87a6b..dd5e7214 100644 --- a/app/src/main/java/io/github/lsposed/manager/App.java +++ b/app/src/main/java/io/github/lsposed/manager/App.java @@ -4,6 +4,8 @@ import android.annotation.SuppressLint; import android.app.Application; import android.content.Intent; import android.content.SharedPreferences; +import android.os.Handler; +import android.os.Looper; import androidx.annotation.NonNull; import androidx.preference.PreferenceManager; @@ -24,6 +26,7 @@ public class App extends Application { private static OkHttpClient okHttpClient; private static Cache okHttpCache; private SharedPreferences pref; + private final Handler handler = new Handler(Looper.getMainLooper()); public static App getInstance() { return instance; @@ -87,4 +90,8 @@ public class App extends Application { } return okHttpCache; } + + public void runOnUiThread(Runnable runnable) { + handler.post(runnable); + } } diff --git a/app/src/main/java/io/github/lsposed/manager/repo/RepoLoader.java b/app/src/main/java/io/github/lsposed/manager/repo/RepoLoader.java index 4e69e104..10ea9ddc 100644 --- a/app/src/main/java/io/github/lsposed/manager/repo/RepoLoader.java +++ b/app/src/main/java/io/github/lsposed/manager/repo/RepoLoader.java @@ -78,7 +78,7 @@ public class RepoLoader { .build()).enqueue(new Callback() { @Override public void onFailure(@NonNull Call call, @NonNull IOException e) { - Toast.makeText(App.getInstance(), e.getMessage(), Toast.LENGTH_LONG).show(); + App.getInstance().runOnUiThread(() -> Toast.makeText(App.getInstance(), e.getMessage(), Toast.LENGTH_LONG).show()); synchronized (this) { isLoading = false; }