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

Commit e97bbc47 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Removing extra binder call on state or visibility change" into ub-launcher3-edmonton

parents d4ece9a7 6b4b9b5d
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@
 */
package com.android.quickstep;

import static com.android.quickstep.TaskUtils.checkCurrentOrManagedUserId;

import android.annotation.TargetApi;
import android.app.ActivityManager;
import android.content.ComponentCallbacks2;
@@ -190,7 +192,7 @@ public class RecentsModel extends TaskStackChangeListener {
    @Override
    public void onTaskStackChangedBackground() {
        int userId = UserHandle.myUserId();
        if (!mPreloadTasksInBackground || !checkCurrentUserId(userId, false /* debug */)) {
        if (!mPreloadTasksInBackground || !checkCurrentOrManagedUserId(userId, mContext)) {
            // TODO: Only register this for the current user
            return;
        }
+15 −0
Original line number Diff line number Diff line
@@ -47,6 +47,8 @@ import com.android.quickstep.views.TaskView;
import com.android.systemui.shared.recents.model.Task;
import com.android.systemui.shared.system.RemoteAnimationTargetCompat;

import java.util.List;

/**
 * Contains helpful methods for retrieving data from {@link Task}s.
 */
@@ -207,4 +209,17 @@ public class TaskUtils {
        }
        return false;
    }

    public static boolean checkCurrentOrManagedUserId(int currentUserId, Context context) {
        if (currentUserId == UserHandle.myUserId()) {
            return true;
        }
        List<UserHandle> allUsers = UserManagerCompat.getInstance(context).getUserProfiles();
        for (int i = allUsers.size() - 1; i >= 0; i--) {
            if (currentUserId == allUsers.get(i).getIdentifier()) {
                return true;
            }
        }
        return false;
    }
}
+21 −16
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import static com.android.launcher3.anim.Interpolators.ACCEL;
import static com.android.launcher3.anim.Interpolators.ACCEL_2;
import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN;
import static com.android.launcher3.anim.Interpolators.LINEAR;
import static com.android.quickstep.TaskUtils.checkCurrentOrManagedUserId;

import android.animation.Animator;
import android.animation.AnimatorSet;
@@ -123,13 +124,19 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
    private final TaskStackChangeListener mTaskStackListener = new TaskStackChangeListener() {
        @Override
        public void onTaskSnapshotChanged(int taskId, ThumbnailData snapshot) {
            if (!mHandleTaskStackChanges) {
                return;
            }
            updateThumbnail(taskId, snapshot);
        }

        @Override
        public void onActivityPinned(String packageName, int userId, int taskId, int stackId) {
            if (!mHandleTaskStackChanges) {
                return;
            }
            // Check this is for the right user
            if (!checkCurrentUserId(userId, false /* debug */)) {
            if (!checkCurrentOrManagedUserId(userId, getContext())) {
                return;
            }

@@ -142,20 +149,24 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl

        @Override
        public void onActivityUnpinned() {
            if (!mHandleTaskStackChanges) {
                return;
            }
            // TODO: Re-enable layout transitions for addition of the unpinned task
            reloadIfNeeded();
        }

        @Override
        public void onTaskRemoved(int taskId) {
            if (!mHandleTaskStackChanges) {
                return;
            }
            TaskView taskView = getTaskView(taskId);
            if (taskView != null) {
                dismissTask(taskView, true /* animate */, false /* removeTask */);
            }
        }
    };

    private TaskStackChangeListener mTaskStackClearFlagListener = new TaskStackChangeListener() {
        @Override
        public void onPinnedStackAnimationStarted() {
            // Needed for activities that auto-enter PiP, which will not trigger a remote
@@ -174,7 +185,7 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
    private boolean mRunningTaskIconScaledDown = false;

    private boolean mOverviewStateEnabled;
    private boolean mTaskStackListenerRegistered;
    private boolean mHandleTaskStackChanges;
    private Runnable mNextPageSwitchRunnable;
    private boolean mSwipeDownShouldLaunchApp;

@@ -261,7 +272,7 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
        super.onAttachedToWindow();
        updateTaskStackListenerState();
        mActivity.addMultiWindowModeChangedListener(mMultiWindowModeChangedListener);
        ActivityManagerWrapper.getInstance().registerTaskStackListener(mTaskStackClearFlagListener);
        ActivityManagerWrapper.getInstance().registerTaskStackListener(mTaskStackListener);
    }

    @Override
@@ -269,8 +280,7 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
        super.onDetachedFromWindow();
        updateTaskStackListenerState();
        mActivity.removeMultiWindowModeChangedListener(mMultiWindowModeChangedListener);
        ActivityManagerWrapper.getInstance().unregisterTaskStackListener(
                mTaskStackClearFlagListener);
        ActivityManagerWrapper.getInstance().unregisterTaskStackListener(mTaskStackListener);
    }

    @Override
@@ -434,18 +444,13 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
    }

    private void updateTaskStackListenerState() {
        boolean registerStackListener = mOverviewStateEnabled && isAttachedToWindow()
        boolean handleTaskStackChanges = mOverviewStateEnabled && isAttachedToWindow()
                && getWindowVisibility() == VISIBLE;
        if (registerStackListener != mTaskStackListenerRegistered) {
            if (registerStackListener) {
                ActivityManagerWrapper.getInstance()
                        .registerTaskStackListener(mTaskStackListener);
        if (handleTaskStackChanges != mHandleTaskStackChanges) {
            mHandleTaskStackChanges = handleTaskStackChanges;
            if (handleTaskStackChanges) {
                reloadIfNeeded();
            } else {
                ActivityManagerWrapper.getInstance()
                        .unregisterTaskStackListener(mTaskStackListener);
            }
            mTaskStackListenerRegistered = registerStackListener;
        }
    }