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 /src/com/android/launcher3/pageindicators | |
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
Diffstat (limited to 'src/com/android/launcher3/pageindicators')
3 files changed, 34 insertions, 50 deletions
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(); } /** |