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

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

Merge "Remove remote input after ime insets animation end" into sc-dev am: 75bd2f33

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I589992ef533b2283e25ec3c53506b214427fd3b0
parents 48078f9a 75bd2f33
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -131,6 +131,7 @@ public class RemoteInputController {
     */
    public void removeRemoteInput(NotificationEntry entry, Object token) {
        Objects.requireNonNull(entry);
        if (entry.mRemoteEditImeVisible) return;

        pruneWeakThenRemoveAndContains(null /* contains */, entry /* remove */, token);

+2 −0
Original line number Diff line number Diff line
@@ -179,6 +179,8 @@ public final class NotificationEntry extends ListEntry {
    private boolean mShelfIconVisible;
    private boolean mIsAlerting;

    public boolean mRemoteEditImeVisible;

    /**
     * @param sbn the StatusBarNotification from system server
     * @param ranking also from system server
+28 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.systemui.statusbar.policy;

import static android.view.WindowInsetsAnimation.Callback.DISPATCH_MODE_STOP;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.annotation.Nullable;
@@ -50,6 +52,8 @@ import android.view.OnReceiveContentListener;
import android.view.View;
import android.view.ViewAnimationUtils;
import android.view.ViewGroup;
import android.view.WindowInsets;
import android.view.WindowInsetsAnimation;
import android.view.accessibility.AccessibilityEvent;
import android.view.inputmethod.CompletionInfo;
import android.view.inputmethod.EditorInfo;
@@ -61,6 +65,8 @@ import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;

import androidx.annotation.NonNull;

import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.statusbar.IStatusBarService;
@@ -76,6 +82,7 @@ import com.android.systemui.statusbar.phone.LightBarController;

import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.function.Consumer;

/**
@@ -135,6 +142,27 @@ public class RemoteInputView extends LinearLayout implements View.OnClickListene

        mEditText = (RemoteEditText) getChildAt(0);
        mEditText.setInnerFocusable(false);
        mEditText.setWindowInsetsAnimationCallback(
                new WindowInsetsAnimation.Callback(DISPATCH_MODE_STOP) {
            @NonNull
            @Override
            public WindowInsets onProgress(@NonNull WindowInsets insets,
                    @NonNull List<WindowInsetsAnimation> runningAnimations) {
                return insets;
            }

            @Override
            public void onEnd(@NonNull WindowInsetsAnimation animation) {
                super.onEnd(animation);
                if (animation.getTypeMask() == WindowInsets.Type.ime()) {
                    mEntry.mRemoteEditImeVisible =
                            mEditText.getRootWindowInsets().isVisible(WindowInsets.Type.ime());
                    if (!mEntry.mRemoteEditImeVisible && !mEditText.mShowImeOnInputConnection) {
                        mController.removeRemoteInput(mEntry, mToken);
                    }
                }
            }
        });
    }

    protected Intent prepareRemoteInputFromText() {