diff options
author | Tom Stamm <stammt@google.com> | 2013-06-11 22:23:47 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-06-11 22:23:48 +0000 |
commit | efe354b8779211b34e274a6109406d4cd01cfcef (patch) | |
tree | 406d21189bde9bc56f584e8370dde6bea2e63df9 | |
parent | 69688aa359cdbffce4decf334f5d6f0143e3a694 (diff) | |
parent | 66a01fd24bde7c94ea892b007df7f79fbaa43d80 (diff) | |
download | android_packages_apps_Trebuchet-efe354b8779211b34e274a6109406d4cd01cfcef.tar.gz android_packages_apps_Trebuchet-efe354b8779211b34e274a6109406d4cd01cfcef.tar.bz2 android_packages_apps_Trebuchet-efe354b8779211b34e274a6109406d4cd01cfcef.zip |
Merge "Add API to launcher to insert a custom page to the left of workspace" into jb-ub-gel-agar
-rw-r--r-- | res/layout/workspace_custom_content.xml | 33 | ||||
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 34 | ||||
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 6 |
3 files changed, 73 insertions, 0 deletions
diff --git a/res/layout/workspace_custom_content.xml b/res/layout/workspace_custom_content.xml new file mode 100644 index 000000000..649768515 --- /dev/null +++ b/res/layout/workspace_custom_content.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2008 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<com.android.launcher3.CellLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3" + + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:paddingStart="0dp" + android:paddingEnd="0dp" + android:paddingTop="0dp" + android:paddingBottom="0dp" + android:hapticFeedbackEnabled="false" + + launcher:cellWidth="@dimen/workspace_cell_width" + launcher:cellHeight="@dimen/workspace_cell_height" + launcher:widthGap="@dimen/workspace_width_gap" + launcher:heightGap="@dimen/workspace_height_gap" + launcher:maxGap="@dimen/workspace_max_gap" /> diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 2f1c8f0fc..8e8e6ed72 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -826,6 +826,34 @@ public class Launcher extends Activity mDragController.resetLastGestureUpTime(); } + protected void onFinishBindingItems() { + } + + // Add a fullscreen unpadded view to the workspace to the left all other screens. + public void addCustomContentToLeft(View customContent) { + CellLayout customScreen = (CellLayout) + getLayoutInflater().inflate(R.layout.workspace_custom_content, null); + + int spanX = customScreen.getCountX(); + int spanY = customScreen.getCountY(); + + CellLayout.LayoutParams lp = new CellLayout.LayoutParams(0, 0, spanX, spanY); + lp.canReorder = false; + + customScreen.addViewToCellLayout(customContent, 0, 0, lp, true); + + mWorkspace.addView(customScreen, 0); + + // We don't want to change the current or the default screen + mWorkspace.post(new Runnable() { + @Override + public void run() { + mWorkspace.incrementDefaultScreen(); + mWorkspace.setCurrentPage(mWorkspace.getCurrentPage() + 1); + } + }); + } + @Override public Object onRetainNonConfigurationInstance() { // Flag the loader to stop early before switching @@ -3619,6 +3647,12 @@ public class Launcher extends Activity mWorkspace.stripDuplicateApps(); mIntentsOnWorkspaceFromUpgradePath = mWorkspace.stripDuplicateApps(); } + mWorkspace.post(new Runnable() { + @Override + public void run() { + onFinishBindingItems(); + } + }); } private boolean canRunNewAppsAnimation() { diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index d600e9ef6..e51931298 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -398,6 +398,12 @@ public class Workspace extends SmoothPagedView UninstallShortcutReceiver.disableAndFlushUninstallQueue(getContext()); } + // Just a hack so that if a custom content screen is added to the left, we adjust the + // default screen accordingly so that it stays the same. + void incrementDefaultScreen() { + mDefaultPage++; + } + /** * Initializes various states for this workspace. */ |