From 7819a56217fd4e216d3675905586b275799723bb Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Thu, 19 Sep 2013 15:55:45 -0700 Subject: Tweaking page indicators to support add page icon, remembering widget picker page (Bug 10787439) Change-Id: Iab0b5676aa9c34a610b4b968940abc81c913c234 --- src/com/android/launcher3/PageIndicator.java | 31 +++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) (limited to 'src/com/android/launcher3/PageIndicator.java') diff --git a/src/com/android/launcher3/PageIndicator.java b/src/com/android/launcher3/PageIndicator.java index a9016d5ea..52c844760 100644 --- a/src/com/android/launcher3/PageIndicator.java +++ b/src/com/android/launcher3/PageIndicator.java @@ -49,6 +49,20 @@ public class PageIndicator extends LinearLayout { new ArrayList(); private int mActiveMarkerIndex; + public static class PageMarkerResources { + int activeId; + int inactiveId; + + public PageMarkerResources() { + activeId = R.drawable.ic_pageindicator_current; + inactiveId = R.drawable.ic_pageindicator_default; + } + public PageMarkerResources(int aId, int iaId) { + activeId = aId; + inactiveId = iaId; + } + } + public PageIndicator(Context context) { this(context, null); } @@ -155,17 +169,20 @@ public class PageIndicator extends LinearLayout { mWindowRange[1] = windowEnd; } - void addMarker(int index, int layoutId, boolean allowAnimations) { + void addMarker(int index, PageMarkerResources marker, boolean allowAnimations) { index = Math.max(0, Math.min(index, mMarkers.size())); - PageIndicatorMarker marker = - (PageIndicatorMarker) mLayoutInflater.inflate(layoutId, this, false); - mMarkers.add(index, marker); + PageIndicatorMarker m = + (PageIndicatorMarker) mLayoutInflater.inflate(R.layout.page_indicator_marker, + this, false); + m.setMarkerDrawables(marker.activeId, marker.inactiveId); + + mMarkers.add(index, m); offsetWindowCenterTo(mActiveMarkerIndex, allowAnimations); } - void addMarkers(ArrayList layoutIds, boolean allowAnimations) { - for (int i = 0; i < layoutIds.size(); ++i) { - addMarker(Integer.MAX_VALUE, layoutIds.get(i), allowAnimations); + void addMarkers(ArrayList markers, boolean allowAnimations) { + for (int i = 0; i < markers.size(); ++i) { + addMarker(Integer.MAX_VALUE, markers.get(i), allowAnimations); } } -- cgit v1.2.3