diff options
| author | 2020-06-17 22:34:36 +0000 | |
|---|---|---|
| committer | 2020-06-17 22:34:36 +0000 | |
| commit | f2ba813a6206953a587d05020b6b1d0fd490c746 (patch) | |
| tree | 49f3029e7546797ef86ac0f14d8b2dae556fee91 | |
| parent | e3a6cb22d276eb9b200cbb805ab0e13f667fcb4f (diff) | |
| parent | d0292964f3a4ab0a5e3a6f00514f01c498530d3f (diff) | |
Merge "Make underlying SurfaceView respect visibility of InlineContentView." into rvc-dev
| -rw-r--r-- | core/java/android/widget/inline/InlineContentView.java | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/core/java/android/widget/inline/InlineContentView.java b/core/java/android/widget/inline/InlineContentView.java index 6a85de5ca757..8ca218c1d1a7 100644 --- a/core/java/android/widget/inline/InlineContentView.java +++ b/core/java/android/widget/inline/InlineContentView.java @@ -27,6 +27,7 @@ import android.view.SurfaceControlViewHost; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.ViewGroup; +import android.view.ViewTreeObserver.OnPreDrawListener; import java.util.function.Consumer; @@ -130,6 +131,16 @@ public class InlineContentView extends ViewGroup { @Nullable private SurfacePackageUpdater mSurfacePackageUpdater; + @NonNull + private final OnPreDrawListener mDrawListener = new OnPreDrawListener() { + @Override + public boolean onPreDraw() { + int visibility = InlineContentView.this.isShown() ? VISIBLE : GONE; + mSurfaceView.setVisibility(visibility); + return true; + } + }; + /** * @inheritDoc * @hide @@ -202,6 +213,8 @@ public class InlineContentView extends ViewGroup { } }); } + mSurfaceView.setVisibility(VISIBLE); + getViewTreeObserver().addOnPreDrawListener(mDrawListener); } @Override @@ -211,6 +224,7 @@ public class InlineContentView extends ViewGroup { if (mSurfacePackageUpdater != null) { mSurfacePackageUpdater.onSurfacePackageReleased(); } + getViewTreeObserver().removeOnPreDrawListener(mDrawListener); } @Override |