summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2013-09-20 17:53:54 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-09-20 17:53:54 +0000
commit37cab1bc25b99e4ac2429f7d965342a534d441b4 (patch)
tree1a7182fa35c5f9ce7f50b84273093d30fed00ad6 /src
parent2873ecd1ab2433f6124d8c9c27e2c3b37520a3a5 (diff)
parent7819a56217fd4e216d3675905586b275799723bb (diff)
downloadandroid_packages_apps_Trebuchet-37cab1bc25b99e4ac2429f7d965342a534d441b4.tar.gz
android_packages_apps_Trebuchet-37cab1bc25b99e4ac2429f7d965342a534d441b4.tar.bz2
android_packages_apps_Trebuchet-37cab1bc25b99e4ac2429f7d965342a534d441b4.zip
Merge "Tweaking page indicators to support add page icon, remembering widget picker page (Bug 10787439)" into jb-ub-now-indigo-rose
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher3/AppsCustomizePagedView.java6
-rw-r--r--src/com/android/launcher3/Launcher.java5
-rw-r--r--src/com/android/launcher3/PageIndicator.java31
-rw-r--r--src/com/android/launcher3/PageIndicatorMarker.java16
-rw-r--r--src/com/android/launcher3/PagedView.java10
-rw-r--r--src/com/android/launcher3/Workspace.java12
6 files changed, 58 insertions, 22 deletions
diff --git a/src/com/android/launcher3/AppsCustomizePagedView.java b/src/com/android/launcher3/AppsCustomizePagedView.java
index ee33f3a3f..a36f44459 100644
--- a/src/com/android/launcher3/AppsCustomizePagedView.java
+++ b/src/com/android/launcher3/AppsCustomizePagedView.java
@@ -941,8 +941,12 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
}
public void setContentType(ContentType type) {
+ int page = getCurrentPage();
+ if (mContentType != type) {
+ page = 0;
+ }
mContentType = type;
- invalidatePageData(0, true);
+ invalidatePageData(page, true);
}
public ContentType getContentType() {
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 34296473f..89d4cb379 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -1446,7 +1446,6 @@ public class Launcher extends Activity
// Reset AllApps to its initial state only if we are not in the middle of
// processing a multi-step drop
if (mAppsCustomizeTabHost != null && mPendingAddInfo.container == ItemInfo.NO_ID) {
- mAppsCustomizeTabHost.reset();
showWorkspaceAndExitOverviewMode(false);
}
} else if (Intent.ACTION_USER_PRESENT.equals(action)) {
@@ -1665,8 +1664,8 @@ public class Launcher extends Activity
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
- // Reset AllApps to its initial state
- if (!alreadyOnHome && mAppsCustomizeTabHost != null) {
+ // Reset the apps customize page
+ if (mAppsCustomizeTabHost != null) {
mAppsCustomizeTabHost.reset();
}
}
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<PageIndicatorMarker>();
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<Integer> layoutIds, boolean allowAnimations) {
- for (int i = 0; i < layoutIds.size(); ++i) {
- addMarker(Integer.MAX_VALUE, layoutIds.get(i), allowAnimations);
+ void addMarkers(ArrayList<PageMarkerResources> markers, boolean allowAnimations) {
+ for (int i = 0; i < markers.size(); ++i) {
+ addMarker(Integer.MAX_VALUE, markers.get(i), allowAnimations);
}
}
diff --git a/src/com/android/launcher3/PageIndicatorMarker.java b/src/com/android/launcher3/PageIndicatorMarker.java
index 1ad0abb6b..b1025d6fe 100644
--- a/src/com/android/launcher3/PageIndicatorMarker.java
+++ b/src/com/android/launcher3/PageIndicatorMarker.java
@@ -19,10 +19,12 @@ package com.android.launcher3;
import android.animation.AnimatorListenerAdapter;
import android.animation.LayoutTransition;
import android.content.Context;
+import android.content.res.Resources;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.ImageView;
import android.widget.FrameLayout;
import com.android.launcher3.R;
@@ -32,8 +34,8 @@ public class PageIndicatorMarker extends FrameLayout {
private static final int MARKER_FADE_DURATION = 175;
- private View mActiveMarker;
- private View mInactiveMarker;
+ private ImageView mActiveMarker;
+ private ImageView mInactiveMarker;
private boolean mIsActive = false;
public PageIndicatorMarker(Context context) {
@@ -49,8 +51,14 @@ public class PageIndicatorMarker extends FrameLayout {
}
protected void onFinishInflate() {
- mActiveMarker = findViewById(R.id.active);
- mInactiveMarker = findViewById(R.id.inactive);
+ mActiveMarker = (ImageView) findViewById(R.id.active);
+ mInactiveMarker = (ImageView) findViewById(R.id.inactive);
+ }
+
+ void setMarkerDrawables(int activeResId, int inactiveResId) {
+ Resources r = getResources();
+ mActiveMarker.setImageDrawable(r.getDrawable(activeResId));
+ mInactiveMarker.setImageDrawable(r.getDrawable(inactiveResId));
}
void activate(boolean immediate) {
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index d8fc98330..763dfa1a9 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -337,7 +337,8 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
mPageIndicator = (PageIndicator) parent.findViewById(mPageIndicatorViewId);
mPageIndicator.removeAllMarkers(mAllowPagedViewAnimations);
- ArrayList<Integer> markers = new ArrayList<Integer>();
+ ArrayList<PageIndicator.PageMarkerResources> markers =
+ new ArrayList<PageIndicator.PageMarkerResources>();
for (int i = 0; i < getChildCount(); ++i) {
markers.add(getPageIndicatorMarker(i));
}
@@ -424,8 +425,8 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
PageIndicator getPageIndicator() {
return mPageIndicator;
}
- protected int getPageIndicatorMarker(int pageIndex) {
- return R.layout.page_indicator_marker;
+ protected PageIndicator.PageMarkerResources getPageIndicatorMarker(int pageIndex) {
+ return new PageIndicator.PageMarkerResources();
}
public void setPageSwitchListener(PageSwitchListener pageSwitchListener) {
@@ -969,7 +970,8 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
// add/remove pages
if (mPageIndicator != null && !isReordering(false)) {
int pageIndex = indexOfChild(child);
- mPageIndicator.addMarker(pageIndex, getPageIndicatorMarker(pageIndex),
+ mPageIndicator.addMarker(pageIndex,
+ getPageIndicatorMarker(pageIndex),
mAllowPagedViewAnimations);
}
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 41cea6a94..eb2b19df0 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -4225,10 +4225,16 @@ public class Workspace extends SmoothPagedView
}
@Override
- protected int getPageIndicatorMarker(int pageIndex) {
- if (getScreenIdForPageIndex(pageIndex) == CUSTOM_CONTENT_SCREEN_ID) {
- return R.layout.custom_content_page_indicator_marker;
+ protected PageIndicator.PageMarkerResources getPageIndicatorMarker(int pageIndex) {
+ long screenId = getScreenIdForPageIndex(pageIndex);
+ if (screenId == EXTRA_EMPTY_SCREEN_ID) {
+ int count = mScreenOrder.size() - (hasCustomContent() ? 1 : 0);
+ if (count > 1) {
+ return new PageIndicator.PageMarkerResources(R.drawable.ic_pageindicator_add,
+ R.drawable.ic_pageindicator_add);
+ }
}
+
return super.getPageIndicatorMarker(pageIndex);
}