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

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

Merge "Listen for overlay package changes to update the movement bounds"

parents 81b5e44d 778f404a
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import android.util.DisplayMetrics;
import android.util.Log;
import android.util.Size;
import android.util.TypedValue;
import android.view.Display;
import android.view.DisplayInfo;
import android.view.Gravity;
import android.window.WindowContainerTransaction;
@@ -60,7 +61,7 @@ public class PipBoundsHandler {
    private final PipSnapAlgorithm mSnapAlgorithm;
    private final DisplayInfo mDisplayInfo = new DisplayInfo();
    private final DisplayController mDisplayController;
    private final DisplayLayout mDisplayLayout;
    private DisplayLayout mDisplayLayout;

    private ComponentName mLastPipComponentName;
    private float mReentrySnapFraction = INVALID_SNAP_FRACTION;
@@ -288,6 +289,10 @@ public class PipBoundsHandler {
        return mDefaultAspectRatio;
    }

    public void onOverlayChanged(Context context, Display display) {
        mDisplayLayout = new DisplayLayout(context, display);
    }

    /**
     * Updatest the display info and display layout on rotation change. This is needed even when we
     * aren't in PIP because the rotation layout is used to calculate the proper insets for the
+19 −1
Original line number Diff line number Diff line
@@ -53,10 +53,12 @@ import com.android.systemui.shared.system.InputConsumerController;
import com.android.systemui.shared.system.PinnedStackListenerForwarder.PinnedStackListener;
import com.android.systemui.shared.system.TaskStackChangeListener;
import com.android.systemui.shared.system.WindowManagerWrapper;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.util.DeviceConfigProxy;
import com.android.systemui.util.FloatingContentCoordinator;
import com.android.systemui.wm.DisplayChangeController;
import com.android.systemui.wm.DisplayController;
import com.android.systemui.wm.DisplayLayout;

import java.io.PrintWriter;

@@ -234,6 +236,19 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
        }
    }

    public ConfigurationController.ConfigurationListener mOverlayChangedListener =
            new ConfigurationController.ConfigurationListener() {
        @Override
        public void onOverlayChanged() {
            mHandler.post(() -> {
                mPipBoundsHandler.onOverlayChanged(mContext, mContext.getDisplay());
                updateMovementBounds(null /* toBounds */,
                        false /* fromRotation */, false /* fromImeAdjustment */,
                        false /* fromShelfAdjustment */, null /* windowContainerTransaction */);
            });
        }
    };

    @Inject
    public PipManager(Context context, BroadcastDispatcher broadcastDispatcher,
            DisplayController displayController,
@@ -242,7 +257,8 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
            PipBoundsHandler pipBoundsHandler,
            PipSnapAlgorithm pipSnapAlgorithm,
            PipTaskOrganizer pipTaskOrganizer,
            SysUiState sysUiState) {
            SysUiState sysUiState,
            ConfigurationController configController) {
        mContext = context;
        mActivityManager = ActivityManager.getService();

@@ -275,6 +291,8 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
        context.getDisplay().getDisplayInfo(displayInfo);
        mPipBoundsHandler.onDisplayInfoChanged(displayInfo);

        configController.addCallback(mOverlayChangedListener);

        try {
            mPipTaskOrganizer.registerOrganizer(WINDOWING_MODE_PINNED);
            ActivityManager.StackInfo stackInfo = ActivityTaskManager.getService().getStackInfo(