Tweaking the scroll indicators with new assets and sizing.
- Showing the scroll indicators when changing between workspace/apps customize Change-Id: I791c09b76deb00108c466f08ae3c29b19d77c4d8
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 184 B |
Binary file not shown.
|
After Width: | Height: | Size: 174 B |
Binary file not shown.
|
Before Width: | Height: | Size: 358 B |
Binary file not shown.
|
After Width: | Height: | Size: 173 B |
Binary file not shown.
|
After Width: | Height: | Size: 157 B |
@@ -39,6 +39,14 @@
|
||||
<include android:id="@+id/cell4" layout="@layout/workspace_screen" />
|
||||
<include android:id="@+id/cell5" layout="@layout/workspace_screen" />
|
||||
</com.android.launcher2.Workspace>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/paged_view_indicator_track"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/hotseat_track_holo" />
|
||||
<ImageView
|
||||
android:id="@+id/paged_view_indicator"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -47,7 +55,7 @@
|
||||
android:visibility="gone"
|
||||
android:alpha="0"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/paged_view_indicator" />
|
||||
android:src="@drawable/hotseat_scrubber_holo" />
|
||||
|
||||
<include layout="@layout/qsb_bar"
|
||||
android:id="@+id/qsb_bar"
|
||||
|
||||
@@ -37,16 +37,25 @@
|
||||
<include android:id="@+id/cell4" layout="@layout/workspace_screen" />
|
||||
<include android:id="@+id/cell5" layout="@layout/workspace_screen" />
|
||||
</com.android.launcher2.Workspace>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/paged_view_indicator_track"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginBottom="@dimen/button_bar_height"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/hotseat_track_holo" />
|
||||
<ImageView
|
||||
android:id="@+id/paged_view_indicator"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginBottom="@dimen/button_bar_height"
|
||||
android:visibility="gone"
|
||||
android:paddingBottom="@dimen/button_bar_height"
|
||||
android:alpha="0"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/paged_view_indicator" />
|
||||
android:src="@drawable/hotseat_scrubber_holo" />
|
||||
|
||||
<include layout="@layout/qsb_bar"
|
||||
android:id="@+id/qsb_bar"
|
||||
|
||||
@@ -75,6 +75,13 @@
|
||||
launcher:widgetCountX="@integer/apps_customize_widget_cell_count_x"
|
||||
launcher:widgetCountY="@integer/apps_customize_widget_cell_count_y"
|
||||
launcher:maxGap="@dimen/workspace_max_gap" />
|
||||
<ImageView
|
||||
android:id="@+id/paged_view_indicator_track"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/hotseat_track_holo" />
|
||||
<ImageView
|
||||
android:id="@+id/paged_view_indicator"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -83,7 +90,7 @@
|
||||
android:visibility="gone"
|
||||
android:alpha="0"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/paged_view_indicator" />
|
||||
android:src="@drawable/hotseat_scrubber_holo" />
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
</com.android.launcher2.AppsCustomizeTabHost>
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user