summaryrefslogtreecommitdiff
path: root/core/java/android/view/WindowInsetsController.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/view/WindowInsetsController.java')
-rw-r--r--core/java/android/view/WindowInsetsController.java39
1 files changed, 32 insertions, 7 deletions
diff --git a/core/java/android/view/WindowInsetsController.java b/core/java/android/view/WindowInsetsController.java
index f292ca4facbf..3bb6cfbbd7f2 100644
--- a/core/java/android/view/WindowInsetsController.java
+++ b/core/java/android/view/WindowInsetsController.java
@@ -20,8 +20,11 @@ import static android.view.WindowInsets.Type.ime;
import android.annotation.IntDef;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.graphics.Insets;
import android.view.WindowInsets.Type.InsetsType;
+import android.view.WindowInsetsAnimationCallback.InsetsAnimation;
+import android.view.animation.Interpolator;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -148,29 +151,51 @@ public interface WindowInsetsController {
* the position of the windows in the system causing insets directly.
*
* @param types The {@link InsetsType}s the application has requested to control.
- * @param durationMillis duration of animation in
+ * @param durationMillis Duration of animation in
* {@link java.util.concurrent.TimeUnit#MILLISECONDS}, or -1 if the
- * animation doesn't have a predetermined duration.
+ * animation doesn't have a predetermined duration.T his value will be
+ * passed to {@link InsetsAnimation#getDurationMillis()}
+ * @param interpolator The interpolator used for this animation, or {@code null} if this
+ * animation doesn't follow an interpolation curve. This value will be
+ * passed to {@link InsetsAnimation#getInterpolator()} and used to calculate
+ * {@link InsetsAnimation#getInterpolatedFraction()}.
* @param listener The {@link WindowInsetsAnimationControlListener} that gets called when the
* windows are ready to be controlled, among other callbacks.
+ *
+ * @see InsetsAnimation#getFraction()
+ * @see InsetsAnimation#getInterpolatedFraction()
+ * @see InsetsAnimation#getInterpolator()
+ * @see InsetsAnimation#getDurationMillis()
* @hide
*/
void controlWindowInsetsAnimation(@InsetsType int types, long durationMillis,
+ @Nullable Interpolator interpolator,
@NonNull WindowInsetsAnimationControlListener listener);
/**
* Lets the application control the animation for showing the IME in a frame-by-frame manner by
* modifying the position of the IME when it's causing insets.
*
- * @param durationMillis duration of the animation in
+ * @param durationMillis Duration of the animation in
* {@link java.util.concurrent.TimeUnit#MILLISECONDS}, or -1 if the
- * animation doesn't have a predetermined duration.
+ * animation doesn't have a predetermined duration. This value will be
+ * passed to {@link InsetsAnimation#getDurationMillis()}
+ * @param interpolator The interpolator used for this animation, or {@code null} if this
+ * animation doesn't follow an interpolation curve. This value will be
+ * passed to {@link InsetsAnimation#getInterpolator()} and used to calculate
+ * {@link InsetsAnimation#getInterpolatedFraction()}.
* @param listener The {@link WindowInsetsAnimationControlListener} that gets called when the
* IME are ready to be controlled, among other callbacks.
+ *
+ * @see InsetsAnimation#getFraction()
+ * @see InsetsAnimation#getInterpolatedFraction()
+ * @see InsetsAnimation#getInterpolator()
+ * @see InsetsAnimation#getDurationMillis()
*/
default void controlInputMethodAnimation(long durationMillis,
+ @Nullable Interpolator interpolator,
@NonNull WindowInsetsAnimationControlListener listener) {
- controlWindowInsetsAnimation(ime(), durationMillis, listener);
+ controlWindowInsetsAnimation(ime(), durationMillis, interpolator, listener);
}
/**
@@ -181,7 +206,7 @@ public interface WindowInsetsController {
* the event by observing {@link View#onApplyWindowInsets} and checking visibility with
* {@link WindowInsets#isVisible}.
*
- * @see #controlInputMethodAnimation(long, WindowInsetsAnimationControlListener)
+ * @see #controlInputMethodAnimation
* @see #hideInputMethod()
*/
default void showInputMethod() {
@@ -196,7 +221,7 @@ public interface WindowInsetsController {
* the event by observing {@link View#onApplyWindowInsets} and checking visibility with
* {@link WindowInsets#isVisible}.
*
- * @see #controlInputMethodAnimation(long, WindowInsetsAnimationControlListener)
+ * @see #controlInputMethodAnimation
* @see #showInputMethod()
*/
default void hideInputMethod() {