SurfaceControlViewHost: Clone control for SurfacePackage
Otherwise the results can be quite confusing, each time we call getSurfacePackage it returns a new SurfacePackage but after releasing the first one all the others become invalid. This normally isn't noticed as SurfaceControlViewHost is frequently used only in cross process scenarios so the additional step of parcelling can prevent this issue from occuring. Bug: 196926363 Test: SurfaceViewSurfacePackageValidatorTest#testSurfacePackageNoFlicker Change-Id: Id77f6daab4bb80d4d23d40d24d74b39bd694f350
This commit is contained in:
@@ -328,7 +328,8 @@ public class SurfaceControlViewHost {
|
||||
*/
|
||||
public @Nullable SurfacePackage getSurfacePackage() {
|
||||
if (mSurfaceControl != null && mAccessibilityEmbeddedConnection != null) {
|
||||
return new SurfacePackage(mSurfaceControl, mAccessibilityEmbeddedConnection,
|
||||
return new SurfacePackage(new SurfaceControl(mSurfaceControl, "getSurfacePackage"),
|
||||
mAccessibilityEmbeddedConnection,
|
||||
mWm.getFocusGrantToken(), mRemoteInterface);
|
||||
} else {
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user