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

Commit 731dede3 authored by Ruslan Tkhakokhov's avatar Ruslan Tkhakokhov
Browse files

Make BackupRestoreEventLogger methods void

The return value does not provide much benefit. If a logging attempt is
rejected, the caller can't do anything to reverse this.

Bug: 252762060
Test: atest BackupRestoreEventLoggerTest
Change-Id: I321b8693489b0b92c3f6965dab79c56aecbf1a0f
parent e70d885d
Loading
Loading
Loading
Loading
+25 −38
Original line number Diff line number Diff line
@@ -53,6 +53,8 @@ public class BackupRestoreEventLogger {

    /**
     * Operation types for which this logger can be used.
     *
     * @hide
     */
    @Retention(RetentionPolicy.SOURCE)
    @IntDef({
@@ -87,6 +89,8 @@ public class BackupRestoreEventLogger {
     *                      {@link OperationType}. Attempts to use logging methods that don't match
     *                      the specified operation type will be rejected (e.g. use backup methods
     *                      for a restore logger and vice versa).
     *
     * @hide
     */
    public BackupRestoreEventLogger(@OperationType int operationType) {
        mOperationType = operationType;
@@ -111,11 +115,9 @@ public class BackupRestoreEventLogger {
     *
     * @param dataType the type of data being backed.
     * @param count number of items of the given type that have been successfully backed up.
     *
     * @return boolean, indicating whether the log has been accepted.
     */
    public boolean logItemsBackedUp(@NonNull @BackupRestoreDataType String dataType, int count) {
        return logSuccess(OperationType.BACKUP, dataType, count);
    public void logItemsBackedUp(@NonNull @BackupRestoreDataType String dataType, int count) {
        logSuccess(OperationType.BACKUP, dataType, count);
    }

    /**
@@ -130,12 +132,10 @@ public class BackupRestoreEventLogger {
     * @param dataType the type of data being backed.
     * @param count number of items of the given type that have failed to back up.
     * @param error optional, the error that has caused the failure.
     *
     * @return boolean, indicating whether the log has been accepted.
     */
    public boolean logItemsBackupFailed(@NonNull @BackupRestoreDataType String dataType, int count,
    public void logItemsBackupFailed(@NonNull @BackupRestoreDataType String dataType, int count,
            @Nullable @BackupRestoreError String error) {
        return logFailure(OperationType.BACKUP, dataType, count, error);
        logFailure(OperationType.BACKUP, dataType, count, error);
    }

    /**
@@ -151,12 +151,10 @@ public class BackupRestoreEventLogger {
     *
     * @param dataType the type of data being backed up.
     * @param metaData the metadata associated with the data type.
     *
     * @return boolean, indicating whether the log has been accepted.
     */
    public boolean logBackupMetaData(@NonNull @BackupRestoreDataType String dataType,
    public void logBackupMetaData(@NonNull @BackupRestoreDataType String dataType,
            @NonNull String metaData) {
        return logMetaData(OperationType.BACKUP, dataType, metaData);
        logMetaData(OperationType.BACKUP, dataType, metaData);
    }

    /**
@@ -172,11 +170,9 @@ public class BackupRestoreEventLogger {
     *
     * @param dataType the type of data being restored.
     * @param count number of items of the given type that have been successfully restored.
     *
     * @return boolean, indicating whether the log has been accepted.
     */
    public boolean logItemsRestored(@NonNull @BackupRestoreDataType String dataType, int count) {
        return logSuccess(OperationType.RESTORE, dataType, count);
    public void logItemsRestored(@NonNull @BackupRestoreDataType String dataType, int count) {
        logSuccess(OperationType.RESTORE, dataType, count);
    }

    /**
@@ -193,12 +189,10 @@ public class BackupRestoreEventLogger {
     * @param dataType the type of data being restored.
     * @param count number of items of the given type that have failed to restore.
     * @param error optional, the error that has caused the failure.
     *
     * @return boolean, indicating whether the log has been accepted.
     */
    public boolean logItemsRestoreFailed(@NonNull @BackupRestoreDataType String dataType, int count,
    public void logItemsRestoreFailed(@NonNull @BackupRestoreDataType String dataType, int count,
            @Nullable @BackupRestoreError String error) {
        return logFailure(OperationType.RESTORE, dataType, count, error);
        logFailure(OperationType.RESTORE, dataType, count, error);
    }

    /**
@@ -216,12 +210,10 @@ public class BackupRestoreEventLogger {
     *
     * @param dataType the type of data being restored.
     * @param metadata the metadata associated with the data type.
     *
     * @return boolean, indicating whether the log has been accepted.
     */
    public boolean logRestoreMetadata(@NonNull @BackupRestoreDataType String dataType,
    public void logRestoreMetadata(@NonNull @BackupRestoreDataType String dataType,
            @NonNull  String metadata) {
        return logMetaData(OperationType.RESTORE, dataType, metadata);
        logMetaData(OperationType.RESTORE, dataType, metadata);
    }

    /**
@@ -240,52 +232,47 @@ public class BackupRestoreEventLogger {
     *
     * @hide
     */
    public @OperationType int getOperationType() {
    @OperationType
    public int getOperationType() {
        return mOperationType;
    }

    private boolean logSuccess(@OperationType int operationType,
    private void logSuccess(@OperationType int operationType,
            @BackupRestoreDataType String dataType, int count) {
        DataTypeResult dataTypeResult = getDataTypeResult(operationType, dataType);
        if (dataTypeResult == null) {
            return false;
            return;
        }

        dataTypeResult.mSuccessCount += count;
        mResults.put(dataType, dataTypeResult);

        return true;
    }

    private boolean logFailure(@OperationType int operationType,
    private void logFailure(@OperationType int operationType,
            @NonNull @BackupRestoreDataType String dataType, int count,
            @Nullable @BackupRestoreError String error) {
        DataTypeResult dataTypeResult = getDataTypeResult(operationType, dataType);
        if (dataTypeResult == null) {
            return false;
            return;
        }

        dataTypeResult.mFailCount += count;
        if (error != null) {
            dataTypeResult.mErrors.merge(error, count, Integer::sum);
        }

        return true;
    }

    private boolean logMetaData(@OperationType int operationType,
    private void logMetaData(@OperationType int operationType,
            @NonNull @BackupRestoreDataType String dataType, @NonNull String metaData) {
        if (mHashDigest == null) {
            return false;
            return;
        }
        DataTypeResult dataTypeResult = getDataTypeResult(operationType, dataType);
        if (dataTypeResult == null) {
            return false;
            return;
        }

        dataTypeResult.mMetadataHash = getMetaDataHash(metaData);

        return true;
    }

    /**
+28 −22
Original line number Diff line number Diff line
@@ -63,18 +63,22 @@ public class BackupRestoreEventLoggerTest {
    public void testBackupLogger_rejectsRestoreLogs() {
        mLogger = new BackupRestoreEventLogger(BACKUP);

        assertThat(mLogger.logItemsRestored(DATA_TYPE_1, /* count */ 5)).isFalse();
        assertThat(mLogger.logItemsRestoreFailed(DATA_TYPE_1, /* count */ 5, ERROR_1)).isFalse();
        assertThat(mLogger.logRestoreMetadata(DATA_TYPE_1, /* metadata */ "metadata")).isFalse();
        mLogger.logItemsRestored(DATA_TYPE_1, /* count */ 5);
        mLogger.logItemsRestoreFailed(DATA_TYPE_1, /* count */ 5, ERROR_1);
        mLogger.logRestoreMetadata(DATA_TYPE_1, /* metadata */ "metadata");

        assertThat(getResultForDataTypeIfPresent(mLogger, DATA_TYPE_1)).isEqualTo(Optional.empty());
    }

    @Test
    public void testRestoreLogger_rejectsBackupLogs() {
        mLogger = new BackupRestoreEventLogger(RESTORE);

        assertThat(mLogger.logItemsBackedUp(DATA_TYPE_1, /* count */ 5)).isFalse();
        assertThat(mLogger.logItemsBackupFailed(DATA_TYPE_1, /* count */ 5, ERROR_1)).isFalse();
        assertThat(mLogger.logBackupMetaData(DATA_TYPE_1, /* metadata */ "metadata")).isFalse();
        mLogger.logItemsBackedUp(DATA_TYPE_1, /* count */ 5);
        mLogger.logItemsBackupFailed(DATA_TYPE_1, /* count */ 5, ERROR_1);
        mLogger.logBackupMetaData(DATA_TYPE_1, /* metadata */ "metadata");

        assertThat(getResultForDataTypeIfPresent(mLogger, DATA_TYPE_1)).isEqualTo(Optional.empty());
    }

    @Test
@@ -83,16 +87,17 @@ public class BackupRestoreEventLoggerTest {

        for (int i = 0; i < DATA_TYPES_ALLOWED; i++) {
            String dataType = DATA_TYPE_1 + i;
            assertThat(mLogger.logItemsBackedUp(dataType, /* count */ 5)).isTrue();
            assertThat(mLogger.logItemsBackupFailed(dataType, /* count */ 5, /* error */ null))
                    .isTrue();
            assertThat(mLogger.logBackupMetaData(dataType, METADATA_1)).isTrue();
            mLogger.logItemsBackedUp(dataType, /* count */ 5);
            mLogger.logItemsBackupFailed(dataType, /* count */ 5, /* error */ null);
            mLogger.logBackupMetaData(dataType, METADATA_1);

            assertThat(getResultForDataTypeIfPresent(mLogger, dataType)).isNotEqualTo(
                    Optional.empty());
        }

        assertThat(mLogger.logItemsBackedUp(DATA_TYPE_2, /* count */ 5)).isFalse();
        assertThat(mLogger.logItemsBackupFailed(DATA_TYPE_2, /* count */ 5, /* error */ null))
                .isFalse();
        assertThat(mLogger.logRestoreMetadata(DATA_TYPE_2, METADATA_1)).isFalse();
        mLogger.logItemsBackedUp(DATA_TYPE_2, /* count */ 5);
        mLogger.logItemsBackupFailed(DATA_TYPE_2, /* count */ 5, /* error */ null);
        mLogger.logRestoreMetadata(DATA_TYPE_2, METADATA_1);
        assertThat(getResultForDataTypeIfPresent(mLogger, DATA_TYPE_2)).isEqualTo(Optional.empty());
    }

@@ -102,16 +107,17 @@ public class BackupRestoreEventLoggerTest {

        for (int i = 0; i < DATA_TYPES_ALLOWED; i++) {
            String dataType = DATA_TYPE_1 + i;
            assertThat(mLogger.logItemsRestored(dataType, /* count */ 5)).isTrue();
            assertThat(mLogger.logItemsRestoreFailed(dataType, /* count */ 5, /* error */ null))
                    .isTrue();
            assertThat(mLogger.logRestoreMetadata(dataType, METADATA_1)).isTrue();
            mLogger.logItemsRestored(dataType, /* count */ 5);
            mLogger.logItemsRestoreFailed(dataType, /* count */ 5, /* error */ null);
            mLogger.logRestoreMetadata(dataType, METADATA_1);

            assertThat(getResultForDataTypeIfPresent(mLogger, dataType)).isNotEqualTo(
                    Optional.empty());
        }

        assertThat(mLogger.logItemsRestored(DATA_TYPE_2, /* count */ 5)).isFalse();
        assertThat(mLogger.logItemsRestoreFailed(DATA_TYPE_2, /* count */ 5, /* error */ null))
                .isFalse();
        assertThat(mLogger.logRestoreMetadata(DATA_TYPE_2, METADATA_1)).isFalse();
        mLogger.logItemsRestored(DATA_TYPE_2, /* count */ 5);
        mLogger.logItemsRestoreFailed(DATA_TYPE_2, /* count */ 5, /* error */ null);
        mLogger.logRestoreMetadata(DATA_TYPE_2, METADATA_1);
        assertThat(getResultForDataTypeIfPresent(mLogger, DATA_TYPE_2)).isEqualTo(Optional.empty());
    }