Loading quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java +21 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading quickstep/src/com/android/launcher3/taskbar/TaskbarForceVisibleImmersiveController.java +28 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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() { Loading Loading
quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java +21 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading
quickstep/src/com/android/launcher3/taskbar/TaskbarForceVisibleImmersiveController.java +28 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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() { Loading