From f475e15aadeb83008b136113115bb332b5e0cece Mon Sep 17 00:00:00 2001 From: Braden Farmer Date: Wed, 11 Sep 2024 22:15:40 -0600 Subject: [PATCH] Disable invisible activity hacks on Android 12L+ --- .../compat-28/java/com/farmerbb/taskbar/util/CompatUtils.java | 4 ++++ .../compat-29/java/com/farmerbb/taskbar/util/CompatUtils.java | 4 ++++ .../compat-30/java/com/farmerbb/taskbar/util/CompatUtils.java | 4 ++++ .../compat-31/java/com/farmerbb/taskbar/util/CompatUtils.java | 4 ++++ .../compat-34/java/com/farmerbb/taskbar/util/CompatUtils.java | 4 ++++ .../main/java/com/farmerbb/taskbar/activity/MainActivity.java | 3 ++- app/src/main/java/com/farmerbb/taskbar/util/U.java | 2 +- 7 files changed, 23 insertions(+), 2 deletions(-) diff --git a/app/src/compat-28/java/com/farmerbb/taskbar/util/CompatUtils.java b/app/src/compat-28/java/com/farmerbb/taskbar/util/CompatUtils.java index 0c7ba784..307c48c4 100644 --- a/app/src/compat-28/java/com/farmerbb/taskbar/util/CompatUtils.java +++ b/app/src/compat-28/java/com/farmerbb/taskbar/util/CompatUtils.java @@ -26,4 +26,8 @@ public static boolean isImeVisible(View view) { } public static void grantNotificationPermissionIfNeeded(Activity activity) {} + + public static boolean needsInvisibleActivityHacks() { + return true; + } } \ No newline at end of file diff --git a/app/src/compat-29/java/com/farmerbb/taskbar/util/CompatUtils.java b/app/src/compat-29/java/com/farmerbb/taskbar/util/CompatUtils.java index 0c7ba784..307c48c4 100644 --- a/app/src/compat-29/java/com/farmerbb/taskbar/util/CompatUtils.java +++ b/app/src/compat-29/java/com/farmerbb/taskbar/util/CompatUtils.java @@ -26,4 +26,8 @@ public static boolean isImeVisible(View view) { } public static void grantNotificationPermissionIfNeeded(Activity activity) {} + + public static boolean needsInvisibleActivityHacks() { + return true; + } } \ No newline at end of file diff --git a/app/src/compat-30/java/com/farmerbb/taskbar/util/CompatUtils.java b/app/src/compat-30/java/com/farmerbb/taskbar/util/CompatUtils.java index 31330f4b..bf58f014 100644 --- a/app/src/compat-30/java/com/farmerbb/taskbar/util/CompatUtils.java +++ b/app/src/compat-30/java/com/farmerbb/taskbar/util/CompatUtils.java @@ -33,4 +33,8 @@ public static boolean isImeVisible(View view) { } public static void grantNotificationPermissionIfNeeded(Activity activity) {} + + public static boolean needsInvisibleActivityHacks() { + return true; + } } \ No newline at end of file diff --git a/app/src/compat-31/java/com/farmerbb/taskbar/util/CompatUtils.java b/app/src/compat-31/java/com/farmerbb/taskbar/util/CompatUtils.java index 31330f4b..bf58f014 100644 --- a/app/src/compat-31/java/com/farmerbb/taskbar/util/CompatUtils.java +++ b/app/src/compat-31/java/com/farmerbb/taskbar/util/CompatUtils.java @@ -33,4 +33,8 @@ public static boolean isImeVisible(View view) { } public static void grantNotificationPermissionIfNeeded(Activity activity) {} + + public static boolean needsInvisibleActivityHacks() { + return true; + } } \ No newline at end of file diff --git a/app/src/compat-34/java/com/farmerbb/taskbar/util/CompatUtils.java b/app/src/compat-34/java/com/farmerbb/taskbar/util/CompatUtils.java index 3dcee136..c2bac9fb 100644 --- a/app/src/compat-34/java/com/farmerbb/taskbar/util/CompatUtils.java +++ b/app/src/compat-34/java/com/farmerbb/taskbar/util/CompatUtils.java @@ -41,4 +41,8 @@ public static void grantNotificationPermissionIfNeeded(Activity activity) { activity.requestPermissions(new String[]{Manifest.permission.POST_NOTIFICATIONS}, 42); } } + + public static boolean needsInvisibleActivityHacks() { + return Build.VERSION.SDK_INT < Build.VERSION_CODES.S_V2; + } } \ No newline at end of file diff --git a/app/src/main/java/com/farmerbb/taskbar/activity/MainActivity.java b/app/src/main/java/com/farmerbb/taskbar/activity/MainActivity.java index 1061ad1c..5428cc86 100644 --- a/app/src/main/java/com/farmerbb/taskbar/activity/MainActivity.java +++ b/app/src/main/java/com/farmerbb/taskbar/activity/MainActivity.java @@ -393,7 +393,8 @@ private void startTaskbarService() { if(U.hasFreeformSupport(this) && U.isFreeformModeEnabled(this) - && !FreeformHackHelper.getInstance().isFreeformHackActive()) { + && !FreeformHackHelper.getInstance().isFreeformHackActive() + && CompatUtils.needsInvisibleActivityHacks()) { U.startFreeformHack(this, true); } diff --git a/app/src/main/java/com/farmerbb/taskbar/util/U.java b/app/src/main/java/com/farmerbb/taskbar/util/U.java index 2523ad73..82e9b690 100644 --- a/app/src/main/java/com/farmerbb/taskbar/util/U.java +++ b/app/src/main/java/com/farmerbb/taskbar/util/U.java @@ -606,7 +606,7 @@ private static void prepareToStartActivity(Context context, boolean openInNewWin && shouldLaunchTouchAbsorber(context)) { startTouchAbsorberActivity(context); newHandler().postDelayed(runnable, 100); - } else if(openInNewWindow) { + } else if(openInNewWindow && CompatUtils.needsInvisibleActivityHacks()) { Intent intent = new Intent(context, DummyActivity.class); intent.putExtra("finish_on_pause", true); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK