Merge "Undim kids nav icons on a11y focus and click." into tm-qpr-dev am: e51e6446ad
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/19659547 Change-Id: Ie92bbffbd6061bdd145e2b8dd256ab6b8f2580b4 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.android.launcher3.taskbar;
|
||||
|
||||
import static android.view.View.AccessibilityDelegate;
|
||||
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
|
||||
|
||||
import static com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_X;
|
||||
@@ -582,6 +583,26 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT
|
||||
return mHomeButtonAlpha;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the AccessibilityDelegate for the home button.
|
||||
*/
|
||||
public void setHomeButtonAccessibilityDelegate(AccessibilityDelegate accessibilityDelegate) {
|
||||
if (mHomeButton == null) {
|
||||
return;
|
||||
}
|
||||
mHomeButton.setAccessibilityDelegate(accessibilityDelegate);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the AccessibilityDelegate for the back button.
|
||||
*/
|
||||
public void setBackButtonAccessibilityDelegate(AccessibilityDelegate accessibilityDelegate) {
|
||||
if (mBackButton == null) {
|
||||
return;
|
||||
}
|
||||
mBackButton.setAccessibilityDelegate(accessibilityDelegate);
|
||||
}
|
||||
|
||||
/** Use to set the translationY for the all nav+contextual buttons */
|
||||
public AnimatedFloat getTaskbarNavButtonTranslationY() {
|
||||
return mTaskbarNavButtonTranslationY;
|
||||
|
||||
+28
@@ -18,13 +18,17 @@ package com.android.launcher3.taskbar;
|
||||
|
||||
import static android.view.accessibility.AccessibilityManager.FLAG_CONTENT_CONTROLS;
|
||||
import static android.view.accessibility.AccessibilityManager.FLAG_CONTENT_ICONS;
|
||||
import static android.view.accessibility.AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS;
|
||||
import static android.view.accessibility.AccessibilityNodeInfo.ACTION_CLICK;
|
||||
|
||||
import static com.android.launcher3.taskbar.NavbarButtonsViewController.ALPHA_INDEX_IMMERSIVE_MODE;
|
||||
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_IMMERSIVE_MODE;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
|
||||
import com.android.launcher3.compat.AccessibilityManagerCompat;
|
||||
import com.android.launcher3.util.MultiValueAlpha;
|
||||
@@ -52,6 +56,21 @@ public class TaskbarForceVisibleImmersiveController implements TouchController {
|
||||
this::updateIconDimmingAlpha);
|
||||
private final Consumer<MultiValueAlpha> mImmersiveModeAlphaUpdater = alpha -> alpha.getProperty(
|
||||
ALPHA_INDEX_IMMERSIVE_MODE).setValue(mIconAlphaForDimming.value);
|
||||
private final View.AccessibilityDelegate mKidsModeAccessibilityDelegate =
|
||||
new View.AccessibilityDelegate() {
|
||||
@Override
|
||||
public boolean performAccessibilityAction(View host, int action, Bundle args) {
|
||||
if (action == ACTION_ACCESSIBILITY_FOCUS || action == ACTION_CLICK) {
|
||||
// Animate undimming of icons on an a11y event, followed by starting the
|
||||
// dimming animation (after its timeout has expired). Both can be called in
|
||||
// succession, as the playing of the two animations in a row is managed by
|
||||
// mHandler's message queue.
|
||||
startIconUndimming();
|
||||
startIconDimming();
|
||||
}
|
||||
return super.performAccessibilityAction(host, action, args);
|
||||
}
|
||||
};
|
||||
|
||||
// Initialized in init.
|
||||
private TaskbarControllers mControllers;
|
||||
@@ -77,12 +96,21 @@ public class TaskbarForceVisibleImmersiveController implements TouchController {
|
||||
} else {
|
||||
startIconUndimming();
|
||||
}
|
||||
mControllers.navbarButtonsViewController.setHomeButtonAccessibilityDelegate(
|
||||
mKidsModeAccessibilityDelegate);
|
||||
mControllers.navbarButtonsViewController.setBackButtonAccessibilityDelegate(
|
||||
mKidsModeAccessibilityDelegate);
|
||||
} else {
|
||||
mControllers.navbarButtonsViewController.setHomeButtonAccessibilityDelegate(null);
|
||||
mControllers.navbarButtonsViewController.setBackButtonAccessibilityDelegate(null);
|
||||
}
|
||||
}
|
||||
|
||||
/** Clean up animations. */
|
||||
public void onDestroy() {
|
||||
startIconUndimming();
|
||||
mControllers.navbarButtonsViewController.setHomeButtonAccessibilityDelegate(null);
|
||||
mControllers.navbarButtonsViewController.setBackButtonAccessibilityDelegate(null);
|
||||
}
|
||||
|
||||
private void startIconUndimming() {
|
||||
|
||||
Reference in New Issue
Block a user