Merge "Webview overlay support" into sc-dev am: 81d78b91f9

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13693804

Change-Id: I866a989d53a8f8ecd2c4bd11b301ad51e20ec442
This commit is contained in:
Huihong Luo
2021-04-19 05:07:16 +00:00
committed by Automerger Merge Worker
12 changed files with 210 additions and 8 deletions

View File

@@ -2595,6 +2595,16 @@ public final class SurfaceControl implements Parcelable {
= sRegistry.registerNativeAllocation(this, mNativeObject);
}
/**
* Create a transaction object that wraps a native peer.
* @hide
*/
Transaction(long nativeObject) {
mNativeObject = nativeObject;
mFreeNativeResources =
sRegistry.registerNativeAllocation(this, mNativeObject);
}
private Transaction(Parcel in) {
readFromParcel(in);
}

View File

@@ -1355,6 +1355,16 @@ public final class ViewRootImpl implements ViewParent,
}
}
private void addASurfaceTransactionCallback() {
HardwareRenderer.ASurfaceTransactionCallback callback = (nativeTransactionObj,
nativeSurfaceControlObj,
frameNr) -> {
Transaction t = new Transaction(nativeTransactionObj);
mergeWithNextTransaction(t, frameNr);
};
mAttachInfo.mThreadedRenderer.setASurfaceTransactionCallback(callback);
}
@UnsupportedAppUsage
private void enableHardwareAcceleration(WindowManager.LayoutParams attrs) {
mAttachInfo.mHardwareAccelerated = false;
@@ -1391,6 +1401,7 @@ public final class ViewRootImpl implements ViewParent,
final boolean translucent = attrs.format != PixelFormat.OPAQUE || hasSurfaceInsets;
mAttachInfo.mThreadedRenderer = ThreadedRenderer.create(mContext, translucent,
attrs.getTitle().toString());
addASurfaceTransactionCallback();
mAttachInfo.mThreadedRenderer.setSurfaceControl(mSurfaceControl);
updateColorModeIfNeeded(attrs.getColorMode());
updateForceDarkMode();