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

Commit 3955e197 authored by Winson Chung's avatar Winson Chung Committed by Android (Google) Code Review
Browse files

Merge "Stop preloading recent tasks in SysUI when bound to overview service" into pi-dev

parents 01487d97 2592f80b
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.app.ActivityManager;
import android.app.ActivityOptions;
import android.app.trust.TrustManager;
import android.content.ActivityNotFoundException;
import android.content.ComponentCallbacks2;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
@@ -45,6 +46,8 @@ import android.view.WindowManager;

import android.widget.Toast;

import com.android.systemui.Dependency;
import com.android.systemui.OverviewProxyService;
import com.google.android.collect.Lists;

import com.android.internal.logging.MetricsLogger;
@@ -122,6 +125,11 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener

        @Override
        public void onTaskStackChangedBackground() {
            // Skip background preloading recents in SystemUI if the overview services is bound
            if (Dependency.get(OverviewProxyService.class).getProxy() != null) {
                return;
            }

            // Check this is for the right user
            if (!checkCurrentUserId(mContext, false /* debug */)) {
                return;
@@ -257,6 +265,17 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener
        }
    });

    private OverviewProxyService.OverviewProxyListener mOverviewProxyListener =
            new OverviewProxyService.OverviewProxyListener() {
        @Override
        public void onConnectionChanged(boolean isConnected) {
            if (!isConnected) {
                // Clear everything when the connection to the overview service
                Recents.getTaskLoader().onTrimMemory(ComponentCallbacks2.TRIM_MEMORY_COMPLETE);
            }
        }
    };

    public RecentsImpl(Context context) {
        mContext = context;
        mHandler = new Handler();
@@ -277,6 +296,11 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener
    }

    public void onBootCompleted() {
        // Skip preloading tasks if we are already bound to the service
        if (Dependency.get(OverviewProxyService.class).getProxy() != null) {
            return;
        }

        // When we start, preload the data associated with the previous recent tasks.
        // We can use a new plan since the caches will be the same.
        RecentsTaskLoader loader = Recents.getTaskLoader();