Merge "Add an API to set layer trace flags" into rvc-dev am: 9f990dedb3

Change-Id: I2fa70c36dea6e11d60ee15d0c079fd3863c35fed
This commit is contained in:
TreeHugger Robot
2020-04-09 16:28:13 +00:00
committed by Automerger Merge Worker
2 changed files with 34 additions and 0 deletions

View File

@@ -742,4 +742,11 @@ interface IWindowManager
* Called to show global actions.
*/
void showGlobalActions();
/**
* Sets layer tracing flags for SurfaceFlingerTrace.
*
* @param flags see definition in SurfaceTracing.cpp
*/
void setLayerTracingFlags(int flags);
}

View File

@@ -8019,6 +8019,33 @@ public class WindowManagerService extends IWindowManager.Stub
}
}
/** Set layer tracing flags. */
public void setLayerTracingFlags(int flags) {
mAtmInternal.enforceCallerIsRecentsOrHasPermission(android.Manifest.permission.DUMP,
"setLayerTracingFlags");
long token = Binder.clearCallingIdentity();
try {
Parcel data = null;
try {
IBinder sf = ServiceManager.getService("SurfaceFlinger");
if (sf != null) {
data = Parcel.obtain();
data.writeInterfaceToken("android.ui.ISurfaceComposer");
data.writeInt(flags);
sf.transact(1033 /* LAYER_TRACE_FLAGS_CODE */, data, null, 0 /* flags */);
}
} catch (RemoteException e) {
Slog.e(TAG, "Failed to set layer tracing flags");
} finally {
if (data != null) {
data.recycle();
}
}
} finally {
Binder.restoreCallingIdentity(token);
}
}
@Override
public boolean mirrorDisplay(int displayId, SurfaceControl outSurfaceControl) {
if (!checkCallingPermission(READ_FRAME_BUFFER, "mirrorDisplay()")) {