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 | |
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
-rw-r--r-- | res/drawable-hdpi/now_page.png | bin | 0 -> 1353 bytes | |||
-rw-r--r-- | res/drawable-mdpi/now_page.png | bin | 0 -> 1227 bytes | |||
-rw-r--r-- | res/drawable-xhdpi/now_page.png | bin | 0 -> 1297 bytes | |||
-rw-r--r-- | res/layout/now_page_indicator_marker.xml | 34 | ||||
-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 |
7 files changed, 58 insertions, 8 deletions
diff --git a/res/drawable-hdpi/now_page.png b/res/drawable-hdpi/now_page.png Binary files differnew file mode 100644 index 000000000..9eef50c92 --- /dev/null +++ b/res/drawable-hdpi/now_page.png diff --git a/res/drawable-mdpi/now_page.png b/res/drawable-mdpi/now_page.png Binary files differnew file mode 100644 index 000000000..cc4005ded --- /dev/null +++ b/res/drawable-mdpi/now_page.png diff --git a/res/drawable-xhdpi/now_page.png b/res/drawable-xhdpi/now_page.png Binary files differnew file mode 100644 index 000000000..e1da91c61 --- /dev/null +++ b/res/drawable-xhdpi/now_page.png diff --git a/res/layout/now_page_indicator_marker.xml b/res/layout/now_page_indicator_marker.xml new file mode 100644 index 000000000..7d0562743 --- /dev/null +++ b/res/layout/now_page_indicator_marker.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2013 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<com.android.launcher3.PageIndicatorMarker + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3" + android:layout_width="wrap_content" + android:layout_height="wrap_content"> + <ImageView + android:id="@+id/inactive" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/now_page" + /> + <ImageView + android:id="@+id/active" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/now_page" + android:alpha="0" + /> +</com.android.launcher3.PageIndicatorMarker> 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() { } |