diff options
-rw-r--r-- | src/com/android/launcher3/FastBitmapDrawable.java | 6 | ||||
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 46 |
2 files changed, 30 insertions, 22 deletions
diff --git a/src/com/android/launcher3/FastBitmapDrawable.java b/src/com/android/launcher3/FastBitmapDrawable.java index ea623f765..847a8e1bc 100644 --- a/src/com/android/launcher3/FastBitmapDrawable.java +++ b/src/com/android/launcher3/FastBitmapDrawable.java @@ -27,12 +27,18 @@ import android.graphics.drawable.Drawable; class FastBitmapDrawable extends Drawable { private Bitmap mBitmap; private int mAlpha; + private int mWidth; + private int mHeight; private final Paint mPaint = new Paint(Paint.FILTER_BITMAP_FLAG); FastBitmapDrawable(Bitmap b) { mAlpha = 255; mBitmap = b; + if (b != null) { setBounds(0, 0, b.getWidth(), b.getHeight()); + } else { + mWidth = mHeight = 0; + } } @Override diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 181b65328..26f14d3ae 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -31,7 +31,6 @@ import android.appwidget.AppWidgetHostView; import android.appwidget.AppWidgetProviderInfo; import android.content.ComponentName; import android.content.Context; -import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Resources; import android.content.res.TypedArray; @@ -2324,6 +2323,7 @@ public class Workspace extends SmoothPagedView final View searchBar = mLauncher.getQsbBar(); final View overviewPanel = mLauncher.getOverviewPanel(); final View hotseat = mLauncher.getHotseat(); + final View pageIndicator = getPageIndicator(); if (animated) { anim.setDuration(duration); LauncherViewPropertyAnimator scale = new LauncherViewPropertyAnimator(this); @@ -2366,34 +2366,36 @@ public class Workspace extends SmoothPagedView } } } - ObjectAnimator pageIndicatorAlpha = null; - if (getPageIndicator() != null) { - pageIndicatorAlpha = ObjectAnimator.ofFloat(getPageIndicator(), "alpha", - finalHotseatAndPageIndicatorAlpha); - } - ObjectAnimator hotseatAlpha = ObjectAnimator.ofFloat(hotseat, "alpha", - finalHotseatAndPageIndicatorAlpha); - ObjectAnimator searchBarAlpha = null; - if (mShowSearchBar) { - searchBarAlpha = ObjectAnimator.ofFloat(searchBar, - "alpha", finalSearchBarAlpha); + Animator pageIndicatorAlpha = null; + if (pageIndicator != null) { + pageIndicatorAlpha = new LauncherViewPropertyAnimator(pageIndicator) + .alpha(finalHotseatAndPageIndicatorAlpha).withLayer(); + } else { + // create a dummy animation so we don't need to do null checks later + pageIndicatorAlpha = ValueAnimator.ofFloat(0, 0); } - ObjectAnimator overviewPanelAlpha = ObjectAnimator.ofFloat(overviewPanel, - "alpha", finalOverviewPanelAlpha); + Animator hotseatAlpha = new LauncherViewPropertyAnimator(hotseat) + .alpha(finalHotseatAndPageIndicatorAlpha).withLayer(); + Animator searchBarAlpha = new LauncherViewPropertyAnimator(searchBar) + .alpha(finalSearchBarAlpha).withLayer(); + Animator overviewPanelAlpha = new LauncherViewPropertyAnimator(overviewPanel) + .alpha(finalOverviewPanelAlpha).withLayer(); - overviewPanelAlpha.addListener(new AlphaUpdateListener(overviewPanel)); + pageIndicatorAlpha.addListener(new AlphaUpdateListener(pageIndicator)); hotseatAlpha.addListener(new AlphaUpdateListener(hotseat)); if (mShowSearchBar) searchBarAlpha.addListener(new AlphaUpdateListener(searchBar)); + overviewPanelAlpha.addListener(new AlphaUpdateListener(overviewPanel)); if (workspaceToOverview) { + pageIndicatorAlpha.setInterpolator(new DecelerateInterpolator(2)); hotseatAlpha.setInterpolator(new DecelerateInterpolator(2)); + overviewPanelAlpha.setInterpolator(null); } else if (overviewToWorkspace) { + pageIndicatorAlpha.setInterpolator(null); + hotseatAlpha.setInterpolator(null); overviewPanelAlpha.setInterpolator(new DecelerateInterpolator(2)); } - - if (getPageIndicator() != null) { - pageIndicatorAlpha.addListener(new AlphaUpdateListener(getPageIndicator())); - } + searchBarAlpha.setInterpolator(null); overviewPanel.setAlpha(finalOverviewPanelAlpha); AlphaUpdateListener.updateVisibility(overviewPanel); @@ -2408,9 +2410,9 @@ public class Workspace extends SmoothPagedView AlphaUpdateListener.updateVisibility(overviewPanel); hotseat.setAlpha(finalHotseatAndPageIndicatorAlpha); AlphaUpdateListener.updateVisibility(hotseat); - if (getPageIndicator() != null) { - getPageIndicator().setAlpha(finalHotseatAndPageIndicatorAlpha); - AlphaUpdateListener.updateVisibility(getPageIndicator()); + if (pageIndicator != null) { + pageIndicator.setAlpha(finalHotseatAndPageIndicatorAlpha); + AlphaUpdateListener.updateVisibility(pageIndicator); } if (mShowSearchBar) { searchBar.setAlpha(finalSearchBarAlpha); |