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

Commit b036af10 authored by Ruslan Tkhakokhov's avatar Ruslan Tkhakokhov Committed by Android (Google) Code Review
Browse files

Merge "Log events from BackupRestoreEventLogger in LocalTransport"

parents d2133f92 8c4d8051
Loading
Loading
Loading
Loading
+42 −0
Original line number Diff line number Diff line
@@ -20,6 +20,9 @@ import android.annotation.Nullable;
import android.app.backup.BackupAgent;
import android.app.backup.BackupDataInput;
import android.app.backup.BackupDataOutput;
import android.app.backup.BackupManagerMonitor;
import android.app.backup.BackupRestoreEventLogger;
import android.app.backup.BackupRestoreEventLogger.DataTypeResult;
import android.app.backup.BackupTransport;
import android.app.backup.RestoreDescription;
import android.app.backup.RestoreSet;
@@ -27,6 +30,7 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.os.Bundle;
import android.os.ParcelFileDescriptor;
import android.system.ErrnoException;
import android.system.Os;
@@ -100,6 +104,7 @@ public class LocalTransport extends BackupTransport {
    private FileInputStream mCurFullRestoreStream;
    private byte[] mFullRestoreBuffer;
    private final LocalTransportParameters mParameters;
    private final BackupManagerMonitor mMonitor = new TestBackupManagerMonitor();

    private void makeDataDirs() {
        mDataDir = mContext.getFilesDir();
@@ -887,4 +892,41 @@ public class LocalTransport extends BackupTransport {
    public long getBackupQuota(String packageName, boolean isFullBackup) {
        return isFullBackup ? FULL_BACKUP_SIZE_QUOTA : KEY_VALUE_BACKUP_SIZE_QUOTA;
    }

    @Override
    public BackupManagerMonitor getBackupManagerMonitor() {
        return mMonitor;
    }

    private class TestBackupManagerMonitor extends BackupManagerMonitor {
        @Override
        public void onEvent(Bundle event) {
            if (event == null || !mParameters.logAgentResults()) {
                return;
            }

            if (event.getInt(BackupManagerMonitor.EXTRA_LOG_EVENT_ID)
                    == BackupManagerMonitor.LOG_EVENT_ID_AGENT_LOGGING_RESULTS) {
                Log.i(TAG, "agent_logging_results {");
                ArrayList<DataTypeResult> results = event.getParcelableArrayList(
                        BackupManagerMonitor.EXTRA_LOG_AGENT_LOGGING_RESULTS,
                        DataTypeResult.class);
                for (DataTypeResult result : results) {
                    Log.i(TAG, "\tdataType: " + result.getDataType());
                    Log.i(TAG, "\tsuccessCount: " + result.getSuccessCount());
                    Log.i(TAG, "\tfailCount: " + result.getFailCount());

                    if (!result.getErrors().isEmpty()) {
                        Log.i(TAG, "\terrors {");
                        for (String error : result.getErrors().keySet()) {
                            Log.i(TAG, "\t\t" + error + ": " + result.getErrors().get(error));
                        }
                        Log.i(TAG, "\t}");
                    }

                    Log.i(TAG, "}");
                }
            }
        }
    }
}
+7 −0
Original line number Diff line number Diff line
@@ -29,11 +29,13 @@ public class LocalTransportParameters extends KeyValueSettingObserver {
    private static final String KEY_NON_INCREMENTAL_ONLY = "non_incremental_only";
    private static final String KEY_IS_DEVICE_TRANSFER = "is_device_transfer";
    private static final String KEY_IS_ENCRYPTED = "is_encrypted";
    private static final String KEY_LOG_AGENT_RESULTS = "log_agent_results";

    private boolean mFakeEncryptionFlag;
    private boolean mIsNonIncrementalOnly;
    private boolean mIsDeviceTransfer;
    private boolean mIsEncrypted;
    private boolean mLogAgentResults;

    public LocalTransportParameters(Handler handler, ContentResolver resolver) {
        super(handler, resolver, Settings.Secure.getUriFor(SETTING));
@@ -55,6 +57,10 @@ public class LocalTransportParameters extends KeyValueSettingObserver {
        return mIsEncrypted;
    }

    boolean logAgentResults() {
        return mLogAgentResults;
    }

    public String getSettingValue(ContentResolver resolver) {
        return Settings.Secure.getString(resolver, SETTING);
    }
@@ -64,5 +70,6 @@ public class LocalTransportParameters extends KeyValueSettingObserver {
        mIsNonIncrementalOnly = parser.getBoolean(KEY_NON_INCREMENTAL_ONLY, false);
        mIsDeviceTransfer = parser.getBoolean(KEY_IS_DEVICE_TRANSFER, false);
        mIsEncrypted = parser.getBoolean(KEY_IS_ENCRYPTED, false);
        mLogAgentResults = parser.getBoolean(KEY_LOG_AGENT_RESULTS, /* def */ false);
    }
}