diff --git a/res/values/strings.xml b/res/values/strings.xml
index a3c263d736..e8c8d00873 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -81,6 +81,9 @@
Add to Home screen
Applications
+
+ Shortcuts
Widgets
diff --git a/src/com/android/launcher2/AddAdapter.java b/src/com/android/launcher2/AddAdapter.java
index d1076b16b0..5b7e92cb13 100644
--- a/src/com/android/launcher2/AddAdapter.java
+++ b/src/com/android/launcher2/AddAdapter.java
@@ -35,14 +35,14 @@ import com.android.launcher.R;
public class AddAdapter extends BaseAdapter {
private final LayoutInflater mInflater;
-
+
private final ArrayList mItems = new ArrayList();
-
+
public static final int ITEM_SHORTCUT = 0;
public static final int ITEM_APPWIDGET = 1;
public static final int ITEM_APPLICATION = 2;
public static final int ITEM_WALLPAPER = 3;
-
+
/**
* Specific item in our list.
*/
@@ -50,7 +50,7 @@ public class AddAdapter extends BaseAdapter {
public final CharSequence text;
public final Drawable image;
public final int actionTag;
-
+
public ListItem(Resources res, int textResourceId, int imageResourceId, int actionTag) {
text = res.getString(textResourceId);
if (imageResourceId != -1) {
@@ -66,16 +66,17 @@ public class AddAdapter extends BaseAdapter {
super();
mInflater = (LayoutInflater) launcher.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-
+
// Create default actions
Resources res = launcher.getResources();
-
+
mItems.add(new ListItem(res, R.string.group_applications,
R.drawable.ic_launcher_application, ITEM_APPLICATION));
mItems.add(new ListItem(res, R.string.group_widgets,
R.drawable.ic_launcher_appwidget, ITEM_APPWIDGET));
-
+ mItems.add(new ListItem(res, R.string.group_shortcuts,
+ R.drawable.ic_launcher_application, ITEM_SHORTCUT));
mItems.add(new ListItem(res, R.string.group_wallpapers,
R.drawable.ic_launcher_wallpaper, ITEM_WALLPAPER));
@@ -83,16 +84,16 @@ public class AddAdapter extends BaseAdapter {
public View getView(int position, View convertView, ViewGroup parent) {
ListItem item = (ListItem) getItem(position);
-
+
if (convertView == null) {
convertView = mInflater.inflate(R.layout.add_list_item, parent, false);
}
-
+
TextView textView = (TextView) convertView;
textView.setTag(item);
textView.setText(item.text);
textView.setCompoundDrawablesWithIntrinsicBounds(item.image, null, null, null);
-
+
return convertView;
}
@@ -107,5 +108,4 @@ public class AddAdapter extends BaseAdapter {
public long getItemId(int position) {
return position;
}
-
}
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java
index 714e7f9d86..d07b321df6 100644
--- a/src/com/android/launcher2/AppsCustomizePagedView.java
+++ b/src/com/android/launcher2/AppsCustomizePagedView.java
@@ -181,6 +181,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
private int mWidgetWidthGap, mWidgetHeightGap;
private int mShortcutCountX, mShortcutCountY;
private int mShortcutWidthGap, mShortcutHeightGap;
+ private int mNumWidgetPages, mNumShortcutPages;
private final int mWidgetPreviewIconPaddedDimension;
private final float sWidgetPreviewIconPaddingPercentage = 0.25f;
private PagedViewCellLayout mWidgetSpacingLayout;
@@ -287,12 +288,16 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
mShortcutCountX = Math.max(1, (int) Math.round(mCellCountX / 2f));
mShortcutCountY = Math.max(1, (int) Math.round(mCellCountY / 2f));
+ mNumWidgetPages = (int) Math.ceil(mWidgets.size() /
+ (float) (mWidgetCountX * mWidgetCountY));
+ mNumShortcutPages = (int) Math.ceil(mShortcuts.size() /
+ (float) (mShortcutCountX * mShortcutCountY));
+
// Force a measure to update recalculate the gaps
int widthSpec = MeasureSpec.makeMeasureSpec(getMeasuredWidth(), MeasureSpec.AT_MOST);
int heightSpec = MeasureSpec.makeMeasureSpec(getMeasuredHeight(), MeasureSpec.AT_MOST);
mWidgetSpacingLayout.measure(widthSpec, heightSpec);
mContentWidth = mWidgetSpacingLayout.getContentWidth();
-
invalidatePageData();
}
@@ -495,14 +500,20 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
public void setContentType(ContentType type) {
mContentType = type;
- setCurrentPage(0);
- invalidatePageData();
+ invalidatePageData(0);
}
public boolean isContentType(ContentType type) {
return (mContentType == type);
}
+ public void setCurrentPageToWidgets() {
+ invalidatePageData(0);
+ }
+ public void setCurrentPageToShortcuts() {
+ invalidatePageData(mNumWidgetPages);
+ }
+
/*
* Apps PagedView implementation
*/
@@ -848,14 +859,10 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
Context context = getContext();
int[] countX = { mWidgetCountX, mShortcutCountX };
int[] countY = { mWidgetCountY, mShortcutCountY };
- Object[] collection = { mWidgets, mShortcuts };
+ int[] numPages = { mNumWidgetPages, mNumShortcutPages };
for (int i = 0; i < 2; ++i) {
- ArrayList