Merge "setVisibility should not propagate focus on children views" into ub-launcher3-master
diff --git a/src/com/android/launcher3/LauncherStateManager.java b/src/com/android/launcher3/LauncherStateManager.java
index fe3df95..5d3ff53 100644
--- a/src/com/android/launcher3/LauncherStateManager.java
+++ b/src/com/android/launcher3/LauncherStateManager.java
@@ -420,8 +420,6 @@
}
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 a3d02d9..8ac9d66 100644
--- a/src/com/android/launcher3/anim/AlphaUpdateListener.java
+++ b/src/com/android/launcher3/anim/AlphaUpdateListener.java
@@ -20,6 +20,7 @@
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 @@
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