diff --git a/res/layout-land/launcher.xml b/res/layout-land/launcher.xml
index 7f705f5e72..0892352a9c 100644
--- a/res/layout-land/launcher.xml
+++ b/res/layout-land/launcher.xml
@@ -14,94 +14,105 @@
limitations under the License.
-->
-
+
+ android:layout_height="match_parent"
+ android:background="@drawable/workspace_bg">
-
-
+ android:fitsSystemWindows="true">
-
-
-
-
-
-
+
+
-
-
-
+
+
+
+
+
+
-
-
+
-
+
-
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/res/layout-port/launcher.xml b/res/layout-port/launcher.xml
index a4275010b4..ad7eff4bac 100644
--- a/res/layout-port/launcher.xml
+++ b/res/layout-port/launcher.xml
@@ -14,90 +14,103 @@
limitations under the License.
-->
-
+
+ android:layout_height="match_parent"
+ android:background="@drawable/workspace_bg">
-
-
-
+
-
+ android:fitsSystemWindows="true">
-
-
-
-
-
-
+
+
-
+
-
+
+
-
+
+
+
+
+
+
-
+
-
+
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/res/layout-sw720dp/launcher.xml b/res/layout-sw720dp/launcher.xml
index 418469b9b9..b5540423e5 100644
--- a/res/layout-sw720dp/launcher.xml
+++ b/res/layout-sw720dp/launcher.xml
@@ -14,91 +14,104 @@
limitations under the License.
-->
-
+
+ android:layout_height="match_parent"
+ android:background="@drawable/workspace_bg">
-
-
-
+
-
+ android:fitsSystemWindows="true">
-
-
-
-
-
-
+
+
-
+
-
+
+
-
+
+
+
+
+
+
-
+
-
+
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/com/android/launcher2/AppWidgetResizeFrame.java b/src/com/android/launcher2/AppWidgetResizeFrame.java
index 7762ece5f0..13ee6f913d 100644
--- a/src/com/android/launcher2/AppWidgetResizeFrame.java
+++ b/src/com/android/launcher2/AppWidgetResizeFrame.java
@@ -399,8 +399,10 @@ public class AppWidgetResizeFrame extends FrameLayout {
public void snapToWidget(boolean animate) {
final DragLayer.LayoutParams lp = (DragLayer.LayoutParams) getLayoutParams();
- int xOffset = mCellLayout.getLeft() + mCellLayout.getPaddingLeft() - mWorkspace.getScrollX();
- int yOffset = mCellLayout.getTop() + mCellLayout.getPaddingTop() - mWorkspace.getScrollY();
+ int xOffset = mCellLayout.getLeft() + mCellLayout.getPaddingLeft()
+ + mDragLayer.getPaddingLeft() - mWorkspace.getScrollX();
+ int yOffset = mCellLayout.getTop() + mCellLayout.getPaddingTop()
+ + mDragLayer.getPaddingTop() - mWorkspace.getScrollY();
int newWidth = mWidgetView.getWidth() + 2 * mBackgroundPadding - mWidgetPaddingLeft -
mWidgetPaddingRight;
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 56fdbb60cc..f8b80808dd 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -50,8 +50,10 @@ import android.content.res.Resources;
import android.database.ContentObserver;
import android.graphics.Bitmap;
import android.graphics.Canvas;
+import android.graphics.Color;
import android.graphics.PorterDuff;
import android.graphics.Rect;
+import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.AsyncTask;
@@ -209,6 +211,7 @@ public final class Launcher extends Activity
private Workspace mWorkspace;
private View mQsbDivider;
private View mDockDivider;
+ private View mLauncherView;
private DragLayer mDragLayer;
private DragController mDragController;
@@ -280,6 +283,9 @@ public final class Launcher extends Activity
private static Drawable.ConstantState[] sVoiceSearchIcon = new Drawable.ConstantState[2];
private static Drawable.ConstantState[] sAppMarketIcon = new Drawable.ConstantState[2];
+ private Drawable mWorkspaceBackgroundDrawable;
+ private Drawable mBlackBackgroundDrawable;
+
private final ArrayList mSynchronouslyBoundPages = new ArrayList();
static final ArrayList sDumpLogs = new ArrayList();
@@ -727,6 +733,9 @@ public final class Launcher extends Activity
}
mOnResumeState = State.NONE;
+ // Background was set to gradient in onPause(), restore to black if in all apps.
+ setWorkspaceBackground(mState == State.WORKSPACE);
+
// Process any items that were added while Launcher was away
InstallShortcutReceiver.flushInstallQueue(this);
@@ -928,10 +937,15 @@ public final class Launcher extends Activity
private void setupViews() {
final DragController dragController = mDragController;
+ mLauncherView = findViewById(R.id.launcher);
mDragLayer = (DragLayer) findViewById(R.id.drag_layer);
mWorkspace = (Workspace) mDragLayer.findViewById(R.id.workspace);
- mQsbDivider = (ImageView) findViewById(R.id.qsb_divider);
- mDockDivider = (ImageView) findViewById(R.id.dock_divider);
+ mQsbDivider = findViewById(R.id.qsb_divider);
+ mDockDivider = findViewById(R.id.dock_divider);
+
+ mLauncherView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
+ mWorkspaceBackgroundDrawable = getResources().getDrawable(R.drawable.workspace_bg);
+ mBlackBackgroundDrawable = new ColorDrawable(Color.BLACK);
// Setup the drag layer
mDragLayer.setup(this, dragController);
@@ -952,12 +966,11 @@ public final class Launcher extends Activity
mSearchDropTargetBar = (SearchDropTargetBar) mDragLayer.findViewById(R.id.qsb_bar);
// Setup AppsCustomize
- mAppsCustomizeTabHost = (AppsCustomizeTabHost)
- findViewById(R.id.apps_customize_pane);
+ mAppsCustomizeTabHost = (AppsCustomizeTabHost) findViewById(R.id.apps_customize_pane);
mAppsCustomizeContent = (AppsCustomizePagedView)
mAppsCustomizeTabHost.findViewById(R.id.apps_customize_pane_content);
mAppsCustomizeContent.setup(this, dragController);
-
+
// Setup the drag controller (drop targets have to be added in reverse order in priority)
dragController.setDragScoller(mWorkspace);
dragController.setScrollView(mDragLayer);
@@ -2336,10 +2349,12 @@ public final class Launcher extends Activity
}
// Now a part of LauncherModel.Callbacks. Used to reorder loading steps.
+ @Override
public boolean isAllAppsVisible() {
return (mState == State.APPS_CUSTOMIZE) || (mOnResumeState == State.APPS_CUSTOMIZE);
}
+ @Override
public boolean isAllAppsButtonRank(int rank) {
return mHotseat.isAllAppsButtonRank(rank);
}
@@ -2347,7 +2362,6 @@ public final class Launcher extends Activity
/**
* Helper method for the cameraZoomIn/cameraZoomOut animations
* @param view The view being animated
- * @param state The state that we are moving in or out of (eg. APPS_CUSTOMIZE)
* @param scaleFactor The scale factor used for the zoom
*/
private void setPivotsForZoom(View view, float scaleFactor) {
@@ -2365,6 +2379,11 @@ public final class Launcher extends Activity
}
}
+ private void setWorkspaceBackground(boolean workspace) {
+ mLauncherView.setBackground(workspace ?
+ mWorkspaceBackgroundDrawable : mBlackBackgroundDrawable);
+ }
+
void updateWallpaperVisibility(boolean visible) {
int wpflags = visible ? WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER : 0;
int curflags = getWindow().getAttributes().flags
@@ -2372,6 +2391,7 @@ public final class Launcher extends Activity
if (wpflags != curflags) {
getWindow().setFlags(wpflags, WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER);
}
+ setWorkspaceBackground(visible);
}
private void dispatchOnLauncherTransitionPrepare(View v, boolean animated, boolean toWorkspace) {