diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2016-05-20 20:29:05 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-05-20 20:29:05 +0000 |
commit | 5f2f15a77e7f05c81838a4ec88b05f34f5ff130f (patch) | |
tree | 76526cfcb23abd0699dd7dfc5a62a7d95831c42a | |
parent | 46eb13d53b7bf0dc4769a088b645b8366c3cbfd1 (diff) | |
parent | c487bd34ace268dd8be5480ba884baed6096f76e (diff) | |
download | android_packages_apps_Trebuchet-5f2f15a77e7f05c81838a4ec88b05f34f5ff130f.tar.gz android_packages_apps_Trebuchet-5f2f15a77e7f05c81838a4ec88b05f34f5ff130f.tar.bz2 android_packages_apps_Trebuchet-5f2f15a77e7f05c81838a4ec88b05f34f5ff130f.zip |
Making page indicator an abstract class and implementing some common methods.
am: c487bd34ac
* commit 'c487bd34ace268dd8be5480ba884baed6096f76e':
Making page indicator an abstract class and implementing some common methods.
Change-Id: Ifac23eac824365fb122bd984dca6ef93901289dd
8 files changed, 43 insertions, 62 deletions
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index 86a1a397c..fdca9f2fe 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -259,9 +259,9 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc OnClickListener listener = getPageIndicatorClickListener(); if (listener != null) { - mPageIndicator.getView().setOnClickListener(listener); + mPageIndicator.setOnClickListener(listener); } - mPageIndicator.getView().setContentDescription(getPageIndicatorDescription()); + mPageIndicator.setContentDescription(getPageIndicatorDescription()); } } @@ -467,7 +467,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc private void updatePageIndicator() { // Update the page indicator (when we aren't reordering) if (mPageIndicator != null) { - mPageIndicator.getView().setContentDescription(getPageIndicatorDescription()); + mPageIndicator.setContentDescription(getPageIndicatorDescription()); if (!isReordering(false)) { mPageIndicator.setActiveMarker(getNextPage()); } diff --git a/src/com/android/launcher3/PinchAnimationManager.java b/src/com/android/launcher3/PinchAnimationManager.java index 477b92cc0..c8c8fa4c8 100644 --- a/src/com/android/launcher3/PinchAnimationManager.java +++ b/src/com/android/launcher3/PinchAnimationManager.java @@ -194,7 +194,7 @@ public class PinchAnimationManager { animateShowHideView(INDEX_HOTSEAT, mLauncher.getHotseat(), show); if (mWorkspace.getPageIndicator() != null) { // There aren't page indicators in landscape mode on phones, hence the null check. - animateShowHideView(INDEX_PAGE_INDICATOR, mWorkspace.getPageIndicator().getView(), show); + animateShowHideView(INDEX_PAGE_INDICATOR, mWorkspace.getPageIndicator(), show); } } diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 0df657dfb..62c1bc814 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -1339,9 +1339,7 @@ public class Workspace extends PagedView // different effects based on device performance. On at least one relatively high-end // device I've tried, translating the launcher causes things to get quite laggy. setTranslationAndAlpha(mLauncher.getSearchDropTargetBar(), transX, alpha); - if (getPageIndicator() != null) { - setTranslationAndAlpha(getPageIndicator().getView(), transX, alpha); - } + setTranslationAndAlpha(getPageIndicator(), transX, alpha); setTranslationAndAlpha(getChildAt(getCurrentPage()), transX, alpha); setTranslationAndAlpha(mLauncher.getHotseat(), transX, alpha); @@ -1554,7 +1552,7 @@ public class Workspace extends PagedView } if (getPageIndicator() != null) { - getPageIndicator().getView().setTranslationX(translationX); + getPageIndicator().setTranslationX(translationX); } if (mCustomContentCallbacks != null) { @@ -1603,7 +1601,7 @@ public class Workspace extends PagedView // attach to window OnClickListener listener = getPageIndicatorClickListener(); if (listener != null) { - getPageIndicator().getView().setOnClickListener(listener); + getPageIndicator().setOnClickListener(listener); } showPageIndicatorAtCurrentScroll(); diff --git a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java index 38a578c85..e26864087 100644 --- a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java +++ b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java @@ -357,8 +357,7 @@ public class WorkspaceStateTransitionAnimation { final ViewGroup overviewPanel = mLauncher.getOverviewPanel(); final View hotseat = mLauncher.getHotseat(); - final View pageIndicator = mWorkspace.getPageIndicator() == null ? null - : mWorkspace.getPageIndicator().getView(); + final View pageIndicator = mWorkspace.getPageIndicator(); if (animated) { LauncherViewPropertyAnimator scale = new LauncherViewPropertyAnimator(mWorkspace); scale.scaleX(mNewScale) diff --git a/src/com/android/launcher3/folder/FolderPagedView.java b/src/com/android/launcher3/folder/FolderPagedView.java index bb8ca160d..d8b83ad6c 100644 --- a/src/com/android/launcher3/folder/FolderPagedView.java +++ b/src/com/android/launcher3/folder/FolderPagedView.java @@ -365,7 +365,7 @@ public class FolderPagedView extends PagedView { setEnableOverscroll(getPageCount() > 1); // Update footer - mPageIndicator.getView().setVisibility(getPageCount() > 1 ? View.VISIBLE : View.GONE); + mPageIndicator.setVisibility(getPageCount() > 1 ? View.VISIBLE : View.GONE); // Set the gravity as LEFT or RIGHT instead of START, as START depends on the actual text. mFolder.mFolderName.setGravity(getPageCount() > 1 ? (mIsRtl ? Gravity.RIGHT : Gravity.LEFT) : Gravity.CENTER_HORIZONTAL); diff --git a/src/com/android/launcher3/pageindicators/PageIndicator.java b/src/com/android/launcher3/pageindicators/PageIndicator.java index 77c579c93..7c5949598 100644 --- a/src/com/android/launcher3/pageindicators/PageIndicator.java +++ b/src/com/android/launcher3/pageindicators/PageIndicator.java @@ -1,16 +1,37 @@ package com.android.launcher3.pageindicators; +import android.content.Context; +import android.util.AttributeSet; import android.view.View; -import java.util.ArrayList; +/** + * Base class for a page indicator. + */ +public abstract class PageIndicator extends View { -public interface PageIndicator { - View getView(); - void setScroll(int currentScroll, int totalScroll); + protected int mNumPages = 1; - void setActiveMarker(int activePage); + public PageIndicator(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } - void addMarker(); - void removeMarker(); - void setMarkersCount(int numMarkers); + public abstract void setScroll(int currentScroll, int totalScroll); + + public abstract void setActiveMarker(int activePage); + + public void addMarker() { + mNumPages++; + onPageCountChanged(); + } + + public void removeMarker() { + mNumPages--; + onPageCountChanged(); + } + public void setMarkersCount(int numMarkers) { + mNumPages = numMarkers; + onPageCountChanged(); + } + + protected abstract void onPageCountChanged(); } diff --git a/src/com/android/launcher3/pageindicators/PageIndicatorDots.java b/src/com/android/launcher3/pageindicators/PageIndicatorDots.java index 4a1238ddd..7d84a0c76 100644 --- a/src/com/android/launcher3/pageindicators/PageIndicatorDots.java +++ b/src/com/android/launcher3/pageindicators/PageIndicatorDots.java @@ -42,7 +42,7 @@ import com.android.launcher3.Utilities; * {@link PageIndicator} which shows dots per page. The active page is shown with the current * accent color. */ -public class PageIndicatorDots extends View implements PageIndicator { +public class PageIndicatorDots extends PageIndicator { private static final float SHIFT_PER_ANIMATION = 0.5f; private static final float SHIFT_THRESHOLD = 0.1f; @@ -90,7 +90,6 @@ public class PageIndicatorDots extends View implements PageIndicator { private final int mInActiveColor; private final boolean mIsRtl; - private int mNumPages; private int mActivePage; /** @@ -131,11 +130,6 @@ public class PageIndicatorDots extends View implements PageIndicator { } @Override - public View getView() { - return this; - } - - @Override public void setScroll(int currentScroll, int totalScroll) { if (mNumPages > 1) { if (mIsRtl) { @@ -235,20 +229,7 @@ public class PageIndicatorDots extends View implements PageIndicator { } @Override - public void addMarker() { - mNumPages++; - requestLayout(); - } - - @Override - public void removeMarker() { - mNumPages--; - requestLayout(); - } - - @Override - public void setMarkersCount(int numMarkers) { - mNumPages = numMarkers; + protected void onPageCountChanged() { requestLayout(); } diff --git a/src/com/android/launcher3/pageindicators/PageIndicatorLine.java b/src/com/android/launcher3/pageindicators/PageIndicatorLine.java index e48168616..a358e7be0 100644 --- a/src/com/android/launcher3/pageindicators/PageIndicatorLine.java +++ b/src/com/android/launcher3/pageindicators/PageIndicatorLine.java @@ -25,7 +25,7 @@ import com.android.launcher3.dynamicui.ExtractedColors; * * The fraction is 1 / number of pages and the position is based on the progress of the page scroll. */ -public class PageIndicatorLine extends View implements PageIndicator { +public class PageIndicatorLine extends PageIndicator { private static final String TAG = "PageIndicatorLine"; private static final int LINE_FADE_DURATION = ViewConfiguration.getScrollBarFadeDuration(); @@ -38,7 +38,6 @@ public class PageIndicatorLine extends View implements PageIndicator { private ValueAnimator mLineAlphaAnimator; private int mAlpha = 0; private float mProgress = 0f; - private int mNumPages = 1; private Paint mLinePaint; private static final Property<PageIndicatorLine, Integer> PAINT_ALPHA @@ -78,8 +77,6 @@ public class PageIndicatorLine extends View implements PageIndicator { @Override protected void onDraw(Canvas canvas) { - super.onDraw(canvas); - if (mNumPages == 0) { return; } @@ -92,11 +89,6 @@ public class PageIndicatorLine extends View implements PageIndicator { } @Override - public View getView() { - return this; - } - - @Override public void setScroll(int currentScroll, int totalScroll) { if (getAlpha() == 0) { return; @@ -115,18 +107,8 @@ public class PageIndicatorLine extends View implements PageIndicator { } @Override - public void addMarker() { - mNumPages++; - } - - @Override - public void removeMarker() { - mNumPages--; - } - - @Override - public void setMarkersCount(int numMarkers) { - mNumPages = numMarkers; + protected void onPageCountChanged() { + invalidate(); } /** |