From fdff7f5aadd952fa98cd1ac8c2c8a855a173b665 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=97=E5=AE=AB=E9=9B=AA=E7=8F=8A?= Date: Mon, 5 Dec 2022 23:49:44 +0800 Subject: [PATCH] MIUI does not send callback (#2279) --- app/src/main/java/org/lsposed/manager/App.java | 8 +++++++- .../main/java/org/lsposed/manager/util/ShortcutUtil.java | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/lsposed/manager/App.java b/app/src/main/java/org/lsposed/manager/App.java index a009b632..3e5ce8b0 100644 --- a/app/src/main/java/org/lsposed/manager/App.java +++ b/app/src/main/java/org/lsposed/manager/App.java @@ -29,6 +29,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.os.Build; +import android.os.Handler; import android.os.Looper; import android.os.Process; import android.system.Os; @@ -126,7 +127,8 @@ public class App extends Application { private static OkHttpClient okHttpClient; private static Cache okHttpCache; private SharedPreferences pref; - private final ExecutorService executorService = Executors.newCachedThreadPool(); + private static final ExecutorService executorService = Executors.newCachedThreadPool(); + private static final Handler MainHandler = new Handler(Looper.getMainLooper()); public static App getInstance() { return instance; @@ -144,6 +146,10 @@ public class App extends Application { return !Process.isApplicationUid(Process.myUid()); } + public static Handler getMainHandler() { + return MainHandler; + } + @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); diff --git a/app/src/main/java/org/lsposed/manager/util/ShortcutUtil.java b/app/src/main/java/org/lsposed/manager/util/ShortcutUtil.java index 8398bb5f..6b66e4c1 100644 --- a/app/src/main/java/org/lsposed/manager/util/ShortcutUtil.java +++ b/app/src/main/java/org/lsposed/manager/util/ShortcutUtil.java @@ -97,6 +97,12 @@ public class ShortcutUtil { context.registerReceiver(receiver, filter, permission, null/* main thread */, Context.RECEIVER_NOT_EXPORTED); + App.getMainHandler().postDelayed(() -> { + if (isLaunchShortcutPinned()) { + task.run(); + } + }, 1000); + var intent = new Intent(uuid); int flags = PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE; return PendingIntent.getBroadcast(context, 0, intent, flags).getIntentSender();