Add API to launcher to insert a custom page to the left of workspace
Change-Id: I85a4e096aab9bfcb1de74f04075bcabcb7e3262f
This commit is contained in:
@@ -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" />
|
||||
@@ -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
|
||||
@@ -3617,6 +3645,12 @@ public class Launcher extends Activity
|
||||
mWorkspace.stripDuplicateApps();
|
||||
mIntentsOnWorkspaceFromUpgradePath = mWorkspace.stripDuplicateApps();
|
||||
}
|
||||
mWorkspace.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
onFinishBindingItems();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private boolean canRunNewAppsAnimation() {
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user