diff options
author | Winson Chung <winsonc@google.com> | 2011-06-30 17:39:37 -0700 |
---|---|---|
committer | Winson Chung <winsonc@google.com> | 2011-06-30 17:43:39 -0700 |
commit | 3ac74c55cf8baef29db80e8c67ab4ab033b04417 (patch) | |
tree | c97c29872343f8de147e3190e954067dcbfe172b /src | |
parent | 04dc2bc6139ff414e49fc423d28edbd5801cdc03 (diff) | |
download | android_packages_apps_Trebuchet-3ac74c55cf8baef29db80e8c67ab4ab033b04417.tar.gz android_packages_apps_Trebuchet-3ac74c55cf8baef29db80e8c67ab4ab033b04417.tar.bz2 android_packages_apps_Trebuchet-3ac74c55cf8baef29db80e8c67ab4ab033b04417.zip |
Tweaking the scroll indicators with new assets and sizing.
- Showing the scroll indicators when changing between workspace/apps customize
Change-Id: I791c09b76deb00108c466f08ae3c29b19d77c4d8
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher2/AppsCustomizeTabHost.java | 8 | ||||
-rw-r--r-- | src/com/android/launcher2/Launcher.java | 16 | ||||
-rw-r--r-- | src/com/android/launcher2/PagedView.java | 49 | ||||
-rw-r--r-- | src/com/android/launcher2/Workspace.java | 3 |
4 files changed, 65 insertions, 11 deletions
diff --git a/src/com/android/launcher2/AppsCustomizeTabHost.java b/src/com/android/launcher2/AppsCustomizeTabHost.java index 587a3eb5f..262358600 100644 --- a/src/com/android/launcher2/AppsCustomizeTabHost.java +++ b/src/com/android/launcher2/AppsCustomizeTabHost.java @@ -152,6 +152,12 @@ public class AppsCustomizeTabHost extends TabHost implements LauncherTransitiona ObjectAnimator anim = ObjectAnimator.ofFloat(mAppsCustomizePane, "alpha", 1f); anim.setDuration(duration); + anim.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(android.animation.Animator animation) { + mAppsCustomizePane.flashScrollingIndicator(); + } + }); anim.start(); } }); @@ -212,5 +218,7 @@ public class AppsCustomizeTabHost extends TabHost implements LauncherTransitiona if (animation != null) { setLayerType(LAYER_TYPE_NONE, null); } + + mAppsCustomizePane.flashScrollingIndicator(); } } diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index 54b7b9c2c..0fb24f6e6 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -2387,6 +2387,10 @@ public final class Launcher extends Activity toView.setTranslationY(0.0f); toView.setVisibility(View.VISIBLE); toView.bringToFront(); + + // Hide the workspace scrollbar + mWorkspace.hideScrollingIndicator(true); + mWorkspace.hideScrollIndicatorTrack(); } @Override public void onAnimationEnd(Animator animation) { @@ -2418,6 +2422,10 @@ public final class Launcher extends Activity if (toView instanceof LauncherTransitionable) { ((LauncherTransitionable) toView).onLauncherTransitionStart(null); ((LauncherTransitionable) toView).onLauncherTransitionEnd(null); + + // Hide the workspace scrollbar + mWorkspace.hideScrollingIndicator(true); + mWorkspace.hideScrollIndicatorTrack(); } } } @@ -2475,6 +2483,10 @@ public final class Launcher extends Activity fromView.setVisibility(View.GONE); if (fromView instanceof LauncherTransitionable) { ((LauncherTransitionable) fromView).onLauncherTransitionEnd(alphaAnim); + + // Show the workspace scrollbar + mWorkspace.showScrollIndicatorTrack(); + mWorkspace.flashScrollingIndicator(); } } }); @@ -2486,6 +2498,10 @@ public final class Launcher extends Activity if (fromView instanceof LauncherTransitionable) { ((LauncherTransitionable) fromView).onLauncherTransitionStart(null); ((LauncherTransitionable) fromView).onLauncherTransitionEnd(null); + + // Show the workspace scrollbar + mWorkspace.showScrollIndicatorTrack(); + mWorkspace.flashScrollingIndicator(); } } } diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java index 9ca2f90ff..a90d32fbf 100644 --- a/src/com/android/launcher2/PagedView.java +++ b/src/com/android/launcher2/PagedView.java @@ -162,10 +162,12 @@ public abstract class PagedView extends ViewGroup { // Scrolling indicator private ImageView mScrollIndicator; + private ImageView mScrollTrack; private boolean mHasScrollIndicator = true; private static final int sScrollIndicatorFadeInDuration = 150; private static final int sScrollIndicatorFastFadeOutDuration = 50; private static final int sScrollIndicatorFadeOutDuration = 650; + private static final int sScrollIndicatorFlashDuration = 650; // If set, will defer loading associated pages until the scrolling settles private boolean mDeferLoadAssociatedPagesUntilScrollCompletes; @@ -1606,8 +1608,6 @@ public abstract class PagedView extends ViewGroup { } if (mContentIsRefreshable) { - hideScrollingIndicator(true); - // Update all the pages syncPages(); @@ -1644,6 +1644,16 @@ public abstract class PagedView extends ViewGroup { return true; } + protected void flashScrollingIndicator() { + showScrollingIndicator(); + postDelayed(new Runnable() { + @Override + public void run() { + hideScrollingIndicator(false); + } + }, sScrollIndicatorFlashDuration); + } + protected void showScrollingIndicator() { if (LauncherApplication.isScreenLarge()) return; if (getChildCount() <= 1) return; @@ -1651,13 +1661,9 @@ public abstract class PagedView extends ViewGroup { getScrollingIndicator(); if (mScrollIndicator != null) { - // Update the width of the indicator to the approx. width of each page in the full bar - mScrollIndicator.getLayoutParams().width = getPageWidthForScrollingIndicator() / getChildCount(); - mScrollIndicator.requestLayout(); - // Fade the indicator in updateScrollingIndicatorPosition(); - mScrollIndicator.animate().alpha(1f).setDuration(sScrollIndicatorFadeInDuration); + mScrollIndicator.animate().alpha(1f).setDuration(sScrollIndicatorFadeInDuration).start(); } } @@ -1671,7 +1677,7 @@ public abstract class PagedView extends ViewGroup { // Fade the indicator out updateScrollingIndicatorPosition(); mScrollIndicator.animate().alpha(0f).setDuration(immediately ? - sScrollIndicatorFastFadeOutDuration : sScrollIndicatorFadeOutDuration); + sScrollIndicatorFastFadeOutDuration : sScrollIndicatorFadeOutDuration).start(); } } @@ -1700,6 +1706,33 @@ public abstract class PagedView extends ViewGroup { int indicatorCenterOffset = indicatorWidth / 2 - mScrollIndicator.getMeasuredWidth() / 2; int indicatorPos = (int) (offset * pageWidth) + pageOffset + indicatorCenterOffset; mScrollIndicator.setTranslationX(indicatorPos); + mScrollIndicator.invalidate(); + } + + private ImageView getScrollingIndicatorTrack() { + if (mScrollTrack == null) { + ViewGroup parent = (ViewGroup) getParent(); + mScrollTrack = (ImageView) (parent.findViewById(R.id.paged_view_indicator_track)); + } + return mScrollTrack; + } + + public void showScrollIndicatorTrack() { + if (!LauncherApplication.isScreenLarge()) { + getScrollingIndicatorTrack(); + if (mScrollTrack != null) { + mScrollTrack.setVisibility(View.VISIBLE); + } + } + } + + public void hideScrollIndicatorTrack() { + if (!LauncherApplication.isScreenLarge()) { + getScrollingIndicatorTrack(); + if (mScrollTrack != null) { + mScrollTrack.setVisibility(View.GONE); + } + } } /* Accessibility */ diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index 5ba9fd7af..2b799ee63 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -1381,9 +1381,6 @@ public class Workspace extends SmoothPagedView // Stop any scrolling, move to the current page right away setCurrentPage((mNextPage != INVALID_PAGE) ? mNextPage : mCurrentPage); - // Hide the scrollbar - hideScrollingIndicator(true); - CellLayout currentPage = (CellLayout) getChildAt(mCurrentPage); if (currentPage == null) { Log.w(TAG, "currentPage is NULL! mCurrentPage " + mCurrentPage |