More spacing changes for AllApps.
- Also testing a simple scale of existing icons in lieu of high res icons.
Change-Id: Ib9758064536cd1b1704344ea885bccdc93dd3466
diff --git a/res/layout-xlarge-land/all_apps_tabbed.xml b/res/layout-xlarge-land/all_apps_tabbed.xml
index 3a07b95..fd9d9cb 100644
--- a/res/layout-xlarge-land/all_apps_tabbed.xml
+++ b/res/layout-xlarge-land/all_apps_tabbed.xml
@@ -15,8 +15,7 @@
-->
<com.android.launcher2.AllAppsTabbed
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
- android:paddingTop="?android:attr/actionBarSize">
+ xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
@@ -26,8 +25,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
- android:tabStripEnabled="false"
- android:paddingBottom="10dp" />
+ android:tabStripEnabled="false" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
@@ -37,11 +35,13 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
launcher:cellCountX="7"
- launcher:cellCountY="4"
- launcher:pageLayoutPaddingTop="10dp"
+ launcher:cellCountY="5"
+ launcher:pageLayoutWidthGap="36dp"
+ launcher:pageLayoutHeightGap="6dp"
+ launcher:pageLayoutPaddingTop="0dp"
launcher:pageLayoutPaddingBottom="15dp"
- launcher:pageLayoutPaddingLeft="20dp"
- launcher:pageLayoutPaddingRight="20dp">
+ launcher:pageLayoutPaddingLeft="40dp"
+ launcher:pageLayoutPaddingRight="40dp">
</com.android.launcher2.AllAppsPagedView>
</FrameLayout>
</LinearLayout>
diff --git a/res/layout-xlarge-land/launcher.xml b/res/layout-xlarge-land/launcher.xml
index 65f29df..0ef946f 100644
--- a/res/layout-xlarge-land/launcher.xml
+++ b/res/layout-xlarge-land/launcher.xml
@@ -26,7 +26,7 @@
layout="@layout/all_apps_tabbed"
android:id="@+id/all_apps_view"
android:layout_width="match_parent"
- android:layout_height="550dip"
+ android:layout_height="600dip"
android:layout_gravity="top"/>
<!-- The workspace contains 5 screens of cells -->
diff --git a/res/layout-xlarge-port/all_apps_tabbed.xml b/res/layout-xlarge-port/all_apps_tabbed.xml
index 6675adc..d61c979 100644
--- a/res/layout-xlarge-port/all_apps_tabbed.xml
+++ b/res/layout-xlarge-port/all_apps_tabbed.xml
@@ -26,8 +26,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
- android:tabStripEnabled="false"
- android:paddingBottom="10dp" />
+ android:tabStripEnabled="false" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
@@ -38,10 +37,12 @@
android:layout_height="match_parent"
launcher:cellCountX="5"
launcher:cellCountY="7"
- launcher:pageLayoutPaddingTop="10dp"
+ launcher:pageLayoutWidthGap="36dp"
+ launcher:pageLayoutHeightGap="36dp"
+ launcher:pageLayoutPaddingTop="0dp"
launcher:pageLayoutPaddingBottom="10dp"
- launcher:pageLayoutPaddingLeft="0dp"
- launcher:pageLayoutPaddingRight="0dp">
+ launcher:pageLayoutPaddingLeft="20dp"
+ launcher:pageLayoutPaddingRight="20dp">
</com.android.launcher2.AllAppsPagedView>
</FrameLayout>
</LinearLayout>
diff --git a/res/layout-xlarge-port/customization_drawer.xml b/res/layout-xlarge-port/customization_drawer.xml
index 20c207f..53d1f6f 100644
--- a/res/layout-xlarge-port/customization_drawer.xml
+++ b/res/layout-xlarge-port/customization_drawer.xml
@@ -24,5 +24,5 @@
launcher:cellCountY="4"
launcher:pageLayoutPaddingTop="15dp"
launcher:pageLayoutPaddingBottom="25dp"
- launcher:pageLayoutPaddingLeft="0dp"
- launcher:pageLayoutPaddingRight="0dp" />
\ No newline at end of file
+ launcher:pageLayoutPaddingLeft="15dp"
+ launcher:pageLayoutPaddingRight="15dp" />
diff --git a/res/layout-xlarge-port/launcher.xml b/res/layout-xlarge-port/launcher.xml
index a418b36..df7abc1 100644
--- a/res/layout-xlarge-port/launcher.xml
+++ b/res/layout-xlarge-port/launcher.xml
@@ -26,7 +26,7 @@
layout="@layout/all_apps_tabbed"
android:id="@+id/all_apps_view"
android:layout_width="match_parent"
- android:layout_height="1000dip"
+ android:layout_height="1040dip"
android:layout_gravity="top"/>
<!-- The workspace contains 5 screens of cells -->
diff --git a/res/layout-xlarge/all_apps_paged_view_application.xml b/res/layout-xlarge/all_apps_paged_view_application.xml
index 8e53e06..f687739 100644
--- a/res/layout-xlarge/all_apps_paged_view_application.xml
+++ b/res/layout-xlarge/all_apps_paged_view_application.xml
@@ -22,6 +22,7 @@
launcher:outlineColor="#FF8CD2FF"
launcher:checkedBlurColor="#FFBBE83C"
launcher:checkedOutlineColor="#FF8CD2FF"
+ launcher:scaledIconSize="64dp"
android:id="@+id/application_icon"
android:layout_width="match_parent"
@@ -30,7 +31,7 @@
android:paddingTop="2dip"
android:textColor="#FFFFFFFF"
- android:textSize="14sp"
+ android:textSize="13sp"
android:shadowColor="#FF000000"
android:shadowDx="0.0"
android:shadowDy="1.0"
diff --git a/res/values-xlarge/dimens.xml b/res/values-xlarge/dimens.xml
index 4662aad..ecc6f3a 100644
--- a/res/values-xlarge/dimens.xml
+++ b/res/values-xlarge/dimens.xml
@@ -23,7 +23,8 @@
<dimen name="smallScreenExtraSpacing">0dip</dimen>
<!-- vertical spacing between edge of screen and mini screen thumbnails -->
- <dimen name="smallScreenVerticalMargin">60dip</dimen>
+ <dimen name="smallScreenVerticalMarginLandscape">30dip</dimen>
+ <dimen name="smallScreenVerticalMarginPortrait">60dip</dimen>
<dimen name="toolbar_padding">10dip</dimen>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 14a5e98..a0e2706 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -66,6 +66,8 @@
<attr name="checkedBlurColor" format="color" />
<!-- The checked outline color of the holographic outline -->
<attr name="checkedOutlineColor" format="color" />
+ <!-- The scaled icon dimension -->
+ <attr name="scaledIconSize" format="dimension" />
</declare-styleable>
<!-- PagedViewWidgetIcon specific attributes. These attributes are used to
@@ -84,6 +86,9 @@
<attr name="cellCountX" />
<!-- The number of vertical cells in a page -->
<attr name="cellCountY" />
+ <!-- A spacing override for the icons within a page -->
+ <attr name="pageLayoutWidthGap" format="dimension" />
+ <attr name="pageLayoutHeightGap" format="dimension" />
<!-- The padding of the pages that are dynamically created per page -->
<attr name="pageLayoutPaddingTop" format="dimension" />
<attr name="pageLayoutPaddingBottom" format="dimension" />
diff --git a/src/com/android/launcher2/AllAppsPagedView.java b/src/com/android/launcher2/AllAppsPagedView.java
index 42101eb..5de53d8 100644
--- a/src/com/android/launcher2/AllAppsPagedView.java
+++ b/src/com/android/launcher2/AllAppsPagedView.java
@@ -358,6 +358,7 @@
layout.setCellCount(mCellCountX, mCellCountY);
layout.setPadding(mPageLayoutPaddingLeft, mPageLayoutPaddingTop,
mPageLayoutPaddingRight, mPageLayoutPaddingBottom);
+ layout.setGap(mPageLayoutWidthGap, mPageLayoutHeightGap);
addView(layout);
}
@@ -414,7 +415,7 @@
final int index = i - startIndex;
final ApplicationInfo info = mFilteredApps.get(i);
PagedViewIcon icon = (PagedViewIcon) layout.getChildAt(index);
- icon.applyFromApplicationInfo(info, mPageViewIconCache);
+ icon.applyFromApplicationInfo(info, mPageViewIconCache, true);
PagedViewCellLayout.LayoutParams params =
(PagedViewCellLayout.LayoutParams) icon.getLayoutParams();
diff --git a/src/com/android/launcher2/CustomizePagedView.java b/src/com/android/launcher2/CustomizePagedView.java
index 6b7aa98..f832b62 100644
--- a/src/com/android/launcher2/CustomizePagedView.java
+++ b/src/com/android/launcher2/CustomizePagedView.java
@@ -722,7 +722,7 @@
final ApplicationInfo info = mApps.get(i);
PagedViewIcon icon = (PagedViewIcon) mInflater.inflate(
R.layout.all_apps_paged_view_application, layout, false);
- icon.applyFromApplicationInfo(info, mPageViewIconCache);
+ icon.applyFromApplicationInfo(info, mPageViewIconCache, false);
icon.setOnClickListener(this);
icon.setOnLongClickListener(this);
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java
index 39a6af0..4ccc4ae 100644
--- a/src/com/android/launcher2/PagedView.java
+++ b/src/com/android/launcher2/PagedView.java
@@ -96,6 +96,8 @@
protected int mPageLayoutPaddingBottom;
protected int mPageLayoutPaddingLeft;
protected int mPageLayoutPaddingRight;
+ protected int mPageLayoutWidthGap;
+ protected int mPageLayoutHeightGap;
protected int mCellCountX;
protected int mCellCountY;
@@ -184,6 +186,10 @@
R.styleable.PagedView_pageLayoutPaddingLeft, 10);
mPageLayoutPaddingRight = a.getDimensionPixelSize(
R.styleable.PagedView_pageLayoutPaddingRight, 10);
+ mPageLayoutWidthGap = a.getDimensionPixelSize(
+ R.styleable.PagedView_pageLayoutWidthGap, -1);
+ mPageLayoutHeightGap = a.getDimensionPixelSize(
+ R.styleable.PagedView_pageLayoutHeightGap, -1);
a.recycle();
setHapticFeedbackEnabled(false);
diff --git a/src/com/android/launcher2/PagedViewCellLayout.java b/src/com/android/launcher2/PagedViewCellLayout.java
index b247a06..0a5a2ec 100644
--- a/src/com/android/launcher2/PagedViewCellLayout.java
+++ b/src/com/android/launcher2/PagedViewCellLayout.java
@@ -46,6 +46,8 @@
private int mCellCountY;
private int mCellWidth;
private int mCellHeight;
+ private int mWidthGap;
+ private int mHeightGap;
private static int sDefaultCellDimensions = 96;
public PagedViewCellLayout(Context context) {
@@ -66,6 +68,7 @@
mCellCountX = LauncherModel.getCellCountX();
mCellCountY = LauncherModel.getCellCountY();
mHolographicAlpha = 0.0f;
+ mWidthGap = mHeightGap = -1;
}
@Override
@@ -168,12 +171,17 @@
paddingLeft += ((widthGap - minGap) * (mCellCountX - 1)) / 2;
}
*/
- widthGap = heightGap = minGap;
+ if (mWidthGap > -1 && mHeightGap > -1) {
+ widthGap = mWidthGap;
+ heightGap = mHeightGap;
+ } else {
+ widthGap = heightGap = minGap;
+ }
int newWidth = mPaddingLeft + mPaddingRight + (mCellCountX * cellWidth) +
- ((mCellCountX - 1) * minGap);
+ ((mCellCountX - 1) * widthGap);
int newHeight = mPaddingTop + mPaddingBottom + (mCellCountY * cellHeight) +
- ((mCellCountY - 1) * minGap);
+ ((mCellCountY - 1) * heightGap);
final int count = getChildCount();
for (int i = 0; i < count; i++) {
@@ -252,6 +260,11 @@
requestLayout();
}
+ public void setGap(int widthGap, int heightGap) {
+ mWidthGap = widthGap;
+ mHeightGap = heightGap;
+ }
+
public void setCellDimensions(int width, int height) {
mCellWidth = width;
mCellHeight = height;
diff --git a/src/com/android/launcher2/PagedViewIcon.java b/src/com/android/launcher2/PagedViewIcon.java
index 0f7898b..010c573 100644
--- a/src/com/android/launcher2/PagedViewIcon.java
+++ b/src/com/android/launcher2/PagedViewIcon.java
@@ -54,6 +54,7 @@
private Object mIconCacheKey;
private PagedViewIconCache mIconCache;
+ private int mScaledIconSize;
private int mAlpha;
private int mHolographicAlpha;
@@ -82,6 +83,7 @@
mHoloOutlineColor = a.getColor(R.styleable.PagedViewIcon_outlineColor, 0);
mCheckedBlurColor = a.getColor(R.styleable.PagedViewIcon_checkedBlurColor, 0);
mCheckedOutlineColor = a.getColor(R.styleable.PagedViewIcon_checkedOutlineColor, 0);
+ mScaledIconSize = a.getDimensionPixelSize(R.styleable.PagedViewIcon_scaledIconSize, 64);
a.recycle();
if (sHolographicOutlineHelper == null) {
@@ -93,13 +95,21 @@
setBackgroundDrawable(null);
}
- public void applyFromApplicationInfo(ApplicationInfo info, PagedViewIconCache cache) {
+ public void applyFromApplicationInfo(ApplicationInfo info, PagedViewIconCache cache,
+ boolean scaleUp) {
mIconCache = cache;
mIconCacheKey = info;
mHolographicOutline = mIconCache.getOutline(mIconCacheKey);
+ Bitmap icon;
+ if (scaleUp) {
+ icon = Bitmap.createScaledBitmap(info.iconBitmap, mScaledIconSize,
+ mScaledIconSize, true);
+ } else {
+ icon = info.iconBitmap;
+ }
setCompoundDrawablesWithIntrinsicBounds(null,
- new FastBitmapDrawable(info.iconBitmap), null, null);
+ new FastBitmapDrawable(icon), null, null);
setText(info.title);
setTag(info);
}
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index d123374..42a6f1b 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -715,7 +715,10 @@
final int screenCount = getChildCount();
float totalWidth = screenCount * scaledPageWidth + (screenCount - 1) * extraScaledSpacing;
- float newY = getResources().getDimension(R.dimen.smallScreenVerticalMargin);
+ boolean isPortrait = getMeasuredHeight() > getMeasuredWidth();
+ float newY = (isPortrait ?
+ getResources().getDimension(R.dimen.smallScreenVerticalMarginPortrait) :
+ getResources().getDimension(R.dimen.smallScreenVerticalMarginLandscape));
float finalAlpha = 1.0f;
float extraShrinkFactor = 1.0f;
if (shrinkPosition == ShrinkPosition.SHRINK_TO_BOTTOM_VISIBLE) {