From 7192297bc9669f3705d2a18893889e9a113a342a Mon Sep 17 00:00:00 2001 From: Phil Weaver Date: Tue, 14 Feb 2017 12:36:47 -0800 Subject: [PATCH] Make a11y shortcut toast appear for all users. Setting flag to make the toast appear for all users. Bug: 35209951 Test: Verified manually on guest users, added automated check that the flag is set. Change-Id: I91d1f32acebe1197356289b23142d33c5a8bbd23 --- .../server/policy/AccessibilityShortcutController.java | 7 +++++-- .../server/policy/AccessibilityShortcutControllerTest.java | 7 +++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/policy/AccessibilityShortcutController.java b/services/core/java/com/android/server/policy/AccessibilityShortcutController.java index 133881aaaaf77..eec1fefde5684 100644 --- a/services/core/java/com/android/server/policy/AccessibilityShortcutController.java +++ b/services/core/java/com/android/server/policy/AccessibilityShortcutController.java @@ -140,8 +140,11 @@ public class AccessibilityShortcutController { String toastMessage = String.format(toastMessageFormatString, serviceInfo.getResolveInfo() .loadLabel(mContext.getPackageManager()).toString()); - mFrameworkObjectProvider.makeToastFromText(mContext, toastMessage, Toast.LENGTH_LONG) - .show(); + Toast warningToast = mFrameworkObjectProvider.makeToastFromText( + mContext, toastMessage, Toast.LENGTH_LONG); + warningToast.getWindowParams().privateFlags |= + WindowManager.LayoutParams.PRIVATE_FLAG_SHOW_FOR_ALL_USERS; + warningToast.show(); mFrameworkObjectProvider.getAccessibilityManagerInstance(mContext) .performAccessibilityShortcut(); diff --git a/services/tests/servicestests/src/com/android/server/policy/AccessibilityShortcutControllerTest.java b/services/tests/servicestests/src/com/android/server/policy/AccessibilityShortcutControllerTest.java index e2aff1610e89e..1de6348c6f40d 100644 --- a/services/tests/servicestests/src/com/android/server/policy/AccessibilityShortcutControllerTest.java +++ b/services/tests/servicestests/src/com/android/server/policy/AccessibilityShortcutControllerTest.java @@ -79,6 +79,7 @@ public class AccessibilityShortcutControllerTest { private @Mock Toast mToast; private MockContentResolver mContentResolver; + private WindowManager.LayoutParams mLayoutParams = new WindowManager.LayoutParams(); @Before public void setUp() throws Exception { @@ -119,6 +120,9 @@ public class AccessibilityShortcutControllerTest { when(mAlertDialogBuilder.setOnCancelListener(anyObject())).thenReturn(mAlertDialogBuilder); when(mAlertDialogBuilder.create()).thenReturn(mAlertDialog); + mLayoutParams.privateFlags = 0; + when(mToast.getWindowParams()).thenReturn(mLayoutParams); + Window window = mock(Window.class); Whitebox.setInternalState(window, "mWindowAttributes", new WindowManager.LayoutParams()); when(mAlertDialog.getWindow()).thenReturn(window); @@ -183,6 +187,9 @@ public class AccessibilityShortcutControllerTest { accessibilityShortcutController.performAccessibilityShortcut(); accessibilityShortcutController.performAccessibilityShortcut(); verify(mToast).show(); + assertEquals(WindowManager.LayoutParams.PRIVATE_FLAG_SHOW_FOR_ALL_USERS, + mLayoutParams.privateFlags + & WindowManager.LayoutParams.PRIVATE_FLAG_SHOW_FOR_ALL_USERS); verify(mAccessibilityManagerService, times(1)).performAccessibilityShortcut(); }