Change checkboxes to switches in "Settings->Backup&Reset"
Change-Id: I92b5d0051b717c66bc456a0864c3068b13112dd3 Bug: 16982604
This commit is contained in:
@@ -22,7 +22,7 @@
|
|||||||
android:title="@string/backup_section_title">
|
android:title="@string/backup_section_title">
|
||||||
|
|
||||||
<!-- Backup settings -->
|
<!-- Backup settings -->
|
||||||
<CheckBoxPreference
|
<SwitchPreference
|
||||||
android:key="backup_data"
|
android:key="backup_data"
|
||||||
android:title="@string/backup_data_title"
|
android:title="@string/backup_data_title"
|
||||||
android:summary="@string/backup_data_summary"
|
android:summary="@string/backup_data_summary"
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
<intent android:action="dummy" />
|
<intent android:action="dummy" />
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
|
||||||
<CheckBoxPreference
|
<SwitchPreference
|
||||||
android:key="auto_restore"
|
android:key="auto_restore"
|
||||||
android:title="@string/auto_restore_title"
|
android:title="@string/auto_restore_title"
|
||||||
android:summary="@string/auto_restore_summary"
|
android:summary="@string/auto_restore_summary"
|
||||||
|
@@ -27,9 +27,10 @@ import android.os.Bundle;
|
|||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.ServiceManager;
|
import android.os.ServiceManager;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.preference.CheckBoxPreference;
|
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
|
import android.preference.Preference.OnPreferenceChangeListener;
|
||||||
import android.preference.PreferenceScreen;
|
import android.preference.PreferenceScreen;
|
||||||
|
import android.preference.SwitchPreference;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -46,8 +47,8 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
|
|||||||
private static final String CONFIGURE_ACCOUNT = "configure_account";
|
private static final String CONFIGURE_ACCOUNT = "configure_account";
|
||||||
private static final String PERSONAL_DATA_CATEGORY = "personal_data_category";
|
private static final String PERSONAL_DATA_CATEGORY = "personal_data_category";
|
||||||
private IBackupManager mBackupManager;
|
private IBackupManager mBackupManager;
|
||||||
private CheckBoxPreference mBackup;
|
private SwitchPreference mBackup;
|
||||||
private CheckBoxPreference mAutoRestore;
|
private SwitchPreference mAutoRestore;
|
||||||
private Dialog mConfirmDialog;
|
private Dialog mConfirmDialog;
|
||||||
private PreferenceScreen mConfigure;
|
private PreferenceScreen mConfigure;
|
||||||
|
|
||||||
@@ -63,8 +64,12 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
|
|||||||
mBackupManager = IBackupManager.Stub.asInterface(
|
mBackupManager = IBackupManager.Stub.asInterface(
|
||||||
ServiceManager.getService(Context.BACKUP_SERVICE));
|
ServiceManager.getService(Context.BACKUP_SERVICE));
|
||||||
|
|
||||||
mBackup = (CheckBoxPreference) screen.findPreference(BACKUP_DATA);
|
mBackup = (SwitchPreference) screen.findPreference(BACKUP_DATA);
|
||||||
mAutoRestore = (CheckBoxPreference) screen.findPreference(AUTO_RESTORE);
|
mBackup.setOnPreferenceChangeListener(preferenceChangeListener);
|
||||||
|
|
||||||
|
mAutoRestore = (SwitchPreference) screen.findPreference(AUTO_RESTORE);
|
||||||
|
mAutoRestore.setOnPreferenceChangeListener(preferenceChangeListener);
|
||||||
|
|
||||||
mConfigure = (PreferenceScreen) screen.findPreference(CONFIGURE_ACCOUNT);
|
mConfigure = (PreferenceScreen) screen.findPreference(CONFIGURE_ACCOUNT);
|
||||||
|
|
||||||
if (UserManager.get(getActivity()).hasUserRestriction(
|
if (UserManager.get(getActivity()).hasUserRestriction(
|
||||||
@@ -98,29 +103,34 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
|
|||||||
super.onStop();
|
super.onStop();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private OnPreferenceChangeListener preferenceChangeListener = new OnPreferenceChangeListener() {
|
||||||
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
|
@Override
|
||||||
Preference preference) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
if (preference == mBackup) {
|
if (!(preference instanceof SwitchPreference)) {
|
||||||
if (!mBackup.isChecked()) {
|
return true;
|
||||||
showEraseBackupDialog();
|
|
||||||
} else {
|
|
||||||
setBackupEnabled(true);
|
|
||||||
}
|
}
|
||||||
} else if (preference == mAutoRestore) {
|
boolean nextValue = (Boolean) newValue;
|
||||||
boolean curState = mAutoRestore.isChecked();
|
boolean result = false;
|
||||||
try {
|
if (preference == mBackup) {
|
||||||
mBackupManager.setAutoRestore(curState);
|
if (nextValue == false) {
|
||||||
} catch (RemoteException e) {
|
showEraseBackupDialog();
|
||||||
mAutoRestore.setChecked(!curState);
|
} else {
|
||||||
|
setBackupEnabled(true);
|
||||||
|
}
|
||||||
|
result = true;
|
||||||
|
} else if (preference == mAutoRestore) {
|
||||||
|
try {
|
||||||
|
mBackupManager.setAutoRestore(nextValue);
|
||||||
|
result = true;
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
mAutoRestore.setChecked(!nextValue);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
return super.onPreferenceTreeClick(preferenceScreen, preference);
|
};
|
||||||
}
|
|
||||||
|
|
||||||
private void showEraseBackupDialog() {
|
private void showEraseBackupDialog() {
|
||||||
mBackup.setChecked(true);
|
|
||||||
|
|
||||||
mDialogType = DIALOG_ERASE_BACKUP;
|
mDialogType = DIALOG_ERASE_BACKUP;
|
||||||
CharSequence msg = getResources().getText(R.string.backup_erase_dialog_message);
|
CharSequence msg = getResources().getText(R.string.backup_erase_dialog_message);
|
||||||
// TODO: DialogFragment?
|
// TODO: DialogFragment?
|
||||||
@@ -159,7 +169,7 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
|
|||||||
mConfigure.setEnabled(configureEnabled);
|
mConfigure.setEnabled(configureEnabled);
|
||||||
mConfigure.setIntent(configIntent);
|
mConfigure.setIntent(configIntent);
|
||||||
setConfigureSummary(configSummary);
|
setConfigureSummary(configSummary);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setConfigureSummary(String summary) {
|
private void setConfigureSummary(String summary) {
|
||||||
if (summary != null) {
|
if (summary != null) {
|
||||||
@@ -179,13 +189,20 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
if (which == DialogInterface.BUTTON_POSITIVE) {
|
// Dialog is triggered before Switch status change, that means marking the Switch to
|
||||||
//updateProviders();
|
// true in showEraseBackupDialog() method will be override by following status change.
|
||||||
if (mDialogType == DIALOG_ERASE_BACKUP) {
|
// So we do manual switching here due to users' response.
|
||||||
|
if (mDialogType == DIALOG_ERASE_BACKUP) {
|
||||||
|
// Accept turning off backup
|
||||||
|
if (which == DialogInterface.BUTTON_POSITIVE) {
|
||||||
setBackupEnabled(false);
|
setBackupEnabled(false);
|
||||||
updateConfigureSummary();
|
} else if (which == DialogInterface.BUTTON_NEGATIVE) {
|
||||||
|
// Reject turning off backup
|
||||||
|
setBackupEnabled(true);
|
||||||
}
|
}
|
||||||
|
updateConfigureSummary();
|
||||||
}
|
}
|
||||||
mDialogType = 0;
|
mDialogType = 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user