diff options
| author | 2022-01-27 22:45:47 +0000 | |
|---|---|---|
| committer | 2022-01-27 22:45:47 +0000 | |
| commit | 5ff99b87c50948e37394d5c769ce9173f5c7028b (patch) | |
| tree | 6dab44aeb37b57ed02b561551982b45080a4058b | |
| parent | 15ceb0bb37c3248dc1438043e28c07615a8a07df (diff) | |
| parent | 912b87abee7676acd5317f82dbaeec6f0823d656 (diff) | |
Merge "Avoid reflection with ObjectAnimator"
3 files changed, 48 insertions, 3 deletions
diff --git a/core/java/android/inputmethodservice/navigationbar/DeadZone.java b/core/java/android/inputmethodservice/navigationbar/DeadZone.java index cd857369bc5a..4adc84bf0b6f 100644 --- a/core/java/android/inputmethodservice/navigationbar/DeadZone.java +++ b/core/java/android/inputmethodservice/navigationbar/DeadZone.java @@ -27,6 +27,7 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Canvas; import android.os.SystemClock; +import android.util.FloatProperty; import android.util.Log; import android.view.MotionEvent; import android.view.Surface; @@ -46,6 +47,20 @@ final class DeadZone { public static final int VERTICAL = 1; // Consume taps along the left edge. private static final boolean CHATTY = true; // print to logcat when we eat a click + + private static final FloatProperty<DeadZone> FLASH_PROPERTY = + new FloatProperty<DeadZone>("DeadZoneFlash") { + @Override + public void setValue(DeadZone object, float value) { + object.setFlash(value); + } + + @Override + public Float get(DeadZone object) { + return object.getFlash(); + } + }; + private final NavigationBarView mNavigationBarView; private boolean mShouldFlash; @@ -63,7 +78,7 @@ final class DeadZone { private final Runnable mDebugFlash = new Runnable() { @Override public void run() { - ObjectAnimator.ofFloat(DeadZone.this, "flash", 1f, 0f).setDuration(150).start(); + ObjectAnimator.ofFloat(DeadZone.this, FLASH_PROPERTY, 1f, 0f).setDuration(150).start(); } }; diff --git a/packages/SystemUI/src/com/android/systemui/ExpandHelper.java b/packages/SystemUI/src/com/android/systemui/ExpandHelper.java index 0b967b7c5e67..f00615bc0fe6 100644 --- a/packages/SystemUI/src/com/android/systemui/ExpandHelper.java +++ b/packages/SystemUI/src/com/android/systemui/ExpandHelper.java @@ -23,6 +23,7 @@ import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.content.Context; +import android.util.FloatProperty; import android.util.Log; import android.view.Gravity; import android.view.HapticFeedbackConstants; @@ -69,6 +70,19 @@ public class ExpandHelper implements Gefingerpoken { // 2f: maximum brightness is stretching a 1U to 3U, or a 4U to 6U private static final float STRETCH_INTERVAL = 2f; + private static final FloatProperty<ViewScaler> VIEW_SCALER_HEIGHT_PROPERTY = + new FloatProperty<ViewScaler>("ViewScalerHeight") { + @Override + public void setValue(ViewScaler object, float value) { + object.setHeight(value); + } + + @Override + public Float get(ViewScaler object) { + return object.getHeight(); + } + }; + @SuppressWarnings("unused") private Context mContext; @@ -147,6 +161,7 @@ public class ExpandHelper implements Gefingerpoken { public void setView(ExpandableView v) { mView = v; } + public void setHeight(float h) { if (DEBUG_SCALE) Log.v(TAG, "SetHeight: setting to " + h); mView.setActualHeight((int) h); @@ -176,7 +191,7 @@ public class ExpandHelper implements Gefingerpoken { mCallback = callback; mScaler = new ViewScaler(); mGravity = Gravity.TOP; - mScaleAnimation = ObjectAnimator.ofFloat(mScaler, "height", 0f); + mScaleAnimation = ObjectAnimator.ofFloat(mScaler, VIEW_SCALER_HEIGHT_PROPERTY, 0f); mPullGestureMinXSpan = mContext.getResources().getDimension(R.dimen.pull_span_min); final ViewConfiguration configuration = ViewConfiguration.get(mContext); diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/DeadZone.java b/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/DeadZone.java index 7e5b5548237b..7fb58f0d8fc6 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/DeadZone.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/DeadZone.java @@ -20,6 +20,7 @@ import android.animation.ObjectAnimator; import android.content.res.Resources; import android.graphics.Canvas; import android.os.SystemClock; +import android.util.FloatProperty; import android.util.Slog; import android.view.MotionEvent; import android.view.Surface; @@ -44,6 +45,20 @@ public class DeadZone { public static final int VERTICAL = 1; // Consume taps along the left edge. private static final boolean CHATTY = true; // print to logcat when we eat a click + + private static final FloatProperty<DeadZone> FLASH_PROPERTY = + new FloatProperty<DeadZone>("DeadZoneFlash") { + @Override + public void setValue(DeadZone object, float value) { + object.setFlash(value); + } + + @Override + public Float get(DeadZone object) { + return object.getFlash(); + } + }; + private final NavigationBarController mNavBarController; private final NavigationBarView mNavigationBarView; @@ -63,7 +78,7 @@ public class DeadZone { private final Runnable mDebugFlash = new Runnable() { @Override public void run() { - ObjectAnimator.ofFloat(DeadZone.this, "flash", 1f, 0f).setDuration(150).start(); + ObjectAnimator.ofFloat(DeadZone.this, FLASH_PROPERTY, 1f, 0f).setDuration(150).start(); } }; |