Merge "Keeping the focus indicator on the widget view, while a child is focused" into ub-launcher3-burnaby-polish

This commit is contained in:
Sunny Goyal
2015-12-01 23:19:11 +00:00
committed by Android (Google) Code Review
2 changed files with 35 additions and 2 deletions

View File

@@ -244,4 +244,27 @@ public class LauncherAppWidgetHostView extends AppWidgetHostView implements Touc
}
super.onFocusChanged(gainFocus, direction, previouslyFocusedRect);
}
@Override
public void requestChildFocus(View child, View focused) {
super.requestChildFocus(child, focused);
dispatchChildFocus(focused != null);
}
@Override
public void clearChildFocus(View child) {
super.clearChildFocus(child);
dispatchChildFocus(false);
}
@Override
public boolean dispatchUnhandledMove(View focused, int direction) {
return mChildrenFocused;
}
private void dispatchChildFocus(boolean focused) {
if (getOnFocusChangeListener() != null) {
getOnFocusChangeListener().onFocusChange(this, focused || isFocused());
}
}
}

View File

@@ -1220,7 +1220,17 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
@Override
public boolean dispatchUnhandledMove(View focused, int direction) {
// XXX-RTL: This will be fixed in a future CL
if (super.dispatchUnhandledMove(focused, direction)) {
return true;
}
if (mIsRtl) {
if (direction == View.FOCUS_LEFT) {
direction = View.FOCUS_RIGHT;
} else if (direction == View.FOCUS_RIGHT) {
direction = View.FOCUS_LEFT;
}
}
if (direction == View.FOCUS_LEFT) {
if (getCurrentPage() > 0) {
snapToPage(getCurrentPage() - 1);
@@ -1232,7 +1242,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
return true;
}
}
return super.dispatchUnhandledMove(focused, direction);
return false;
}
@Override