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) {