From 6fe262abf7859f36426b5fb24ac06d07f404cc41 Mon Sep 17 00:00:00 2001 From: LuK1337 Date: Thu, 13 May 2021 19:31:24 +0200 Subject: [PATCH] lineage-sdk: Disallow KILL_APP action when task is pinned Fixes: https://gitlab.com/LineageOS/issues/android/-/issues/3468 Change-Id: I8420d5531422e9ed25588cd6e5198e14472569e5 --- sdk/src/java/org/lineageos/internal/util/ActionUtils.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sdk/src/java/org/lineageos/internal/util/ActionUtils.java b/sdk/src/java/org/lineageos/internal/util/ActionUtils.java index a7955814..66cc7b0f 100644 --- a/sdk/src/java/org/lineageos/internal/util/ActionUtils.java +++ b/sdk/src/java/org/lineageos/internal/util/ActionUtils.java @@ -20,7 +20,9 @@ import android.app.ActivityManager; import android.app.ActivityManager.StackInfo; import android.app.ActivityManagerNative; import android.app.ActivityOptions; +import android.app.ActivityTaskManager; import android.app.IActivityManager; +import android.app.IActivityTaskManager; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; @@ -57,6 +59,12 @@ public class ActionUtils { private static boolean killForegroundAppInternal(Context context, int userId) throws RemoteException { + final IActivityTaskManager atm = ActivityTaskManager.getService(); + + if (atm.getLockTaskModeState() == ActivityManager.LOCK_TASK_MODE_PINNED) { + return false; + } + final String packageName = getForegroundTaskPackageName(context, userId); if (packageName == null) {