package com.github.andlyticsproject.io; import java.io.IOException; import android.app.backup.BackupAgentHelper; import android.app.backup.BackupDataInput; import android.app.backup.BackupDataOutput; import android.app.backup.SharedPreferencesBackupHelper; import android.os.ParcelFileDescriptor; import android.util.Log; public class AndlyticsBackupAgent extends BackupAgentHelper { private static final String TAG = AndlyticsBackupAgent.class.getSimpleName(); private static final String PREFS_BACKUP_KEY = "prefs"; private static final String PREFS = "andlytics_pref"; private static final String STATS_BACKUP_KEY = "stats"; private static final String STATS_DB = "andlytics"; private Object fileLock = new Object(); @Override public void onCreate() { addHelper(PREFS_BACKUP_KEY, new SharedPreferencesBackupHelper(this, PREFS, getPackageName() + "_preferences")); addHelper(STATS_BACKUP_KEY, new DbBackupHelper(this, STATS_DB)); } @Override public void onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) throws IOException { Log.d(TAG, "onBackup"); synchronized (fileLock) { super.onBackup(oldState, data, newState); } } @Override public void onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState) throws IOException { Log.d(TAG, "onRestore appVersionCode = " + appVersionCode); synchronized (fileLock) { Log.d(TAG, "onRestore in-lock"); super.onRestore(data, appVersionCode, newState); } } }