summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/layout-land/all_apps.xml41
-rw-r--r--res/layout-land/launcher.xml49
-rw-r--r--res/layout-land/live_folder_grid.xml2
-rw-r--r--res/layout-land/user_folder.xml2
-rw-r--r--res/layout-port/all_apps.xml39
-rw-r--r--res/layout-port/launcher.xml50
-rw-r--r--res/layout/live_folder_list.xml2
-rw-r--r--src/com/android/launcher2/HandleView.java4
-rw-r--r--src/com/android/launcher2/Launcher.java189
9 files changed, 204 insertions, 174 deletions
diff --git a/res/layout-land/all_apps.xml b/res/layout-land/all_apps.xml
new file mode 100644
index 000000000..1927394ae
--- /dev/null
+++ b/res/layout-land/all_apps.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 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.launcher2.AllAppsGridView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher2"
+
+ android:id="@+id/all_apps"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+
+ launcher:texture="@drawable/pattern_carbon_fiber_dark"
+
+ android:scrollbarStyle="outsideInset"
+ android:drawSelectorOnTop="false"
+ android:listSelector="@drawable/grid_selector"
+
+ android:verticalSpacing="10dip"
+ android:numColumns="5" />
+
+<!--
+ android:nextFocusLeft="@id/all_apps"
+ android:nextFocusDown="@id/content"
+ android:nextFocusUp="@id/content"
+ android:nextFocusRight="@id/content"
+-->
+
+
diff --git a/res/layout-land/launcher.xml b/res/layout-land/launcher.xml
index 3af51ec55..ef1623101 100644
--- a/res/layout-land/launcher.xml
+++ b/res/layout-land/launcher.xml
@@ -36,51 +36,20 @@
</com.android.launcher2.Workspace>
- <SlidingDrawer
- android:id="@+id/drawer"
- android:layout_width="fill_parent"
+ <com.android.launcher2.HandleView
+ android:id="@id/all_apps"
+ android:layout_width="56dip"
android:layout_height="fill_parent"
- android:orientation="horizontal"
- android:bottomOffset="7dip"
- android:handle="@+id/all_apps"
- android:content="@+id/content">
-
- <com.android.launcher2.HandleView
- android:id="@id/all_apps"
- android:layout_width="56dip"
- android:layout_height="fill_parent"
-
- android:background="@drawable/handle"
-
- android:focusable="true"
- android:clickable="true"
-
- android:scaleType="center"
- android:src="@drawable/handle_icon"
-
- launcher:direction="vertical" />
+ android:background="@drawable/handle"
- <com.android.launcher2.AllAppsGridView
- android:id="@id/content"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
+ android:focusable="true"
+ android:clickable="true"
- launcher:texture="@drawable/pattern_carbon_fiber_dark"
-
- android:scrollbarStyle="outsideInset"
- android:drawSelectorOnTop="false"
- android:listSelector="@drawable/grid_selector"
-
- android:nextFocusLeft="@id/all_apps"
- android:nextFocusDown="@id/content"
- android:nextFocusUp="@id/content"
- android:nextFocusRight="@id/content"
-
- android:verticalSpacing="10dip"
- android:numColumns="5" />
+ android:scaleType="center"
+ android:src="@drawable/handle_icon"
- </SlidingDrawer>
+ launcher:direction="vertical" />
<com.android.launcher2.DeleteZone
android:id="@+id/delete_zone"
diff --git a/res/layout-land/live_folder_grid.xml b/res/layout-land/live_folder_grid.xml
index 8905cf330..9a87628c7 100644
--- a/res/layout-land/live_folder_grid.xml
+++ b/res/layout-land/live_folder_grid.xml
@@ -31,7 +31,7 @@
android:layout_height="wrap_content" />
<GridView
- android:id="@id/content"
+ android:id="@+id/content"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
diff --git a/res/layout-land/user_folder.xml b/res/layout-land/user_folder.xml
index b27c94b08..9d419f5e9 100644
--- a/res/layout-land/user_folder.xml
+++ b/res/layout-land/user_folder.xml
@@ -28,7 +28,7 @@
android:layout_height="wrap_content" />
<GridView
- android:id="@id/content"
+ android:id="@+id/content"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
diff --git a/res/layout-port/all_apps.xml b/res/layout-port/all_apps.xml
new file mode 100644
index 000000000..92ca0f658
--- /dev/null
+++ b/res/layout-port/all_apps.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 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.launcher2.AllAppsGridView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher2"
+
+ android:id="@+id/all_apps"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+
+ launcher:texture="@drawable/pattern_carbon_fiber_dark"
+
+ android:scrollbarStyle="outsideInset"
+ android:drawSelectorOnTop="false"
+ android:listSelector="@drawable/grid_selector"
+
+ android:verticalSpacing="10dip"
+ android:numColumns="4" />
+
+<!--
+ android:nextFocusLeft="@id/content"
+ android:nextFocusDown="@id/content"
+ android:nextFocusUp="@id/all_apps"
+ android:nextFocusRight="@id/content"
+-->
diff --git a/res/layout-port/launcher.xml b/res/layout-port/launcher.xml
index 6ed605b00..e77a01e98 100644
--- a/res/layout-port/launcher.xml
+++ b/res/layout-port/launcher.xml
@@ -36,51 +36,21 @@
</com.android.launcher2.Workspace>
- <SlidingDrawer
- android:id="@+id/drawer"
+ <com.android.launcher2.HandleView
+ android:id="@id/all_apps"
android:layout_width="fill_parent"
- android:layout_height="fill_parent"
-
- android:topOffset="5dip"
- android:bottomOffset="7dip"
- android:handle="@+id/all_apps"
- android:content="@+id/content">
-
- <com.android.launcher2.HandleView
- android:id="@id/all_apps"
- android:layout_width="fill_parent"
- android:layout_height="56dip"
-
- android:background="@drawable/handle"
-
- android:focusable="true"
- android:clickable="true"
-
- android:scaleType="center"
- android:src="@drawable/handle_icon"
+ android:layout_height="56dip"
+ android:layout_gravity="bottom"
- launcher:direction="horizontal" />
+ android:background="@drawable/handle"
- <com.android.launcher2.AllAppsGridView
- android:id="@id/content"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
+ android:focusable="true"
+ android:clickable="true"
- launcher:texture="@drawable/pattern_carbon_fiber_dark"
-
- android:scrollbarStyle="outsideInset"
- android:drawSelectorOnTop="false"
- android:listSelector="@drawable/grid_selector"
-
- android:nextFocusLeft="@id/content"
- android:nextFocusDown="@id/content"
- android:nextFocusUp="@id/all_apps"
- android:nextFocusRight="@id/content"
-
- android:verticalSpacing="10dip"
- android:numColumns="4" />
+ android:scaleType="center"
+ android:src="@drawable/handle_icon"
- </SlidingDrawer>
+ launcher:direction="horizontal" />
<com.android.launcher2.DeleteZone
android:id="@+id/delete_zone"
diff --git a/res/layout/live_folder_list.xml b/res/layout/live_folder_list.xml
index 00f191e3f..cf2f836f2 100644
--- a/res/layout/live_folder_list.xml
+++ b/res/layout/live_folder_list.xml
@@ -31,7 +31,7 @@
android:layout_height="wrap_content" />
<ListView
- android:id="@id/content"
+ android:id="@+id/content"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
diff --git a/src/com/android/launcher2/HandleView.java b/src/com/android/launcher2/HandleView.java
index 5af5c8172..98b3a37de 100644
--- a/src/com/android/launcher2/HandleView.java
+++ b/src/com/android/launcher2/HandleView.java
@@ -62,9 +62,11 @@ public class HandleView extends ImageView {
public boolean onKeyDown(int keyCode, KeyEvent event) {
final boolean handled = super.onKeyDown(keyCode, event);
+ /* TODO
if (!handled && !mLauncher.isDrawerDown() && !isDirectionKey(keyCode)) {
return mLauncher.getApplicationsGrid().onKeyDown(keyCode, event);
}
+ */
return handled;
}
@@ -73,9 +75,11 @@ public class HandleView extends ImageView {
public boolean onKeyUp(int keyCode, KeyEvent event) {
final boolean handled = super.onKeyUp(keyCode, event);
+ /* TODO
if (!handled && !mLauncher.isDrawerDown() && !isDirectionKey(keyCode)) {
return mLauncher.getApplicationsGrid().onKeyUp(keyCode, event);
}
+ */
return handled;
}
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index db6e93976..fbb1e5f7c 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -70,7 +70,7 @@ import android.view.View.OnLongClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.GridView;
-import android.widget.SlidingDrawer;
+import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import android.appwidget.AppWidgetManager;
@@ -123,8 +123,9 @@ public final class Launcher extends Activity implements View.OnClickListener, On
static final int NUMBER_CELLS_X = 4;
static final int NUMBER_CELLS_Y = 4;
- private static final int DIALOG_CREATE_SHORTCUT = 1;
- static final int DIALOG_RENAME_FOLDER = 2;
+ static final int DIALOG_ALL_APPS = 1;
+ static final int DIALOG_CREATE_SHORTCUT = 2;
+ static final int DIALOG_RENAME_FOLDER = 3;
private static final String PREFERENCES = "launcher.preferences";
@@ -182,10 +183,10 @@ public final class Launcher extends Activity implements View.OnClickListener, On
private final int[] mCellCoordinates = new int[2];
private FolderInfo mFolderInfo;
- private SlidingDrawer mDrawer;
+ private AllAppsDialog mAllAppsDialog;
private TransitionDrawable mHandleIcon;
private HandleView mHandleView;
- private AllAppsGridView mAllAppsGrid;
+ private AllAppsGridView mAllAppsGrid; // TODO: put this into AllAppsDialog
private boolean mDesktopLocked = true;
private Bundle mSavedState;
@@ -227,6 +228,9 @@ public final class Launcher extends Activity implements View.OnClickListener, On
setContentView(R.layout.launcher);
setupViews();
+ mAllAppsDialog = new AllAppsDialog(this);
+ mAllAppsDialog.lock();
+
registerIntentReceivers();
registerContentObservers();
@@ -538,29 +542,14 @@ public final class Launcher extends Activity implements View.OnClickListener, On
mWorkspace = (Workspace) dragLayer.findViewById(R.id.workspace);
final Workspace workspace = mWorkspace;
- mDrawer = (SlidingDrawer) dragLayer.findViewById(R.id.drawer);
- final SlidingDrawer drawer = mDrawer;
-
- mAllAppsGrid = (AllAppsGridView) drawer.getContent();
- final AllAppsGridView grid = mAllAppsGrid;
-
final DeleteZone deleteZone = (DeleteZone) dragLayer.findViewById(R.id.delete_zone);
- mHandleView = (HandleView) drawer.findViewById(R.id.all_apps);
+ mHandleView = (HandleView) findViewById(R.id.all_apps);
mHandleView.setLauncher(this);
+ mHandleView.setOnClickListener(this);
mHandleIcon = (TransitionDrawable) mHandleView.getDrawable();
mHandleIcon.setCrossFadeEnabled(true);
- drawer.lock();
- final DrawerManager drawerManager = new DrawerManager();
- drawer.setOnDrawerOpenListener(drawerManager);
- drawer.setOnDrawerCloseListener(drawerManager);
- drawer.setOnDrawerScrollListener(drawerManager);
-
- grid.setTextFilterEnabled(false);
- grid.setDragger(dragLayer);
- grid.setLauncher(this);
-
workspace.setOnLongClickListener(this);
workspace.setDragger(dragLayer);
workspace.setLauncher(this);
@@ -570,7 +559,7 @@ public final class Launcher extends Activity implements View.OnClickListener, On
deleteZone.setDragController(dragLayer);
deleteZone.setHandle(mHandleView);
- dragLayer.setIgnoredDropTarget(grid);
+ // TODO dragLayer.setIgnoredDropTarget(grid);
dragLayer.setDragScoller(workspace);
dragLayer.setDragListener(deleteZone);
}
@@ -868,7 +857,7 @@ public final class Launcher extends Activity implements View.OnClickListener, On
// When the drawer is opened and we are saving the state because of a
// configuration change
- if (mDrawer.isOpened() && isConfigurationChange) {
+ if (mAllAppsDialog.isOpen && isConfigurationChange) {
outState.putBoolean(RUNTIME_STATE_ALL_APPS_FOLDER, true);
}
@@ -1331,7 +1320,7 @@ public final class Launcher extends Activity implements View.OnClickListener, On
case KeyEvent.KEYCODE_BACK:
if (!event.isCanceled()) {
mWorkspace.dispatchKeyEvent(event);
- if (mDrawer.isOpened()) {
+ if (mAllAppsDialog.isOpen) {
closeDrawer();
} else {
closeFolder();
@@ -1353,13 +1342,14 @@ public final class Launcher extends Activity implements View.OnClickListener, On
}
private void closeDrawer(boolean animated) {
- if (mDrawer.isOpened()) {
+ if (mAllAppsDialog.isOpen) {
if (animated) {
- mDrawer.animateClose();
+ // TODO mDrawer.animateClose();
+ mAllAppsDialog.dismiss();
} else {
- mDrawer.close();
+ mAllAppsDialog.dismiss();
}
- if (mDrawer.hasFocus()) {
+ if (false /* TODO mDrawer.hasFocus() */) {
mWorkspace.getChildAt(mWorkspace.getCurrentScreen()).requestFocus();
}
}
@@ -1387,7 +1377,7 @@ public final class Launcher extends Activity implements View.OnClickListener, On
*/
private void onFavoritesChanged() {
mDesktopLocked = true;
- mDrawer.lock();
+ mAllAppsDialog.lock();
sModel.loadUserItems(false, this, false, false);
}
@@ -1515,7 +1505,7 @@ public final class Launcher extends Activity implements View.OnClickListener, On
final boolean allApps = mSavedState.getBoolean(RUNTIME_STATE_ALL_APPS_FOLDER, false);
if (allApps) {
- mDrawer.open();
+ showDialog(DIALOG_ALL_APPS);
}
mSavedState = null;
@@ -1526,12 +1516,14 @@ public final class Launcher extends Activity implements View.OnClickListener, On
mSavedInstanceState = null;
}
- if (mDrawer.isOpened() && !mDrawer.hasFocus()) {
+ /* TODO
+ if (mAllAppsDialog.isOpen && !mDrawer.hasFocus()) {
mDrawer.requestFocus();
}
+ */
mDesktopLocked = false;
- mDrawer.unlock();
+ mAllAppsDialog.unlock();
}
private void bindDrawer(Launcher.DesktopBinder binder,
@@ -1590,6 +1582,12 @@ public final class Launcher extends Activity implements View.OnClickListener, On
startActivitySafely(intent);
} else if (tag instanceof FolderInfo) {
handleFolderClick((FolderInfo) tag);
+ } else if (v == mHandleView) {
+ if (mAllAppsDialog.isOpen) {
+ // TODO how can we be here?
+ } else {
+ showDialog(DIALOG_ALL_APPS);
+ }
}
}
@@ -1635,7 +1633,12 @@ public final class Launcher extends Activity implements View.OnClickListener, On
// The first time the application is started, we load the wallpaper from
// the ApplicationContext
if (sWallpaper == null) {
- final Drawable drawable = getWallpaper();
+ final Drawable drawable;
+ if (false) {
+ drawable = getWallpaper();
+ } else {
+ drawable = getResources().getDrawable(R.drawable.wallpaper_path);
+ }
if (drawable instanceof BitmapDrawable) {
sWallpaper = ((BitmapDrawable) drawable).getBitmap();
} else {
@@ -1721,7 +1724,8 @@ public final class Launcher extends Activity implements View.OnClickListener, On
}
void closeAllApplications() {
- mDrawer.close();
+ // TODO mDrawer.close();
+ mAllAppsDialog.dismiss();
}
View getDrawerHandle() {
@@ -1729,28 +1733,32 @@ public final class Launcher extends Activity implements View.OnClickListener, On
}
boolean isDrawerDown() {
- return !mDrawer.isMoving() && !mDrawer.isOpened();
+ return /* TODO !mDrawer.isMoving() && */ !mAllAppsDialog.isOpen;
}
boolean isDrawerUp() {
- return mDrawer.isOpened() && !mDrawer.isMoving();
+ return mAllAppsDialog.isOpen; /* TODO && !mDrawer.isMoving();*/
}
boolean isDrawerMoving() {
- return mDrawer.isMoving();
+ return false; // TODO mDrawer.isMoving();
}
Workspace getWorkspace() {
return mWorkspace;
}
+ /* TODO
GridView getApplicationsGrid() {
return mAllAppsGrid;
}
+ */
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
+ case DIALOG_ALL_APPS:
+ return mAllAppsDialog;
case DIALOG_CREATE_SHORTCUT:
return new CreateShortcut().createDialog();
case DIALOG_RENAME_FOLDER:
@@ -1763,6 +1771,9 @@ public final class Launcher extends Activity implements View.OnClickListener, On
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
switch (id) {
+ case DIALOG_ALL_APPS:
+ mAllAppsDialog.isOpen = true;
+ break;
case DIALOG_CREATE_SHORTCUT:
break;
case DIALOG_RENAME_FOLDER:
@@ -1860,7 +1871,7 @@ public final class Launcher extends Activity implements View.OnClickListener, On
LauncherModel.updateItemInDatabase(Launcher.this, mFolderInfo);
if (mDesktopLocked) {
- mDrawer.lock();
+ mAllAppsDialog.lock();
sModel.loadUserItems(false, Launcher.this, false, false);
} else {
final FolderIcon folderIcon = (FolderIcon)
@@ -1870,7 +1881,7 @@ public final class Launcher extends Activity implements View.OnClickListener, On
getWorkspace().requestLayout();
} else {
mDesktopLocked = true;
- mDrawer.lock();
+ mAllAppsDialog.lock();
sModel.loadUserItems(false, Launcher.this, false, false);
}
}
@@ -1887,6 +1898,53 @@ public final class Launcher extends Activity implements View.OnClickListener, On
}
/**
+ * Holds the 3d all apps view.
+ */
+ private class AllAppsDialog extends Dialog implements DialogInterface.OnCancelListener,
+ DialogInterface.OnDismissListener, DialogInterface.OnShowListener {
+
+ boolean isOpen;
+
+ AllAppsDialog(Context context) {
+ super(context, android.R.style.Theme_Translucent_NoTitleBar);
+
+ setOnCancelListener(this);
+ setOnDismissListener(this);
+ setOnShowListener(this);
+
+ setContentView(R.layout.all_apps);
+ AllAppsGridView grid = mAllAppsGrid = (AllAppsGridView)findViewById(R.id.all_apps);
+
+ grid.setTextFilterEnabled(false);
+ // TODO grid.setDragger(dragLayer);
+ grid.setLauncher(Launcher.this);
+ }
+
+ public void onCancel(DialogInterface dialog) {
+ onDestroy();
+ }
+
+ public void onDismiss(DialogInterface dialog) {
+ onDestroy();
+ }
+
+ public void onShow(DialogInterface dialog) {
+ }
+
+ private void onDestroy() {
+ this.isOpen = false;
+ }
+
+ void lock() {
+ // TODO
+ }
+
+ void unlock() {
+ // TODO
+ }
+ }
+
+ /**
* Displays the shortcut creation dialog and launches, if necessary, the
* appropriate activity.
*/
@@ -2108,57 +2166,6 @@ public final class Launcher extends Activity implements View.OnClickListener, On
}
}
- private class DrawerManager implements SlidingDrawer.OnDrawerOpenListener,
- SlidingDrawer.OnDrawerCloseListener, SlidingDrawer.OnDrawerScrollListener {
- private boolean mOpen;
-
- public void onDrawerOpened() {
- if (!mOpen) {
- mHandleIcon.reverseTransition(150);
-
- final Rect bounds = mWorkspace.mDrawerBounds;
- offsetBoundsToDragLayer(bounds, mAllAppsGrid);
-
- mOpen = true;
- }
- }
-
- private void offsetBoundsToDragLayer(Rect bounds, View view) {
- view.getDrawingRect(bounds);
-
- while (view != mDragLayer) {
- bounds.offset(view.getLeft(), view.getTop());
- view = (View) view.getParent();
- }
- }
-
- public void onDrawerClosed() {
- if (mOpen) {
- mHandleIcon.reverseTransition(150);
- mWorkspace.mDrawerBounds.setEmpty();
- mOpen = false;
- }
-
- mAllAppsGrid.setSelection(0);
- mAllAppsGrid.clearTextFilter();
- }
-
- public void onScrollStarted() {
- if (PROFILE_DRAWER) {
- android.os.Debug.startMethodTracing("/sdcard/launcher-drawer");
- }
-
- mWorkspace.mDrawerContentWidth = mAllAppsGrid.getWidth();
- mWorkspace.mDrawerContentHeight = mAllAppsGrid.getHeight();
- }
-
- public void onScrollEnded() {
- if (PROFILE_DRAWER) {
- android.os.Debug.stopMethodTracing();
- }
- }
- }
-
private static class DesktopBinder extends Handler implements MessageQueue.IdleHandler {
static final int MESSAGE_BIND_ITEMS = 0x1;
static final int MESSAGE_BIND_APPWIDGETS = 0x2;