Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 41f3f08b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

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

Merge "Add an API to set layer trace flags" into rvc-dev am: 9f990ded am: a9f76409 am: 63a0bee3

Change-Id: Ife90120575e2f7c556417144c5fdd1fe874b28c5
parents 95f7dd54 63a0bee3
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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);
}
+27 −0
Original line number Diff line number Diff line
@@ -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()")) {