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

Commit f8b45dd3 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Add willShowImeOnTarget in RemoteAnimationTarget(Compat)" into...

Merge "Add willShowImeOnTarget in RemoteAnimationTarget(Compat)" into tm-qpr-dev am: 5c0ba8f0 am: 442b26f3

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19395267



Change-Id: Icc7c12431ee12ca8046702a25bce06b34a2d0f2e
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 15fe3b5b 442b26f3
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.proto.ProtoOutputStream;
import android.window.TaskSnapshot;

import java.io.PrintWriter;
import java.lang.annotation.Retention;
@@ -234,6 +235,12 @@ public class RemoteAnimationTarget implements Parcelable {
     */
    public @ColorInt int backgroundColor;

    /**
     * Whether the activity is going to show IME on the target window after the app transition.
     * @see TaskSnapshot#hasImeSurface() that used the task snapshot during animating task.
     */
    public boolean willShowImeOnTarget;

    public RemoteAnimationTarget(int taskId, int mode, SurfaceControl leash, boolean isTranslucent,
            Rect clipRect, Rect contentInsets, int prefixOrderIndex, Point position,
            Rect localBounds, Rect screenSpaceBounds,
@@ -294,12 +301,21 @@ public class RemoteAnimationTarget implements Parcelable {
        hasAnimatingParent = in.readBoolean();
        backgroundColor = in.readInt();
        showBackdrop = in.readBoolean();
        willShowImeOnTarget = in.readBoolean();
    }

    public void setShowBackdrop(boolean shouldShowBackdrop) {
        showBackdrop = shouldShowBackdrop;
    }

    public void setWillShowImeOnTarget(boolean showImeOnTarget) {
        willShowImeOnTarget = showImeOnTarget;
    }

    public boolean willShowImeOnTarget() {
        return willShowImeOnTarget;
    }

    @Override
    public int describeContents() {
        return 0;
@@ -328,6 +344,7 @@ public class RemoteAnimationTarget implements Parcelable {
        dest.writeBoolean(hasAnimatingParent);
        dest.writeInt(backgroundColor);
        dest.writeBoolean(showBackdrop);
        dest.writeBoolean(willShowImeOnTarget);
    }

    public void dump(PrintWriter pw, String prefix) {
@@ -350,6 +367,7 @@ public class RemoteAnimationTarget implements Parcelable {
        pw.print(prefix); pw.print("hasAnimatingParent="); pw.print(hasAnimatingParent);
        pw.print(prefix); pw.print("backgroundColor="); pw.print(backgroundColor);
        pw.print(prefix); pw.print("showBackdrop="); pw.print(showBackdrop);
        pw.print(prefix); pw.print("willShowImeOnTarget="); pw.print(willShowImeOnTarget);
    }

    public void dumpDebug(ProtoOutputStream proto, long fieldId) {
+5 −1
Original line number Diff line number Diff line
@@ -116,6 +116,9 @@ public final class TransitionInfo implements Parcelable {
    /** The first unused bit. This can be used by remotes to attach custom flags to this change. */
    public static final int FLAG_FIRST_CUSTOM = 1 << 10;

    /** The container is going to show IME on its task after the transition. */
    public static final int FLAG_WILL_IME_SHOWN = 1 << 11;

    /** @hide */
    @IntDef(prefix = { "FLAG_" }, value = {
            FLAG_NONE,
@@ -129,7 +132,8 @@ public final class TransitionInfo implements Parcelable {
            FLAG_DISPLAY_HAS_ALERT_WINDOWS,
            FLAG_IS_INPUT_METHOD,
            FLAG_IS_EMBEDDED,
            FLAG_FIRST_CUSTOM
            FLAG_FIRST_CUSTOM,
            FLAG_WILL_IME_SHOWN
    })
    public @interface ChangeFlags {}

+7 −2
Original line number Diff line number Diff line
@@ -79,6 +79,8 @@ public class RemoteAnimationTargetCompat {
    // Fields used only to unrap into RemoteAnimationTarget
    private final Rect startBounds;

    public final boolean willShowImeOnTarget;

    public RemoteAnimationTargetCompat(RemoteAnimationTarget app) {
        taskId = app.taskId;
        mode = app.mode;
@@ -102,6 +104,7 @@ public class RemoteAnimationTargetCompat {
        windowType = app.windowType;
        windowConfiguration = app.windowConfiguration;
        startBounds = app.startBounds;
        willShowImeOnTarget = app.willShowImeOnTarget;
    }

    private static int newModeToLegacyMode(int newMode) {
@@ -118,14 +121,15 @@ public class RemoteAnimationTargetCompat {
    }

    public RemoteAnimationTarget unwrap() {
        return new RemoteAnimationTarget(
        final RemoteAnimationTarget target = new RemoteAnimationTarget(
                taskId, mode, leash, isTranslucent, clipRect, contentInsets,
                prefixOrderIndex, position, localBounds, screenSpaceBounds, windowConfiguration,
                isNotInRecents, mStartLeash, startBounds, taskInfo, allowEnterPip, windowType
        );
        target.setWillShowImeOnTarget(willShowImeOnTarget);
        return target;
    }


    /**
     * Almost a copy of Transitions#setupStartState.
     * TODO: remove when there is proper cross-process transaction sync.
@@ -234,6 +238,7 @@ public class RemoteAnimationTargetCompat {
            ? change.getTaskInfo().configuration.windowConfiguration
            : new WindowConfiguration();
        startBounds = change.getStartAbsBounds();
        willShowImeOnTarget = (change.getFlags() & TransitionInfo.FLAG_WILL_IME_SHOWN) != 0;
    }

    public static RemoteAnimationTargetCompat[] wrap(RemoteAnimationTarget[] apps) {
+1 −0
Original line number Diff line number Diff line
@@ -9744,6 +9744,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
                record.mThumbnailAdapter != null ? record.mThumbnailAdapter.mCapturedLeash : null,
                record.mStartBounds, task.getTaskInfo(), checkEnterPictureInPictureAppOpsState());
        target.setShowBackdrop(record.mShowBackdrop);
        target.setWillShowImeOnTarget(mStartingData != null && mStartingData.hasImeSurface());
        target.hasAnimatingParent = record.hasAnimatingParent();
        return target;
    }
+6 −0
Original line number Diff line number Diff line
@@ -1183,6 +1183,12 @@ public class RecentsAnimationController implements DeathRecipient {
                    mLocalBounds, mBounds, mTask.getWindowConfiguration(),
                    mIsRecentTaskInvisible, null, null, mTask.getTaskInfo(),
                    topApp.checkEnterPictureInPictureAppOpsState());

            final ActivityRecord topActivity = mTask.getTopNonFinishingActivity();
            if (topActivity != null && topActivity.mStartingData != null
                    && topActivity.mStartingData.hasImeSurface()) {
                mTarget.setWillShowImeOnTarget(true);
            }
            return mTarget;
        }

Loading