summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2013-07-31 17:30:54 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-07-31 17:30:55 +0000
commitdf11a77f291b1fd6d1f9358c0a42d0621737d15a (patch)
tree62e4b908f0b54321cfc42554bf11368921144067
parentce9249e4d31dab2a2436e5bcb4488ed7497d481c (diff)
parent82dfe585143b8cc8b082e4ba42c58a66187994dd (diff)
downloadandroid_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.pngbin0 -> 1353 bytes
-rw-r--r--res/drawable-mdpi/now_page.pngbin0 -> 1227 bytes
-rw-r--r--res/drawable-xhdpi/now_page.pngbin0 -> 1297 bytes
-rw-r--r--res/layout/now_page_indicator_marker.xml34
-rw-r--r--src/com/android/launcher3/PageIndicator.java11
-rw-r--r--src/com/android/launcher3/PagedView.java13
-rw-r--r--src/com/android/launcher3/Workspace.java8
7 files changed, 58 insertions, 8 deletions
diff --git a/res/drawable-hdpi/now_page.png b/res/drawable-hdpi/now_page.png
new file mode 100644
index 000000000..9eef50c92
--- /dev/null
+++ b/res/drawable-hdpi/now_page.png
Binary files differ
diff --git a/res/drawable-mdpi/now_page.png b/res/drawable-mdpi/now_page.png
new file mode 100644
index 000000000..cc4005ded
--- /dev/null
+++ b/res/drawable-mdpi/now_page.png
Binary files differ
diff --git a/res/drawable-xhdpi/now_page.png b/res/drawable-xhdpi/now_page.png
new file mode 100644
index 000000000..e1da91c61
--- /dev/null
+++ b/res/drawable-xhdpi/now_page.png
Binary files differ
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() {
}