Loading packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputController.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -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); Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -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 Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java +28 −0 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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; Loading @@ -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; /** /** Loading Loading @@ -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() { Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputController.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -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); Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -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 Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java +28 −0 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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; Loading @@ -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; /** /** Loading Loading @@ -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() { Loading