summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2020-06-17 22:34:36 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-06-17 22:34:36 +0000
commitf2ba813a6206953a587d05020b6b1d0fd490c746 (patch)
tree49f3029e7546797ef86ac0f14d8b2dae556fee91
parente3a6cb22d276eb9b200cbb805ab0e13f667fcb4f (diff)
parentd0292964f3a4ab0a5e3a6f00514f01c498530d3f (diff)
Merge "Make underlying SurfaceView respect visibility of InlineContentView." into rvc-dev
-rw-r--r--core/java/android/widget/inline/InlineContentView.java14
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