Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 354c5659 authored by Robert Carr's avatar Robert Carr
Browse files

View: Expose gatherTransparentRegion

Recently exposed ViewRoot API requires requestTransparentRegion for
many of the use cases we want to support. requestTransparentRegion is
already public API, however the documentation and definition is a little
confusing and arguably it shouldn't do anything unless we also implement
gatherTransparentRegion. gatherTransparentRegion is already made public
through SurfaceView, and so exposing it properly on View seems like
a non disruptive option.

Bug: 179647628
Test: android.view.cts.ViewRootSyncTest
Change-Id: I72fb2744bc03cdd26d64547dbebeb12751a33a2a
parent 6b23dfbd
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -48326,7 +48326,6 @@ package android.view {
    ctor public SurfaceView(android.content.Context, android.util.AttributeSet);
    ctor public SurfaceView(android.content.Context, android.util.AttributeSet, int);
    ctor public SurfaceView(android.content.Context, android.util.AttributeSet, int, int);
    method public boolean gatherTransparentRegion(android.graphics.Region);
    method public android.view.SurfaceHolder getHolder();
    method @Nullable public android.os.IBinder getHostToken();
    method public android.view.SurfaceControl getSurfaceControl();
@@ -48527,6 +48526,7 @@ package android.view {
    method public android.view.View focusSearch(int);
    method public void forceHasOverlappingRendering(boolean);
    method public void forceLayout();
    method public boolean gatherTransparentRegion(@Nullable android.graphics.Region);
    method public void generateDisplayHash(@NonNull String, @Nullable android.graphics.Rect, @NonNull java.util.concurrent.Executor, @NonNull android.view.displayhash.DisplayHashResultCallback);
    method public static int generateViewId();
    method public CharSequence getAccessibilityClassName();
@@ -49508,7 +49508,6 @@ package android.view {
    method public void endViewTransition(android.view.View);
    method public android.view.View focusSearch(android.view.View, int);
    method public void focusableViewAvailable(android.view.View);
    method public boolean gatherTransparentRegion(android.graphics.Region);
    method protected android.view.ViewGroup.LayoutParams generateDefaultLayoutParams();
    method public android.view.ViewGroup.LayoutParams generateLayoutParams(android.util.AttributeSet);
    method protected android.view.ViewGroup.LayoutParams generateLayoutParams(android.view.ViewGroup.LayoutParams);
+2 −4
Original line number Diff line number Diff line
@@ -26115,7 +26115,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
    }
    /**
     * This is used by the RootView to perform an optimization when
     * This is used by the ViewRoot to perform an optimization when
     * the view hierarchy contains one or several SurfaceView.
     * SurfaceView is always considered transparent, but its children are not,
     * therefore all View objects remove themselves from the global transparent
@@ -26127,10 +26127,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
     * point is opaque, regardless of the transparent region; returns false
     * if it is possible for underlying windows to be seen behind the view.
     *
     * {@hide}
     */
    @UnsupportedAppUsage
    public boolean gatherTransparentRegion(Region region) {
    public boolean gatherTransparentRegion(@Nullable Region region) {
        final AttachInfo attachInfo = mAttachInfo;
        if (region != null && attachInfo != null) {
            final int pflags = mPrivateFlags;