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

Commit e3b0ef28 authored by Orhan Uysal's avatar Orhan Uysal
Browse files

Notify recentTasksChanged when runningTaskAppears.

In some scenarios, like after reboot starting a task sends
onRecentTasksChanged callback and then onRunningTaskAppeared callback.
This creates a state in launcher where places that fetches tasks
depending on the onRecentTasksChanged callback to not have the correct
running tasks list.

Bug: 379145034
Test: atest RecentTasksControllerTest & manual
Flag: EXEMPT Bugfix
Change-Id: Ice355ee8e2930d9539e6e82006060abd44c64570
parent 8dd4d541
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -311,6 +311,9 @@ public class RecentTasksController implements TaskStackListenerCallback,

    public void onTaskAdded(RunningTaskInfo taskInfo) {
        notifyRunningTaskAppeared(taskInfo);
        if (!enableShellTopTaskTracking()) {
            notifyRecentTasksChanged();
        }
    }

    public void onTaskRemoved(RunningTaskInfo taskInfo) {
+5 −1
Original line number Diff line number Diff line
@@ -211,6 +211,7 @@ public class RecentTasksControllerTest extends ShellTestCase {

    @Test
    public void testAddRemoveSplitNotifyChange() {
        reset(mRecentTasksController);
        RecentTaskInfo t1 = makeTaskInfo(1);
        RecentTaskInfo t2 = makeTaskInfo(2);
        setRawList(t1, t2);
@@ -225,6 +226,7 @@ public class RecentTasksControllerTest extends ShellTestCase {

    @Test
    public void testAddSameSplitBoundsInfoSkipNotifyChange() {
        reset(mRecentTasksController);
        RecentTaskInfo t1 = makeTaskInfo(1);
        RecentTaskInfo t2 = makeTaskInfo(2);
        setRawList(t1, t2);
@@ -535,6 +537,7 @@ public class RecentTasksControllerTest extends ShellTestCase {

    @Test
    public void testTaskWindowingModeChangedNotifiesChange() {
        reset(mRecentTasksController);
        RecentTaskInfo t1 = makeTaskInfo(1);
        setRawList(t1);

@@ -551,7 +554,8 @@ public class RecentTasksControllerTest extends ShellTestCase {
                WINDOWING_MODE_MULTI_WINDOW);
        mShellTaskOrganizer.onTaskInfoChanged(rt2MultiWIndow);

        verify(mRecentTasksController).notifyRecentTasksChanged();
        // One for onTaskAppeared and one for onTaskInfoChanged
        verify(mRecentTasksController, times(2)).notifyRecentTasksChanged();
    }

    @Test