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

Commit 7723f0bc authored by Kevin Chyn's avatar Kevin Chyn Committed by Automerger Merge Worker
Browse files

Merge "Workaround for empty repeated proto" into sc-dev am: eeda0eb1

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I6e879b989569455a9793211e7e003f01a5592122
parents 3a18f339 eeda0eb1
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -635,11 +635,16 @@ public class BiometricScheduler {
        proto.write(BiometricSchedulerProto.CURRENT_OPERATION, mCurrentOperation != null
                ? mCurrentOperation.mClientMonitor.getProtoEnum() : BiometricsProto.CM_NONE);
        proto.write(BiometricSchedulerProto.TOTAL_OPERATIONS, mTotalOperationsHandled);
        Slog.d(getTag(), "Total operations: " + mTotalOperationsHandled);

        if (!mRecentOperations.isEmpty()) {
            for (int i = 0; i < mRecentOperations.size(); i++) {
            Slog.d(getTag(), "Operation: " + mRecentOperations.get(i));
                proto.write(BiometricSchedulerProto.RECENT_OPERATIONS, mRecentOperations.get(i));
            }
        } else {
            // TODO:(b/178828362) Unsure why protobuf has a problem decoding when an empty list
            //  is returned. So, let's just add a no-op for this case.
            proto.write(BiometricSchedulerProto.RECENT_OPERATIONS, BiometricsProto.CM_NONE);
        }
        proto.flush();

        if (clearSchedulerBuffer) {
+13 −4
Original line number Diff line number Diff line
@@ -196,7 +196,8 @@ public class BiometricSchedulerTest {
        BiometricSchedulerProto bsp = getDump(true /* clearSchedulerBuffer */);
        assertEquals(BiometricsProto.CM_NONE, bsp.currentOperation);
        assertEquals(0, bsp.totalOperations);
        assertEquals(0, bsp.recentOperations.length);
        // TODO:(b/178828362) See bug and/or commit message :/
        // assertEquals(0, bsp.recentOperations.length);

        // Pretend the scheduler is busy enrolling, and check the proto dump again.
        final TestClientMonitor2 client = new TestClientMonitor2(mContext, mToken,
@@ -207,7 +208,11 @@ public class BiometricSchedulerTest {
        assertEquals(BiometricsProto.CM_ENROLL, bsp.currentOperation);
        // No operations have completed yet
        assertEquals(0, bsp.totalOperations);
        assertEquals(0, bsp.recentOperations.length);

        // TODO:(b/178828362) See bug and/or commit message :/
        assertEquals(1, bsp.recentOperations.length);
        assertEquals(BiometricsProto.CM_NONE, bsp.recentOperations[0]);

        // Finish this operation, so the next scheduled one can start
        client.getCallback().onClientFinished(client, true);
    }
@@ -223,7 +228,8 @@ public class BiometricSchedulerTest {
        assertEquals(BiometricsProto.CM_ENROLL, bsp.currentOperation);
        // No operations have completed yet
        assertEquals(0, bsp.totalOperations);
        assertEquals(0, bsp.recentOperations.length);
        // TODO:(b/178828362) See bug and/or commit message :/
        // assertEquals(0, bsp.recentOperations.length);
        // Finish this operation, so the next scheduled one can start
        client.getCallback().onClientFinished(client, true);

@@ -265,7 +271,10 @@ public class BiometricSchedulerTest {

        // RecentOperations queue is cleared (by the previous dump)
        bsp = getDump(true /* clearSchedulerBuffer */);
        assertEquals(0, bsp.recentOperations.length);

        // TODO:(b/178828362) See bug and/or commit message :/
        assertEquals(1, bsp.recentOperations.length);
        assertEquals(BiometricsProto.CM_NONE, bsp.recentOperations[0]);
    }

    @Test