From dbcc63edebe373d5f698e7d404eff83898a5b8b2 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Fri, 6 Mar 2020 15:35:55 -0800 Subject: [PATCH] Removing some autoboxing during property animation Change-Id: Ibd6f20c565a4d66dc6d606b3f0bbc96fec66fe56 --- .../appprediction/AppsDividerView.java | 3 +- .../quickstep/views/ClearAllButton.java | 10 +++--- .../BaseRecentsViewStateController.java | 11 +++--- .../android/launcher3/LauncherAnimUtils.java | 34 +++++++++++++------ .../WorkspaceStateTransitionAnimation.java | 15 ++++---- .../launcher3/allapps/FloatingHeaderView.java | 4 ++- .../launcher3/allapps/PluginHeaderRow.java | 5 +-- .../launcher3/anim/PropertySetter.java | 15 ++++---- src/com/android/launcher3/graphics/Scrim.java | 10 +++--- .../graphics/WorkspaceAndHotseatScrim.java | 14 ++++---- .../android/launcher3/views/ScrimView.java | 8 ++--- 11 files changed, 77 insertions(+), 52 deletions(-) diff --git a/quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/AppsDividerView.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/AppsDividerView.java index 425fb13990..ec46418949 100644 --- a/quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/AppsDividerView.java +++ b/quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/AppsDividerView.java @@ -16,6 +16,7 @@ package com.android.launcher3.appprediction; +import static com.android.launcher3.LauncherAnimUtils.VIEW_ALPHA; import static com.android.launcher3.LauncherState.ALL_APPS; import android.annotation.TargetApi; @@ -291,7 +292,7 @@ public class AppsDividerView extends View implements LauncherStateManager.StateL public void setContentVisibility(boolean hasHeaderExtra, boolean hasAllAppsContent, PropertySetter setter, Interpolator headerFade, Interpolator allAppsFade) { // Don't use setViewAlpha as we want to control the visibility ourselves. - setter.setFloat(this, ALPHA, hasAllAppsContent ? 1 : 0, allAppsFade); + setter.setFloat(this, VIEW_ALPHA, hasAllAppsContent ? 1 : 0, allAppsFade); } @Override diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/ClearAllButton.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/ClearAllButton.java index d0819c187b..763f5beb10 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/ClearAllButton.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/ClearAllButton.java @@ -18,7 +18,7 @@ package com.android.quickstep.views; import android.content.Context; import android.util.AttributeSet; -import android.util.Property; +import android.util.FloatProperty; import android.widget.Button; import com.android.launcher3.touch.PagedOrientationHandler; @@ -27,16 +27,16 @@ import com.android.quickstep.views.RecentsView.ScrollState; public class ClearAllButton extends Button implements PageCallbacks { - public static final Property VISIBILITY_ALPHA = - new Property(Float.class, "visibilityAlpha") { + public static final FloatProperty VISIBILITY_ALPHA = + new FloatProperty("visibilityAlpha") { @Override public Float get(ClearAllButton view) { return view.mVisibilityAlpha; } @Override - public void set(ClearAllButton view, Float visibilityAlpha) { - view.setVisibilityAlpha(visibilityAlpha); + public void setValue(ClearAllButton view, float v) { + view.setVisibilityAlpha(v); } }; diff --git a/quickstep/src/com/android/launcher3/uioverrides/BaseRecentsViewStateController.java b/quickstep/src/com/android/launcher3/uioverrides/BaseRecentsViewStateController.java index 7481445600..9b57fb7627 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/BaseRecentsViewStateController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/BaseRecentsViewStateController.java @@ -17,6 +17,9 @@ package com.android.launcher3.uioverrides; import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY; +import static com.android.launcher3.LauncherAnimUtils.VIEW_ALPHA; +import static com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_X; +import static com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_Y; import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_OVERVIEW_FADE; import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_OVERVIEW_SCALE; import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_OVERVIEW_SCRIM_FADE; @@ -116,8 +119,8 @@ public abstract class BaseRecentsViewStateController if (mRecentsView.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) { translationX = -translationX; } - setter.setFloat(mRecentsView, View.TRANSLATION_X, translationX, translateXInterpolator); - setter.setFloat(mRecentsView, View.TRANSLATION_Y, scaleAndTranslation.translationY, + setter.setFloat(mRecentsView, VIEW_TRANSLATE_X, translationX, translateXInterpolator); + setter.setFloat(mRecentsView, VIEW_TRANSLATE_Y, scaleAndTranslation.translationY, translateYInterpolator); setter.setFloat(mRecentsView, getContentAlphaProperty(), toState.overviewUi ? 1 : 0, builder.getInterpolator(ANIM_OVERVIEW_FADE, AGGRESSIVE_EASE_IN_OUT)); @@ -125,8 +128,8 @@ public abstract class BaseRecentsViewStateController setter.setFloat(scrim, SCRIM_PROGRESS, toState.getOverviewScrimAlpha(mLauncher), builder.getInterpolator(ANIM_OVERVIEW_SCRIM_FADE, LINEAR)); if (mActionsView != null) { - setter.setFloat(mActionsView, View.TRANSLATION_X, translationX, translateXInterpolator); - setter.setFloat(mActionsView, View.ALPHA, toState.overviewUi ? 1 : 0, + setter.setFloat(mActionsView, VIEW_TRANSLATE_X, translationX, translateXInterpolator); + setter.setFloat(mActionsView, VIEW_ALPHA, toState.overviewUi ? 1 : 0, builder.getInterpolator(ANIM_OVERVIEW_FADE, AGGRESSIVE_EASE_IN_OUT)); } } diff --git a/src/com/android/launcher3/LauncherAnimUtils.java b/src/com/android/launcher3/LauncherAnimUtils.java index 32e9c14b8e..d9cf7f19b3 100644 --- a/src/com/android/launcher3/LauncherAnimUtils.java +++ b/src/com/android/launcher3/LauncherAnimUtils.java @@ -18,7 +18,7 @@ package com.android.launcher3; import android.graphics.drawable.Drawable; import android.util.FloatProperty; -import android.util.Property; +import android.util.IntProperty; import android.view.View; import android.view.ViewGroup.LayoutParams; @@ -32,15 +32,15 @@ public class LauncherAnimUtils { // The progress of an animation to all apps must be at least this far along to snap to all apps. public static final float MIN_PROGRESS_TO_ALL_APPS = 0.5f; - public static final Property DRAWABLE_ALPHA = - new Property(Integer.TYPE, "drawableAlpha") { + public static final IntProperty DRAWABLE_ALPHA = + new IntProperty("drawableAlpha") { @Override public Integer get(Drawable drawable) { return drawable.getAlpha(); } @Override - public void set(Drawable drawable, Integer alpha) { + public void setValue(Drawable drawable, int alpha) { drawable.setAlpha(alpha); } }; @@ -64,28 +64,28 @@ public class LauncherAnimUtils { return (int) Utilities.boundToRange(Math.abs(velocity) / 2, 2f, 6f); } - public static final Property LAYOUT_WIDTH = - new Property(Integer.TYPE, "width") { + public static final IntProperty LAYOUT_WIDTH = + new IntProperty("width") { @Override public Integer get(LayoutParams lp) { return lp.width; } @Override - public void set(LayoutParams lp, Integer width) { + public void setValue(LayoutParams lp, int width) { lp.width = width; } }; - public static final Property LAYOUT_HEIGHT = - new Property(Integer.TYPE, "height") { + public static final IntProperty LAYOUT_HEIGHT = + new IntProperty("height") { @Override public Integer get(LayoutParams lp) { return lp.height; } @Override - public void set(LayoutParams lp, Integer height) { + public void setValue(LayoutParams lp, int height) { lp.height = height; } }; @@ -117,4 +117,18 @@ public class LauncherAnimUtils { return view.getTranslationY(); } }; + + public static final FloatProperty VIEW_ALPHA = + View.ALPHA instanceof FloatProperty ? (FloatProperty) View.ALPHA + : new FloatProperty("alpha") { + @Override + public void setValue(View view, float v) { + view.setAlpha(v); + } + + @Override + public Float get(View view) { + return view.getAlpha(); + } + }; } diff --git a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java index c33392d53d..388d07486d 100644 --- a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java +++ b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java @@ -18,6 +18,9 @@ package com.android.launcher3; import static com.android.launcher3.LauncherAnimUtils.DRAWABLE_ALPHA; import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY; +import static com.android.launcher3.LauncherAnimUtils.VIEW_ALPHA; +import static com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_X; +import static com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_Y; import static com.android.launcher3.LauncherState.HOTSEAT_ICONS; import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_HOTSEAT_SCALE; import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_HOTSEAT_TRANSLATE; @@ -125,18 +128,18 @@ public class WorkspaceStateTransitionAnimation { Interpolator translationInterpolator = !playAtomicComponent ? LINEAR : builder.getInterpolator(ANIM_WORKSPACE_TRANSLATE, ZOOM_OUT); - propertySetter.setFloat(mWorkspace, View.TRANSLATION_X, + propertySetter.setFloat(mWorkspace, VIEW_TRANSLATE_X, scaleAndTranslation.translationX, translationInterpolator); - propertySetter.setFloat(mWorkspace, View.TRANSLATION_Y, + propertySetter.setFloat(mWorkspace, VIEW_TRANSLATE_Y, scaleAndTranslation.translationY, translationInterpolator); Interpolator hotseatTranslationInterpolator = builder.getInterpolator( ANIM_HOTSEAT_TRANSLATE, translationInterpolator); - propertySetter.setFloat(hotseat, View.TRANSLATION_Y, + propertySetter.setFloat(hotseat, VIEW_TRANSLATE_Y, hotseatScaleAndTranslation.translationY, hotseatTranslationInterpolator); - propertySetter.setFloat(mWorkspace.getPageIndicator(), View.TRANSLATION_Y, + propertySetter.setFloat(mWorkspace.getPageIndicator(), VIEW_TRANSLATE_Y, hotseatScaleAndTranslation.translationY, hotseatTranslationInterpolator); - propertySetter.setFloat(qsbView, View.TRANSLATION_Y, + propertySetter.setFloat(qsbView, VIEW_TRANSLATE_Y, qsbScaleAndTranslation.translationY, hotseatTranslationInterpolator); setScrim(propertySetter, state); @@ -179,7 +182,7 @@ public class WorkspaceStateTransitionAnimation { if (config.playAtomicOverviewScaleComponent()) { Interpolator fadeInterpolator = builder.getInterpolator(ANIM_WORKSPACE_FADE, pageAlphaProvider.interpolator); - propertySetter.setFloat(cl.getShortcutsAndWidgets(), View.ALPHA, + propertySetter.setFloat(cl.getShortcutsAndWidgets(), VIEW_ALPHA, pageAlpha, fadeInterpolator); } } diff --git a/src/com/android/launcher3/allapps/FloatingHeaderView.java b/src/com/android/launcher3/allapps/FloatingHeaderView.java index cc33af993e..81e1b94acf 100644 --- a/src/com/android/launcher3/allapps/FloatingHeaderView.java +++ b/src/com/android/launcher3/allapps/FloatingHeaderView.java @@ -15,6 +15,8 @@ */ package com.android.launcher3.allapps; +import static com.android.launcher3.LauncherAnimUtils.VIEW_ALPHA; + import android.animation.ValueAnimator; import android.content.Context; import android.graphics.Point; @@ -370,7 +372,7 @@ public class FloatingHeaderView extends LinearLayout implements } allowTouchForwarding(hasAllAppsContent); - setter.setFloat(mTabLayout, ALPHA, hasAllAppsContent ? 1 : 0, headerFade); + setter.setFloat(mTabLayout, VIEW_ALPHA, hasAllAppsContent ? 1 : 0, headerFade); } protected void allowTouchForwarding(boolean allow) { diff --git a/src/com/android/launcher3/allapps/PluginHeaderRow.java b/src/com/android/launcher3/allapps/PluginHeaderRow.java index 535ef54bc9..3089b18150 100644 --- a/src/com/android/launcher3/allapps/PluginHeaderRow.java +++ b/src/com/android/launcher3/allapps/PluginHeaderRow.java @@ -15,10 +15,11 @@ */ package com.android.launcher3.allapps; -import static android.view.View.ALPHA; import static android.view.View.INVISIBLE; import static android.view.View.VISIBLE; +import static com.android.launcher3.LauncherAnimUtils.VIEW_ALPHA; + import android.graphics.Rect; import android.view.View; import android.view.animation.Interpolator; @@ -67,7 +68,7 @@ public class PluginHeaderRow implements FloatingHeaderRow { public void setContentVisibility(boolean hasHeaderExtra, boolean hasAllAppsContent, PropertySetter setter, Interpolator headerFade, Interpolator allAppsFade) { // Don't use setViewAlpha as we want to control the visibility ourselves. - setter.setFloat(mView, ALPHA, hasAllAppsContent ? 1 : 0, headerFade); + setter.setFloat(mView, VIEW_ALPHA, hasAllAppsContent ? 1 : 0, headerFade); } @Override diff --git a/src/com/android/launcher3/anim/PropertySetter.java b/src/com/android/launcher3/anim/PropertySetter.java index 757edff74d..0b2eb48675 100644 --- a/src/com/android/launcher3/anim/PropertySetter.java +++ b/src/com/android/launcher3/anim/PropertySetter.java @@ -19,7 +19,8 @@ package com.android.launcher3.anim; import android.animation.Animator; import android.animation.ObjectAnimator; import android.animation.TimeInterpolator; -import android.util.Property; +import android.util.FloatProperty; +import android.util.IntProperty; import android.view.View; /** @@ -36,14 +37,14 @@ public class PropertySetter { } } - public void setFloat(T target, Property property, float value, + public void setFloat(T target, FloatProperty property, float value, TimeInterpolator interpolator) { - property.set(target, value); + property.setValue(target, value); } - public void setInt(T target, Property property, int value, + public void setInt(T target, IntProperty property, int value, TimeInterpolator interpolator) { - property.set(target, value); + property.setValue(target, value); } public static class AnimatedPropertySetter extends PropertySetter { @@ -68,7 +69,7 @@ public class PropertySetter { } @Override - public void setFloat(T target, Property property, float value, + public void setFloat(T target, FloatProperty property, float value, TimeInterpolator interpolator) { if (property.get(target) == value) { return; @@ -79,7 +80,7 @@ public class PropertySetter { } @Override - public void setInt(T target, Property property, int value, + public void setInt(T target, IntProperty property, int value, TimeInterpolator interpolator) { if (property.get(target) == value) { return; diff --git a/src/com/android/launcher3/graphics/Scrim.java b/src/com/android/launcher3/graphics/Scrim.java index 67b2b6d019..f90962d5d1 100644 --- a/src/com/android/launcher3/graphics/Scrim.java +++ b/src/com/android/launcher3/graphics/Scrim.java @@ -19,7 +19,7 @@ package com.android.launcher3.graphics; import static com.android.launcher3.icons.GraphicsUtils.setColorAlphaBound; import android.graphics.Canvas; -import android.util.Property; +import android.util.FloatProperty; import android.view.View; import com.android.launcher3.Launcher; @@ -31,16 +31,16 @@ import com.android.launcher3.uioverrides.WallpaperColorInfo; public class Scrim implements View.OnAttachStateChangeListener, WallpaperColorInfo.OnChangeListener { - public static final Property SCRIM_PROGRESS = - new Property(Float.TYPE, "scrimProgress") { + public static final FloatProperty SCRIM_PROGRESS = + new FloatProperty("scrimProgress") { @Override public Float get(Scrim scrim) { return scrim.mScrimProgress; } @Override - public void set(Scrim scrim, Float value) { - scrim.setScrimProgress(value); + public void setValue(Scrim scrim, float v) { + scrim.setScrimProgress(v); } }; diff --git a/src/com/android/launcher3/graphics/WorkspaceAndHotseatScrim.java b/src/com/android/launcher3/graphics/WorkspaceAndHotseatScrim.java index 5a1dcab212..83349bc8f9 100644 --- a/src/com/android/launcher3/graphics/WorkspaceAndHotseatScrim.java +++ b/src/com/android/launcher3/graphics/WorkspaceAndHotseatScrim.java @@ -37,7 +37,7 @@ import android.graphics.Region; import android.graphics.Shader; import android.graphics.drawable.Drawable; import android.util.DisplayMetrics; -import android.util.Property; +import android.util.FloatProperty; import android.view.View; import androidx.core.graphics.ColorUtils; @@ -54,28 +54,28 @@ import com.android.launcher3.util.Themes; */ public class WorkspaceAndHotseatScrim extends Scrim { - public static final Property SYSUI_PROGRESS = - new Property(Float.TYPE, "sysUiProgress") { + public static final FloatProperty SYSUI_PROGRESS = + new FloatProperty("sysUiProgress") { @Override public Float get(WorkspaceAndHotseatScrim scrim) { return scrim.mSysUiProgress; } @Override - public void set(WorkspaceAndHotseatScrim scrim, Float value) { + public void setValue(WorkspaceAndHotseatScrim scrim, float value) { scrim.setSysUiProgress(value); } }; - private static final Property SYSUI_ANIM_MULTIPLIER = - new Property(Float.TYPE, "sysUiAnimMultiplier") { + private static final FloatProperty SYSUI_ANIM_MULTIPLIER = + new FloatProperty("sysUiAnimMultiplier") { @Override public Float get(WorkspaceAndHotseatScrim scrim) { return scrim.mSysUiAnimMultiplier; } @Override - public void set(WorkspaceAndHotseatScrim scrim, Float value) { + public void setValue(WorkspaceAndHotseatScrim scrim, float value) { scrim.mSysUiAnimMultiplier = value; scrim.reapplySysUiAlpha(); } diff --git a/src/com/android/launcher3/views/ScrimView.java b/src/com/android/launcher3/views/ScrimView.java index 70d6c7e6a8..6d204f6c5b 100644 --- a/src/com/android/launcher3/views/ScrimView.java +++ b/src/com/android/launcher3/views/ScrimView.java @@ -40,7 +40,7 @@ import android.graphics.RectF; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.util.AttributeSet; -import android.util.Property; +import android.util.IntProperty; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; @@ -80,8 +80,8 @@ import java.util.List; public class ScrimView extends View implements Insettable, OnChangeListener, AccessibilityStateChangeListener, StateListener { - public static final Property DRAG_HANDLE_ALPHA = - new Property(Integer.TYPE, "dragHandleAlpha") { + public static final IntProperty DRAG_HANDLE_ALPHA = + new IntProperty("dragHandleAlpha") { @Override public Integer get(ScrimView scrimView) { @@ -89,7 +89,7 @@ public class ScrimView extends View implements Insettable, O } @Override - public void set(ScrimView scrimView, Integer value) { + public void setValue(ScrimView scrimView, int value) { scrimView.setDragHandleAlpha(value); } };