Fix trackball focus weirdness in AllApps2D.
Also vertically align AllApps2D's home icon with Workspace's
grid icon.
Change-Id: I81a8759ed33afd08336482484f1b9bdb9a36718e
diff --git a/src/com/android/launcher2/AllApps2D.java b/src/com/android/launcher2/AllApps2D.java
index f02e8c6..6674480 100644
--- a/src/com/android/launcher2/AllApps2D.java
+++ b/src/com/android/launcher2/AllApps2D.java
@@ -57,28 +57,26 @@
private ArrayList<ApplicationInfo> mAllAppsList = new ArrayList<ApplicationInfo>();
- /**
- * True when we are using arrow keys or trackball to drive navigation
- */
- private boolean mArrowNavigation = false;
- private boolean mStartedScrolling;
-
- /**
- * Used to keep track of the selection when AllApps2D loses window focus.
- * One of the SELECTION_ constants.
- */
- private int mLastSelection;
-
- /**
- * Used to keep track of the selection when AllApps2D loses window focus
- */
- private int mLastSelectedIcon;
-
+ // preserve compatibility with 3D all apps:
+ // 0.0 -> hidden
+ // 1.0 -> shown and opaque
+ // intermediate values -> partially shown & partially opaque
private float mZoom;
private AppsAdapter mAppsAdapter;
// ------------------------------------------------------------
+
+ public static class HomeButton extends ImageButton {
+ public HomeButton(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+ @Override
+ public View focusSearch(int direction) {
+ if (direction == FOCUS_UP) return super.focusSearch(direction);
+ return null;
+ }
+ }
public class AppsAdapter extends ArrayAdapter<ApplicationInfo> {
private final LayoutInflater mInflater;
@@ -184,6 +182,11 @@
return true;
}
+ protected void onFocusChanged(boolean gainFocus, int direction, android.graphics.Rect prev) {
+ if (gainFocus) {
+ mGrid.requestFocus();
+ }
+ }
public void setDragController(DragController dragger) {
mDragController = dragger;