diff options
-rw-r--r-- | res/xml/default_workspace.xml | 31 | ||||
-rw-r--r-- | src/com/android/launcher2/AllAppsView.java | 42 |
2 files changed, 44 insertions, 29 deletions
diff --git a/res/xml/default_workspace.xml b/res/xml/default_workspace.xml index 2c8b8ff44..df7ca1ec3 100644 --- a/res/xml/default_workspace.xml +++ b/res/xml/default_workspace.xml @@ -16,31 +16,28 @@ <favorites xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher2"> -com.android.camera - <!-- Left screen [1] --> - <favorite launcher:packageName="com.android.camera" launcher:className="com.android.camera.Camera" launcher:screen="1" launcher:x="1" launcher:y="3" /> - + <favorite launcher:packageName="com.android.camera" launcher:className="com.android.camera.Camera" launcher:screen="1" launcher:x="2" launcher:y="3" /> - + <!-- Middle screen [2] --> <search launcher:screen="2" launcher:x="0" launcher:y="0" /> - <favorite + <favorite launcher:packageName="com.android.contacts" launcher:className="com.android.contacts.DialtactsActivity" launcher:screen="2" @@ -83,23 +80,23 @@ com.android.camera launcher:y="2" /> <!-- Right screen [3] --> - - <appwidget - launcher:packageName="com.android.settings" - launcher:className="com.android.settings.widget.SettingsAppWidgetProvider" - launcher:screen="3" - launcher:x="0" - launcher:y="0" - launcher:spanX="4" - launcher:spanY="1" /> - + + <appwidget + launcher:packageName="com.android.settings" + launcher:className="com.android.settings.widget.SettingsAppWidgetProvider" + launcher:screen="3" + launcher:x="0" + launcher:y="0" + launcher:spanX="4" + launcher:spanY="1" /> + <favorite launcher:packageName="com.google.android.gm" launcher:className="com.google.android.gm.ConversationListActivityGmail" launcher:screen="3" launcher:x="1" launcher:y="3" /> - + <favorite launcher:packageName="com.google.android.talk" launcher:className="com.google.android.talk.SigningInActivity" diff --git a/src/com/android/launcher2/AllAppsView.java b/src/com/android/launcher2/AllAppsView.java index d96268cdd..722213d42 100644 --- a/src/com/android/launcher2/AllAppsView.java +++ b/src/com/android/launcher2/AllAppsView.java @@ -110,6 +110,8 @@ public class AllAppsView extends RSSurfaceView private int mDownIconIndex = -1; private int mCurrentIconIndex = -1; + private boolean mShouldGainFocus; + static class Defines { public static final int ALLOC_PARAMS = 0; @@ -192,6 +194,10 @@ public class AllAppsView extends RSSurfaceView mRollo.setApps(mAllAppsList); Log.d(TAG, "surfaceChanged... calling mRollo.setApps"); } + if (mShouldGainFocus) { + gainFocus(); + mShouldGainFocus = false; + } } else { mRollo.mHasSurface = true; mRollo.dirtyCheck(); @@ -249,24 +255,36 @@ public class AllAppsView extends RSSurfaceView } if (gainFocus) { - if (!mArrowNavigation && mRollo.mState.iconCount > 0) { - // Select the first icon when we gain keyboard focus - mArrowNavigation = true; - mRollo.selectIcon(Math.round(mRollo.mMessageProc.mPosX) * Defines.COLUMNS_PER_PAGE, - SELECTED_FOCUSED); - mRollo.mState.save(); + if (mRollo != null) { + gainFocus(); + } else { + mShouldGainFocus = true; } } else { - if (mArrowNavigation) { - // Clear selection when we lose focus - mRollo.clearSelectedIcon(); - mRollo.setHomeSelected(SELECTED_NONE); - mRollo.mState.save(); - mArrowNavigation = false; + if (mRollo != null) { + if (mArrowNavigation) { + // Clear selection when we lose focus + mRollo.clearSelectedIcon(); + mRollo.setHomeSelected(SELECTED_NONE); + mRollo.mState.save(); + mArrowNavigation = false; + } + } else { + mShouldGainFocus = false; } } } + private void gainFocus() { + if (!mArrowNavigation && mRollo.mState.iconCount > 0) { + // Select the first icon when we gain keyboard focus + mArrowNavigation = true; + mRollo.selectIcon(Math.round(mRollo.mMessageProc.mPosX) * Defines.COLUMNS_PER_PAGE, + SELECTED_FOCUSED); + mRollo.mState.save(); + } + } + @Override public boolean onKeyDown(int keyCode, KeyEvent event) { |