From 63dd081b36cda331060fc79b742201d7f47339cb Mon Sep 17 00:00:00 2001 From: Hyunyoung Song Date: Thu, 29 Nov 2018 15:08:02 -0800 Subject: [PATCH] setVisibility should not propagate focus on children views Bug: 120064903 Change-Id: I2d58d1ef89db7749f9e6551c716b3cc0567915b3 --- src/com/android/launcher3/LauncherStateManager.java | 2 -- .../android/launcher3/anim/AlphaUpdateListener.java | 11 ++++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/com/android/launcher3/LauncherStateManager.java b/src/com/android/launcher3/LauncherStateManager.java index fe3df95d2a..5d3ff5394f 100644 --- a/src/com/android/launcher3/LauncherStateManager.java +++ b/src/com/android/launcher3/LauncherStateManager.java @@ -420,8 +420,6 @@ public class LauncherStateManager { } UiFactory.onLauncherStateOrResumeChanged(mLauncher); - - mLauncher.getDragLayer().requestFocus(); } public void onWindowFocusChanged() { diff --git a/src/com/android/launcher3/anim/AlphaUpdateListener.java b/src/com/android/launcher3/anim/AlphaUpdateListener.java index a3d02d9492..8ac9d662cd 100644 --- a/src/com/android/launcher3/anim/AlphaUpdateListener.java +++ b/src/com/android/launcher3/anim/AlphaUpdateListener.java @@ -20,6 +20,7 @@ import android.animation.Animator; import android.animation.ValueAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; import android.view.View; +import android.view.ViewGroup; /** * A convenience class to update a view's visibility state after an alpha animation. @@ -55,7 +56,15 @@ public class AlphaUpdateListener extends AnimationSuccessListener view.setVisibility(View.INVISIBLE); } else if (view.getAlpha() > ALPHA_CUTOFF_THRESHOLD && view.getVisibility() != View.VISIBLE) { - view.setVisibility(View.VISIBLE); + if (view instanceof ViewGroup) { + ViewGroup viewGroup = ((ViewGroup) view); + int oldFocusability = viewGroup.getDescendantFocusability(); + viewGroup.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); + viewGroup.setVisibility(View.VISIBLE); + viewGroup.setDescendantFocusability(oldFocusability); + } else { + view.setVisibility(View.VISIBLE); + } } } } \ No newline at end of file