summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/drawable-hdpi/flying_icon_bg_pressed.9.png (renamed from res/drawable-hdpi/homescreen_small_blue.9.png)bin2098 -> 2098 bytes
-rw-r--r--res/drawable-hdpi/homescreen_small_blue_strong.9.pngbin1942 -> 0 bytes
-rw-r--r--res/drawable-mdpi/flying_icon_bg_pressed.9.png (renamed from res/drawable-mdpi/homescreen_small_blue.9.png)bin1749 -> 1749 bytes
-rw-r--r--res/drawable-mdpi/homescreen_small_blue_strong.9.pngbin1647 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/flying_icon_bg_pressed.9.png (renamed from res/drawable-xhdpi/homescreen_small_blue.9.png)bin10692 -> 10692 bytes
-rw-r--r--res/drawable-xhdpi/homescreen_small_blue_strong.9.pngbin7127 -> 0 bytes
-rw-r--r--res/drawable/flying_icon_bg.xml2
-rw-r--r--src/com/android/launcher2/AppsCustomizePagedView.java4
-rw-r--r--src/com/android/launcher2/CellLayout.java73
-rw-r--r--src/com/android/launcher2/IconCache.java21
-rw-r--r--src/com/android/launcher2/Workspace.java58
11 files changed, 37 insertions, 121 deletions
diff --git a/res/drawable-hdpi/homescreen_small_blue.9.png b/res/drawable-hdpi/flying_icon_bg_pressed.9.png
index 700fadc17..700fadc17 100644
--- a/res/drawable-hdpi/homescreen_small_blue.9.png
+++ b/res/drawable-hdpi/flying_icon_bg_pressed.9.png
Binary files differ
diff --git a/res/drawable-hdpi/homescreen_small_blue_strong.9.png b/res/drawable-hdpi/homescreen_small_blue_strong.9.png
deleted file mode 100644
index 6eab8f265..000000000
--- a/res/drawable-hdpi/homescreen_small_blue_strong.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/homescreen_small_blue.9.png b/res/drawable-mdpi/flying_icon_bg_pressed.9.png
index fb74449a2..fb74449a2 100644
--- a/res/drawable-mdpi/homescreen_small_blue.9.png
+++ b/res/drawable-mdpi/flying_icon_bg_pressed.9.png
Binary files differ
diff --git a/res/drawable-mdpi/homescreen_small_blue_strong.9.png b/res/drawable-mdpi/homescreen_small_blue_strong.9.png
deleted file mode 100644
index 79d84a437..000000000
--- a/res/drawable-mdpi/homescreen_small_blue_strong.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/homescreen_small_blue.9.png b/res/drawable-xhdpi/flying_icon_bg_pressed.9.png
index e678927ff..e678927ff 100644
--- a/res/drawable-xhdpi/homescreen_small_blue.9.png
+++ b/res/drawable-xhdpi/flying_icon_bg_pressed.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/homescreen_small_blue_strong.9.png b/res/drawable-xhdpi/homescreen_small_blue_strong.9.png
deleted file mode 100644
index 696d9071a..000000000
--- a/res/drawable-xhdpi/homescreen_small_blue_strong.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/flying_icon_bg.xml b/res/drawable/flying_icon_bg.xml
index 6f5bf0bca..167c3ba27 100644
--- a/res/drawable/flying_icon_bg.xml
+++ b/res/drawable/flying_icon_bg.xml
@@ -15,6 +15,6 @@
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_pressed="true" android:drawable="@drawable/homescreen_small_blue" />
+ <item android:state_pressed="true" android:drawable="@drawable/flying_icon_bg_pressed" />
<item android:drawable="@android:color/transparent" />
</selector>
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java
index 4e329d147..9000049d1 100644
--- a/src/com/android/launcher2/AppsCustomizePagedView.java
+++ b/src/com/android/launcher2/AppsCustomizePagedView.java
@@ -932,7 +932,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
Bitmap preview = Bitmap.createBitmap(bitmapSize, bitmapSize, Config.ARGB_8888);
// Render the icon
- Drawable icon = mIconCache.getFullResIcon(info, mPackageManager);
+ Drawable icon = mIconCache.getFullResIcon(info);
renderDrawableToBitmap(icon, preview, offset, offset, mAppIconSize, mAppIconSize);
return preview;
}
@@ -1014,7 +1014,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
Drawable icon = null;
int hoffset = (int) (bitmapWidth / 2 - mAppIconSize * iconScale / 2);
int yoffset = (int) (bitmapHeight / 2 - mAppIconSize * iconScale / 2);
- if (info.icon > 0) icon = mPackageManager.getDrawable(packageName, info.icon, null);
+ if (info.icon > 0) icon = mIconCache.getFullResIcon(packageName, info.icon);
if (icon == null) icon = resources.getDrawable(R.drawable.ic_launcher_application);
renderDrawableToBitmap(icon, preview, hoffset, yoffset,
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index 54fdcc53c..9ffc1d0e1 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -96,12 +96,7 @@ public class CellLayout extends ViewGroup {
private float mBackgroundAlphaMultiplier = 1.0f;
private Drawable mNormalBackground;
- private Drawable mActiveBackground;
private Drawable mActiveGlowBackground;
- private Drawable mNormalBackgroundMini;
- private Drawable mNormalGlowBackgroundMini;
- private Drawable mActiveBackgroundMini;
- private Drawable mActiveGlowBackgroundMini;
private Drawable mOverScrollForegroundDrawable;
private Drawable mOverScrollLeft;
private Drawable mOverScrollRight;
@@ -112,11 +107,8 @@ public class CellLayout extends ViewGroup {
private float mGlowBackgroundAlpha;
private int mForegroundPadding;
- private boolean mAcceptsDrops = true;
// If we're actively dragging something over this screen, mIsDragOverlapping is true
private boolean mIsDragOverlapping = false;
- private boolean mIsDragOccuring = false;
- private boolean mIsDefaultDropTarget = false;
private final Point mDragCenter = new Point();
// These arrays are used to implement the drag visualization on x-large screens.
@@ -182,25 +174,15 @@ public class CellLayout extends ViewGroup {
final Resources res = getResources();
mNormalBackground = res.getDrawable(R.drawable.homescreen_blue_normal_holo);
- mActiveBackground = res.getDrawable(R.drawable.homescreen_blue_strong_holo);
mActiveGlowBackground = res.getDrawable(R.drawable.homescreen_blue_strong_holo);
- mNormalBackgroundMini = res.getDrawable(R.drawable.homescreen_small_blue);
- mNormalGlowBackgroundMini = res.getDrawable(R.drawable.homescreen_small_blue_strong);
- mActiveBackgroundMini = res.getDrawable(R.drawable.homescreen_small_blue_strong);
- mActiveGlowBackgroundMini = res.getDrawable(R.drawable.homescreen_small_blue_strong);
mOverScrollLeft = res.getDrawable(R.drawable.overscroll_glow_left);
mOverScrollRight = res.getDrawable(R.drawable.overscroll_glow_right);
mForegroundPadding =
res.getDimensionPixelSize(R.dimen.workspace_overscroll_drawable_padding);
mNormalBackground.setFilterBitmap(true);
- mActiveBackground.setFilterBitmap(true);
mActiveGlowBackground.setFilterBitmap(true);
- mNormalBackgroundMini.setFilterBitmap(true);
- mNormalGlowBackgroundMini.setFilterBitmap(true);
- mActiveBackgroundMini.setFilterBitmap(true);
- mActiveGlowBackgroundMini.setFilterBitmap(true);
// Initialize the data structures used for the drag visualization.
@@ -358,20 +340,6 @@ public class CellLayout extends ViewGroup {
return null;
}
- public void setIsDefaultDropTarget(boolean isDefaultDropTarget) {
- if (mIsDefaultDropTarget != isDefaultDropTarget) {
- mIsDefaultDropTarget = isDefaultDropTarget;
- invalidate();
- }
- }
-
- void setIsDragOccuring(boolean isDragOccuring) {
- if (mIsDragOccuring != isDragOccuring) {
- mIsDragOccuring = isDragOccuring;
- invalidate();
- }
- }
-
void setIsDragOverlapping(boolean isDragOverlapping) {
if (mIsDragOverlapping != isDragOverlapping) {
mIsDragOverlapping = isDragOverlapping;
@@ -454,47 +422,17 @@ public class CellLayout extends ViewGroup {
// backgrounds
if (mBackgroundAlpha > 0.0f) {
Drawable bg;
- boolean mini = getScaleX() < 0.5f;
if (mIsDragOverlapping) {
// In the mini case, we draw the active_glow bg *over* the active background
- bg = mini ? mActiveBackgroundMini : mActiveGlowBackground;
- } else if (mIsDragOccuring && mAcceptsDrops) {
- bg = mini ? mActiveBackgroundMini : mActiveBackground;
- } else if (mIsDefaultDropTarget && mini) {
- bg = mNormalGlowBackgroundMini;
+ bg = mActiveGlowBackground;
} else {
- bg = mini ? mNormalBackgroundMini : mNormalBackground;
+ bg = mNormalBackground;
}
bg.setAlpha((int) (mBackgroundAlpha * mBackgroundAlphaMultiplier * 255));
bg.setBounds(mBackgroundRect);
bg.draw(canvas);
-
- if (mini && mIsDragOverlapping) {
- boolean modifiedClipRect = false;
- if (mGlowBackgroundScale > 1.0f) {
- // If the hover background's scale is greater than 1, we'll be drawing outside
- // the bounds of this CellLayout. Get around that by temporarily increasing the
- // size of the clip rect
- float marginFraction = (mGlowBackgroundScale - 1.0f) / 2.0f;
- Rect clipRect = canvas.getClipBounds();
- int marginX = (int) (marginFraction * (clipRect.right - clipRect.left));
- int marginY = (int) (marginFraction * (clipRect.bottom - clipRect.top));
- canvas.save(Canvas.CLIP_SAVE_FLAG);
- canvas.clipRect(-marginX, -marginY,
- getWidth() + marginX, getHeight() + marginY, Region.Op.REPLACE);
- modifiedClipRect = true;
- }
-
- mActiveGlowBackgroundMini.setAlpha(
- (int) (mBackgroundAlpha * mGlowBackgroundAlpha * 255));
- mActiveGlowBackgroundMini.setBounds(mGlowBackgroundRect);
- mActiveGlowBackgroundMini.draw(canvas);
- if (modifiedClipRect) {
- canvas.restore();
- }
- }
}
if (mCrosshairsVisibility > 0.0f) {
@@ -691,13 +629,6 @@ public class CellLayout extends ViewGroup {
return false;
}
- public void setAcceptsDrops(boolean acceptsDrops) {
- if (mAcceptsDrops != acceptsDrops) {
- mAcceptsDrops = acceptsDrops;
- invalidate();
- }
- }
-
@Override
public void removeAllViews() {
clearOccupiedCells();
diff --git a/src/com/android/launcher2/IconCache.java b/src/com/android/launcher2/IconCache.java
index 7f3ae860c..a0412af35 100644
--- a/src/com/android/launcher2/IconCache.java
+++ b/src/com/android/launcher2/IconCache.java
@@ -86,10 +86,25 @@ public class IconCache {
return (d != null) ? d : getFullResDefaultActivityIcon();
}
- public Drawable getFullResIcon(ResolveInfo info, PackageManager packageManager) {
+ public Drawable getFullResIcon(String packageName, int iconId) {
Resources resources;
try {
- resources = packageManager.getResourcesForApplication(
+ resources = mPackageManager.getResourcesForApplication(packageName);
+ } catch (PackageManager.NameNotFoundException e) {
+ resources = null;
+ }
+ if (resources != null) {
+ if (iconId != 0) {
+ return getFullResIcon(resources, iconId);
+ }
+ }
+ return getFullResDefaultActivityIcon();
+ }
+
+ public Drawable getFullResIcon(ResolveInfo info) {
+ Resources resources;
+ try {
+ resources = mPackageManager.getResourcesForApplication(
info.activityInfo.applicationInfo);
} catch (PackageManager.NameNotFoundException e) {
resources = null;
@@ -198,7 +213,7 @@ public class IconCache {
}
entry.icon = Utilities.createIconBitmap(
- getFullResIcon(info, mPackageManager), mContext);
+ getFullResIcon(info), mContext);
}
return entry;
}
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 158a851f0..a6ba98eb5 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -192,7 +192,6 @@ public class Workspace extends SmoothPagedView
private Runnable mDelayedResizeRunnable;
private int mDisplayWidth;
private int mDisplayHeight;
- private boolean mIsStaticWallpaper;
private int mWallpaperTravelWidth;
// Variables relating to the creation of user folders by hovering shortcuts over shortcuts
@@ -639,7 +638,6 @@ public class Workspace extends SmoothPagedView
protected void onPageBeginMoving() {
super.onPageBeginMoving();
- mIsStaticWallpaper = mWallpaperManager.getWallpaperInfo() == null;
if (isHardwareAccelerated()) {
updateChildrenLayersEnabled();
@@ -692,12 +690,6 @@ public class Workspace extends SmoothPagedView
};
// As a ratio of screen height, the total distance we want the parallax effect to span
- // vertically
- private float wallpaperTravelToScreenHeightRatio(int width, int height) {
- return 1.1f;
- }
-
- // As a ratio of screen height, the total distance we want the parallax effect to span
// horizontally
private float wallpaperTravelToScreenWidthRatio(int width, int height) {
float aspectRatio = width / (float) height;
@@ -739,7 +731,7 @@ public class Workspace extends SmoothPagedView
// parallax effects
if (LauncherApplication.isScreenLarge()) {
mWallpaperWidth = (int) (maxDim * wallpaperTravelToScreenWidthRatio(maxDim, minDim));
- mWallpaperHeight = (int)(maxDim * wallpaperTravelToScreenHeightRatio(maxDim, minDim));
+ mWallpaperHeight = maxDim;
} else {
mWallpaperWidth = Math.max((int) (minDim * WALLPAPER_SCREENS_SPAN), maxDim);
mWallpaperHeight = maxDim;
@@ -765,52 +757,31 @@ public class Workspace extends SmoothPagedView
}
private float wallpaperOffsetForCurrentScroll() {
- final boolean overScrollWallpaper = LauncherApplication.isScreenLarge();
- final boolean isStaticWallpaper = mIsStaticWallpaper;
// The wallpaper travel width is how far, from left to right, the wallpaper will move
- // at this orientation (for example, in portrait mode we don't move all the way to the
- // edges of the wallpaper, or otherwise the parallax effect would be too strong)
- int wallpaperTravelWidth = mWallpaperTravelWidth;
- if (!overScrollWallpaper || !isStaticWallpaper) {
- wallpaperTravelWidth = mWallpaperWidth;
+ // at this orientation. On tablets in portrait mode we don't move all the way to the
+ // edges of the wallpaper, or otherwise the parallax effect would be too strong.
+ int wallpaperTravelWidth = mWallpaperWidth;
+ if (LauncherApplication.isScreenLarge()) {
+ wallpaperTravelWidth = mWallpaperTravelWidth;
}
// Set wallpaper offset steps (1 / (number of screens - 1))
- // We have 3 vertical offset states (centered, and then top/bottom aligned
- // for all apps/customize)
- if (LauncherApplication.isScreenLarge()) {
- mWallpaperManager.setWallpaperOffsetSteps(1.0f / (getChildCount() - 1), 1.0f / (3 - 1));
- } else {
- mWallpaperManager.setWallpaperOffsetSteps(1.0f / (getChildCount() - 1), 1.0f);
- }
+ mWallpaperManager.setWallpaperOffsetSteps(1.0f / (getChildCount() - 1), 1.0f);
- // For the purposes of computing the scrollRange and overScrollOffset, we ignore
- // assume that mLayoutScale is 1. This means that when we're in spring-loaded mode,
+ // For the purposes of computing the scrollRange and overScrollOffset, we assume
+ // that mLayoutScale is 1. This means that when we're in spring-loaded mode,
// there's no discrepancy between the wallpaper offset for a given page.
float layoutScale = mLayoutScale;
mLayoutScale = 1f;
int scrollRange = getScrollRange();
- float scrollProgressOffset = 0;
-
- // Account for over scroll: you only see the absolute edge of the wallpaper if
- // you over scroll as far as you can in landscape mode. Only do this for static wallpapers
- // because live wallpapers (and probably 3rd party wallpaper providers) rely on the offset
- // being even intervals from 0 to 1 (eg [0, 0.25, 0.5, 0.75, 1])
- if (isStaticWallpaper && overScrollWallpaper) {
- int overScrollOffset = (int) (maxOverScroll() * mDisplayWidth);
- scrollProgressOffset += overScrollOffset / (float) getScrollRange();
- scrollRange += 2 * overScrollOffset;
- }
// Again, we adjust the wallpaper offset to be consistent between values of mLayoutScale
-
- float adjustedScrollX = overScrollWallpaper ?
- mScrollX : Math.max(0, Math.min(mScrollX, mMaxScrollX));
+ float adjustedScrollX = Math.max(0, Math.min(mScrollX, mMaxScrollX));
adjustedScrollX *= mWallpaperScrollRatio;
mLayoutScale = layoutScale;
float scrollProgress =
- adjustedScrollX / (float) scrollRange + scrollProgressOffset;
+ adjustedScrollX / (float) scrollRange;
float offsetInDips = wallpaperTravelWidth * scrollProgress +
(mWallpaperWidth - wallpaperTravelWidth) / 2; // center it
float offset = offsetInDips / (float) mWallpaperWidth;
@@ -889,8 +860,6 @@ public class Workspace extends SmoothPagedView
float mVerticalCatchupConstant = 0.35f;
public WallpaperOffsetInterpolator() {
- mVerticalWallpaperOffset = LauncherApplication.isScreenLarge() ? 0.5f : 0f;
- mFinalVerticalWallpaperOffset = LauncherApplication.isScreenLarge() ? 0.5f : 0f;
}
public void setOverrideHorizontalCatchupConstant(boolean override) {
@@ -1526,6 +1495,9 @@ public class Workspace extends SmoothPagedView
}
void changeState(final State state, boolean animated, int delay) {
+ if (mState == state) {
+ return;
+ }
if (mFirstLayout) {
// (mFirstLayout == "first layout has not happened yet")
// cancel any pending shrinks that were set earlier
@@ -2390,7 +2362,6 @@ public class Workspace extends SmoothPagedView
// Show the current page outlines to indicate that we can accept this drop
showOutlines();
- layout.setIsDragOccuring(true);
layout.onDragEnter();
layout.visualizeDropLocation(null, mDragOutline, x, y, 1, 1, null, null);
@@ -2451,7 +2422,6 @@ public class Workspace extends SmoothPagedView
}
case DragEvent.ACTION_DRAG_ENDED:
// Hide the page outlines after the drop
- layout.setIsDragOccuring(false);
layout.onDragExit();
hideOutlines();
return true;