Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8a3ef375 authored by Winson's avatar Winson Committed by Winson Chung
Browse files

Fixing crash in SysUI due to invalid group.

- Adding a null check for tasks that have already been removed, but may
  be launched.

Bug: 28890599
Change-Id: Idde322c737a5543e639e693fbe7615e720a12c1e
parent a39d8886
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ public class RecentsDebugFlags implements TunerService.Tunable {
        public static final boolean DisableBackgroundCache = false;
        // Enables the task affiliations
        public static final boolean EnableAffiliatedTaskGroups = false;
        // TODO: To be repurposed
        // Enables the button above the stack
        public static final boolean EnableStackActionButton = true;
        // Overrides the Tuner flags and enables the timeout
        private static final boolean EnableFastToggleTimeout = false;
+12 −11
Original line number Diff line number Diff line
@@ -148,10 +148,12 @@ public class TaskStackAnimationHelper {
        for (int i = taskViews.size() - 1; i >= 0; i--) {
            TaskView tv = taskViews.get(i);
            Task task = tv.getTask();
            boolean currentTaskOccludesLaunchTarget = (launchTargetTask != null &&
                    launchTargetTask.group.isTaskAboveTask(task, launchTargetTask));
            boolean hideTask = (launchTargetTask != null &&
                    launchTargetTask.isFreeformTask() && task.isFreeformTask());
            boolean currentTaskOccludesLaunchTarget = launchTargetTask != null &&
                    launchTargetTask.group != null &&
                    launchTargetTask.group.isTaskAboveTask(task, launchTargetTask);
            boolean hideTask = launchTargetTask != null &&
                    launchTargetTask.isFreeformTask() &&
                    task.isFreeformTask();

            // Get the current transform for the task, which will be used to position it offscreen
            stackLayout.getStackTransform(task, stackScroller.getStackScroll(), mTmpTransform,
@@ -221,11 +223,9 @@ public class TaskStackAnimationHelper {
            int taskIndexFromBack = i;
            final TaskView tv = taskViews.get(i);
            Task task = tv.getTask();
            boolean currentTaskOccludesLaunchTarget = false;
            if (launchTargetTask != null) {
                currentTaskOccludesLaunchTarget = launchTargetTask.group.isTaskAboveTask(task,
                        launchTargetTask);
            }
            boolean currentTaskOccludesLaunchTarget = launchTargetTask != null &&
                    launchTargetTask.group != null &&
                    launchTargetTask.group.isTaskAboveTask(task, launchTargetTask);

            // Get the current transform for the task, which will be updated to the final transform
            // to animate to depending on how recents was invoked
@@ -358,8 +358,9 @@ public class TaskStackAnimationHelper {
        for (int i = 0; i < taskViewCount; i++) {
            TaskView tv = taskViews.get(i);
            Task task = tv.getTask();
            boolean currentTaskOccludesLaunchTarget = (launchingTask != null &&
                    launchingTask.group.isTaskAboveTask(task, launchingTask));
            boolean currentTaskOccludesLaunchTarget = launchingTask != null &&
                    launchingTask.group != null &&
                    launchingTask.group.isTaskAboveTask(task, launchingTask);

            if (tv == launchingTaskView) {
                tv.setClipViewInStack(false);