diff options
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(); } /** |