summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2013-12-12 00:35:47 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-12-12 00:35:47 +0000
commitb6147f85786c78b3608eabf2286cd9e61c28878d (patch)
tree7042bdad7c4b9d09b7b2b89afd9ea958b101e547
parent1239b9da8901f1384aa30f88f8b660078d37ea82 (diff)
parent59a488ac03aa122b75e9a358db74acf7bb4d2508 (diff)
downloadandroid_packages_apps_Trebuchet-b6147f85786c78b3608eabf2286cd9e61c28878d.tar.gz
android_packages_apps_Trebuchet-b6147f85786c78b3608eabf2286cd9e61c28878d.tar.bz2
android_packages_apps_Trebuchet-b6147f85786c78b3608eabf2286cd9e61c28878d.zip
Merge "Adjusting grid for tablets and fixing incorrect resources for large tablets." into jb-ub-now-kermit
-rw-r--r--res/drawable-sw720dp-hdpi/workspace_bg.9.pngbin0 -> 226 bytes
-rw-r--r--res/drawable-sw720dp-mdpi/workspace_bg.9.pngbin0 -> 213 bytes
-rw-r--r--res/drawable-sw720dp-xhdpi/workspace_bg.9.pngbin0 -> 255 bytes
-rw-r--r--res/drawable-sw720dp-xxhdpi/workspace_bg.9.pngbin0 -> 1126 bytes
-rw-r--r--res/values-land/config.xml2
-rw-r--r--res/values-sw340dp-port/config.xml3
-rw-r--r--res/values-sw720dp/config.xml2
-rw-r--r--res/values/config.xml2
-rw-r--r--src/com/android/launcher3/CellLayout.java7
-rw-r--r--src/com/android/launcher3/DeviceProfile.java44
-rw-r--r--src/com/android/launcher3/DynamicGrid.java4
-rw-r--r--src/com/android/launcher3/Workspace.java11
12 files changed, 32 insertions, 43 deletions
diff --git a/res/drawable-sw720dp-hdpi/workspace_bg.9.png b/res/drawable-sw720dp-hdpi/workspace_bg.9.png
new file mode 100644
index 000000000..5bbfa4fff
--- /dev/null
+++ b/res/drawable-sw720dp-hdpi/workspace_bg.9.png
Binary files differ
diff --git a/res/drawable-sw720dp-mdpi/workspace_bg.9.png b/res/drawable-sw720dp-mdpi/workspace_bg.9.png
new file mode 100644
index 000000000..2856e0985
--- /dev/null
+++ b/res/drawable-sw720dp-mdpi/workspace_bg.9.png
Binary files differ
diff --git a/res/drawable-sw720dp-xhdpi/workspace_bg.9.png b/res/drawable-sw720dp-xhdpi/workspace_bg.9.png
new file mode 100644
index 000000000..72269f207
--- /dev/null
+++ b/res/drawable-sw720dp-xhdpi/workspace_bg.9.png
Binary files differ
diff --git a/res/drawable-sw720dp-xxhdpi/workspace_bg.9.png b/res/drawable-sw720dp-xxhdpi/workspace_bg.9.png
new file mode 100644
index 000000000..efc9b0465
--- /dev/null
+++ b/res/drawable-sw720dp-xxhdpi/workspace_bg.9.png
Binary files differ
diff --git a/res/values-land/config.xml b/res/values-land/config.xml
index 121bb0c14..31115c9cb 100644
--- a/res/values-land/config.xml
+++ b/res/values-land/config.xml
@@ -18,6 +18,4 @@
<!-- Workspace -->
<!-- Whether or not the drop targets drop down as opposed to fade in -->
<bool name="config_useDropTargetDownTransition">false</bool>
- <!-- Whether or not to fade the side pages -->
- <bool name="config_workspaceFadeAdjacentScreens">false</bool>
</resources>
diff --git a/res/values-sw340dp-port/config.xml b/res/values-sw340dp-port/config.xml
index d31ee5969..5f71077c7 100644
--- a/res/values-sw340dp-port/config.xml
+++ b/res/values-sw340dp-port/config.xml
@@ -15,7 +15,4 @@
-->
<resources>
-<!-- Workspace -->
- <!-- Whether or not to fade the side pages -->
- <bool name="config_workspaceFadeAdjacentScreens">false</bool>
</resources>
diff --git a/res/values-sw720dp/config.xml b/res/values-sw720dp/config.xml
index 4f537a9f4..c00b5943f 100644
--- a/res/values-sw720dp/config.xml
+++ b/res/values-sw720dp/config.xml
@@ -9,8 +9,6 @@
<!-- Workspace -->
<!-- Whether or not the drop targets drop down as opposed to fade in -->
<bool name="config_useDropTargetDownTransition">false</bool>
- <!-- Whether or not to fade the side pages -->
- <bool name="config_workspaceFadeAdjacentScreens">true</bool>
<!-- Camera distance for the overscroll effect -->
<integer name="config_cameraDistance">18000</integer>
diff --git a/res/values/config.xml b/res/values/config.xml
index 1538d9fab..2a0821662 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -52,8 +52,6 @@
<!-- Workspace -->
<!-- Whether or not the drop targets drop down as opposed to fade in -->
<bool name="config_useDropTargetDownTransition">false</bool>
- <!-- Whether or not to fade the side pages -->
- <bool name="config_workspaceFadeAdjacentScreens">false</bool>
<!-- The transition duration for the background of the drop targets -->
<integer name="config_dropTargetBgTransitionDuration">0</integer>
diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java
index 75f6a196c..05e31af02 100644
--- a/src/com/android/launcher3/CellLayout.java
+++ b/src/com/android/launcher3/CellLayout.java
@@ -100,6 +100,7 @@ public class CellLayout extends ViewGroup {
private int mForegroundAlpha = 0;
private float mBackgroundAlpha;
private float mBackgroundAlphaMultiplier = 1.0f;
+ private boolean mDrawBackground = true;
private Drawable mNormalBackground;
private Drawable mActiveGlowBackground;
@@ -388,6 +389,10 @@ public class CellLayout extends ViewGroup {
mUseActiveGlowBackground = use;
}
+ void disableBackground() {
+ mDrawBackground = false;
+ }
+
boolean getIsDragOverlapping() {
return mIsDragOverlapping;
}
@@ -416,7 +421,7 @@ public class CellLayout extends ViewGroup {
// When we're small, we are either drawn normally or in the "accepts drops" state (during
// a drag). However, we also drag the mini hover background *over* one of those two
// backgrounds
- if (mBackgroundAlpha > 0.0f) {
+ if (mDrawBackground && mBackgroundAlpha > 0.0f) {
Drawable bg;
if (mUseActiveGlowBackground) {
diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java
index 511b7182f..67b0933c9 100644
--- a/src/com/android/launcher3/DeviceProfile.java
+++ b/src/com/android/launcher3/DeviceProfile.java
@@ -119,6 +119,8 @@ public class DeviceProfile {
int searchBarHeightPx;
int pageIndicatorHeightPx;
+ float dragViewScale;
+
private ArrayList<DeviceProfileCallbacks> mCallbacks = new ArrayList<DeviceProfileCallbacks>();
DeviceProfile(String n, float w, float h, float r, float c,
@@ -282,11 +284,12 @@ public class DeviceProfile {
// Check to see if the icons fit in the new available height. If not, then we need to
// shrink the icon size.
- Rect workspacePadding = getWorkspacePadding();
float scale = 1f;
int drawablePadding = iconDrawablePaddingOriginalPx;
updateIconSize(1f, drawablePadding, resources, dm);
float usedHeight = (cellHeightPx * numRows);
+
+ Rect workspacePadding = getWorkspacePadding();
int maxHeight = (availableHeightPx - workspacePadding.top - workspacePadding.bottom);
if (usedHeight > maxHeight) {
scale = maxHeight / usedHeight;
@@ -319,6 +322,8 @@ public class DeviceProfile {
FontMetrics fm = textPaint.getFontMetrics();
cellWidthPx = iconSizePx;
cellHeightPx = iconSizePx + iconDrawablePaddingPx + (int) Math.ceil(fm.bottom - fm.top);
+ final float scaleDps = resources.getDimensionPixelSize(R.dimen.dragViewScale);
+ dragViewScale = (iconSizePx + scaleDps) / iconSizePx;
// Hotseat
hotseatBarHeightPx = iconSizePx + 4 * edgeMarginPx;
@@ -491,17 +496,21 @@ public class DeviceProfile {
if (isTablet()) {
// Pad the left and right of the workspace to ensure consistent spacing
// between all icons
+ float gapScale = 1f + (dragViewScale - 1f) / 2f;
int width = (orientation == CellLayout.LANDSCAPE)
? Math.max(widthPx, heightPx)
: Math.min(widthPx, heightPx);
- // XXX: If the icon size changes across orientations, we will have to take
- // that into account here too.
- int gap = (int) ((width - 2 * edgeMarginPx -
- (numColumns * cellWidthPx)) / (2 * (numColumns + 1)));
- padding.set(edgeMarginPx + gap,
- searchBarBounds.bottom,
- edgeMarginPx + gap,
- hotseatBarHeightPx + pageIndicatorHeightPx);
+ int height = (orientation != CellLayout.LANDSCAPE)
+ ? Math.max(widthPx, heightPx)
+ : Math.min(widthPx, heightPx);
+ int paddingTop = searchBarBounds.bottom;
+ int paddingBottom = hotseatBarHeightPx + pageIndicatorHeightPx;
+ int availableWidth = Math.max(0, width - (int) ((numColumns * cellWidthPx) +
+ (numColumns * gapScale * cellWidthPx)));
+ int availableHeight = Math.max(0, height - paddingTop - paddingBottom
+ - (int) (2 * numRows * cellHeightPx));
+ padding.set(availableWidth / 2, paddingTop + availableHeight / 2,
+ availableWidth / 2, paddingBottom + availableHeight / 2);
} else {
// Pad the top and bottom of the workspace with search/hotseat bar sizes
padding.set(desiredWorkspaceLeftRightMarginPx - defaultWidgetPadding.left,
@@ -514,8 +523,8 @@ public class DeviceProfile {
}
int getWorkspacePageSpacing(int orientation) {
- if (orientation == CellLayout.LANDSCAPE &&
- transposeLayoutWithOrientation) {
+ if ((orientation == CellLayout.LANDSCAPE &&
+ transposeLayoutWithOrientation) || isLargeTablet()) {
// In landscape mode the page spacing is set to the default.
return defaultPageSpacingPx;
} else {
@@ -645,19 +654,12 @@ public class DeviceProfile {
lp.height = LayoutParams.MATCH_PARENT;
hotseat.findViewById(R.id.layout).setPadding(0, 2 * edgeMarginPx, 0, 2 * edgeMarginPx);
} else if (isTablet()) {
- // Pad the hotseat with the grid gap calculated above
- int gridGap = (int) ((widthPx - 2 * edgeMarginPx -
- (numColumns * cellWidthPx)) / (2 * (numColumns + 1)));
- int gridWidth = (int) ((numColumns * cellWidthPx) +
- ((numColumns - 1) * gridGap));
- int hotseatGap = (int) Math.max(0,
- (gridWidth - (numHotseatIcons * hotseatCellWidthPx))
- / (numHotseatIcons - 1));
+ // Pad the hotseat with the workspace padding calculated above
lp.gravity = Gravity.BOTTOM;
lp.width = LayoutParams.MATCH_PARENT;
lp.height = hotseatBarHeightPx;
- hotseat.setPadding(2 * edgeMarginPx + gridGap + hotseatGap, 0,
- 2 * edgeMarginPx + gridGap + hotseatGap,
+ hotseat.setPadding(edgeMarginPx + padding.left, 0,
+ edgeMarginPx + padding.right,
2 * edgeMarginPx);
} else {
// For phones, layout the hotseat without any bottom margin
diff --git a/src/com/android/launcher3/DynamicGrid.java b/src/com/android/launcher3/DynamicGrid.java
index dc01c6933..22928ccf3 100644
--- a/src/com/android/launcher3/DynamicGrid.java
+++ b/src/com/android/launcher3/DynamicGrid.java
@@ -74,10 +74,10 @@ public class DynamicGrid {
// The tablet profile is odd in that the landscape orientation
// also includes the nav bar on the side
deviceProfiles.add(new DeviceProfile("Nexus 7",
- 575, 904, 5, 5, 72, 14.4f, 7, 60));
+ 575, 904, 5, 6, 72, 14.4f, 7, 60));
// Larger tablet profiles always have system bars on the top & bottom
deviceProfiles.add(new DeviceProfile("Nexus 10",
- 727, 1207, 5, 5, 80, 14.4f, 7, 64));
+ 727, 1207, 5, 6, 76, 14.4f, 7, 64));
/*
deviceProfiles.add(new DeviceProfile("Nexus 7",
600, 960, 5, 5, 72, 14.4f, 5, 60));
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 4f16835d7..2e944a2da 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -565,6 +565,7 @@ public class Workspace extends SmoothPagedView
public void createCustomContentPage() {
CellLayout customScreen = (CellLayout)
mLauncher.getLayoutInflater().inflate(R.layout.workspace_screen, null);
+ customScreen.disableBackground();
mWorkspaceScreens.put(CUSTOM_CONTENT_SCREEN_ID, customScreen);
mScreenOrder.add(0, CUSTOM_CONTENT_SCREEN_ID);
@@ -1155,11 +1156,6 @@ public class Workspace extends SmoothPagedView
}
}
- // Only show page outlines as we pan if we are on large screen
- if (LauncherAppState.getInstance().isScreenLarge()) {
- showOutlines();
- }
-
// If we are not fading in adjacent screens, we still need to restore the alpha in case the
// user scrolls while we are transitioning (should not affect dispatchDraw optimizations)
if (!mWorkspaceFadeInAdjacentScreens) {
@@ -1184,11 +1180,6 @@ public class Workspace extends SmoothPagedView
// is under a new page (to scroll to)
mDragController.forceTouchMove();
}
- } else {
- // If we are not mid-dragging, hide the page outlines if we are on a large screen
- if (LauncherAppState.getInstance().isScreenLarge()) {
- hideOutlines();
- }
}
if (mDelayedResizeRunnable != null) {