From 9c1e0653addc1fff03601289a9f9a57b1daeaf57 Mon Sep 17 00:00:00 2001 From: Christine Chen Date: Thu, 23 May 2013 15:40:19 -0700 Subject: Create backup agent for the Dialer app. - Currently only the active tab is being backed up. - More settings may be added later. Change-Id: Id66565029be751beae8b58d4cc054f8d2d16ceea --- src/com/android/dialer/DialerBackupAgent.java | 38 +++++++++++++++++++++++++++ src/com/android/dialer/DialtactsActivity.java | 11 +++++++- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 src/com/android/dialer/DialerBackupAgent.java (limited to 'src/com/android') diff --git a/src/com/android/dialer/DialerBackupAgent.java b/src/com/android/dialer/DialerBackupAgent.java new file mode 100644 index 000000000..0eef68924 --- /dev/null +++ b/src/com/android/dialer/DialerBackupAgent.java @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.dialer; + +import android.app.backup.BackupAgentHelper; +import android.app.backup.BackupDataInput; +import android.app.backup.SharedPreferencesBackupHelper; +import android.content.Context; + +/** + * The Dialer backup agent backs up the shared preferences settings of the + * Dialer App. Right now it backs up the whole shared preference file. This + * can be modified in the future to accommodate partical backup. + */ +public class DialerBackupAgent extends BackupAgentHelper +{ + private static final String SHARED_KEY = "shared_pref"; + + @Override + public void onCreate() { + addHelper(SHARED_KEY, new SharedPreferencesBackupHelper(this, + DialtactsActivity.SHARED_PREFS_NAME)); + } +} diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java index 32339d2cf..22e6ba01d 100644 --- a/src/com/android/dialer/DialtactsActivity.java +++ b/src/com/android/dialer/DialtactsActivity.java @@ -21,6 +21,7 @@ import android.app.ActionBar.LayoutParams; import android.app.ActionBar.Tab; import android.app.ActionBar.TabListener; import android.app.Activity; +import android.app.backup.BackupManager; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; @@ -108,6 +109,8 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O private SharedPreferences mPrefs; + public static final String SHARED_PREFS_NAME = "com.android.dialer_preferences"; + /** Last manually selected tab index */ private static final String PREF_LAST_MANUALLY_SELECTED_TAB = "DialtactsActivity_last_manually_selected_tab"; @@ -526,7 +529,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O getActionBar().setDisplayShowHomeEnabled(false); // Load the last manually loaded tab - mPrefs = PreferenceManager.getDefaultSharedPreferences(this); + mPrefs = this.getSharedPreferences(SHARED_PREFS_NAME, Context.MODE_PRIVATE); mLastManuallySelectedFragment = mPrefs.getInt(PREF_LAST_MANUALLY_SELECTED_TAB, PREF_LAST_MANUALLY_SELECTED_TAB_DEFAULT); if (mLastManuallySelectedFragment >= TAB_INDEX_COUNT) { @@ -711,6 +714,12 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O mPrefs.edit().putInt(PREF_LAST_MANUALLY_SELECTED_TAB, mLastManuallySelectedFragment) .apply(); + requestBackup(); + } + + private void requestBackup() { + final BackupManager bm = new BackupManager(this); + bm.dataChanged(); } private void fixIntent(Intent intent) { -- cgit v1.2.3