Merge branch 'master' into honeycomb-release
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/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index c9be887..d94bacf 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -49,6 +49,8 @@
import android.view.animation.DecelerateInterpolator;
import android.view.animation.LayoutAnimationController;
+import java.util.Arrays;
+
public class CellLayout extends ViewGroup implements Dimmable {
static final String TAG = "CellLayout";
@@ -107,6 +109,7 @@
// Used as an index into the above 3 arrays; indicates which is the most current value.
private int mDragOutlineCurrent = 0;
+ private final Paint mDragOutlinePaint = new Paint();
private Drawable mCrosshairsDrawable = null;
private InterruptibleInOutAnimator mCrosshairsAnimator = null;
@@ -188,7 +191,7 @@
mCrosshairsAnimator.getAnimator().addUpdateListener(new AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator animation) {
mCrosshairsVisibility = ((Float) animation.getAnimatedValue()).floatValue();
- CellLayout.this.invalidate();
+ invalidate();
}
});
mCrosshairsAnimator.getAnimator().setInterpolator(mEaseOutInterpolator);
@@ -205,9 +208,7 @@
final float fromAlphaValue = 0;
final float toAlphaValue = (float)res.getInteger(R.integer.config_dragOutlineMaxAlpha);
- for (int i = 0; i < mDragOutlineAlphas.length; i++) {
- mDragOutlineAlphas[i] = fromAlphaValue;
- }
+ Arrays.fill(mDragOutlineAlphas, fromAlphaValue);
for (int i = 0; i < mDragOutlineAnims.length; i++) {
final InterruptibleInOutAnimator anim =
@@ -404,7 +405,7 @@
}
}
- final Paint paint = new Paint();
+ final Paint paint = mDragOutlinePaint;
for (int i = 0; i < mDragOutlines.length; i++) {
final float alpha = mDragOutlineAlphas[i];
if (alpha > 0) {
diff --git a/src/com/android/launcher2/CustomizePagedView.java b/src/com/android/launcher2/CustomizePagedView.java
index 6b7aa98..cc21276 100644
--- a/src/com/android/launcher2/CustomizePagedView.java
+++ b/src/com/android/launcher2/CustomizePagedView.java
@@ -334,35 +334,18 @@
}
if (enterChoiceMode) {
- if (v instanceof Checkable) {
- final Checkable c = (Checkable) v;
- final boolean wasChecked = c.isChecked();
- resetCheckedGrandchildren();
- c.setChecked(!wasChecked);
+ final ItemInfo itemInfo = (ItemInfo) v.getTag();
- // End the current choice mode when we have no items selected
- /*if (!c.isChecked()) {
- endChoiceMode();
- } else if (isChoiceMode(CHOICE_MODE_NONE)) {
- endChoiceMode();
- startChoiceMode(CHOICE_MODE_SINGLE, this);
- }*/
- mChoiceMode = CHOICE_MODE_SINGLE;
+ Workspace w = mLauncher.getWorkspace();
+ int currentWorkspaceScreen = mLauncher.getCurrentWorkspaceScreen();
+ final CellLayout cl = (CellLayout)w.getChildAt(currentWorkspaceScreen);
- Workspace w = mLauncher.getWorkspace();
- int currentWorkspaceScreen = mLauncher.getCurrentWorkspaceScreen();
- final CellLayout cl = (CellLayout)w.getChildAt(currentWorkspaceScreen);
- cl.setHover(true);
-
- animateClickFeedback(v, new Runnable() {
- @Override
- public void run() {
- cl.setHover(false);
- mLauncher.onWorkspaceClick(cl);
- mChoiceMode = CHOICE_MODE_NONE;
- }
- });
- }
+ animateClickFeedback(v, new Runnable() {
+ @Override
+ public void run() {
+ mLauncher.addExternalItemToScreen(itemInfo, cl);
+ }
+ });
return;
}
@@ -722,7 +705,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/HolographicOutlineHelper.java b/src/com/android/launcher2/HolographicOutlineHelper.java
index ea4b01a..bca3f71 100644
--- a/src/com/android/launcher2/HolographicOutlineHelper.java
+++ b/src/com/android/launcher2/HolographicOutlineHelper.java
@@ -23,7 +23,6 @@
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
-import android.graphics.Rect;
import android.graphics.TableMaskFilter;
public class HolographicOutlineHelper {
@@ -31,19 +30,24 @@
private final Paint mBlurPaint = new Paint();
private final Paint mErasePaint = new Paint();
- private static final BlurMaskFilter sLargeGlowBlurMaskFilter = new BlurMaskFilter(
- 10.0f, BlurMaskFilter.Blur.OUTER);
- private static final BlurMaskFilter sThickOuterBlurMaskFilter = new BlurMaskFilter(
- 6.0f, BlurMaskFilter.Blur.OUTER);
- private static final BlurMaskFilter sMediumOuterBlurMaskFilter = new BlurMaskFilter(
- 2.0f, BlurMaskFilter.Blur.OUTER);
- private static final BlurMaskFilter sThinOuterBlurMaskFilter = new BlurMaskFilter(
- 1.0f, BlurMaskFilter.Blur.OUTER);
+ public static final int OUTER_BLUR_RADIUS;
- private static final BlurMaskFilter sThickInnerBlurMaskFilter = new BlurMaskFilter(
- 4.0f, BlurMaskFilter.Blur.NORMAL);
- private static final BlurMaskFilter sThinInnerBlurMaskFilter = new BlurMaskFilter(
- 1.0f, BlurMaskFilter.Blur.INNER);
+ private static final BlurMaskFilter sThickOuterBlurMaskFilter;
+ private static final BlurMaskFilter sMediumOuterBlurMaskFilter;
+ private static final BlurMaskFilter sThinOuterBlurMaskFilter;
+ private static final BlurMaskFilter sThickInnerBlurMaskFilter;
+
+ static {
+ final float scale = LauncherApplication.getScreenDensity();
+
+ OUTER_BLUR_RADIUS = (int) (scale * 6.0f);
+
+ sThickOuterBlurMaskFilter = new BlurMaskFilter(OUTER_BLUR_RADIUS,
+ BlurMaskFilter.Blur.OUTER);
+ sMediumOuterBlurMaskFilter = new BlurMaskFilter(scale * 2.0f, BlurMaskFilter.Blur.OUTER);
+ sThinOuterBlurMaskFilter = new BlurMaskFilter(scale * 1.0f, BlurMaskFilter.Blur.OUTER);
+ sThickInnerBlurMaskFilter = new BlurMaskFilter(scale * 4.0f, BlurMaskFilter.Blur.NORMAL);
+ }
private static final MaskFilter sFineClipTable = TableMaskFilter.CreateClipTable(0, 20);
private static final MaskFilter sCoarseClipTable = TableMaskFilter.CreateClipTable(0, 200);
@@ -81,7 +85,12 @@
}
}
- void applyGlow(Bitmap bitmap, Canvas canvas, int color) {
+ /**
+ * Apply an outer blur to the given bitmap.
+ * You should use OUTER_BLUR_RADIUS to ensure that the bitmap is big enough to draw
+ * the blur without clipping.
+ */
+ void applyOuterBlur(Bitmap bitmap, Canvas canvas, int color) {
mBlurPaint.setMaskFilter(sThickOuterBlurMaskFilter);
Bitmap glow = bitmap.extractAlpha(mBlurPaint, mTempOffset);
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 6fcf432..2688e54 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -2669,24 +2669,14 @@
}
}
- void onWorkspaceClick(CellLayout layout) {
- Object itemInfo = mAllAppsPagedView.getChosenItem();
- if (itemInfo == null) {
- itemInfo = mCustomizePagedView.getChosenItem();
+ void addExternalItemToScreen(ItemInfo itemInfo, CellLayout layout) {
+ if (!mWorkspace.addExternalItemToScreen(itemInfo, layout)) {
+ showOutOfSpaceMessage();
}
+ }
- if (itemInfo == null) {
- // No items are chosen in All Apps or Customize, so just zoom into the workspace
- showWorkspace(true, layout);
- } else {
- // Act as if the chosen item was dropped on the given CellLayout
- if (mWorkspace.addExternalItemToScreen(itemInfo, layout)) {
- mAllAppsPagedView.endChoiceMode();
- mCustomizePagedView.endChoiceMode();
- } else {
- showOutOfSpaceMessage();
- }
- }
+ void onWorkspaceClick(CellLayout layout) {
+ showWorkspace(true, layout);
}
private void updateButtonWithIconFromExternalActivity(
diff --git a/src/com/android/launcher2/LauncherApplication.java b/src/com/android/launcher2/LauncherApplication.java
index ca08378..8a18317 100644
--- a/src/com/android/launcher2/LauncherApplication.java
+++ b/src/com/android/launcher2/LauncherApplication.java
@@ -29,6 +29,7 @@
public LauncherModel mModel;
public IconCache mIconCache;
private static boolean sIsScreenXLarge;
+ private static float sScreenDensity;
private static final boolean ENABLE_ROTATION = false;
@Override
@@ -40,6 +41,7 @@
mIconCache = new IconCache(this);
mModel = new LauncherModel(this, mIconCache);
sIsScreenXLarge = (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_XLARGE;
+ sScreenDensity = getResources().getDisplayMetrics().density;
// Register intent receivers
IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
@@ -101,4 +103,8 @@
public static boolean isScreenXLarge() {
return sIsScreenXLarge;
}
+
+ public static float getScreenDensity() {
+ return sScreenDensity;
+ }
}
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java
index abb9b0b..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);
@@ -649,7 +655,7 @@
* otherwise don't. mScroller.isFinished should be false when
* being flinged.
*/
- final int xDist = (mScroller.getFinalX() - mScroller.getCurrX());
+ final int xDist = Math.abs(mScroller.getFinalX() - mScroller.getCurrX());
final boolean finishedScrolling = (mScroller.isFinished() || xDist < mTouchSlop);
if (finishedScrolling) {
mTouchState = TOUCH_STATE_REST;
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 dd622a6..42a6f1b 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -139,10 +139,10 @@
private boolean mInScrollArea = false;
- private HolographicOutlineHelper mOutlineHelper = new HolographicOutlineHelper();
+ private final HolographicOutlineHelper mOutlineHelper = new HolographicOutlineHelper();
private Bitmap mDragOutline = null;
- private Rect mTempRect = new Rect();
- private int[] mTempXY = new int[2];
+ private final Rect mTempRect = new Rect();
+ private final int[] mTempXY = new int[2];
/**
* Used to inflate the Workspace from XML.
@@ -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) {
@@ -991,14 +994,13 @@
canvas.setBitmap(b);
canvas.drawBitmap(mDragOutline, 0, 0, null);
drawDragView(v, canvas, padding);
- mOutlineHelper.applyGlow(b, canvas, outlineColor);
+ mOutlineHelper.applyOuterBlur(b, canvas, outlineColor);
return b;
}
void startDrag(CellLayout.CellInfo cellInfo) {
View child = cellInfo.cell;
- final int blurPadding = 40;
// Make sure the drag was started by a long press as opposed to a long click.
if (!child.isInTouchMode()) {
@@ -1017,11 +1019,14 @@
final Canvas canvas = new Canvas();
+ // We need to add extra padding to the bitmap to make room for the glow effect
+ final int bitmapPadding = HolographicOutlineHelper.OUTER_BLUR_RADIUS;
+
// The outline is used to visualize where the item will land if dropped
- mDragOutline = createDragOutline(child, canvas, blurPadding);
+ mDragOutline = createDragOutline(child, canvas, bitmapPadding);
// The drag bitmap follows the touch point around on the screen
- final Bitmap b = createDragBitmap(child, canvas, blurPadding);
+ final Bitmap b = createDragBitmap(child, canvas, bitmapPadding);
final int bmpWidth = b.getWidth();
final int bmpHeight = b.getHeight();