Loading api/test-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -3335,6 +3335,11 @@ package android.view { field @android.view.ViewDebug.ExportedProperty(flagMapping={@android.view.ViewDebug.FlagToString(mask=0x1, equals=0x1, name="FAKE_HARDWARE_ACCELERATED"), @android.view.ViewDebug.FlagToString(mask=0x2, equals=0x2, name="FORCE_HARDWARE_ACCELERATED"), @android.view.ViewDebug.FlagToString(mask=0x4, equals=0x4, name="WANTS_OFFSET_NOTIFICATIONS"), @android.view.ViewDebug.FlagToString(mask=0x10, equals=0x10, name="SHOW_FOR_ALL_USERS"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.PRIVATE_FLAG_NO_MOVE_ANIMATION, equals=android.view.WindowManager.LayoutParams.PRIVATE_FLAG_NO_MOVE_ANIMATION, name="NO_MOVE_ANIMATION"), @android.view.ViewDebug.FlagToString(mask=0x80, equals=0x80, name="COMPATIBLE_WINDOW"), @android.view.ViewDebug.FlagToString(mask=0x100, equals=0x100, name="SYSTEM_ERROR"), @android.view.ViewDebug.FlagToString(mask=0x200, equals=0x200, name="INHERIT_TRANSLUCENT_DECOR"), @android.view.ViewDebug.FlagToString(mask=0x400, equals=0x400, name="KEYGUARD"), @android.view.ViewDebug.FlagToString(mask=0x800, equals=0x800, name="DISABLE_WALLPAPER_TOUCH_EVENTS"), @android.view.ViewDebug.FlagToString(mask=0x1000, equals=0x1000, name="FORCE_STATUS_BAR_VISIBLE_TRANSPARENT"), @android.view.ViewDebug.FlagToString(mask=0x2000, equals=0x2000, name="PRESERVE_GEOMETRY"), @android.view.ViewDebug.FlagToString(mask=0x4000, equals=0x4000, name="FORCE_DECOR_VIEW_VISIBILITY"), @android.view.ViewDebug.FlagToString(mask=0x8000, equals=0x8000, name="WILL_NOT_REPLACE_ON_RELAUNCH"), @android.view.ViewDebug.FlagToString(mask=0x10000, equals=0x10000, name="LAYOUT_CHILD_WINDOW_IN_PARENT_FRAME"), @android.view.ViewDebug.FlagToString(mask=0x20000, equals=0x20000, name="FORCE_DRAW_STATUS_BAR_BACKGROUND"), @android.view.ViewDebug.FlagToString(mask=0x40000, equals=0x40000, name="SUSTAINED_PERFORMANCE_MODE"), @android.view.ViewDebug.FlagToString(mask=0x80000, equals=0x80000, name="HIDE_NON_SYSTEM_OVERLAY_WINDOWS"), @android.view.ViewDebug.FlagToString(mask=0x100000, equals=0x100000, name="IS_ROUNDED_CORNERS_OVERLAY"), @android.view.ViewDebug.FlagToString(mask=0x400000, equals=0x400000, name="IS_SCREEN_DECOR"), @android.view.ViewDebug.FlagToString(mask=0x800000, equals=0x800000, name="STATUS_FORCE_SHOW_NAVIGATION"), @android.view.ViewDebug.FlagToString(mask=0x1000000, equals=0x1000000, name="COLOR_SPACE_AGNOSTIC")}) public int privateFlags; } public class WindowlessViewRoot { ctor public WindowlessViewRoot(android.content.Context, android.view.Display, android.view.SurfaceControl); method public void addView(android.view.View, android.view.WindowManager.LayoutParams); } } package android.view.accessibility { Loading core/java/android/view/WindowlessViewRoot.java +3 −0 Original line number Diff line number Diff line Loading @@ -21,12 +21,15 @@ import android.content.Context; import android.view.SurfaceControl; import android.view.View; import android.annotation.TestApi; /** * Utility class for adding a view hierarchy to a SurfaceControl. * * See WindowlessWmTest for example usage. * @hide */ @TestApi public class WindowlessViewRoot { ViewRootImpl mViewRoot; WindowlessWindowManager mWm; Loading core/java/android/view/WindowlessWindowManager.java +12 −5 Original line number Diff line number Diff line Loading @@ -95,8 +95,9 @@ class WindowlessWindowManager implements IWindowSession { public void remove(android.view.IWindow window) {} private boolean isOpaque(WindowManager.LayoutParams attrs) { if (attrs.surfaceInsets.left != 0 || attrs.surfaceInsets.top != 0 || attrs.surfaceInsets.right != 0 || attrs.surfaceInsets.bottom != 0) { if (attrs.surfaceInsets != null && attrs.surfaceInsets.left != 0 || attrs.surfaceInsets.top != 0 || attrs.surfaceInsets.right != 0 || attrs.surfaceInsets.bottom != 0) { return false; } return !PixelFormat.formatHasAlpha(attrs.format); Loading @@ -118,9 +119,15 @@ class WindowlessWindowManager implements IWindowSession { "Invalid window token (never added or removed already)"); } SurfaceControl.Transaction t = new SurfaceControl.Transaction(); t.show(sc).setBufferSize(sc, requestedWidth + attrs.surfaceInsets.left + attrs.surfaceInsets.right, requestedHeight + attrs.surfaceInsets.top + attrs.surfaceInsets.bottom) final Rect surfaceInsets = attrs.surfaceInsets; int width = surfaceInsets != null ? requestedWidth + surfaceInsets.left + surfaceInsets.right : requestedWidth; int height = surfaceInsets != null ? requestedHeight + surfaceInsets.top + surfaceInsets.bottom : requestedHeight; t.show(sc) .setBufferSize(sc, width, height) .setOpaque(sc, isOpaque(attrs)) .apply(); outSurfaceControl.copyFrom(sc); Loading Loading
api/test-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -3335,6 +3335,11 @@ package android.view { field @android.view.ViewDebug.ExportedProperty(flagMapping={@android.view.ViewDebug.FlagToString(mask=0x1, equals=0x1, name="FAKE_HARDWARE_ACCELERATED"), @android.view.ViewDebug.FlagToString(mask=0x2, equals=0x2, name="FORCE_HARDWARE_ACCELERATED"), @android.view.ViewDebug.FlagToString(mask=0x4, equals=0x4, name="WANTS_OFFSET_NOTIFICATIONS"), @android.view.ViewDebug.FlagToString(mask=0x10, equals=0x10, name="SHOW_FOR_ALL_USERS"), @android.view.ViewDebug.FlagToString(mask=android.view.WindowManager.LayoutParams.PRIVATE_FLAG_NO_MOVE_ANIMATION, equals=android.view.WindowManager.LayoutParams.PRIVATE_FLAG_NO_MOVE_ANIMATION, name="NO_MOVE_ANIMATION"), @android.view.ViewDebug.FlagToString(mask=0x80, equals=0x80, name="COMPATIBLE_WINDOW"), @android.view.ViewDebug.FlagToString(mask=0x100, equals=0x100, name="SYSTEM_ERROR"), @android.view.ViewDebug.FlagToString(mask=0x200, equals=0x200, name="INHERIT_TRANSLUCENT_DECOR"), @android.view.ViewDebug.FlagToString(mask=0x400, equals=0x400, name="KEYGUARD"), @android.view.ViewDebug.FlagToString(mask=0x800, equals=0x800, name="DISABLE_WALLPAPER_TOUCH_EVENTS"), @android.view.ViewDebug.FlagToString(mask=0x1000, equals=0x1000, name="FORCE_STATUS_BAR_VISIBLE_TRANSPARENT"), @android.view.ViewDebug.FlagToString(mask=0x2000, equals=0x2000, name="PRESERVE_GEOMETRY"), @android.view.ViewDebug.FlagToString(mask=0x4000, equals=0x4000, name="FORCE_DECOR_VIEW_VISIBILITY"), @android.view.ViewDebug.FlagToString(mask=0x8000, equals=0x8000, name="WILL_NOT_REPLACE_ON_RELAUNCH"), @android.view.ViewDebug.FlagToString(mask=0x10000, equals=0x10000, name="LAYOUT_CHILD_WINDOW_IN_PARENT_FRAME"), @android.view.ViewDebug.FlagToString(mask=0x20000, equals=0x20000, name="FORCE_DRAW_STATUS_BAR_BACKGROUND"), @android.view.ViewDebug.FlagToString(mask=0x40000, equals=0x40000, name="SUSTAINED_PERFORMANCE_MODE"), @android.view.ViewDebug.FlagToString(mask=0x80000, equals=0x80000, name="HIDE_NON_SYSTEM_OVERLAY_WINDOWS"), @android.view.ViewDebug.FlagToString(mask=0x100000, equals=0x100000, name="IS_ROUNDED_CORNERS_OVERLAY"), @android.view.ViewDebug.FlagToString(mask=0x400000, equals=0x400000, name="IS_SCREEN_DECOR"), @android.view.ViewDebug.FlagToString(mask=0x800000, equals=0x800000, name="STATUS_FORCE_SHOW_NAVIGATION"), @android.view.ViewDebug.FlagToString(mask=0x1000000, equals=0x1000000, name="COLOR_SPACE_AGNOSTIC")}) public int privateFlags; } public class WindowlessViewRoot { ctor public WindowlessViewRoot(android.content.Context, android.view.Display, android.view.SurfaceControl); method public void addView(android.view.View, android.view.WindowManager.LayoutParams); } } package android.view.accessibility { Loading
core/java/android/view/WindowlessViewRoot.java +3 −0 Original line number Diff line number Diff line Loading @@ -21,12 +21,15 @@ import android.content.Context; import android.view.SurfaceControl; import android.view.View; import android.annotation.TestApi; /** * Utility class for adding a view hierarchy to a SurfaceControl. * * See WindowlessWmTest for example usage. * @hide */ @TestApi public class WindowlessViewRoot { ViewRootImpl mViewRoot; WindowlessWindowManager mWm; Loading
core/java/android/view/WindowlessWindowManager.java +12 −5 Original line number Diff line number Diff line Loading @@ -95,8 +95,9 @@ class WindowlessWindowManager implements IWindowSession { public void remove(android.view.IWindow window) {} private boolean isOpaque(WindowManager.LayoutParams attrs) { if (attrs.surfaceInsets.left != 0 || attrs.surfaceInsets.top != 0 || attrs.surfaceInsets.right != 0 || attrs.surfaceInsets.bottom != 0) { if (attrs.surfaceInsets != null && attrs.surfaceInsets.left != 0 || attrs.surfaceInsets.top != 0 || attrs.surfaceInsets.right != 0 || attrs.surfaceInsets.bottom != 0) { return false; } return !PixelFormat.formatHasAlpha(attrs.format); Loading @@ -118,9 +119,15 @@ class WindowlessWindowManager implements IWindowSession { "Invalid window token (never added or removed already)"); } SurfaceControl.Transaction t = new SurfaceControl.Transaction(); t.show(sc).setBufferSize(sc, requestedWidth + attrs.surfaceInsets.left + attrs.surfaceInsets.right, requestedHeight + attrs.surfaceInsets.top + attrs.surfaceInsets.bottom) final Rect surfaceInsets = attrs.surfaceInsets; int width = surfaceInsets != null ? requestedWidth + surfaceInsets.left + surfaceInsets.right : requestedWidth; int height = surfaceInsets != null ? requestedHeight + surfaceInsets.top + surfaceInsets.bottom : requestedHeight; t.show(sc) .setBufferSize(sc, width, height) .setOpaque(sc, isOpaque(attrs)) .apply(); outSurfaceControl.copyFrom(sc); Loading