Loading packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java +22 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.shared.system; import static android.app.ActivityManager.LOCK_TASK_MODE_NONE; import static android.app.ActivityManager.LOCK_TASK_MODE_PINNED; import static android.app.ActivityManager.RECENT_IGNORE_UNAVAILABLE; import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS; import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; Loading Loading @@ -402,6 +403,25 @@ public class ActivityManagerWrapper { } } /** * @return whether screen pinning is active. */ public boolean isScreenPinningActive() { try { return ActivityManager.getService().getLockTaskModeState() == LOCK_TASK_MODE_PINNED; } catch (RemoteException e) { return false; } } /** * @return whether screen pinning is enabled. */ public boolean isScreenPinningEnabled() { final ContentResolver cr = AppGlobals.getInitialApplication().getContentResolver(); return Settings.System.getInt(cr, Settings.System.LOCK_TO_APP_ENABLED, 0) != 0; } /** * @return whether there is currently a locked task (ie. in screen pinning). */ Loading @@ -415,9 +435,9 @@ public class ActivityManagerWrapper { /** * @return whether screen pinning is enabled. * @deprecated See {@link #isScreenPinningEnabled} */ public boolean isLockToAppEnabled() { final ContentResolver cr = AppGlobals.getInitialApplication().getContentResolver(); return Settings.System.getInt(cr, Settings.System.LOCK_TO_APP_ENABLED, 0) != 0; return isScreenPinningEnabled(); } } packages/SystemUI/src/com/android/systemui/recents/Recents.java +1 −1 Original line number Diff line number Diff line Loading @@ -449,7 +449,7 @@ public class Recents extends SystemUI final int activityType = runningTask != null ? runningTask.configuration.windowConfiguration.getActivityType() : ACTIVITY_TYPE_UNDEFINED; boolean screenPinningActive = ActivityManagerWrapper.getInstance().isLockToAppActive(); boolean screenPinningActive = ActivityManagerWrapper.getInstance().isScreenPinningActive(); boolean isRunningTaskInHomeOrRecentsStack = activityType == ACTIVITY_TYPE_HOME || activityType == ACTIVITY_TYPE_RECENTS; if (runningTask != null && !isRunningTaskInHomeOrRecentsStack && !screenPinningActive) { Loading packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java +2 −6 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ import static com.android.systemui.statusbar.phone.StatusBar.SYSTEM_DIALOG_REASO import android.app.ActivityManager; import android.app.ActivityOptions; import android.app.KeyguardManager; import android.app.trust.TrustManager; import android.content.ActivityNotFoundException; import android.content.Context; Loading @@ -34,7 +33,6 @@ import android.graphics.Bitmap; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.Drawable; import android.os.AsyncTask.Status; import android.os.Handler; import android.os.SystemClock; import android.util.ArraySet; Loading Loading @@ -385,8 +383,7 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener } public void toggleRecents(int growTarget) { // Skip preloading if the task is locked if (ActivityManagerWrapper.getInstance().isLockToAppActive()) { if (ActivityManagerWrapper.getInstance().isScreenPinningActive()) { return; } Loading Loading @@ -464,8 +461,7 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener } public void preloadRecents() { // Skip preloading if the task is locked if (ActivityManagerWrapper.getInstance().isLockToAppActive()) { if (ActivityManagerWrapper.getInstance().isScreenPinningActive()) { return; } Loading packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java +2 −1 Original line number Diff line number Diff line Loading @@ -2188,7 +2188,8 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal private void readSystemFlags() { SystemServicesProxy ssp = Recents.getSystemServices(); mTouchExplorationEnabled = ssp.isTouchExplorationEnabled(); mScreenPinningEnabled = ActivityManagerWrapper.getInstance().isLockToAppEnabled(); mScreenPinningEnabled = ActivityManagerWrapper.getInstance().isScreenPinningEnabled() && !ActivityManagerWrapper.getInstance().isLockToAppActive(); } private void updateStackActionButtonVisibility() { Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java +2 −1 Original line number Diff line number Diff line Loading @@ -708,7 +708,8 @@ public class NavigationBarFragment extends Fragment implements Callbacks { @VisibleForTesting boolean onHomeLongClick(View v) { if (!mNavigationBarView.isRecentsButtonVisible() && mNavigationBarView.inScreenPinning()) { if (!mNavigationBarView.isRecentsButtonVisible() && ActivityManagerWrapper.getInstance().isScreenPinningActive()) { return onLongPressBackHome(v); } if (shouldDisableNavbarGestures()) { Loading Loading
packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java +22 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.shared.system; import static android.app.ActivityManager.LOCK_TASK_MODE_NONE; import static android.app.ActivityManager.LOCK_TASK_MODE_PINNED; import static android.app.ActivityManager.RECENT_IGNORE_UNAVAILABLE; import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS; import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED; Loading Loading @@ -402,6 +403,25 @@ public class ActivityManagerWrapper { } } /** * @return whether screen pinning is active. */ public boolean isScreenPinningActive() { try { return ActivityManager.getService().getLockTaskModeState() == LOCK_TASK_MODE_PINNED; } catch (RemoteException e) { return false; } } /** * @return whether screen pinning is enabled. */ public boolean isScreenPinningEnabled() { final ContentResolver cr = AppGlobals.getInitialApplication().getContentResolver(); return Settings.System.getInt(cr, Settings.System.LOCK_TO_APP_ENABLED, 0) != 0; } /** * @return whether there is currently a locked task (ie. in screen pinning). */ Loading @@ -415,9 +435,9 @@ public class ActivityManagerWrapper { /** * @return whether screen pinning is enabled. * @deprecated See {@link #isScreenPinningEnabled} */ public boolean isLockToAppEnabled() { final ContentResolver cr = AppGlobals.getInitialApplication().getContentResolver(); return Settings.System.getInt(cr, Settings.System.LOCK_TO_APP_ENABLED, 0) != 0; return isScreenPinningEnabled(); } }
packages/SystemUI/src/com/android/systemui/recents/Recents.java +1 −1 Original line number Diff line number Diff line Loading @@ -449,7 +449,7 @@ public class Recents extends SystemUI final int activityType = runningTask != null ? runningTask.configuration.windowConfiguration.getActivityType() : ACTIVITY_TYPE_UNDEFINED; boolean screenPinningActive = ActivityManagerWrapper.getInstance().isLockToAppActive(); boolean screenPinningActive = ActivityManagerWrapper.getInstance().isScreenPinningActive(); boolean isRunningTaskInHomeOrRecentsStack = activityType == ACTIVITY_TYPE_HOME || activityType == ACTIVITY_TYPE_RECENTS; if (runningTask != null && !isRunningTaskInHomeOrRecentsStack && !screenPinningActive) { Loading
packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java +2 −6 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ import static com.android.systemui.statusbar.phone.StatusBar.SYSTEM_DIALOG_REASO import android.app.ActivityManager; import android.app.ActivityOptions; import android.app.KeyguardManager; import android.app.trust.TrustManager; import android.content.ActivityNotFoundException; import android.content.Context; Loading @@ -34,7 +33,6 @@ import android.graphics.Bitmap; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.Drawable; import android.os.AsyncTask.Status; import android.os.Handler; import android.os.SystemClock; import android.util.ArraySet; Loading Loading @@ -385,8 +383,7 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener } public void toggleRecents(int growTarget) { // Skip preloading if the task is locked if (ActivityManagerWrapper.getInstance().isLockToAppActive()) { if (ActivityManagerWrapper.getInstance().isScreenPinningActive()) { return; } Loading Loading @@ -464,8 +461,7 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener } public void preloadRecents() { // Skip preloading if the task is locked if (ActivityManagerWrapper.getInstance().isLockToAppActive()) { if (ActivityManagerWrapper.getInstance().isScreenPinningActive()) { return; } Loading
packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java +2 −1 Original line number Diff line number Diff line Loading @@ -2188,7 +2188,8 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal private void readSystemFlags() { SystemServicesProxy ssp = Recents.getSystemServices(); mTouchExplorationEnabled = ssp.isTouchExplorationEnabled(); mScreenPinningEnabled = ActivityManagerWrapper.getInstance().isLockToAppEnabled(); mScreenPinningEnabled = ActivityManagerWrapper.getInstance().isScreenPinningEnabled() && !ActivityManagerWrapper.getInstance().isLockToAppActive(); } private void updateStackActionButtonVisibility() { Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java +2 −1 Original line number Diff line number Diff line Loading @@ -708,7 +708,8 @@ public class NavigationBarFragment extends Fragment implements Callbacks { @VisibleForTesting boolean onHomeLongClick(View v) { if (!mNavigationBarView.isRecentsButtonVisible() && mNavigationBarView.inScreenPinning()) { if (!mNavigationBarView.isRecentsButtonVisible() && ActivityManagerWrapper.getInstance().isScreenPinningActive()) { return onLongPressBackHome(v); } if (shouldDisableNavbarGestures()) { Loading