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

Commit 75bd2f33 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Remove remote input after ime insets animation end" into sc-dev

parents 441720ac 18852f42
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -131,6 +131,7 @@ public class RemoteInputController {
     */
     */
    public void removeRemoteInput(NotificationEntry entry, Object token) {
    public void removeRemoteInput(NotificationEntry entry, Object token) {
        Objects.requireNonNull(entry);
        Objects.requireNonNull(entry);
        if (entry.mRemoteEditImeVisible) return;


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


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


    public boolean mRemoteEditImeVisible;

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


package com.android.systemui.statusbar.policy;
package com.android.systemui.statusbar.policy;


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

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


import androidx.annotation.NonNull;

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


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


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


        mEditText = (RemoteEditText) getChildAt(0);
        mEditText = (RemoteEditText) getChildAt(0);
        mEditText.setInnerFocusable(false);
        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() {
    protected Intent prepareRemoteInputFromText() {