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

Commit bec34cce authored by Ruslan Tkhakokhov's avatar Ruslan Tkhakokhov Committed by Automerger Merge Worker
Browse files

Merge "Address API feedback for BackupRestoreEventLogger" into udc-dev am:...

Merge "Address API feedback for BackupRestoreEventLogger" into udc-dev am: 3eb0a875 am: 730f350d

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



Change-Id: Iadd15364dd0522329353bd1aef86177445a5e513
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents b27d4a2a 730f350d
Loading
Loading
Loading
Loading
+8 −14
Original line number Original line Diff line number Diff line
@@ -1796,25 +1796,19 @@ package android.app.backup {
    field public final long bytesTransferred;
    field public final long bytesTransferred;
  }
  }
  public class BackupRestoreEventLogger {
  public final class BackupRestoreEventLogger {
    method public void logBackupMetaData(@android.app.backup.BackupRestoreEventLogger.BackupRestoreDataType @NonNull String, @NonNull String);
    method public void logBackupMetadata(@NonNull String, @NonNull String);
    method public void logItemsBackedUp(@android.app.backup.BackupRestoreEventLogger.BackupRestoreDataType @NonNull String, int);
    method public void logItemsBackedUp(@NonNull String, int);
    method public void logItemsBackupFailed(@android.app.backup.BackupRestoreEventLogger.BackupRestoreDataType @NonNull String, int, @android.app.backup.BackupRestoreEventLogger.BackupRestoreError @Nullable String);
    method public void logItemsBackupFailed(@NonNull String, int, @Nullable String);
    method public void logItemsRestoreFailed(@android.app.backup.BackupRestoreEventLogger.BackupRestoreDataType @NonNull String, int, @android.app.backup.BackupRestoreEventLogger.BackupRestoreError @Nullable String);
    method public void logItemsRestoreFailed(@NonNull String, int, @Nullable String);
    method public void logItemsRestored(@android.app.backup.BackupRestoreEventLogger.BackupRestoreDataType @NonNull String, int);
    method public void logItemsRestored(@NonNull String, int);
    method public void logRestoreMetadata(@android.app.backup.BackupRestoreEventLogger.BackupRestoreDataType @NonNull String, @NonNull String);
    method public void logRestoreMetadata(@NonNull String, @NonNull String);
  }
  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface BackupRestoreEventLogger.BackupRestoreDataType {
  }
  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface BackupRestoreEventLogger.BackupRestoreError {
  }
  }
  public static final class BackupRestoreEventLogger.DataTypeResult implements android.os.Parcelable {
  public static final class BackupRestoreEventLogger.DataTypeResult implements android.os.Parcelable {
    ctor public BackupRestoreEventLogger.DataTypeResult(@NonNull String);
    ctor public BackupRestoreEventLogger.DataTypeResult(@NonNull String);
    method public int describeContents();
    method public int describeContents();
    method @android.app.backup.BackupRestoreEventLogger.BackupRestoreDataType @NonNull public String getDataType();
    method @NonNull public String getDataType();
    method @NonNull public java.util.Map<java.lang.String,java.lang.Integer> getErrors();
    method @NonNull public java.util.Map<java.lang.String,java.lang.Integer> getErrors();
    method public int getFailCount();
    method public int getFailCount();
    method @Nullable public byte[] getMetadataHash();
    method @Nullable public byte[] getMetadataHash();
+6 −2
Original line number Original line Diff line number Diff line
@@ -47,7 +47,7 @@ import java.util.Map;
 * @hide
 * @hide
 */
 */
@SystemApi
@SystemApi
public class BackupRestoreEventLogger {
public final class BackupRestoreEventLogger {
    private static final String TAG = "BackupRestoreEventLogger";
    private static final String TAG = "BackupRestoreEventLogger";


    /**
    /**
@@ -61,6 +61,8 @@ public class BackupRestoreEventLogger {
    /**
    /**
     * Denotes that the annotated element identifies a data type as required by the logging methods
     * Denotes that the annotated element identifies a data type as required by the logging methods
     * of {@code BackupRestoreEventLogger}
     * of {@code BackupRestoreEventLogger}
     *
     * @hide
     */
     */
    @Retention(RetentionPolicy.SOURCE)
    @Retention(RetentionPolicy.SOURCE)
    public @interface BackupRestoreDataType {}
    public @interface BackupRestoreDataType {}
@@ -68,6 +70,8 @@ public class BackupRestoreEventLogger {
    /**
    /**
     * Denotes that the annotated element identifies an error type as required by the logging
     * Denotes that the annotated element identifies an error type as required by the logging
     * methods of {@code BackupRestoreEventLogger}
     * methods of {@code BackupRestoreEventLogger}
     *
     * @hide
     */
     */
    @Retention(RetentionPolicy.SOURCE)
    @Retention(RetentionPolicy.SOURCE)
    public @interface BackupRestoreError {}
    public @interface BackupRestoreError {}
@@ -144,7 +148,7 @@ public class BackupRestoreEventLogger {
     * @param dataType the type of data being backed up.
     * @param dataType the type of data being backed up.
     * @param metaData the metadata associated with the data type.
     * @param metaData the metadata associated with the data type.
     */
     */
    public void logBackupMetaData(@NonNull @BackupRestoreDataType String dataType,
    public void logBackupMetadata(@NonNull @BackupRestoreDataType String dataType,
            @NonNull String metaData) {
            @NonNull String metaData) {
        logMetaData(OperationType.BACKUP, dataType, metaData);
        logMetaData(OperationType.BACKUP, dataType, metaData);
    }
    }
+6 −7
Original line number Original line Diff line number Diff line
@@ -23,7 +23,6 @@ import static com.google.common.truth.Truth.assertThat;


import static junit.framework.Assert.fail;
import static junit.framework.Assert.fail;


import android.app.backup.BackupRestoreEventLogger.BackupRestoreDataType;
import android.app.backup.BackupRestoreEventLogger.DataTypeResult;
import android.app.backup.BackupRestoreEventLogger.DataTypeResult;
import android.os.Parcel;
import android.os.Parcel;
import android.platform.test.annotations.Presubmit;
import android.platform.test.annotations.Presubmit;
@@ -78,7 +77,7 @@ public class BackupRestoreEventLoggerTest {


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


        assertThat(getResultForDataTypeIfPresent(mLogger, DATA_TYPE_1)).isEqualTo(Optional.empty());
        assertThat(getResultForDataTypeIfPresent(mLogger, DATA_TYPE_1)).isEqualTo(Optional.empty());
    }
    }
@@ -91,7 +90,7 @@ public class BackupRestoreEventLoggerTest {
            String dataType = DATA_TYPE_1 + i;
            String dataType = DATA_TYPE_1 + i;
            mLogger.logItemsBackedUp(dataType, /* count */ 5);
            mLogger.logItemsBackedUp(dataType, /* count */ 5);
            mLogger.logItemsBackupFailed(dataType, /* count */ 5, /* error */ null);
            mLogger.logItemsBackupFailed(dataType, /* count */ 5, /* error */ null);
            mLogger.logBackupMetaData(dataType, METADATA_1);
            mLogger.logBackupMetadata(dataType, METADATA_1);


            assertThat(getResultForDataTypeIfPresent(mLogger, dataType)).isNotEqualTo(
            assertThat(getResultForDataTypeIfPresent(mLogger, dataType)).isNotEqualTo(
                    Optional.empty());
                    Optional.empty());
@@ -127,8 +126,8 @@ public class BackupRestoreEventLoggerTest {
    public void testLogBackupMetadata_repeatedCalls_recordsLatestMetadataHash() {
    public void testLogBackupMetadata_repeatedCalls_recordsLatestMetadataHash() {
        mLogger = new BackupRestoreEventLogger(BACKUP);
        mLogger = new BackupRestoreEventLogger(BACKUP);


        mLogger.logBackupMetaData(DATA_TYPE_1, METADATA_1);
        mLogger.logBackupMetadata(DATA_TYPE_1, METADATA_1);
        mLogger.logBackupMetaData(DATA_TYPE_1, METADATA_2);
        mLogger.logBackupMetadata(DATA_TYPE_1, METADATA_2);


        byte[] recordedHash = getResultForDataType(mLogger, DATA_TYPE_1).getMetadataHash();
        byte[] recordedHash = getResultForDataType(mLogger, DATA_TYPE_1).getMetadataHash();
        byte[] expectedHash = getMetaDataHash(METADATA_2);
        byte[] expectedHash = getMetaDataHash(METADATA_2);
@@ -315,7 +314,7 @@ public class BackupRestoreEventLoggerTest {
    }
    }


    private static DataTypeResult getResultForDataType(
    private static DataTypeResult getResultForDataType(
            BackupRestoreEventLogger logger, @BackupRestoreDataType String dataType) {
            BackupRestoreEventLogger logger, String dataType) {
        Optional<DataTypeResult> result = getResultForDataTypeIfPresent(logger, dataType);
        Optional<DataTypeResult> result = getResultForDataTypeIfPresent(logger, dataType);
        if (result.isEmpty()) {
        if (result.isEmpty()) {
            fail("Failed to find result for data type: " + dataType);
            fail("Failed to find result for data type: " + dataType);
@@ -324,7 +323,7 @@ public class BackupRestoreEventLoggerTest {
    }
    }


    private static Optional<DataTypeResult> getResultForDataTypeIfPresent(
    private static Optional<DataTypeResult> getResultForDataTypeIfPresent(
            BackupRestoreEventLogger logger, @BackupRestoreDataType String dataType) {
            BackupRestoreEventLogger logger, String dataType) {
        List<DataTypeResult> resultList = logger.getLoggingResults();
        List<DataTypeResult> resultList = logger.getLoggingResults();
        return resultList.stream()
        return resultList.stream()
                .filter(dataTypeResult -> dataTypeResult.getDataType().equals(dataType))
                .filter(dataTypeResult -> dataTypeResult.getDataType().equals(dataType))