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

Commit 1df38365 authored by Schneider Victor-Tulias's avatar Schneider Victor-Tulias
Browse files

Use the RecentsWindowTracker in FallbackRecentsTest rather than...

Use the RecentsWindowTracker in FallbackRecentsTest rather than RecentsActivity's ActivityTracker when flag is enabled

Test: pre/postsubmit
Fixes: 381548102
Flag: EXEMPT checking broken tests
Change-Id: I5764c661c53c383a80fbd568e839a5f3d2633427
parent 495fe1d2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -457,7 +457,7 @@ class RecentsWindowManager(context: Context) :
    }

    override fun isRecentsViewVisible(): Boolean {
        return getStateManager().state!!.isRecentsViewVisible
        return isShowing() || getStateManager().state!!.isRecentsViewVisible
    }

    override fun createAtomicAnimationFactory(): AtomicAnimationFactory<RecentsState?>? {
+27 −17
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ import static android.content.pm.PackageManager.MATCH_DISABLED_COMPONENTS;

import static androidx.test.InstrumentationRegistry.getInstrumentation;

import static com.android.launcher3.Flags.enableFallbackOverviewInWindow;
import static com.android.launcher3.tapl.LauncherInstrumentation.WAIT_TIME_MS;
import static com.android.launcher3.tapl.TestHelpers.getHomeIntentInPackage;
import static com.android.launcher3.tapl.TestHelpers.getLauncherInMyProcess;
@@ -63,7 +64,9 @@ import com.android.launcher3.util.rule.ScreenRecordRule;
import com.android.launcher3.util.rule.TestIsolationRule;
import com.android.launcher3.util.rule.TestStabilityRule;
import com.android.launcher3.util.rule.ViewCaptureRule;
import com.android.quickstep.fallback.window.RecentsWindowManager;
import com.android.quickstep.views.RecentsView;
import com.android.quickstep.views.RecentsViewContainer;

import org.junit.After;
import org.junit.Before;
@@ -191,27 +194,29 @@ public class FallbackRecentsTest {
    @Test
    public void goToOverviewFromApp() {
        startAppFast(resolveSystemApp(Intent.CATEGORY_APP_CALCULATOR));
        waitForRecentsActivityStop();
        waitForRecentsClosed();

        mLauncher.getLaunchedAppState().switchToOverview();
    }

    protected void executeOnRecents(Consumer<RecentsActivity> f) {
    protected void executeOnRecents(Consumer<RecentsViewContainer> f) {
        getFromRecents(r -> {
            f.accept(r);
            return true;
        });
    }

    protected <T> T getFromRecents(Function<RecentsActivity, T> f) {
    protected <T> T getFromRecents(Function<RecentsViewContainer, T> f) {
        if (!TestHelpers.isInLauncherProcess()) return null;
        Object[] result = new Object[1];
        Wait.atMost("Failed to get from recents", () -> MAIN_EXECUTOR.submit(() -> {
            RecentsActivity activity = RecentsActivity.ACTIVITY_TRACKER.getCreatedContext();
            if (activity == null) {
            RecentsViewContainer recentsViewContainer = enableFallbackOverviewInWindow()
                    ? RecentsWindowManager.getRecentsWindowTracker().getCreatedContext()
                    : RecentsActivity.ACTIVITY_TRACKER.getCreatedContext();
            if (recentsViewContainer == null) {
                return false;
            }
            result[0] = f.apply(activity);
            result[0] = f.apply(recentsViewContainer);
            return true;
        }).get(), mLauncher);
        return (T) result[0];
@@ -224,14 +229,19 @@ public class FallbackRecentsTest {

    private void pressHomeAndWaitForOverviewClose() {
        mDevice.pressHome();
        waitForRecentsActivityStop();
        waitForRecentsClosed();
    }

    private void waitForRecentsActivityStop() {
    private void waitForRecentsClosed() {
        try {
            final boolean recentsActivityIsNull = MAIN_EXECUTOR.submit(
                    () -> RecentsActivity.ACTIVITY_TRACKER.getCreatedContext() == null).get();
            if (recentsActivityIsNull) {
            final boolean isRecentsContainerNUll = MAIN_EXECUTOR.submit(() -> {
                RecentsViewContainer recentsViewContainer = enableFallbackOverviewInWindow()
                        ? RecentsWindowManager.getRecentsWindowTracker().getCreatedContext()
                        : RecentsActivity.ACTIVITY_TRACKER.getCreatedContext();

                return recentsViewContainer == null;
            }).get();
            if (isRecentsContainerNUll) {
                // Null activity counts as a "stopped" one.
                return;
            }
@@ -241,7 +251,7 @@ public class FallbackRecentsTest {
            throw new RuntimeException(e);
        }

        Wait.atMost("Recents activity didn't stop",
        Wait.atMost("Recents view container didn't close",
                () -> getFromRecents(recents -> !recents.isStarted()),
                mLauncher);
    }
@@ -251,7 +261,7 @@ public class FallbackRecentsTest {
        startAppFast(getAppPackageName());
        startAppFast(resolveSystemApp(Intent.CATEGORY_APP_CALCULATOR));
        startTestActivity(2);
        waitForRecentsActivityStop();
        waitForRecentsClosed();
        Wait.atMost("Expected three apps in the task list",
                () -> mLauncher.getRecentTasks().size() >= 3,
                mLauncher);
@@ -312,12 +322,12 @@ public class FallbackRecentsTest {
        );
    }

    private int getCurrentOverviewPage(RecentsActivity recents) {
        return recents.<RecentsView>getOverviewPanel().getCurrentPage();
    private int getCurrentOverviewPage(RecentsViewContainer recentsViewContainer) {
        return recentsViewContainer.<RecentsView>getOverviewPanel().getCurrentPage();
    }

    private int getTaskCount(RecentsActivity recents) {
        return recents.<RecentsView>getOverviewPanel().getTaskViewCount();
    private int getTaskCount(RecentsViewContainer recentsViewContainer) {
        return recentsViewContainer.<RecentsView>getOverviewPanel().getTaskViewCount();
    }

    private class OverviewUpdateHandler {