Loading core/java/android/view/accessibility/flags/accessibility_flags.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -217,3 +217,13 @@ flag { description: "Feature flag for declaring system pinch zoom opt-out apis" bug: "315089687" } flag { name: "warning_use_default_dialog_type" namespace: "accessibility" description: "Uses the default type for the A11yService warning dialog, instead of SYSTEM_ALERT_DIALOG" bug: "336719951" metadata { purpose: PURPOSE_BUGFIX } } core/java/com/android/internal/accessibility/dialog/AccessibilityServiceWarning.java +5 −2 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.view.MotionEvent; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.view.accessibility.Flags; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; Loading Loading @@ -64,7 +65,9 @@ public class AccessibilityServiceWarning { Window window = ad.getWindow(); WindowManager.LayoutParams params = window.getAttributes(); params.privateFlags |= SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; if (!Flags.warningUseDefaultDialogType()) { params.type = WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG; } window.setAttributes(params); return ad; } Loading core/tests/coretests/src/com/android/internal/accessibility/dialog/AccessibilityServiceWarningTest.java +21 −2 Original line number Diff line number Diff line Loading @@ -25,6 +25,8 @@ import android.accessibilityservice.AccessibilityServiceInfo; import android.app.AlertDialog; import android.content.Context; import android.os.RemoteException; import android.platform.test.annotations.RequiresFlagsDisabled; import android.platform.test.annotations.RequiresFlagsEnabled; import android.platform.test.flag.junit.CheckFlagsRule; import android.platform.test.flag.junit.DeviceFlagsValueProvider; import android.testing.AndroidTestingRunner; Loading @@ -33,6 +35,7 @@ import android.view.InputDevice; import android.view.MotionEvent; import android.view.View; import android.view.Window; import android.view.accessibility.Flags; import android.widget.TextView; import androidx.test.platform.app.InstrumentationRegistry; Loading Loading @@ -89,7 +92,19 @@ public class AccessibilityServiceWarningTest { } @Test public void createAccessibilityServiceWarningDialog_hasExpectedWindowParams() { @RequiresFlagsDisabled(Flags.FLAG_WARNING_USE_DEFAULT_DIALOG_TYPE) public void createAccessibilityServiceWarningDialog_hasExpectedWindowParams_isSystemDialog() { createAccessibilityServiceWarningDialog_hasExpectedWindowParams(true); } @Test @RequiresFlagsEnabled(Flags.FLAG_WARNING_USE_DEFAULT_DIALOG_TYPE) public void createAccessibilityServiceWarningDialog_hasExpectedWindowParams_notSystemDialog() { createAccessibilityServiceWarningDialog_hasExpectedWindowParams(false); } private void createAccessibilityServiceWarningDialog_hasExpectedWindowParams( boolean expectSystemDialog) { final AlertDialog dialog = AccessibilityServiceWarning.createAccessibilityServiceWarningDialog( mContext, Loading @@ -101,7 +116,11 @@ public class AccessibilityServiceWarningTest { expect.that(dialogWindow.getAttributes().privateFlags & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS).isEqualTo( SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS); if (expectSystemDialog) { expect.that(dialogWindow.getAttributes().type).isEqualTo(TYPE_SYSTEM_DIALOG); } else { expect.that(dialogWindow.getAttributes().type).isNotEqualTo(TYPE_SYSTEM_DIALOG); } } @Test Loading Loading
core/java/android/view/accessibility/flags/accessibility_flags.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -217,3 +217,13 @@ flag { description: "Feature flag for declaring system pinch zoom opt-out apis" bug: "315089687" } flag { name: "warning_use_default_dialog_type" namespace: "accessibility" description: "Uses the default type for the A11yService warning dialog, instead of SYSTEM_ALERT_DIALOG" bug: "336719951" metadata { purpose: PURPOSE_BUGFIX } }
core/java/com/android/internal/accessibility/dialog/AccessibilityServiceWarning.java +5 −2 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.view.MotionEvent; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.view.accessibility.Flags; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; Loading Loading @@ -64,7 +65,9 @@ public class AccessibilityServiceWarning { Window window = ad.getWindow(); WindowManager.LayoutParams params = window.getAttributes(); params.privateFlags |= SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; if (!Flags.warningUseDefaultDialogType()) { params.type = WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG; } window.setAttributes(params); return ad; } Loading
core/tests/coretests/src/com/android/internal/accessibility/dialog/AccessibilityServiceWarningTest.java +21 −2 Original line number Diff line number Diff line Loading @@ -25,6 +25,8 @@ import android.accessibilityservice.AccessibilityServiceInfo; import android.app.AlertDialog; import android.content.Context; import android.os.RemoteException; import android.platform.test.annotations.RequiresFlagsDisabled; import android.platform.test.annotations.RequiresFlagsEnabled; import android.platform.test.flag.junit.CheckFlagsRule; import android.platform.test.flag.junit.DeviceFlagsValueProvider; import android.testing.AndroidTestingRunner; Loading @@ -33,6 +35,7 @@ import android.view.InputDevice; import android.view.MotionEvent; import android.view.View; import android.view.Window; import android.view.accessibility.Flags; import android.widget.TextView; import androidx.test.platform.app.InstrumentationRegistry; Loading Loading @@ -89,7 +92,19 @@ public class AccessibilityServiceWarningTest { } @Test public void createAccessibilityServiceWarningDialog_hasExpectedWindowParams() { @RequiresFlagsDisabled(Flags.FLAG_WARNING_USE_DEFAULT_DIALOG_TYPE) public void createAccessibilityServiceWarningDialog_hasExpectedWindowParams_isSystemDialog() { createAccessibilityServiceWarningDialog_hasExpectedWindowParams(true); } @Test @RequiresFlagsEnabled(Flags.FLAG_WARNING_USE_DEFAULT_DIALOG_TYPE) public void createAccessibilityServiceWarningDialog_hasExpectedWindowParams_notSystemDialog() { createAccessibilityServiceWarningDialog_hasExpectedWindowParams(false); } private void createAccessibilityServiceWarningDialog_hasExpectedWindowParams( boolean expectSystemDialog) { final AlertDialog dialog = AccessibilityServiceWarning.createAccessibilityServiceWarningDialog( mContext, Loading @@ -101,7 +116,11 @@ public class AccessibilityServiceWarningTest { expect.that(dialogWindow.getAttributes().privateFlags & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS).isEqualTo( SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS); if (expectSystemDialog) { expect.that(dialogWindow.getAttributes().type).isEqualTo(TYPE_SYSTEM_DIALOG); } else { expect.that(dialogWindow.getAttributes().type).isNotEqualTo(TYPE_SYSTEM_DIALOG); } } @Test Loading