Loading packages/SystemUI/res/values/config.xml +2 −0 Original line number Diff line number Diff line Loading @@ -386,6 +386,8 @@ <item type="id" name="action_split_task_to_right" /> <item type="id" name="action_split_task_to_top" /> <item type="id" name="action_toggle_overview"/> <!-- Whether or not the gear icon on notifications should be shown. The gear is shown when the the notification is not swiped enough to dismiss it. --> <bool name="config_showNotificationGear">true</bool> Loading packages/SystemUI/res/values/strings.xml +3 −0 Original line number Diff line number Diff line Loading @@ -862,6 +862,9 @@ <!-- Recents: Accessibility split to the right --> <string name="recents_accessibility_split_screen_right">Split screen to the right</string> <!-- QuickStep: Accessibility to toggle overview [CHAR LIMIT=40] --> <string name="quick_step_accessibility_toggle_overview">Toggle Overview</string> <!-- Expanded Status Bar Header: Battery Charged [CHAR LIMIT=40] --> <string name="expanded_header_battery_charged">Charged</string> Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/ButtonDispatcher.java +13 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ import android.animation.AnimatorListenerAdapter; import android.animation.ValueAnimator; import android.view.View; import android.view.View.AccessibilityDelegate; import com.android.systemui.Interpolators; import com.android.systemui.plugins.statusbar.phone.NavBarButtonProvider.ButtonInterface; import com.android.systemui.statusbar.policy.KeyButtonDrawable; Loading Loading @@ -50,6 +51,7 @@ public class ButtonDispatcher { private View mCurrentView; private boolean mVertical; private ValueAnimator mFadeAnimator; private AccessibilityDelegate mAccessibilityDelegate; private final ValueAnimator.AnimatorUpdateListener mAlphaListener = animation -> setAlpha((float) animation.getAnimatedValue()); Loading Loading @@ -84,6 +86,9 @@ public class ButtonDispatcher { if (mVisibility != null && mVisibility != -1) { view.setVisibility(mVisibility); } if (mAccessibilityDelegate != null) { view.setAccessibilityDelegate(mAccessibilityDelegate); } if (view instanceof ButtonInterface) { final ButtonInterface button = (ButtonInterface) view; if (mDarkIntensity != null) { Loading Loading @@ -212,6 +217,14 @@ public class ButtonDispatcher { } } public void setAccessibilityDelegate(AccessibilityDelegate delegate) { mAccessibilityDelegate = delegate; final int N = mViews.size(); for (int i = 0; i < N; i++) { mViews.get(i).setAccessibilityDelegate(delegate); } } public void setClickable(boolean clickable) { abortCurrentGesture(); final int N = mViews.size(); Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +39 −2 Original line number Diff line number Diff line Loading @@ -36,8 +36,10 @@ import android.graphics.Point; import android.graphics.Rect; import android.graphics.drawable.AnimatedVectorDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.RemoteException; import android.os.SystemProperties; import androidx.annotation.ColorInt; import android.util.AttributeSet; Loading @@ -51,6 +53,8 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowInsets; import android.view.WindowManager; import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction; import android.view.inputmethod.InputMethodManager; import android.widget.FrameLayout; Loading @@ -60,11 +64,14 @@ import com.android.systemui.DockedStackExistsListener; import com.android.systemui.OverviewProxyService; import com.android.systemui.R; import com.android.systemui.RecentsComponent; import com.android.systemui.SysUiServiceProvider; import com.android.systemui.plugins.PluginListener; import com.android.systemui.plugins.PluginManager; import com.android.systemui.plugins.statusbar.phone.NavGesture; import com.android.systemui.plugins.statusbar.phone.NavGesture.GestureHelper; import com.android.systemui.recents.Recents; import com.android.systemui.recents.RecentsOnboarding; import com.android.systemui.shared.recents.IOverviewProxy; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.NavigationBarCompat; import com.android.systemui.shared.system.WindowManagerWrapper; Loading Loading @@ -231,6 +238,34 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav } } private final AccessibilityDelegate mQuickStepAccessibilityDelegate = new AccessibilityDelegate() { private AccessibilityAction mToggleOverviewAction; @Override public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(host, info); if (mToggleOverviewAction == null) { mToggleOverviewAction = new AccessibilityAction(R.id.action_toggle_overview, getContext().getString(R.string.quick_step_accessibility_toggle_overview)); } info.addAction(mToggleOverviewAction); } @Override public boolean performAccessibilityAction(View host, int action, Bundle args) { switch (action) { case R.id.action_toggle_overview: SysUiServiceProvider.getComponent(getContext(), Recents.class) .toggleRecentApps(); break; default: return super.performAccessibilityAction(host, action, args); } return true; } }; public NavigationBarView(Context context, AttributeSet attrs) { super(context, attrs); Loading Loading @@ -698,12 +733,14 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav } public void updateStates() { final boolean showSwipeUpUI = mOverviewProxyService.shouldShowSwipeUpUI(); updateSlippery(); reloadNavIcons(); updateNavButtonIcons(); setUpSwipeUpOnboarding(isQuickStepSwipeUpEnabled()); WindowManagerWrapper.getInstance().setNavBarVirtualKeyHapticFeedbackEnabled( !mOverviewProxyService.shouldShowSwipeUpUI()); WindowManagerWrapper.getInstance().setNavBarVirtualKeyHapticFeedbackEnabled(!showSwipeUpUI); getHomeButton().setAccessibilityDelegate( showSwipeUpUI ? mQuickStepAccessibilityDelegate : null); } private void updateSlippery() { Loading Loading
packages/SystemUI/res/values/config.xml +2 −0 Original line number Diff line number Diff line Loading @@ -386,6 +386,8 @@ <item type="id" name="action_split_task_to_right" /> <item type="id" name="action_split_task_to_top" /> <item type="id" name="action_toggle_overview"/> <!-- Whether or not the gear icon on notifications should be shown. The gear is shown when the the notification is not swiped enough to dismiss it. --> <bool name="config_showNotificationGear">true</bool> Loading
packages/SystemUI/res/values/strings.xml +3 −0 Original line number Diff line number Diff line Loading @@ -862,6 +862,9 @@ <!-- Recents: Accessibility split to the right --> <string name="recents_accessibility_split_screen_right">Split screen to the right</string> <!-- QuickStep: Accessibility to toggle overview [CHAR LIMIT=40] --> <string name="quick_step_accessibility_toggle_overview">Toggle Overview</string> <!-- Expanded Status Bar Header: Battery Charged [CHAR LIMIT=40] --> <string name="expanded_header_battery_charged">Charged</string> Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/ButtonDispatcher.java +13 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ import android.animation.AnimatorListenerAdapter; import android.animation.ValueAnimator; import android.view.View; import android.view.View.AccessibilityDelegate; import com.android.systemui.Interpolators; import com.android.systemui.plugins.statusbar.phone.NavBarButtonProvider.ButtonInterface; import com.android.systemui.statusbar.policy.KeyButtonDrawable; Loading Loading @@ -50,6 +51,7 @@ public class ButtonDispatcher { private View mCurrentView; private boolean mVertical; private ValueAnimator mFadeAnimator; private AccessibilityDelegate mAccessibilityDelegate; private final ValueAnimator.AnimatorUpdateListener mAlphaListener = animation -> setAlpha((float) animation.getAnimatedValue()); Loading Loading @@ -84,6 +86,9 @@ public class ButtonDispatcher { if (mVisibility != null && mVisibility != -1) { view.setVisibility(mVisibility); } if (mAccessibilityDelegate != null) { view.setAccessibilityDelegate(mAccessibilityDelegate); } if (view instanceof ButtonInterface) { final ButtonInterface button = (ButtonInterface) view; if (mDarkIntensity != null) { Loading Loading @@ -212,6 +217,14 @@ public class ButtonDispatcher { } } public void setAccessibilityDelegate(AccessibilityDelegate delegate) { mAccessibilityDelegate = delegate; final int N = mViews.size(); for (int i = 0; i < N; i++) { mViews.get(i).setAccessibilityDelegate(delegate); } } public void setClickable(boolean clickable) { abortCurrentGesture(); final int N = mViews.size(); Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +39 −2 Original line number Diff line number Diff line Loading @@ -36,8 +36,10 @@ import android.graphics.Point; import android.graphics.Rect; import android.graphics.drawable.AnimatedVectorDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.RemoteException; import android.os.SystemProperties; import androidx.annotation.ColorInt; import android.util.AttributeSet; Loading @@ -51,6 +53,8 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowInsets; import android.view.WindowManager; import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction; import android.view.inputmethod.InputMethodManager; import android.widget.FrameLayout; Loading @@ -60,11 +64,14 @@ import com.android.systemui.DockedStackExistsListener; import com.android.systemui.OverviewProxyService; import com.android.systemui.R; import com.android.systemui.RecentsComponent; import com.android.systemui.SysUiServiceProvider; import com.android.systemui.plugins.PluginListener; import com.android.systemui.plugins.PluginManager; import com.android.systemui.plugins.statusbar.phone.NavGesture; import com.android.systemui.plugins.statusbar.phone.NavGesture.GestureHelper; import com.android.systemui.recents.Recents; import com.android.systemui.recents.RecentsOnboarding; import com.android.systemui.shared.recents.IOverviewProxy; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.NavigationBarCompat; import com.android.systemui.shared.system.WindowManagerWrapper; Loading Loading @@ -231,6 +238,34 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav } } private final AccessibilityDelegate mQuickStepAccessibilityDelegate = new AccessibilityDelegate() { private AccessibilityAction mToggleOverviewAction; @Override public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(host, info); if (mToggleOverviewAction == null) { mToggleOverviewAction = new AccessibilityAction(R.id.action_toggle_overview, getContext().getString(R.string.quick_step_accessibility_toggle_overview)); } info.addAction(mToggleOverviewAction); } @Override public boolean performAccessibilityAction(View host, int action, Bundle args) { switch (action) { case R.id.action_toggle_overview: SysUiServiceProvider.getComponent(getContext(), Recents.class) .toggleRecentApps(); break; default: return super.performAccessibilityAction(host, action, args); } return true; } }; public NavigationBarView(Context context, AttributeSet attrs) { super(context, attrs); Loading Loading @@ -698,12 +733,14 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav } public void updateStates() { final boolean showSwipeUpUI = mOverviewProxyService.shouldShowSwipeUpUI(); updateSlippery(); reloadNavIcons(); updateNavButtonIcons(); setUpSwipeUpOnboarding(isQuickStepSwipeUpEnabled()); WindowManagerWrapper.getInstance().setNavBarVirtualKeyHapticFeedbackEnabled( !mOverviewProxyService.shouldShowSwipeUpUI()); WindowManagerWrapper.getInstance().setNavBarVirtualKeyHapticFeedbackEnabled(!showSwipeUpUI); getHomeButton().setAccessibilityDelegate( showSwipeUpUI ? mQuickStepAccessibilityDelegate : null); } private void updateSlippery() { Loading