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

Commit e08dd1b6 authored by Taran Singh's avatar Taran Singh Committed by Android (Google) Code Review
Browse files

Merge "Allow floating IME to apply final state."

parents 4f27cd6f 95a3dbf0
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package android.view;

import static android.view.InsetsState.INSET_SIDE_BOTTOM;
import static android.view.InsetsState.INSET_SIDE_FLOATING;
import static android.view.InsetsState.INSET_SIDE_LEFT;
import static android.view.InsetsState.INSET_SIDE_RIGHT;
import static android.view.InsetsState.INSET_SIDE_TOP;
@@ -151,6 +152,8 @@ public class InsetsAnimationControlImpl implements WindowInsetsAnimationControll
        updateLeashesForSide(INSET_SIDE_RIGHT, offset.right, mPendingInsets.right, params, state);
        updateLeashesForSide(INSET_SIDE_BOTTOM, offset.bottom, mPendingInsets.bottom, params,
                state);
        updateLeashesForSide(INSET_SIDE_FLOATING, 0 /* offset */, 0 /* inset */, params, state);

        SyncRtSurfaceTransactionApplier applier = mTransactionApplierSupplier.get();
        applier.scheduleApply(params.toArray(new SurfaceParams[params.size()]));
        mCurrentInsets = mPendingInsets;
@@ -238,7 +241,9 @@ public class InsetsAnimationControlImpl implements WindowInsetsAnimationControll
            // If the system is controlling the insets source, the leash can be null.
            if (leash != null) {
                surfaceParams.add(new SurfaceParams(leash, 1f /* alpha */, mTmpMatrix,
                        null /* windowCrop */, 0 /* layer */, 0f /* cornerRadius*/, inset != 0));
                        null /* windowCrop */, 0 /* layer */, 0f /* cornerRadius*/,
                        side == INSET_SIDE_FLOATING
                                ? consumer.isVisible() : inset != 0 /* visible */));
            }
        }
    }
+8 −3
Original line number Diff line number Diff line
@@ -109,6 +109,7 @@ public class InsetsState implements Parcelable {
            INSET_SIDE_TOP,
            INSET_SIDE_RIGHT,
            INSET_SIDE_BOTTOM,
            INSET_SIDE_FLOATING,
            INSET_SIDE_UNKNWON
    })
    public @interface InsetSide {}
@@ -116,7 +117,8 @@ public class InsetsState implements Parcelable {
    static final int INSET_SIDE_TOP = 1;
    static final int INSET_SIDE_RIGHT = 2;
    static final int INSET_SIDE_BOTTOM = 3;
    static final int INSET_SIDE_UNKNWON = 4;
    static final int INSET_SIDE_FLOATING = 4;
    static final int INSET_SIDE_UNKNWON = 5;

    private final ArrayMap<Integer, InsetsSource> mSources = new ArrayMap<>();

@@ -224,10 +226,10 @@ public class InsetsState implements Parcelable {
            typeVisibilityMap[index] = source.isVisible();
        }

        if (typeSideMap != null && !Insets.NONE.equals(insets)) {
        if (typeSideMap != null) {
            @InsetSide int insetSide = getInsetSide(insets);
            if (insetSide != INSET_SIDE_UNKNWON) {
                typeSideMap.put(source.getType(), getInsetSide(insets));
                typeSideMap.put(source.getType(), insetSide);
            }
        }
    }
@@ -237,6 +239,9 @@ public class InsetsState implements Parcelable {
     * is set in order that this method returns a meaningful result.
     */
    private @InsetSide int getInsetSide(Insets insets) {
        if (Insets.NONE.equals(insets)) {
            return INSET_SIDE_FLOATING;
        }
        if (insets.left != 0) {
            return INSET_SIDE_LEFT;
        }