Merge "Revert "Clear default focus highlight when lost window focus or re-enter touch mode""

This commit is contained in:
Arthur Hung
2022-09-20 00:45:49 +00:00
committed by Android (Google) Code Review
2 changed files with 2 additions and 16 deletions

View File

@@ -24515,9 +24515,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
/**
* Set the current default focus highlight.
* @param highlight the highlight drawable, or {@code null} if it's no longer needed.
* @hide
*/
void setDefaultFocusHighlight(Drawable highlight) {
private void setDefaultFocusHighlight(Drawable highlight) {
mDefaultFocusHighlight = highlight;
mDefaultFocusHighlightSizeChanged = true;
if (highlight != null) {

View File

@@ -3815,13 +3815,6 @@ public final class ViewRootImpl implements ViewParent,
if (mAttachInfo.mTooltipHost != null) {
mAttachInfo.mTooltipHost.hideTooltip();
}
if (!hasWindowFocus) {
// Clear focus highlight if its window lost focus.
final View focused = mView.findFocus();
if (focused != null) {
focused.setDefaultFocusHighlight(null);
}
}
}
// Note: must be done after the focus change callbacks,
@@ -5853,13 +5846,7 @@ public final class ViewRootImpl implements ViewParent,
// be when the window is first being added, and mFocused isn't
// set yet.
final View focused = mView.findFocus();
if (focused == null) {
return false;
}
// Clear default focus highlight if it entered touch mode.
focused.setDefaultFocusHighlight(null);
if (!focused.isFocusableInTouchMode()) {
if (focused != null && !focused.isFocusableInTouchMode()) {
final ViewGroup ancestorToTakeFocus = findAncestorToTakeFocusInTouchMode(focused);
if (ancestorToTakeFocus != null) {
// there is an ancestor that wants focus after its