Implement auto backups

This commit is contained in:
2016-02-16 22:21:52 -05:00
parent 3652794132
commit 1f64abcce6
4 changed files with 52 additions and 5 deletions

View File

@@ -1,6 +1,7 @@
package org.isoron.helpers;
import android.app.Activity;
import android.app.backup.BackupManager;
import android.os.Bundle;
import android.widget.Toast;
@@ -28,6 +29,7 @@ abstract public class ReplayableActivity extends Activity
public void executeCommand(Command command)
{
executeCommand(command, false);
BackupManager.dataChanged("org.isoron.uhabits");
}
protected void undo()

View File

@@ -0,0 +1,15 @@
package org.isoron.uhabits;
import android.app.backup.BackupAgentHelper;
import android.app.backup.FileBackupHelper;
import android.app.backup.SharedPreferencesBackupHelper;
public class HabitsBackupAgent extends BackupAgentHelper
{
@Override
public void onCreate()
{
addHelper("preferences", new SharedPreferencesBackupHelper(this, "preferences"));
addHelper("database", new FileBackupHelper(this, "../databases/uhabits.db"));
}
}

View File

@@ -1,12 +1,14 @@
package org.isoron.uhabits.dialogs;
import android.app.backup.BackupManager;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceFragment;
import org.isoron.uhabits.R;
public class SettingsFragment extends PreferenceFragment
public class SettingsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener
{
@Override
public void onCreate(Bundle savedInstanceState)
@@ -14,4 +16,26 @@ public class SettingsFragment extends PreferenceFragment
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
@Override
public void onResume()
{
super.onResume();
getPreferenceManager().getSharedPreferences().
registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onPause()
{
getPreferenceManager().getSharedPreferences().
unregisterOnSharedPreferenceChangeListener(this);
super.onPause();
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
{
BackupManager.dataChanged("org.isoron.uhabits");
}
}