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

Commit 063024d5 authored by Sunny Goyal's avatar Sunny Goyal Committed by Automerger Merge Worker
Browse files

Merge "Fixing Launcher crash if activity restarts while resixing widget" into...

Merge "Fixing Launcher crash if activity restarts while resixing widget" into tm-qpr-dev am: 615f2edb am: e8cff043

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/19281892



Change-Id: I05998fb5a458feb2085449774cb07c34d0363943
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents bf7df8e7 e8cff043
Loading
Loading
Loading
Loading
+6 −24
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;

@@ -68,22 +69,6 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O

    private final View[] mDragHandles = new View[HANDLE_COUNT];
    private final List<Rect> mSystemGestureExclusionRects = new ArrayList<>(HANDLE_COUNT);
    private final OnAttachStateChangeListener mWidgetViewAttachStateChangeListener =
            new OnAttachStateChangeListener() {
                @Override
                public void onViewAttachedToWindow(View view) {
                    // Do nothing
                }

                @Override
                public void onViewDetachedFromWindow(View view) {
                    // When the app widget view is detached, we should close the resize frame.
                    // An example is when the dragging starts, the widget view is detached from
                    // CellLayout and then reattached to DragLayout.
                    close(false);
                }
            };


    private LauncherAppWidgetHostView mWidgetView;
    private CellLayout mCellLayout;
@@ -221,11 +206,7 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O
    private void setupForWidget(LauncherAppWidgetHostView widgetView, CellLayout cellLayout,
            DragLayer dragLayer) {
        mCellLayout = cellLayout;
        if (mWidgetView != null) {
            mWidgetView.removeOnAttachStateChangeListener(mWidgetViewAttachStateChangeListener);
        }
        mWidgetView = widgetView;
        mWidgetView.addOnAttachStateChangeListener(mWidgetViewAttachStateChangeListener);
        LauncherAppWidgetProviderInfo info = (LauncherAppWidgetProviderInfo)
                widgetView.getAppWidgetInfo();
        mDragLayer = dragLayer;
@@ -423,6 +404,10 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O
     *  Based on the current deltas, we determine if and how to resize the widget.
     */
    private void resizeWidgetIfNeeded(boolean onDismiss) {
        ViewGroup.LayoutParams wlp = mWidgetView.getLayoutParams();
        if (!(wlp instanceof CellLayout.LayoutParams)) {
            return;
        }
        DeviceProfile dp = mLauncher.getDeviceProfile();
        float xThreshold = mCellLayout.getCellWidth() + dp.cellLayoutBorderSpacePx.x;
        float yThreshold = mCellLayout.getCellHeight() + dp.cellLayoutBorderSpacePx.y;
@@ -435,7 +420,7 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O
        mDirectionVector[0] = 0;
        mDirectionVector[1] = 0;

        CellLayout.LayoutParams lp = (CellLayout.LayoutParams) mWidgetView.getLayoutParams();
        CellLayout.LayoutParams lp = (CellLayout.LayoutParams) wlp;

        int spanX = lp.cellHSpan;
        int spanY = lp.cellVSpan;
@@ -687,9 +672,6 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O
    @Override
    protected void handleClose(boolean animate) {
        mDragLayer.removeView(this);
        if (mWidgetView != null) {
            mWidgetView.removeOnAttachStateChangeListener(mWidgetViewAttachStateChangeListener);
        }
    }

    private void updateInvalidResizeEffect(CellLayout cellLayout, CellLayout pairedCellLayout,