summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher/Launcher.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher/Launcher.java')
-rw-r--r--src/com/android/launcher/Launcher.java434
1 files changed, 4 insertions, 430 deletions
diff --git a/src/com/android/launcher/Launcher.java b/src/com/android/launcher/Launcher.java
index 25ad4e575..3fd141d5a 100644
--- a/src/com/android/launcher/Launcher.java
+++ b/src/com/android/launcher/Launcher.java
@@ -32,7 +32,6 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
-import android.content.SharedPreferences;
import android.content.Intent.ShortcutIconResource;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
@@ -67,8 +66,6 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
-import android.view.MotionEvent;
-import android.view.Gravity;
import android.view.View.OnLongClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
@@ -76,16 +73,8 @@ import android.widget.GridView;
import android.widget.SlidingDrawer;
import android.widget.TextView;
import android.widget.Toast;
-import android.widget.ImageView;
-import android.widget.PopupWindow;
-import android.widget.Button;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProviderInfo;
-import android.gesture.GestureOverlayView;
-import android.gesture.GestureLibraries;
-import android.gesture.GestureLibrary;
-import android.gesture.Gesture;
-import android.gesture.Prediction;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
@@ -106,9 +95,6 @@ public final class Launcher extends Activity implements View.OnClickListener, On
private static final boolean PROFILE_DRAWER = false;
private static final boolean PROFILE_ROTATE = false;
private static final boolean DEBUG_USER_INTERFACE = false;
- private static final boolean DEBUG_GESTURES = false;
-
- private static final boolean CONFIG_GESTURES_IMMEDIATE_MODE = true;
private static final int WALLPAPER_SCREENS_SPAN = 2;
@@ -117,8 +103,7 @@ public final class Launcher extends Activity implements View.OnClickListener, On
private static final int MENU_WALLPAPER_SETTINGS = MENU_ADD + 1;
private static final int MENU_SEARCH = MENU_WALLPAPER_SETTINGS + 1;
private static final int MENU_NOTIFICATIONS = MENU_SEARCH + 1;
- private static final int MENU_GESTURES = MENU_NOTIFICATIONS + 1;
- private static final int MENU_SETTINGS = MENU_GESTURES + 1;
+ private static final int MENU_SETTINGS = MENU_NOTIFICATIONS + 1;
private static final int REQUEST_CREATE_SHORTCUT = 1;
private static final int REQUEST_CREATE_LIVE_FOLDER = 4;
@@ -127,9 +112,6 @@ public final class Launcher extends Activity implements View.OnClickListener, On
private static final int REQUEST_PICK_SHORTCUT = 7;
private static final int REQUEST_PICK_LIVE_FOLDER = 8;
private static final int REQUEST_PICK_APPWIDGET = 9;
- private static final int REQUEST_PICK_GESTURE_ACTION = 10;
- private static final int REQUEST_CREATE_GESTURE_ACTION = 11;
- private static final int REQUEST_CREATE_GESTURE_APPLICATION_ACTION = 12;
static final String EXTRA_SHORTCUT_DUPLICATE = "duplicate";
@@ -172,12 +154,6 @@ public final class Launcher extends Activity implements View.OnClickListener, On
private static final String RUNTIME_STATE_PENDING_FOLDER_RENAME = "launcher.rename_folder";
// Type: long
private static final String RUNTIME_STATE_PENDING_FOLDER_RENAME_ID = "launcher.rename_folder_id";
- // Type: Gesture (Parcelable)
- private static final String RUNTIME_STATE_PENDING_GESTURE = "launcher.gesture";
- // Type: boolean
- private static final String RUNTIME_STATE_GESTURES_PANEL = "launcher.gesture_panel_showing";
- // Type: Gesture (Parcelable)
- private static final String RUNTIME_STATE_GESTURES_PANEL_GESTURE = "launcher.gesture_panel_gesture";
private static final LauncherModel sModel = new LauncherModel();
@@ -188,8 +164,6 @@ public final class Launcher extends Activity implements View.OnClickListener, On
private static WallpaperIntentReceiver sWallpaperReceiver;
- private static GestureLibrary sLibrary;
-
private final BroadcastReceiver mApplicationsReceiver = new ApplicationsIntentReceiver();
private final ContentObserver mObserver = new FavoritesChangeObserver();
@@ -230,24 +204,11 @@ public final class Launcher extends Activity implements View.OnClickListener, On
private DesktopBinder mBinder;
- private View mGesturesPanel;
- private GestureOverlayView mGesturesOverlay;
- private ImageView mGesturesAdd;
- private PopupWindow mGesturesWindow;
- private Launcher.GesturesProcessor mGesturesProcessor;
- private Gesture mCurrentGesture;
- private GesturesAction mGesturesAction;
- private boolean mHideGesturesPanel;
- private TextView mGesturesPrompt;
- private Button mGesturesSend;
-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mInflater = getLayoutInflater();
- getGestureLibrary(this);
-
mAppWidgetManager = AppWidgetManager.getInstance(this);
mAppWidgetHost = new LauncherAppWidgetHost(this, APPWIDGET_HOST_ID);
@@ -405,11 +366,7 @@ public final class Launcher extends Activity implements View.OnClickListener, On
// For example, the user would PICK_SHORTCUT for "Music playlist", and we
// launch over to the Music app to actually CREATE_SHORTCUT.
- if (resultCode == RESULT_OK && (mAddItemCellInfo != null ||
- ((requestCode == REQUEST_PICK_GESTURE_ACTION ||
- requestCode == REQUEST_CREATE_GESTURE_ACTION ||
- requestCode == REQUEST_CREATE_GESTURE_APPLICATION_ACTION) && mCurrentGesture != null))) {
-
+ if (resultCode == RESULT_OK && mAddItemCellInfo != null) {
switch (requestCode) {
case REQUEST_PICK_APPLICATION:
completeAddApplication(this, data, mAddItemCellInfo, !mDesktopLocked);
@@ -432,16 +389,6 @@ public final class Launcher extends Activity implements View.OnClickListener, On
case REQUEST_CREATE_APPWIDGET:
completeAddAppWidget(data, mAddItemCellInfo, !mDesktopLocked);
break;
- case REQUEST_PICK_GESTURE_ACTION:
- processShortcut(data, REQUEST_CREATE_GESTURE_APPLICATION_ACTION,
- REQUEST_CREATE_GESTURE_ACTION);
- break;
- case REQUEST_CREATE_GESTURE_ACTION:
- completeCreateGesture(data, true);
- break;
- case REQUEST_CREATE_GESTURE_APPLICATION_ACTION:
- completeCreateGesture(data, false);
- break;
}
} else if (requestCode == REQUEST_PICK_APPWIDGET &&
resultCode == RESULT_CANCELED && data != null) {
@@ -486,23 +433,10 @@ public final class Launcher extends Activity implements View.OnClickListener, On
@Override
protected void onPause() {
super.onPause();
- if (mGesturesWindow != null) {
- mGesturesWindow.setAnimationStyle(0);
- mGesturesWindow.update();
- }
closeDrawer(false);
}
@Override
- protected void onStop() {
- super.onStop();
- if (mHideGesturesPanel) {
- mHideGesturesPanel = false;
- hideGesturesPanel();
- }
- }
-
- @Override
public Object onRetainNonConfigurationInstance() {
// Flag any binder to stop early before switching
if (mBinder != null) {
@@ -589,31 +523,6 @@ public final class Launcher extends Activity implements View.OnClickListener, On
mFolderInfo = sModel.getFolderById(this, id);
mRestoring = true;
}
-
- mCurrentGesture = (Gesture) savedState.get(RUNTIME_STATE_PENDING_GESTURE);
-
- boolean gesturesShowing = savedState.getBoolean(RUNTIME_STATE_GESTURES_PANEL, false);
- if (gesturesShowing) {
- if (mCurrentGesture == null) {
- mCurrentGesture = (Gesture) savedState.get(RUNTIME_STATE_GESTURES_PANEL_GESTURE);
- }
- final Gesture gesture = mCurrentGesture;
- mWorkspace.post(new Runnable() {
- public void run() {
- showGesturesPanel(false);
- if (gesture != null && mWorkspace.getParent() != null) {
- mGesturesProcessor.matchGesture(gesture);
- mWorkspace.post(new Runnable() {
- public void run() {
- if (gesture != null && mWorkspace.getParent() != null) {
- mGesturesOverlay.setGesture(gesture);
- }
- }
- });
- }
- }
- });
- }
}
/**
@@ -661,72 +570,6 @@ public final class Launcher extends Activity implements View.OnClickListener, On
dragLayer.setIgnoredDropTarget(grid);
dragLayer.setDragScoller(workspace);
dragLayer.setDragListener(deleteZone);
-
- mGesturesPanel = mInflater.inflate(R.layout.gestures, mDragLayer, false);
- final View gesturesPanel = mGesturesPanel;
-
- mGesturesAction = new GesturesAction();
-
- mGesturesPrompt = (TextView) gesturesPanel.findViewById(R.id.gestures_prompt);
- mGesturesSend = (Button) gesturesPanel.findViewById(R.id.gestures_action);
- mGesturesSend.setOnClickListener(mGesturesAction);
-
- mGesturesAdd = (ImageView) gesturesPanel.findViewById(R.id.gestures_add);
- final ImageView gesturesAdd = mGesturesAdd;
- gesturesAdd.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- createGesture();
- }
- });
-
- gesturesPanel.findViewById(R.id.gestures_list).setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- startActivity(new Intent(Launcher.this, GesturesActivity.class));
- }
- });
-
- mGesturesOverlay = (GestureOverlayView) gesturesPanel.findViewById(R.id.gestures_overlay);
- mGesturesProcessor = new GesturesProcessor();
-
- final GestureOverlayView overlay = mGesturesOverlay;
- overlay.addOnGestureListener(mGesturesProcessor);
- }
-
- private void createGesture() {
- if (!mWaitingForResult) {
- mCurrentGesture = mGesturesOverlay.getGesture();
- mWaitingForResult = true;
- pickShortcut(REQUEST_PICK_GESTURE_ACTION, R.string.title_select_shortcut);
- }
- }
-
- private void completeCreateGesture(Intent data, boolean isShortcut) {
- ApplicationInfo info;
-
- if (isShortcut) {
- info = infoFromShortcutIntent(this, data);
- } else {
- info = infoFromApplicationIntent(this, data);
- }
-
- boolean success = false;
- if (info != null) {
- info.isGesture = true;
-
- if (LauncherModel.addGestureToDatabase(this, info, false)) {
- mGesturesProcessor.addGesture(String.valueOf(info.id), mCurrentGesture);
- mGesturesProcessor.update(info, mCurrentGesture);
- Toast.makeText(this, getString(R.string.gestures_created, info.title),
- Toast.LENGTH_SHORT).show();
- success = true;
- }
- }
-
- if (!success) {
- Toast.makeText(this, getString(R.string.gestures_failed), Toast.LENGTH_SHORT).show();
- }
-
- mCurrentGesture = null;
}
/**
@@ -977,32 +820,8 @@ public final class Launcher extends Activity implements View.OnClickListener, On
if ((intent.getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) !=
Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) {
- // TODO: This really should not be done here every time
- final SharedPreferences preferences =
- getSharedPreferences(GesturesConstants.PREFERENCES_NAME, MODE_PRIVATE);
- final boolean homeKey = preferences.getBoolean(
- GesturesConstants.PREFERENCES_HOME_KEY, false);
-
- if (!homeKey) {
- if (!mWorkspace.isDefaultScreenShowing()) {
- mWorkspace.moveToDefaultScreen();
- }
-
- if (mGesturesWindow == null || mGesturesWindow.isShowing()) {
- hideGesturesPanel();
- }
- } else {
- if (mGesturesPanel != null && mDragLayer.getWindowVisibility() == View.VISIBLE
- && (mDragLayer.hasWindowFocus() || (mGesturesWindow != null
- && mGesturesWindow.isShowing()))) {
-
- SearchManager searchManager =
- (SearchManager) getSystemService(Context.SEARCH_SERVICE);
-
- if (!searchManager.isVisible()) {
- onHomeKeyPressed();
- }
- }
+ if (!mWorkspace.isDefaultScreenShowing()) {
+ mWorkspace.moveToDefaultScreen();
}
closeDrawer();
@@ -1019,83 +838,6 @@ public final class Launcher extends Activity implements View.OnClickListener, On
}
}
- private void onHomeKeyPressed() {
- if (mGesturesWindow == null || !mGesturesWindow.isShowing()) {
- showGesturesPanel();
- } else {
- hideGesturesPanel();
- }
- }
-
- private void showGesturesPanel() {
- showGesturesPanel(true);
- }
-
- private void showGesturesPanel(boolean animate) {
- resetGesturesPrompt();
-
- mGesturesAdd.setVisibility(View.GONE);
-
- mGesturesOverlay.clear(false);
-
- PopupWindow window;
- if (mGesturesWindow == null) {
- mGesturesWindow = new PopupWindow(this);
- window = mGesturesWindow;
- window.setFocusable(true);
- window.setTouchable(true);
- window.setBackgroundDrawable(getResources().getDrawable(
- android.R.drawable.screen_background_dark));
- window.setContentView(mGesturesPanel);
- } else {
- window = mGesturesWindow;
- }
- window.setAnimationStyle(animate ? com.android.internal.R.style.Animation_Toast : 0);
-
- final int[] xy = new int[2];
- final DragLayer dragLayer = mDragLayer;
- dragLayer.getLocationOnScreen(xy);
-
- window.setWidth(dragLayer.getWidth());
- window.setHeight(dragLayer.getHeight() - 1);
- window.showAtLocation(dragLayer, Gravity.TOP | Gravity.LEFT, xy[0], xy[1] + 1);
- }
-
- private void resetGesturesPrompt() {
- mGesturesAction.intent = null;
- mGesturesPrompt.setText(R.string.gestures_instructions);
- mGesturesPrompt.setVisibility(View.VISIBLE);
- mGesturesSend.setVisibility(View.GONE);
- }
-
- private void setGestureUnknown() {
- mGesturesAction.intent = null;
- mGesturesPrompt.setText(R.string.gestures_unknown);
- mGesturesPrompt.setVisibility(View.VISIBLE);
- mGesturesSend.setVisibility(View.GONE);
- }
-
- private void setGestureAction(Drawable icon, CharSequence title) {
- mGesturesPrompt.setVisibility(View.GONE);
- mGesturesSend.setVisibility(View.VISIBLE);
- mGesturesSend.setText(title);
- mGesturesSend.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null);
- }
-
- void hideGesturesPanel() {
- hideGesturesPanel(true);
- }
-
- void hideGesturesPanel(boolean animate) {
- if (mGesturesWindow != null) {
- final PopupWindow popupWindow = mGesturesWindow;
- popupWindow.setAnimationStyle(animate ?
- com.android.internal.R.style.Animation_Toast : 0);
- popupWindow.update();
- popupWindow.dismiss();
- }
- }
-
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// Do not call super here
@@ -1146,21 +888,6 @@ public final class Launcher extends Activity implements View.OnClickListener, On
outState.putBoolean(RUNTIME_STATE_PENDING_FOLDER_RENAME, true);
outState.putLong(RUNTIME_STATE_PENDING_FOLDER_RENAME_ID, mFolderInfo.id);
}
-
- if (mCurrentGesture != null && mWaitingForResult) {
- outState.putParcelable(RUNTIME_STATE_PENDING_GESTURE, mCurrentGesture);
- }
-
- if (mGesturesWindow != null && mGesturesWindow.isShowing()) {
- outState.putBoolean(RUNTIME_STATE_GESTURES_PANEL, true);
-
- if (mCurrentGesture == null || !mWaitingForResult) {
- final Gesture gesture = mGesturesOverlay.getGesture();
- if (gesture != null) {
- outState.putParcelable(RUNTIME_STATE_GESTURES_PANEL_GESTURE, gesture);
- }
- }
- }
}
@Override
@@ -1177,7 +904,6 @@ public final class Launcher extends Activity implements View.OnClickListener, On
TextKeyListener.getInstance().release();
- hideGesturesPanel(false);
mAllAppsGrid.clearTextFilter();
mAllAppsGrid.setAdapter(null);
sModel.unbind();
@@ -1280,11 +1006,6 @@ public final class Launcher extends Activity implements View.OnClickListener, On
.setIcon(com.android.internal.R.drawable.ic_menu_notifications)
.setAlphabeticShortcut('N');
- // TODO: Remove
- menu.add(0, MENU_GESTURES, 0, R.string.menu_gestures)
- .setIcon(com.android.internal.R.drawable.ic_menu_compose)
- .setAlphabeticShortcut('G');
-
final Intent settings = new Intent(android.provider.Settings.ACTION_SETTINGS);
settings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
@@ -1321,9 +1042,6 @@ public final class Launcher extends Activity implements View.OnClickListener, On
case MENU_NOTIFICATIONS:
showNotifications();
return true;
- case MENU_GESTURES:
- showGesturesPanel();
- return true;
}
return super.onOptionsItemSelected(item);
@@ -1852,7 +1570,6 @@ public final class Launcher extends Activity implements View.OnClickListener, On
}
void startActivitySafely(Intent intent) {
- mHideGesturesPanel = true;
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
startActivity(intent);
@@ -1979,14 +1696,6 @@ public final class Launcher extends Activity implements View.OnClickListener, On
return sModel;
}
- static GestureLibrary getGestureLibrary(Context context) {
- if (sLibrary == null) {
- // The context is not kept by the library so it's safe to do this
- sLibrary = GestureLibraries.fromPrivateFile(context, GesturesConstants.STORE_NAME);
- }
- return sLibrary;
- }
-
void closeAllApplications() {
mDrawer.close();
}
@@ -2511,139 +2220,4 @@ public final class Launcher extends Activity implements View.OnClickListener, On
}
}
}
-
- private class GesturesProcessor implements GestureOverlayView.OnGestureListener {
-
- private final GestureMatcher mMatcher = new GestureMatcher();
-
- GesturesProcessor() {
- // TODO: Maybe the load should happen on a background thread?
- sLibrary.load();
- }
-
- public void onGestureStarted(GestureOverlayView overlay, MotionEvent event) {
- //noinspection PointlessBooleanExpression,ConstantConditions
- if (!CONFIG_GESTURES_IMMEDIATE_MODE) {
- overlay.removeCallbacks(mMatcher);
- resetGesturesPrompt();
- }
-
- mGesturesAdd.setVisibility(View.GONE);
- }
-
- public void onGesture(GestureOverlayView overlay, MotionEvent event) {
- }
-
- public void onGestureEnded(GestureOverlayView overlay, MotionEvent event) {
- if (CONFIG_GESTURES_IMMEDIATE_MODE) {
- mMatcher.gesture = overlay.getGesture();
- if (mMatcher.gesture.getLength() < GesturesConstants.LENGTH_THRESHOLD) {
- overlay.clear(false);
- if (mGesturesAction.intent != null) {
- mGesturesAction.intent = null;
- setGestureAction(null, getString(R.string.gestures_unknown));
- }
- } else {
- mMatcher.run();
- }
- } else {
- overlay.removeCallbacks(mMatcher);
-
- mMatcher.gesture = overlay.getGesture();
- if (mMatcher.gesture.getLength() < GesturesConstants.LENGTH_THRESHOLD) {
- overlay.clear(false);
- if (mGesturesAction.intent != null) {
- mGesturesAction.intent = null;
- setGestureAction(null, getString(R.string.gestures_unknown));
- }
- } else {
- overlay.postDelayed(mMatcher, GesturesConstants.MATCH_DELAY);
- }
- }
- }
-
- void matchGesture(Gesture gesture) {
- mGesturesAdd.setVisibility(View.VISIBLE);
-
- if (gesture != null) {
- final ArrayList<Prediction> predictions = sLibrary.recognize(gesture);
-
- if (DEBUG_GESTURES) {
- for (Prediction p : predictions) {
- d(LOG_TAG, String.format("name=%s, score=%f", p.name, p.score));
- }
- }
-
- boolean match = false;
- if (predictions.size() > 0) {
- final Prediction prediction = predictions.get(0);
- if (prediction.score > GesturesConstants.PREDICTION_THRESHOLD) {
- match = true;
-
- ApplicationInfo info = sModel.queryGesture(Launcher.this, prediction.name);
- if (info != null) {
- updatePrompt(info);
- }
- }
- }
-
- if (!match){
- mGesturesAction.intent = null;
- setGestureUnknown();
- }
- }
- }
-
- private void updatePrompt(ApplicationInfo info) {
- // TODO: BRING BACK
- if (mGesturesAction.intent != null &&
- info.intent.toUri(0).equals(mGesturesAction.intent.toUri(0)) &&
- info.title.equals(mGesturesSend.getText())) {
- return;
- }
-
- setGestureAction(info.icon, info.title);
-
- mGesturesAction.intent = info.intent;
- }
-
- public void onGestureCancelled(GestureOverlayView overlay, MotionEvent event) {
- //noinspection PointlessBooleanExpression,ConstantConditions
- if (!CONFIG_GESTURES_IMMEDIATE_MODE) {
- overlay.removeCallbacks(mMatcher);
- }
- }
-
- void addGesture(String name, Gesture gesture) {
- sLibrary.addGesture(name, gesture);
- // TODO: On a background thread?
- sLibrary.save();
- }
-
- void update(ApplicationInfo info, Gesture gesture) {
- mGesturesOverlay.setGesture(gesture);
- updatePrompt(info);
- }
-
- class GestureMatcher implements Runnable {
- Gesture gesture;
-
- public void run() {
- if (gesture != null) {
- matchGesture(gesture);
- }
- }
- }
- }
-
- private class GesturesAction implements View.OnClickListener {
- Intent intent;
-
- public void onClick(View v) {
- if (intent != null) {
- startActivitySafely(intent);
- }
- }
- }
}
-