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

Commit 79139e11 authored by Pablo Gamito's avatar Pablo Gamito
Browse files

Dump start and end transaction ids

Bug: 230462538
Test: Check transaction ids are dumped in proto
Change-Id: I8e16f26c7cf0c087629908418d50291c330dd2f7
parent 0ada73d3
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -58,6 +58,8 @@ message Transition {
  State state = 5;
  int32 flags = 6;
  repeated ChangeInfo change = 7;
  uint64 start_transaction_id = 8;
  uint64 finish_transaction_id = 9;
}

message ChangeInfo {
+12 −3
Original line number Diff line number Diff line
@@ -95,7 +95,6 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.function.Predicate;

/**
@@ -304,6 +303,16 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe
        return mFlags;
    }

    @VisibleForTesting
    SurfaceControl.Transaction getStartTransaction() {
        return mStartTransaction;
    }

    @VisibleForTesting
    SurfaceControl.Transaction getFinishTransaction() {
        return mFinishTransaction;
    }

    /** Starts collecting phase. Once this starts, all relevant surface operations are sync. */
    void startCollecting(long timeoutMs) {
        if (mState != STATE_PENDING) {
@@ -757,6 +766,8 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe
        }

        mState = STATE_PLAYING;
        mStartTransaction = transaction;
        mFinishTransaction = mController.mAtm.mWindowManager.mTransactionFactory.get();
        mController.moveToPlaying(this);

        if (dc.isKeyguardLocked()) {
@@ -842,8 +853,6 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe
        if (controller != null && mTargets.contains(dc)) {
            controller.setupStartTransaction(transaction);
        }
        mStartTransaction = transaction;
        mFinishTransaction = mController.mAtm.mWindowManager.mTransactionFactory.get();
        buildFinishTransaction(mFinishTransaction, info.getRootLeash());
        if (mController.getTransitionPlayer() != null) {
            mController.dispatchLegacyAppTransitionStarting(info);
+9 −0
Original line number Diff line number Diff line
@@ -23,8 +23,10 @@ import static com.android.server.wm.shell.ChangeInfo.HAS_CHANGED;
import static com.android.server.wm.shell.ChangeInfo.TRANSIT_MODE;
import static com.android.server.wm.shell.ChangeInfo.WINDOW_IDENTIFIER;
import static com.android.server.wm.shell.Transition.CHANGE;
import static com.android.server.wm.shell.Transition.FINISH_TRANSACTION_ID;
import static com.android.server.wm.shell.Transition.FLAGS;
import static com.android.server.wm.shell.Transition.ID;
import static com.android.server.wm.shell.Transition.START_TRANSACTION_ID;
import static com.android.server.wm.shell.Transition.STATE;
import static com.android.server.wm.shell.Transition.TIMESTAMP;
import static com.android.server.wm.shell.Transition.TRANSITION_TYPE;
@@ -82,6 +84,13 @@ public class TransitionTracer {
            outputStream.write(TRANSITION_TYPE, transition.mType);
            outputStream.write(STATE, transition.getState());
            outputStream.write(FLAGS, transition.getFlags());
            if (transition.getStartTransaction() != null) {
                outputStream.write(START_TRANSACTION_ID, transition.getStartTransaction().getId());
            }
            if (transition.getFinishTransaction() != null) {
                outputStream.write(FINISH_TRANSACTION_ID,
                        transition.getFinishTransaction().getId());
            }

            for (int i = 0; i < transition.mChanges.size(); ++i) {
                final WindowContainer window = transition.mChanges.keyAt(i);