summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Stamm <stammt@google.com>2013-06-11 22:23:47 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-06-11 22:23:48 +0000
commitefe354b8779211b34e274a6109406d4cd01cfcef (patch)
tree406d21189bde9bc56f584e8370dde6bea2e63df9
parent69688aa359cdbffce4decf334f5d6f0143e3a694 (diff)
parent66a01fd24bde7c94ea892b007df7f79fbaa43d80 (diff)
downloadandroid_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.xml33
-rw-r--r--src/com/android/launcher3/Launcher.java34
-rw-r--r--src/com/android/launcher3/Workspace.java6
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.
*/