<string name="privacy_settings_title">Privacy settings</string>
<!-- Location settings section title -->
<string name="location_section_title">Location</string>
- <!-- Settings section title -->
- <string name="settings_section_title">Settings</string>
+ <!-- Backup section title -->
+ <string name="backup_section_title">Backup and Restore</string>
<!-- Personal data section title -->
<string name="personal_data_section_title">Personal data</string>
<!-- Backup settings menu title -->
<string name="backup_settings_title">Back up my settings</string>
+ <!-- Auto-restore menu title -->
+ <string name="auto_restore_title">Automatic restore</string>
+ <!-- Summary text of the "automatic restore" setting -->
+ <string name="auto_restore_summary">Restore applications\' data from backup when they are installed</string>
<!-- Dialog title for confirmation to erase backup data from server -->
- <string name="backup_erase_dialog_title">Settings backup</string>
+ <string name="backup_erase_dialog_title">Backup</string>
<!-- Dialog title for confirmation to erase backup data from server -->
- <string name="backup_erase_dialog_message">Are you sure you want to stop backing up your settings and erase all copies on Google servers?</string>
+ <string name="backup_erase_dialog_message">Are you sure you want to stop backing up your settings and application data and erase all copies on Google servers?</string>
+
+ <!-- Do not translate. Obsolete Settings section title - STOPSHIP remove before shipping -->
+ <string name="settings_section_title">Settings</string>
<!-- Device admin settings screen --><skip/>
<!-- Device admin settings activity title -->
android:summary="@string/use_location_summary"/>
</PreferenceCategory>
- <PreferenceCategory android:key="settings_category"
- android:title="@string/settings_section_title">
+ <PreferenceCategory android:key="backup_category"
+ android:title="@string/backup_section_title">
<!-- Backup settings -->
<CheckBoxPreference
android:key="backup_settings"
android:title="@string/backup_settings_title"
android:persistent="false" />
+ <CheckBoxPreference
+ android:key="auto_restore"
+ android:title="@string/auto_restore_title"
+ android:summary="@string/auto_restore_summary"
+ android:persistent="false" />
</PreferenceCategory>
<PreferenceCategory
// Vendor specific
private static final String GSETTINGS_PROVIDER = "com.google.settings";
private static final String LOCATION_CATEGORY = "location_category";
- private static final String SETTINGS_CATEGORY = "settings_category";
+ private static final String BACKUP_CATEGORY = "backup_category";
private static final String USE_LOCATION = "use_location";
private static final String BACKUP_SETTINGS = "backup_settings";
+ private static final String AUTO_RESTORE = "auto_restore";
private static final String KEY_DONE_USE_LOCATION = "doneLocation";
private CheckBoxPreference mUseLocation;
private CheckBoxPreference mBackup;
+ private CheckBoxPreference mAutoRestore;
private boolean mOkClicked;
private Dialog mConfirmDialog;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.privacy_settings);
+ final PreferenceScreen screen = getPreferenceScreen();
- mUseLocation = (CheckBoxPreference) getPreferenceScreen().findPreference(USE_LOCATION);
- mBackup = (CheckBoxPreference) getPreferenceScreen().findPreference(BACKUP_SETTINGS);
+ mUseLocation = (CheckBoxPreference) screen.findPreference(USE_LOCATION);
+ mBackup = (CheckBoxPreference) screen.findPreference(BACKUP_SETTINGS);
+ mAutoRestore = (CheckBoxPreference) screen.findPreference(AUTO_RESTORE);
// Vendor specific
if (getPackageManager().resolveContentProvider(GSETTINGS_PROVIDER, 0) == null) {
- getPreferenceScreen().removePreference(findPreference(LOCATION_CATEGORY));
- getPreferenceScreen().removePreference(findPreference(SETTINGS_CATEGORY));
+ screen.removePreference(findPreference(LOCATION_CATEGORY));
+ screen.removePreference(findPreference(BACKUP_CATEGORY));
}
updateToggles();
} else {
setBackupEnabled(true);
}
+ } else if (preference == mAutoRestore) {
+ IBackupManager bm = IBackupManager.Stub.asInterface(
+ ServiceManager.getService(Context.BACKUP_SERVICE));
+ if (bm != null) {
+ // TODO: disable via the backup manager interface
+ boolean curState = mAutoRestore.isChecked();
+ try {
+ bm.setAutoRestore(curState);
+ } catch (RemoteException e) {
+ mAutoRestore.setChecked(!curState);
+ }
+ }
}
return false;
ContentResolver res = getContentResolver();
mUseLocation.setChecked(Settings.Secure.getInt(res,
Settings.Secure.USE_LOCATION_FOR_SERVICES, 2) == 1);
- mBackup.setChecked(Settings.Secure.getInt(res,
- Settings.Secure.BACKUP_ENABLED, 0) == 1);
+
+ final boolean backupEnabled = Settings.Secure.getInt(res,
+ Settings.Secure.BACKUP_ENABLED, 0) == 1;
+ mBackup.setChecked(backupEnabled);
+
+ mAutoRestore.setChecked(Settings.Secure.getInt(res,
+ Settings.Secure.BACKUP_AUTO_RESTORE, 0) == 1);
+ mAutoRestore.setEnabled(backupEnabled);
}
private void updateUseLocation() {
mUseLocation.setChecked(false);
} else if (mDialogType == DIALOG_ERASE_BACKUP) {
mBackup.setChecked(true);
+ mAutoRestore.setEnabled(true);
}
}
updateUseLocation();
bm.setBackupEnabled(enable);
} catch (RemoteException e) {
mBackup.setChecked(!enable);
+ mAutoRestore.setEnabled(!enable);
return;
}
}
mBackup.setChecked(enable);
+ mAutoRestore.setEnabled(enable);
}
}