diff options
author | Winson Chung <winsonc@google.com> | 2013-07-26 15:07:49 -0700 |
---|---|---|
committer | Winson Chung <winsonc@google.com> | 2013-07-26 15:07:49 -0700 |
commit | 82dfe585143b8cc8b082e4ba42c58a66187994dd (patch) | |
tree | 86efd15f64c0534e8a4038c15295bd0a4ac24ffd /src/com | |
parent | bffe745b1e195deedc1dcc60f37950b3b0b4c652 (diff) | |
download | android_packages_apps_Trebuchet-82dfe585143b8cc8b082e4ba42c58a66187994dd.tar.gz android_packages_apps_Trebuchet-82dfe585143b8cc8b082e4ba42c58a66187994dd.tar.bz2 android_packages_apps_Trebuchet-82dfe585143b8cc8b082e4ba42c58a66187994dd.zip |
Adding support for custom page indicator markers.
Change-Id: I057b0cccc4194157d92ebb123af2afaf94fb5415
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/launcher3/PageIndicator.java | 11 | ||||
-rw-r--r-- | src/com/android/launcher3/PagedView.java | 13 | ||||
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 8 |
3 files changed, 24 insertions, 8 deletions
diff --git a/src/com/android/launcher3/PageIndicator.java b/src/com/android/launcher3/PageIndicator.java index d7778fb1a..ce9814505 100644 --- a/src/com/android/launcher3/PageIndicator.java +++ b/src/com/android/launcher3/PageIndicator.java @@ -161,18 +161,17 @@ public class PageIndicator extends LinearLayout { mWindowRange[1] = windowEnd; } - void addMarker(int index) { + void addMarker(int index, int layoutId) { index = Math.max(0, Math.min(index, mMarkers.size())); - int mLayoutId = R.layout.page_indicator_marker; PageIndicatorMarker marker = - (PageIndicatorMarker) mLayoutInflater.inflate(mLayoutId, this, false); + (PageIndicatorMarker) mLayoutInflater.inflate(layoutId, this, false); mMarkers.add(index, marker); offsetWindowCenterTo(mActiveMarkerIndex, true); } - void addMarkers(int count) { - for (int i = 0; i < count; ++i) { - addMarker(Integer.MAX_VALUE); + void addMarkers(ArrayList<Integer> layoutIds) { + for (int i = 0; i < layoutIds.size(); ++i) { + addMarker(Integer.MAX_VALUE, layoutIds.get(i)); } } diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index aaff58886..9bdbe4665 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -326,7 +326,12 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc if (mPageIndicator == null && mPageIndicatorViewId > -1) { mPageIndicator = (PageIndicator) parent.findViewById(mPageIndicatorViewId); mPageIndicator.removeAllMarkers(); - mPageIndicator.addMarkers(getChildCount()); + + ArrayList<Integer> markers = new ArrayList<Integer>(); + for (int i = 0; i < getChildCount(); ++i) { + markers.add(getPageIndicatorMarker(i)); + } + mPageIndicator.addMarkers(markers); } } @@ -403,6 +408,9 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc PageIndicator getPageIndicator() { return mPageIndicator; } + protected int getPageIndicatorMarker(int pageIndex) { + return R.layout.page_indicator_marker; + } public void setPageSwitchListener(PageSwitchListener pageSwitchListener) { mPageSwitchListener = pageSwitchListener; @@ -896,7 +904,8 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc // Update the page indicator, we don't update the page indicator as we // add/remove pages if (mPageIndicator != null && !isReordering(false)) { - mPageIndicator.addMarker(indexOfChild(child)); + int pageIndex = indexOfChild(child); + mPageIndicator.addMarker(pageIndex, getPageIndicatorMarker(pageIndex)); } // This ensures that when children are added, they get the correct transforms / alphas diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index edf372144..7fb23e2eb 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -4018,6 +4018,14 @@ public class Workspace extends SmoothPagedView } @Override + protected int getPageIndicatorMarker(int pageIndex) { + if (getScreenIdForPageIndex(pageIndex) == CUSTOM_CONTENT_SCREEN_ID) { + return R.layout.now_page_indicator_marker; + } + return super.getPageIndicatorMarker(pageIndex); + } + + @Override public void syncPages() { } |