Merge "Move call to hide IME until next frame" into tm-dev

This commit is contained in:
Peter Kalauskas
2022-05-14 05:28:42 +00:00
committed by Android (Google) Code Review

View File

@@ -32,6 +32,7 @@ import android.animation.ValueAnimator;
import android.content.Context; import android.content.Context;
import android.graphics.Insets; import android.graphics.Insets;
import android.graphics.Rect; import android.graphics.Rect;
import android.os.Trace;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.WindowInsetsAnimationControlListener; import android.view.WindowInsetsAnimationControlListener;
import android.view.WindowInsetsAnimationController; import android.view.WindowInsetsAnimationController;
@@ -44,6 +45,7 @@ import androidx.annotation.Nullable;
import com.android.internal.widget.LockscreenCredential; import com.android.internal.widget.LockscreenCredential;
import com.android.internal.widget.TextViewInputDisabler; import com.android.internal.widget.TextViewInputDisabler;
import com.android.systemui.DejankUtils;
import com.android.systemui.R; import com.android.systemui.R;
import com.android.systemui.animation.Interpolators; import com.android.systemui.animation.Interpolators;
/** /**
@@ -194,9 +196,17 @@ public class KeyguardPasswordView extends KeyguardAbsKeyInputView {
@Override @Override
public void onAnimationEnd(Animator animation) { public void onAnimationEnd(Animator animation) {
// Run this in the next frame since it results in a slow binder call
// to InputMethodManager#hideSoftInput()
DejankUtils.postAfterTraversal(() -> {
Trace.beginSection("KeyguardPasswordView#onAnimationEnd");
// // TODO(b/230620476): Make hideSoftInput oneway
// controller.finish() eventually calls hideSoftInput
controller.finish(false); controller.finish(false);
runOnFinishImeAnimationRunnable(); runOnFinishImeAnimationRunnable();
finishRunnable.run(); finishRunnable.run();
Trace.endSection();
});
} }
}); });
anim.setInterpolator(Interpolators.FAST_OUT_LINEAR_IN); anim.setInterpolator(Interpolators.FAST_OUT_LINEAR_IN);