diff options
20 files changed, 106 insertions, 65 deletions
diff --git a/res/drawable-mdpi/tab_unselected_holo.9.png b/res/drawable-mdpi/tab_unselected_holo.9.png Binary files differnew file mode 100644 index 000000000..848f3f133 --- /dev/null +++ b/res/drawable-mdpi/tab_unselected_holo.9.png diff --git a/res/drawable-xlarge/all_apps_bg_gradient.9.png b/res/drawable-xlarge/all_apps_bg_gradient.9.png Binary files differnew file mode 100644 index 000000000..8d88a7ec5 --- /dev/null +++ b/res/drawable-xlarge/all_apps_bg_gradient.9.png diff --git a/res/drawable-xlarge/customize_bg_gradient.png b/res/drawable-xlarge/customize_bg_gradient.png Binary files differnew file mode 100644 index 000000000..fb3ec90ee --- /dev/null +++ b/res/drawable-xlarge/customize_bg_gradient.png diff --git a/res/layout-xlarge-land/all_apps_tabbed.xml b/res/layout-xlarge-land/all_apps_tabbed.xml index fd9d9cbf6..89a310477 100644 --- a/res/layout-xlarge-land/all_apps_tabbed.xml +++ b/res/layout-xlarge-land/all_apps_tabbed.xml @@ -22,9 +22,10 @@ android:layout_height="match_parent"> <TabWidget android:id="@android:id/tabs" - android:layout_width="wrap_content" + android:layout_width="952dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" + android:background="@drawable/tab_unselected_holo" android:tabStripEnabled="false" /> <FrameLayout android:id="@android:id/tabcontent" @@ -38,7 +39,7 @@ launcher:cellCountY="5" launcher:pageLayoutWidthGap="36dp" launcher:pageLayoutHeightGap="6dp" - launcher:pageLayoutPaddingTop="0dp" + launcher:pageLayoutPaddingTop="15dp" launcher:pageLayoutPaddingBottom="15dp" launcher:pageLayoutPaddingLeft="40dp" launcher:pageLayoutPaddingRight="40dp"> diff --git a/res/layout-xlarge-land/customization_drawer.xml b/res/layout-xlarge-land/customization_drawer.xml index 8c60e68ba..911525961 100644 --- a/res/layout-xlarge-land/customization_drawer.xml +++ b/res/layout-xlarge-land/customization_drawer.xml @@ -20,9 +20,11 @@ android:layout_width="match_parent" android:layout_height="match_parent" launcher:widgetCellCountX="16" - launcher:cellCountX="7" - launcher:cellCountY="4" - launcher:pageLayoutPaddingTop="10dp" + launcher:cellCountX="8" + launcher:cellCountY="3" + launcher:pageLayoutWidthGap="32dp" + launcher:pageLayoutHeightGap="12dp" + launcher:pageLayoutPaddingTop="40dp" launcher:pageLayoutPaddingBottom="25dp" launcher:pageLayoutPaddingLeft="20dp" launcher:pageLayoutPaddingRight="20dp" />
\ No newline at end of file diff --git a/res/layout-xlarge-land/launcher.xml b/res/layout-xlarge-land/launcher.xml index f42d72bd4..e5ba3934c 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="600dip" + android:layout_height="600dp" android:layout_gravity="top"/> <!-- The workspace contains 5 screens of cells --> @@ -38,7 +38,7 @@ launcher:defaultScreen="2" launcher:cellCountX="8" launcher:cellCountY="7" - launcher:pageSpacing="32dip"> + launcher:pageSpacing="32dp"> <include android:id="@+id/cell1" layout="@layout/workspace_screen" /> <include android:id="@+id/cell2" layout="@layout/workspace_screen" /> @@ -86,7 +86,7 @@ android:layout_toLeftOf="@id/configure_button" android:layout_marginLeft="@dimen/toolbar_button_spacing" android:layout_marginRight="@dimen/toolbar_button_spacing" - android:textSize="18dip" + android:textSize="18dp" android:onClick="onClickAllAppsButton" android:focusable="true" @@ -131,20 +131,19 @@ <TabHost android:id="@android:id/tabhost" android:layout_width="match_parent" - android:layout_height="500dip" + android:layout_height="460dp" android:layout_gravity="bottom"> <LinearLayout android:orientation="vertical" - android:background="#40000000" android:layout_width="match_parent" android:layout_height="match_parent"> <TabWidget android:id="@android:id/tabs" - android:layout_width="wrap_content" + android:layout_width="952dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" - android:tabStripEnabled="false" - android:paddingBottom="10dp" /> + android:background="@drawable/tab_unselected_holo" + android:tabStripEnabled="false" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="match_parent" diff --git a/res/layout-xlarge-port/all_apps_tabbed.xml b/res/layout-xlarge-port/all_apps_tabbed.xml index d61c979de..65e3729fd 100644 --- a/res/layout-xlarge-port/all_apps_tabbed.xml +++ b/res/layout-xlarge-port/all_apps_tabbed.xml @@ -15,17 +15,17 @@ --> <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" android:layout_height="match_parent"> <TabWidget android:id="@android:id/tabs" - android:layout_width="wrap_content" + android:layout_width="700dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" + android:background="@drawable/tab_unselected_holo" android:tabStripEnabled="false" /> <FrameLayout android:id="@android:id/tabcontent" @@ -39,7 +39,7 @@ launcher:cellCountY="7" launcher:pageLayoutWidthGap="36dp" launcher:pageLayoutHeightGap="36dp" - launcher:pageLayoutPaddingTop="0dp" + launcher:pageLayoutPaddingTop="25dp" launcher:pageLayoutPaddingBottom="10dp" launcher:pageLayoutPaddingLeft="20dp" launcher:pageLayoutPaddingRight="20dp"> diff --git a/res/layout-xlarge-port/customization_drawer.xml b/res/layout-xlarge-port/customization_drawer.xml index d3ca45741..28127ea67 100644 --- a/res/layout-xlarge-port/customization_drawer.xml +++ b/res/layout-xlarge-port/customization_drawer.xml @@ -21,10 +21,10 @@ android:layout_height="match_parent" launcher:widgetCellCountX="10" launcher:cellCountX="5" - launcher:cellCountY="5" + launcher:cellCountY="3" launcher:pageLayoutWidthGap="36dp" - launcher:pageLayoutHeightGap="36dp" - launcher:pageLayoutPaddingTop="25dp" + launcher:pageLayoutHeightGap="12dp" + launcher:pageLayoutPaddingTop="40dp" launcher:pageLayoutPaddingBottom="25dp" launcher:pageLayoutPaddingLeft="20dp" launcher:pageLayoutPaddingRight="20dp" /> diff --git a/res/layout-xlarge-port/launcher.xml b/res/layout-xlarge-port/launcher.xml index 20debcaf4..13b69fee4 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="1040dip" + android:layout_height="1040dp" android:layout_gravity="top"/> <!-- The workspace contains 5 screens of cells --> @@ -38,7 +38,7 @@ launcher:defaultScreen="2" launcher:cellCountX="8" launcher:cellCountY="7" - launcher:pageSpacing="64dip"> + launcher:pageSpacing="64dp"> <include android:id="@+id/cell1" layout="@layout/workspace_screen" /> <include android:id="@+id/cell2" layout="@layout/workspace_screen" /> @@ -86,7 +86,7 @@ android:layout_toLeftOf="@id/configure_button" android:layout_marginLeft="@dimen/toolbar_button_spacing" android:layout_marginRight="@dimen/toolbar_button_spacing" - android:textSize="18dip" + android:textSize="18dp" android:onClick="onClickAllAppsButton" android:focusable="true" @@ -131,20 +131,19 @@ <TabHost android:id="@android:id/tabhost" android:layout_width="match_parent" - android:layout_height="800dip" + android:layout_height="800dp" android:layout_gravity="bottom"> <LinearLayout android:orientation="vertical" - android:background="#40000000" android:layout_width="match_parent" android:layout_height="match_parent"> <TabWidget android:id="@android:id/tabs" - android:layout_width="wrap_content" + android:layout_width="700dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" - android:tabStripEnabled="false" - android:paddingBottom="10dp" /> + android:background="@drawable/tab_unselected_holo" + android:tabStripEnabled="false" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="match_parent" diff --git a/res/layout-xlarge/all_apps_paged_view_application.xml b/res/layout-xlarge/all_apps_paged_view_application.xml index 48b571235..745822235 100644 --- a/res/layout-xlarge/all_apps_paged_view_application.xml +++ b/res/layout-xlarge/all_apps_paged_view_application.xml @@ -27,5 +27,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal" + android:singleLine="false" + android:maxLines="1" style="@style/WorkspaceIcon.Portrait" /> diff --git a/res/layout-xlarge/customize_paged_view_item.xml b/res/layout-xlarge/customize_paged_view_item.xml index e42734506..bbc04d70e 100644 --- a/res/layout-xlarge/customize_paged_view_item.xml +++ b/res/layout-xlarge/customize_paged_view_item.xml @@ -26,15 +26,7 @@ android:id="@+id/customize_icon" android:layout_width="match_parent" android:layout_height="match_parent" - android:gravity="center_horizontal" - android:paddingTop="2dip" + android:singleLine="false" + android:maxLines="1" - android:textColor="#FFFFFFFF" - android:textSize="14sp" - android:shadowColor="#FF000000" - android:shadowDx="0.0" - android:shadowDy="1.0" - android:shadowRadius="1.0" - - android:maxLines="2" - android:fadingEdge="horizontal" /> + style="@style/WorkspaceIcon.Landscape" /> diff --git a/res/layout-xlarge/customize_paged_view_widget.xml b/res/layout-xlarge/customize_paged_view_widget.xml index cfc0ca0d9..fab2a9b87 100644 --- a/res/layout-xlarge/customize_paged_view_widget.xml +++ b/res/layout-xlarge/customize_paged_view_widget.xml @@ -18,7 +18,7 @@ xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher" android:layout_width="wrap_content" - android:layout_height="425dp" + android:layout_height="365dp" android:paddingLeft="12.5dp" android:paddingRight="12.5dp" android:paddingBottom="50dp" diff --git a/res/values-xlarge/dimens.xml b/res/values-xlarge/dimens.xml index aa602be1c..742b59a01 100644 --- a/res/values-xlarge/dimens.xml +++ b/res/values-xlarge/dimens.xml @@ -39,7 +39,7 @@ <!-- Vertical spacing between edge of screen and mini cell layouts when they are minimized to the top when the customization drawer is showing --> - <dimen name="customizeSmallScreenVerticalMarginLandscape">70dip</dimen> + <dimen name="customizeSmallScreenVerticalMarginLandscape">90dip</dimen> <dimen name="customizeSmallScreenVerticalMarginPortrait">180dip</dimen> <dimen name="toolbar_padding">10dip</dimen> diff --git a/res/values-xlarge/styles.xml b/res/values-xlarge/styles.xml index bf79b4d86..83cdbccb5 100644 --- a/res/values-xlarge/styles.xml +++ b/res/values-xlarge/styles.xml @@ -29,11 +29,11 @@ <style name="WorkspaceIcon.Portrait"> <item name="android:drawablePadding">0dip</item> - <item name="android:paddingTop">1dip</item> + <item name="android:paddingTop">0dip</item> </style> <style name="WorkspaceIcon.Landscape"> <item name="android:drawablePadding">0dip</item> - <item name="android:paddingTop">1dip</item> + <item name="android:paddingTop">0dip</item> </style> </resources> diff --git a/src/com/android/launcher2/AllAppsPagedView.java b/src/com/android/launcher2/AllAppsPagedView.java index 149f9fb8a..351384f93 100644 --- a/src/com/android/launcher2/AllAppsPagedView.java +++ b/src/com/android/launcher2/AllAppsPagedView.java @@ -94,6 +94,12 @@ public class AllAppsPagedView extends PagedView } @Override + protected void init() { + super.init(); + mCenterPagesVertically = false; + } + + @Override public void setLauncher(Launcher launcher) { mLauncher = launcher; mLauncher.setAllAppsPagedView(this); diff --git a/src/com/android/launcher2/CustomizePagedView.java b/src/com/android/launcher2/CustomizePagedView.java index a475a50d2..156bc20bb 100644 --- a/src/com/android/launcher2/CustomizePagedView.java +++ b/src/com/android/launcher2/CustomizePagedView.java @@ -33,6 +33,7 @@ import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.Canvas; +import android.graphics.Color; import android.graphics.Rect; import android.graphics.Region.Op; import android.graphics.drawable.Drawable; @@ -130,6 +131,12 @@ public class CustomizePagedView extends PagedView setupWorkspaceLayout(); } + @Override + protected void init() { + super.init(); + mCenterPagesVertically = false; + } + public void setLauncher(Launcher launcher) { Context context = getContext(); mLauncher = launcher; @@ -440,6 +447,17 @@ public class CustomizePagedView extends PagedView } /** + * Helper function to draw a drawable to the specified canvas with the specified bounds. + */ + private void renderDrawableToBitmap(Drawable d, Bitmap bitmap, int l, int t, int r, int b) { + if (bitmap != null) mCanvas.setBitmap(bitmap); + mCanvas.save(); + d.setBounds(l, t, r, b); + d.draw(mCanvas); + mCanvas.restore(); + } + + /** * This method will extract the preview image specified by the widget developer (if it exists), * otherwise, it will try to generate a default image preview with the widget's package icon. * @return the drawable will be used and sized in the ImageView to represent the widget @@ -453,28 +471,21 @@ public class CustomizePagedView extends PagedView if (drawable == null) { Log.w(TAG, "Can't load icon drawable 0x" + Integer.toHexString(info.icon) + " for provider: " + info.provider); - } else { - return drawable; } } // If we don't have a preview image, create a default one + final int minDim = mWorkspaceWidgetLayout.estimateCellWidth(1); + final int maxDim = mWorkspaceWidgetLayout.estimateCellWidth(3); if (drawable == null) { Resources resources = mLauncher.getResources(); // Create a new bitmap to hold the widget preview - final int minDim = mWorkspaceWidgetLayout.estimateCellWidth(1); - final int maxDim = mWorkspaceWidgetLayout.estimateCellWidth(3); int width = (int) (Math.max(minDim, Math.min(maxDim, info.minWidth)) * sScaleFactor); int height = (int) (Math.max(minDim, Math.min(maxDim, info.minHeight)) * sScaleFactor); - Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888); - mCanvas.setBitmap(bitmap); - // For some reason, we must re-set the clip rect here, otherwise it will be wrong - mCanvas.clipRect(0, 0, width, height, Op.REPLACE); - - Drawable background = resources.getDrawable(R.drawable.default_widget_preview); - background.setBounds(0, 0, width, height); - background.draw(mCanvas); + final Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888); + final Drawable background = resources.getDrawable(R.drawable.default_widget_preview); + renderDrawableToBitmap(background, bitmap, 0, 0, width, height); // Draw the icon vertically centered, flush left try { @@ -490,13 +501,34 @@ public class CustomizePagedView extends PagedView final int iconSize = minDim / 2; final int offset = iconSize / 4; - icon.setBounds(new Rect(offset, offset, offset + iconSize, offset + iconSize)); - icon.draw(mCanvas); + final int offsetIconSize = offset + iconSize; + renderDrawableToBitmap(icon, null, offset, offset, offsetIconSize, offsetIconSize); } catch (Resources.NotFoundException e) { // if we can't find the icon, then just don't draw it } drawable = new FastBitmapDrawable(bitmap); + } else { + // Scale down the preview if necessary + final float aspect = (float) info.minWidth / info.minHeight; + final int boundedWidth = (int) Math.max(minDim, Math.min(maxDim, info.minWidth)); + final int boundedHeight = (int) Math.max(minDim, Math.min(maxDim, info.minHeight)); + final int scaledWidth = (int) (boundedWidth * sScaleFactor); + final int scaledHeight = (int) (boundedHeight * sScaleFactor); + int width; + int height; + if (scaledWidth > scaledHeight) { + width = scaledWidth; + height = (int) (width / aspect); + } else { + height = scaledHeight; + width = (int) (height * aspect); + } + + final Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888); + renderDrawableToBitmap(drawable, bitmap, 0, 0, width, height); + + drawable = new FastBitmapDrawable(bitmap); } drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); return drawable; @@ -607,7 +639,7 @@ public class CustomizePagedView extends PagedView PagedViewIcon icon = (PagedViewIcon) mInflater.inflate( R.layout.customize_paged_view_item, layout, false); - icon.applyFromResolveInfo(info, mPackageManager, mPageViewIconCache); + icon.applyFromResolveInfo(info, mPackageManager, mPageViewIconCache, true); switch (mCustomizationType) { case WallpaperCustomization: icon.setOnClickListener(this); @@ -661,7 +693,7 @@ public class CustomizePagedView extends PagedView final ApplicationInfo info = mApps.get(i); PagedViewIcon icon = (PagedViewIcon) mInflater.inflate( R.layout.all_apps_paged_view_application, layout, false); - icon.applyFromApplicationInfo(info, mPageViewIconCache, false); + icon.applyFromApplicationInfo(info, mPageViewIconCache, true); icon.setOnClickListener(this); icon.setOnLongClickListener(this); @@ -763,5 +795,4 @@ public class CustomizePagedView extends PagedView public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return false; } - } diff --git a/src/com/android/launcher2/HolographicOutlineHelper.java b/src/com/android/launcher2/HolographicOutlineHelper.java index bca3f715e..658490acc 100644 --- a/src/com/android/launcher2/HolographicOutlineHelper.java +++ b/src/com/android/launcher2/HolographicOutlineHelper.java @@ -183,4 +183,4 @@ public class HolographicOutlineHelper { thickOuterBlur.recycle(); thickInnerBlur.recycle(); } -}
\ No newline at end of file +} diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java index c1256969b..e9829fbfa 100644 --- a/src/com/android/launcher2/PagedView.java +++ b/src/com/android/launcher2/PagedView.java @@ -102,6 +102,7 @@ public abstract class PagedView extends ViewGroup { protected int mPageLayoutHeightGap; protected int mCellCountX; protected int mCellCountY; + protected boolean mCenterPagesVertically; protected static final int INVALID_POINTER = -1; @@ -207,6 +208,7 @@ public abstract class PagedView extends ViewGroup { mPageViewIconCache = new PagedViewIconCache(); mScroller = new Scroller(getContext()); mCurrentPage = 0; + mCenterPagesVertically = true; final ViewConfiguration configuration = ViewConfiguration.get(getContext()); mTouchSlop = configuration.getScaledTouchSlop(); @@ -394,7 +396,8 @@ public abstract class PagedView extends ViewGroup { final View child = getChildAt(i); if (child.getVisibility() != View.GONE) { final int childWidth = child.getMeasuredWidth(); - final int childHeight = (getMeasuredHeight() - child.getMeasuredHeight()) / 2; + final int childHeight = (mCenterPagesVertically ? + (getMeasuredHeight() - child.getMeasuredHeight()) / 2 : 0); child.layout(childLeft, childHeight, childLeft + childWidth, childHeight + child.getMeasuredHeight()); childLeft += childWidth + mPageSpacing; diff --git a/src/com/android/launcher2/PagedViewIcon.java b/src/com/android/launcher2/PagedViewIcon.java index c59ef8014..6c6c4dcd4 100644 --- a/src/com/android/launcher2/PagedViewIcon.java +++ b/src/com/android/launcher2/PagedViewIcon.java @@ -156,12 +156,16 @@ public class PagedViewIcon extends TextView implements Checkable { } public void applyFromResolveInfo(ResolveInfo info, PackageManager packageManager, - PagedViewIconCache cache) { + PagedViewIconCache cache, boolean scaleUp) { mIconCache = cache; mIconCacheKey = info; mHolographicOutline = mIconCache.getOutline(mIconCacheKey); mIcon = Utilities.createIconBitmap(info.loadIcon(packageManager), mContext); + if (scaleUp) { + mIcon = Bitmap.createScaledBitmap(mIcon, mScaledIconSize, + mScaledIconSize, true); + } setCompoundDrawablesWithIntrinsicBounds(null, new FastBitmapDrawable(mIcon), null, null); setText(info.loadLabel(packageManager)); setTag(info); diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index c4ca9e1e1..263c3a6da 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -778,8 +778,7 @@ public class Workspace extends SmoothPagedView // We shrink and disappear to nothing in the case of all apps // (which is when we shrink to the bottom) newY = screenHeight - newY - scaledPageHeight; - finalAlpha = 0.0f; - extraShrinkFactor = 0.1f; + finalAlpha = 0.25f; } else if (shrinkPosition == ShrinkPosition.SHRINK_TO_MIDDLE) { newY = screenHeight / 2 - scaledPageHeight / 2; finalAlpha = 1.0f; @@ -910,6 +909,9 @@ public class Workspace extends SmoothPagedView // never dragged over public void onDragStopped() { updateWhichPagesAcceptDrops(mShrunkenState); + if (mShrunkenState == ShrinkPosition.SHRINK_TO_BOTTOM_VISIBLE) { + shrink(ShrinkPosition.SHRINK_TO_BOTTOM_HIDDEN, true); + } } // We call this when we trigger an unshrink by clicking on the CellLayout cl |