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:
Pat Manning
2022-09-01 14:14:29 +00:00
committed by Automerger Merge Worker
2 changed files with 49 additions and 0 deletions
@@ -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;
@@ -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() {