Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ce543836 authored by arete's avatar arete Committed by Di Wu
Browse files

Change checkboxes to switches in "Settings->Backup&Reset"

Change-Id: I92b5d0051b717c66bc456a0864c3068b13112dd3

Bug: 16982604
parent d83b3c2a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@
            android:title="@string/backup_section_title">

        <!-- Backup settings -->
        <CheckBoxPreference
        <SwitchPreference
                android:key="backup_data"
                android:title="@string/backup_data_title"
                android:summary="@string/backup_data_summary"
@@ -37,7 +37,7 @@
            <intent android:action="dummy" />
        </PreferenceScreen>

        <CheckBoxPreference
        <SwitchPreference
                android:key="auto_restore"
                android:title="@string/auto_restore_title"
                android:summary="@string/auto_restore_summary"
+46 −29
Original line number Diff line number Diff line
@@ -27,9 +27,10 @@ import android.os.Bundle;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserManager;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceScreen;
import android.preference.SwitchPreference;
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 PERSONAL_DATA_CATEGORY = "personal_data_category";
    private IBackupManager mBackupManager;
    private CheckBoxPreference mBackup;
    private CheckBoxPreference mAutoRestore;
    private SwitchPreference mBackup;
    private SwitchPreference mAutoRestore;
    private Dialog mConfirmDialog;
    private PreferenceScreen mConfigure;

@@ -63,8 +64,12 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
        mBackupManager = IBackupManager.Stub.asInterface(
                ServiceManager.getService(Context.BACKUP_SERVICE));

        mBackup = (CheckBoxPreference) screen.findPreference(BACKUP_DATA);
        mAutoRestore = (CheckBoxPreference) screen.findPreference(AUTO_RESTORE);
        mBackup = (SwitchPreference) screen.findPreference(BACKUP_DATA);
        mBackup.setOnPreferenceChangeListener(preferenceChangeListener);

        mAutoRestore = (SwitchPreference) screen.findPreference(AUTO_RESTORE);
        mAutoRestore.setOnPreferenceChangeListener(preferenceChangeListener);

        mConfigure = (PreferenceScreen) screen.findPreference(CONFIGURE_ACCOUNT);

        if (UserManager.get(getActivity()).hasUserRestriction(
@@ -98,29 +103,34 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
        super.onStop();
    }

    private OnPreferenceChangeListener preferenceChangeListener = new OnPreferenceChangeListener() {
        @Override
    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
            Preference preference) {
        public boolean onPreferenceChange(Preference preference, Object newValue) {
            if (!(preference instanceof SwitchPreference)) {
                return true;
            }
            boolean nextValue = (Boolean) newValue;
            boolean result = false;
            if (preference == mBackup) {
            if (!mBackup.isChecked()) {
                if (nextValue == false) {
                    showEraseBackupDialog();
                } else {
                    setBackupEnabled(true);
                }
                result = true;
            } else if (preference == mAutoRestore) {
            boolean curState = mAutoRestore.isChecked();
                try {
                mBackupManager.setAutoRestore(curState);
                    mBackupManager.setAutoRestore(nextValue);
                    result = true;
                } catch (RemoteException e) {
                mAutoRestore.setChecked(!curState);
                    mAutoRestore.setChecked(!nextValue);
                }
            }
        return super.onPreferenceTreeClick(preferenceScreen, preference);
            return result;
        }
    };

    private void showEraseBackupDialog() {
        mBackup.setChecked(true);

        mDialogType = DIALOG_ERASE_BACKUP;
        CharSequence msg = getResources().getText(R.string.backup_erase_dialog_message);
        // TODO: DialogFragment?
@@ -179,13 +189,20 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
        }
    }

    @Override
    public void onClick(DialogInterface dialog, int which) {
        if (which == DialogInterface.BUTTON_POSITIVE) {
            //updateProviders();
        // Dialog is triggered before Switch status change, that means marking the Switch to
        // true in showEraseBackupDialog() method will be override by following status change.
        // 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);
                updateConfigureSummary();
            } else if (which == DialogInterface.BUTTON_NEGATIVE) {
                // Reject turning off backup
                setBackupEnabled(true);
            }
            updateConfigureSummary();
        }
        mDialogType = 0;
    }