From 6a0393666a75b4cd352ac73a027d9cbcc539f6c2 Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Fri, 26 Oct 2012 15:13:08 -0700 Subject: [PATCH] Extend background to full screen. Gradient and black backgrounds were stopping at the Status Bar. When returning from a full screen app to the launcher the wallpaper was completely visible when it should have been obscured by these backgrounds. Making the app full screen while keeping the views within the system insets fixes this. Bug 7410717 fixed. Change-Id: If3f7e4808961ee6c80fe2d0a328e6ca39fa5eb7a --- res/layout-land/launcher.xml | 165 ++++++++++-------- res/layout-port/launcher.xml | 157 +++++++++-------- res/layout-sw720dp/launcher.xml | 159 +++++++++-------- .../launcher2/AppWidgetResizeFrame.java | 6 +- src/com/android/launcher2/Launcher.java | 32 +++- 5 files changed, 289 insertions(+), 230 deletions(-) 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) {