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

Commit 6fe7df3f authored by Steven Ng's avatar Steven Ng
Browse files

Fix WidgetsBottomSheet inset bug after orientation change

Reset the inset upon orientation change

Test: Open bottom widgets picker. Rotate the screen from portrait
      to landscape and then back to portrait. Observe the correct
      inset is set.
Bug: 183601302
Change-Id: I88432a49b2601df843fe33911fd7acdde66d06c4
parent a7fc3ee4
Loading
Loading
Loading
Loading
+11 −0
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@ import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN;


import android.animation.PropertyValuesHolder;
import android.animation.PropertyValuesHolder;
import android.content.Context;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Rect;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.util.AttributeSet;
import android.util.IntProperty;
import android.util.IntProperty;
@@ -71,6 +72,7 @@ public class WidgetsBottomSheet extends BaseWidgetSheet implements Insettable {
    private Rect mInsets;
    private Rect mInsets;
    private final int mMaxTableHeight;
    private final int mMaxTableHeight;
    private int mMaxHorizontalSpan = 4;
    private int mMaxHorizontalSpan = 4;
    private Configuration mCurrentConfiguration;


    public WidgetsBottomSheet(Context context, AttributeSet attrs) {
    public WidgetsBottomSheet(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
        this(context, attrs, 0);
@@ -85,6 +87,7 @@ public class WidgetsBottomSheet extends BaseWidgetSheet implements Insettable {
        // Set the max table height to 2 / 3 of the grid height so that the bottom picker won't
        // Set the max table height to 2 / 3 of the grid height so that the bottom picker won't
        // take over the entire view vertically.
        // take over the entire view vertically.
        mMaxTableHeight = deviceProfile.inv.numRows * 2 / 3  * deviceProfile.cellHeightPx;
        mMaxTableHeight = deviceProfile.inv.numRows * 2 / 3  * deviceProfile.cellHeightPx;
        mCurrentConfiguration = new Configuration(getResources().getConfiguration());
    }
    }


    @Override
    @Override
@@ -211,6 +214,14 @@ public class WidgetsBottomSheet extends BaseWidgetSheet implements Insettable {
        setPadding(leftInset, getPaddingTop(), rightInset, bottomInset);
        setPadding(leftInset, getPaddingTop(), rightInset, bottomInset);
    }
    }


    @Override
    protected void onConfigurationChanged(Configuration newConfig) {
        if (mCurrentConfiguration.orientation != newConfig.orientation) {
            mInsets.setEmpty();
        }
        mCurrentConfiguration.updateFrom(newConfig);
    }

    @Override
    @Override
    protected Pair<View, String> getAccessibilityTarget() {
    protected Pair<View, String> getAccessibilityTarget() {
        return Pair.create(findViewById(R.id.title),  getContext().getString(
        return Pair.create(findViewById(R.id.title),  getContext().getString(