Loading services/core/java/com/android/server/wm/DisplayPolicy.java +4 −0 Original line number Diff line number Diff line Loading @@ -1006,6 +1006,10 @@ public class DisplayPolicy { AccessibilityManager.FLAG_CONTENT_TEXT); // Toasts can't be clickable attrs.flags |= WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; // Do not allow untrusted toast to customize animation. if (!win.mSession.mCanAddInternalSystemWindow) { attrs.windowAnimations = R.style.Animation_Toast; } break; case TYPE_BASE_APPLICATION: Loading services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java +11 −0 Original line number Diff line number Diff line Loading @@ -293,6 +293,17 @@ public class DisplayPolicyTests extends WindowTestsBase { assertFalse(wpc.isShowingUiWhileDozing()); } @Test public void testNonSystemToastAnimation() { final WindowState win = newWindowBuilder("Toast", WindowManager.LayoutParams.TYPE_TOAST).build(); win.mAttrs.windowAnimations = android.R.style.Animation_InputMethod; setFieldValue(win.mSession, "mCanAddInternalSystemWindow", false); mDisplayContent.getDisplayPolicy().adjustWindowParamsLw(win, win.mAttrs); assertEquals(android.R.style.Animation_Toast, win.mAttrs.windowAnimations); } @Test(expected = IllegalArgumentException.class) public void testMainAppWindowDisallowFitSystemWindowTypes() { final DisplayPolicy policy = mDisplayContent.getDisplayPolicy(); Loading Loading
services/core/java/com/android/server/wm/DisplayPolicy.java +4 −0 Original line number Diff line number Diff line Loading @@ -1006,6 +1006,10 @@ public class DisplayPolicy { AccessibilityManager.FLAG_CONTENT_TEXT); // Toasts can't be clickable attrs.flags |= WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; // Do not allow untrusted toast to customize animation. if (!win.mSession.mCanAddInternalSystemWindow) { attrs.windowAnimations = R.style.Animation_Toast; } break; case TYPE_BASE_APPLICATION: Loading
services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java +11 −0 Original line number Diff line number Diff line Loading @@ -293,6 +293,17 @@ public class DisplayPolicyTests extends WindowTestsBase { assertFalse(wpc.isShowingUiWhileDozing()); } @Test public void testNonSystemToastAnimation() { final WindowState win = newWindowBuilder("Toast", WindowManager.LayoutParams.TYPE_TOAST).build(); win.mAttrs.windowAnimations = android.R.style.Animation_InputMethod; setFieldValue(win.mSession, "mCanAddInternalSystemWindow", false); mDisplayContent.getDisplayPolicy().adjustWindowParamsLw(win, win.mAttrs); assertEquals(android.R.style.Animation_Toast, win.mAttrs.windowAnimations); } @Test(expected = IllegalArgumentException.class) public void testMainAppWindowDisallowFitSystemWindowTypes() { final DisplayPolicy policy = mDisplayContent.getDisplayPolicy(); Loading