diff options
author | Winson Chung <winsonc@google.com> | 2013-07-31 17:30:54 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-07-31 17:30:55 +0000 |
commit | df11a77f291b1fd6d1f9358c0a42d0621737d15a (patch) | |
tree | 62e4b908f0b54321cfc42554bf11368921144067 /src | |
parent | ce9249e4d31dab2a2436e5bcb4488ed7497d481c (diff) | |
parent | 82dfe585143b8cc8b082e4ba42c58a66187994dd (diff) | |
download | android_packages_apps_Trebuchet-df11a77f291b1fd6d1f9358c0a42d0621737d15a.tar.gz android_packages_apps_Trebuchet-df11a77f291b1fd6d1f9358c0a42d0621737d15a.tar.bz2 android_packages_apps_Trebuchet-df11a77f291b1fd6d1f9358c0a42d0621737d15a.zip |
Merge "Adding support for custom page indicator markers." into jb-ub-gel-agar
Diffstat (limited to 'src')
-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 9a851ac36..2eb7a0ce0 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -327,7 +327,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); } } @@ -404,6 +409,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; @@ -914,7 +922,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 b14ceb248..e590779df 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -4025,6 +4025,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() { } |