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

Commit d9c0349c authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Merging WindowSizeStrategy with BaseActivityInterface

Also converting BaseActivityInterface to an abstract class instead of interface
so that it can hold member variables

Change-Id: I04cab934137eb1d6f470c6a7618c50a2ed2c71c1
parent f95f1529
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@
package com.android.launcher3.uioverrides.states;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.Rect;

import com.android.launcher3.BaseDraggingActivity;
@@ -58,8 +57,6 @@ public class OverviewModalTaskState extends OverviewState {
    }

    public static float[] getOverviewScaleAndOffsetForModalState(BaseDraggingActivity activity) {
        Resources res = activity.getResources();

        Rect out = new Rect();
        activity.<RecentsView>getOverviewPanel().getTaskSize(out);
        int taskHeight = out.height();
+5 −4
Original line number Diff line number Diff line
@@ -31,9 +31,9 @@ import android.util.Log;
import android.view.View;

import com.android.launcher3.AbstractFloatingView;
import com.android.launcher3.BaseDraggingActivity;
import com.android.launcher3.anim.AnimationSuccessListener;
import com.android.launcher3.statehandlers.DepthController;
import com.android.launcher3.statemanager.StatefulActivity;
import com.android.quickstep.util.AppWindowAnimationHelper;
import com.android.quickstep.util.RemoteAnimationProvider;
import com.android.quickstep.util.TransformParams;
@@ -47,20 +47,21 @@ import com.android.systemui.shared.system.TransactionCompat;
 *
 * @param <T> activity that contains the overview
 */
final class AppToOverviewAnimationProvider<T extends BaseDraggingActivity> extends
final class AppToOverviewAnimationProvider<T extends StatefulActivity<?>> extends
        RemoteAnimationProvider {

    private static final long RECENTS_LAUNCH_DURATION = 250;
    private static final String TAG = "AppToOverviewAnimationProvider";

    private final BaseActivityInterface<T> mActivityInterface;
    private final BaseActivityInterface<?, T> mActivityInterface;
    // The id of the currently running task that is transitioning to overview.
    private final int mTargetTaskId;

    private T mActivity;
    private RecentsView mRecentsView;

    AppToOverviewAnimationProvider(BaseActivityInterface<T> activityInterface, int targetTaskId) {
    AppToOverviewAnimationProvider(
            BaseActivityInterface<?, T> activityInterface, int targetTaskId) {
        mActivityInterface = activityInterface;
        mTargetTaskId = targetTaskId;
    }
+5 −7
Original line number Diff line number Diff line
@@ -44,12 +44,12 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.UiThread;

import com.android.launcher3.BaseDraggingActivity;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.InvariantDeviceProfile;
import com.android.launcher3.Utilities;
import com.android.launcher3.anim.AnimationSuccessListener;
import com.android.launcher3.anim.AnimatorPlaybackController;
import com.android.launcher3.statemanager.StatefulActivity;
import com.android.launcher3.touch.PagedOrientationHandler;
import com.android.launcher3.util.VibratorWrapper;
import com.android.launcher3.views.FloatingIconView;
@@ -60,7 +60,6 @@ import com.android.quickstep.util.RectFSpringAnim;
import com.android.quickstep.util.TaskViewSimulator;
import com.android.quickstep.util.TransformParams;
import com.android.quickstep.util.TransformParams.BuilderProxy;
import com.android.quickstep.util.WindowSizeStrategy;
import com.android.quickstep.views.RecentsView;
import com.android.quickstep.views.TaskView;
import com.android.systemui.shared.recents.model.ThumbnailData;
@@ -76,7 +75,7 @@ import java.util.function.Consumer;
 * Base class for swipe up handler with some utility methods
 */
@TargetApi(Build.VERSION_CODES.Q)
public abstract class BaseSwipeUpHandler<T extends BaseDraggingActivity, Q extends RecentsView>
public abstract class BaseSwipeUpHandler<T extends StatefulActivity<?>, Q extends RecentsView>
        implements RecentsAnimationListener {

    private static final String TAG = "BaseSwipeUpHandler";
@@ -97,7 +96,7 @@ public abstract class BaseSwipeUpHandler<T extends BaseDraggingActivity, Q exten
    protected final Context mContext;
    protected final RecentsAnimationDeviceState mDeviceState;
    protected final GestureState mGestureState;
    protected final BaseActivityInterface<T> mActivityInterface;
    protected final BaseActivityInterface<?, T> mActivityInterface;
    protected final InputConsumerController mInputConsumer;

    protected final TaskViewSimulator mTaskViewSimulator;
@@ -132,15 +131,14 @@ public abstract class BaseSwipeUpHandler<T extends BaseDraggingActivity, Q exten
    private boolean mRecentsViewScrollLinked = false;

    protected BaseSwipeUpHandler(Context context, RecentsAnimationDeviceState deviceState,
            GestureState gestureState, InputConsumerController inputConsumer,
            WindowSizeStrategy windowSizeStrategy) {
            GestureState gestureState, InputConsumerController inputConsumer) {
        mContext = context;
        mDeviceState = deviceState;
        mGestureState = gestureState;
        mActivityInterface = gestureState.getActivityInterface();
        mActivityInitListener = mActivityInterface.createActivityInitListener(this::onActivityInit);
        mInputConsumer = inputConsumer;
        mTaskViewSimulator = new TaskViewSimulator(context, windowSizeStrategy);
        mTaskViewSimulator = new TaskViewSimulator(context, gestureState.getActivityInterface());
    }

    /**
+18 −25
Original line number Diff line number Diff line
@@ -20,20 +20,22 @@ import static com.android.launcher3.anim.Interpolators.LINEAR;
import static com.android.quickstep.SysUINavigationMode.Mode.NO_BUTTON;
import static com.android.quickstep.fallback.RecentsState.BACKGROUND_APP;
import static com.android.quickstep.fallback.RecentsState.DEFAULT;
import static com.android.quickstep.util.WindowSizeStrategy.FALLBACK_RECENTS_SIZE_STRATEGY;
import static com.android.quickstep.views.RecentsView.CONTENT_ALPHA;
import static com.android.quickstep.views.RecentsView.FULLSCREEN_PROGRESS;

import android.content.Context;
import android.graphics.PointF;
import android.graphics.Rect;

import androidx.annotation.Nullable;

import com.android.launcher3.DeviceProfile;
import com.android.launcher3.R;
import com.android.launcher3.anim.AnimatorPlaybackController;
import com.android.launcher3.anim.PendingAnimation;
import com.android.launcher3.userevent.nano.LauncherLogProto;
import com.android.quickstep.fallback.FallbackRecentsView;
import com.android.quickstep.fallback.RecentsState;
import com.android.quickstep.util.ActivityInitListener;
import com.android.quickstep.views.RecentsView;
import com.android.systemui.shared.system.RemoteAnimationTargetCompat;
@@ -46,19 +48,18 @@ import java.util.function.Predicate;
 * currently running one and apps should interact with the {@link RecentsActivity} as opposed
 * to the in-launcher one.
 */
public final class FallbackActivityInterface implements
        BaseActivityInterface<RecentsActivity> {
public final class FallbackActivityInterface extends
        BaseActivityInterface<RecentsState, RecentsActivity> {

    public FallbackActivityInterface() { }
    public static final FallbackActivityInterface INSTANCE = new FallbackActivityInterface();

    @Override
    public void onTransitionCancelled(boolean activityVisible) {
        // TODO:
    private FallbackActivityInterface() {
        super(false);
    }

    @Override
    public int getSwipeUpDestinationAndLength(DeviceProfile dp, Context context, Rect outRect) {
        FALLBACK_RECENTS_SIZE_STRATEGY.calculateTaskSize(context, dp, outRect);
        calculateTaskSize(context, dp, outRect);
        if (dp.isVerticalBarLayout()
                && SysUINavigationMode.INSTANCE.get(context).getMode() != NO_BUTTON) {
            Rect targetInsets = dp.getInsets();
@@ -69,17 +70,6 @@ public final class FallbackActivityInterface implements
        }
    }

    @Override
    public void onSwipeUpToRecentsComplete() {
        RecentsActivity activity = getCreatedActivity();
        if (activity == null) {
            return;
        }
        RecentsView recentsView = activity.getOverviewPanel();
        recentsView.getClearAllButton().setVisibilityAlpha(1);
        recentsView.setDisallowScrollToClearAll(false);
    }

    @Override
    public void onAssistantVisibilityChanged(float visibility) {
        // This class becomes active when the screen is locked.
@@ -198,11 +188,14 @@ public final class FallbackActivityInterface implements
    }

    @Override
    public void onLaunchTaskSuccess() {
        RecentsActivity activity = getCreatedActivity();
        if (activity == null) {
            return;
    public void getMultiWindowSize(Context context, DeviceProfile dp, PointF out) {
        out.set(dp.widthPx, dp.heightPx);
    }
        activity.onTaskLaunched();

    @Override
    protected float getExtraSpace(Context context, DeviceProfile dp) {
        return showOverviewActions(context)
                ? context.getResources().getDimensionPixelSize(R.dimen.overview_actions_height)
                : 0;
    }
}
+1 −2
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import static com.android.quickstep.GestureState.GestureEndTarget.RECENTS;
import static com.android.quickstep.MultiStateCallback.DEBUG_STATES;
import static com.android.quickstep.RecentsActivity.EXTRA_TASK_ID;
import static com.android.quickstep.RecentsActivity.EXTRA_THUMBNAIL;
import static com.android.quickstep.util.WindowSizeStrategy.FALLBACK_RECENTS_SIZE_STRATEGY;
import static com.android.quickstep.views.RecentsView.UPDATE_SYSUI_FLAGS_THRESHOLD;

import android.animation.Animator;
@@ -114,7 +113,7 @@ public class FallbackSwipeHandler extends BaseSwipeUpHandler<RecentsActivity, Fa
    public FallbackSwipeHandler(Context context, RecentsAnimationDeviceState deviceState,
            GestureState gestureState, InputConsumerController inputConsumer,
            boolean isLikelyToStartNewTask, boolean continuingLastGesture) {
        super(context, deviceState, gestureState, inputConsumer, FALLBACK_RECENTS_SIZE_STRATEGY);
        super(context, deviceState, gestureState, inputConsumer);

        mInQuickSwitchMode = isLikelyToStartNewTask || continuingLastGesture;
        mContinuingLastGesture = continuingLastGesture;
Loading