summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml6
-rw-r--r--res/xml/privacy_settings.xml4
-rw-r--r--src/com/android/settings/ConfirmDeviceCredentialActivity.java5
-rw-r--r--src/com/android/settings/DevelopmentSettings.java6
-rw-r--r--src/com/android/settings/PrivacySettings.java75
-rw-r--r--src/com/android/settings/SecuritySettings.java9
-rw-r--r--src/com/android/settings/SettingsPreferenceFragment.java26
-rw-r--r--src/com/android/settings/vpn2/VpnSettings.java2
8 files changed, 79 insertions, 54 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 63cb07c..6ff3639 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1109,7 +1109,11 @@
<!-- Lock screen settings -->
<activity android:name="ConfirmDeviceCredentialActivity"
android:exported="true">
- <!-- Use high-priority to prevent an installed activity from masquerading as this one. -->
+ <intent-filter>
+ <action android:name="android.app.action.CONFIRM_DEVICE_CREDENTIAL" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <!-- TODO: Remove this once new API is being used -->
<intent-filter android:priority="1000">
<action android:name="android.intent.action.CONFIRM_DEVICE_CREDENTIAL" />
<category android:name="android.intent.category.DEFAULT" />
diff --git a/res/xml/privacy_settings.xml b/res/xml/privacy_settings.xml
index 99fdc3f..44894e7 100644
--- a/res/xml/privacy_settings.xml
+++ b/res/xml/privacy_settings.xml
@@ -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"
diff --git a/src/com/android/settings/ConfirmDeviceCredentialActivity.java b/src/com/android/settings/ConfirmDeviceCredentialActivity.java
index 6a5c486..6b2bfd2 100644
--- a/src/com/android/settings/ConfirmDeviceCredentialActivity.java
+++ b/src/com/android/settings/ConfirmDeviceCredentialActivity.java
@@ -18,6 +18,7 @@
package com.android.settings;
import android.app.Activity;
+import android.app.KeyguardManager;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
@@ -34,8 +35,8 @@ public class ConfirmDeviceCredentialActivity extends Activity {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
- String title = intent.getStringExtra(Intent.EXTRA_TITLE);
- String details = intent.getStringExtra(Intent.EXTRA_DETAILS);
+ String title = intent.getStringExtra(KeyguardManager.EXTRA_TITLE);
+ String details = intent.getStringExtra(KeyguardManager.EXTRA_DESCRIPTION);
ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(this);
if (!helper.launchConfirmationActivity(0 /* request code */, title, details)) {
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index 7b12e6f..11dc3c6 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -369,12 +369,6 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
mAllPrefs.add(mProcessStats);
mWebViewDataReductionProxy = findAndInitCheckboxPref(WEBVIEW_DATA_REDUCTION_PROXY_KEY);
- String key = Settings.Global.getString(getActivity().getContentResolver(),
- Settings.Global.WEBVIEW_DATA_REDUCTION_PROXY_KEY);
- // Disable the selection if the key is not available for some reason.
- if (key == null || key.isEmpty()) {
- disableForUser(mWebViewDataReductionProxy);
- }
}
private ListPreference addListPreference(String prefKey) {
diff --git a/src/com/android/settings/PrivacySettings.java b/src/com/android/settings/PrivacySettings.java
index aac7638..95a81d1 100644
--- a/src/com/android/settings/PrivacySettings.java
+++ b/src/com/android/settings/PrivacySettings.java
@@ -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();
}
- @Override
- public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
- Preference preference) {
- if (preference == mBackup) {
- if (!mBackup.isChecked()) {
- showEraseBackupDialog();
- } else {
- setBackupEnabled(true);
+ private OnPreferenceChangeListener preferenceChangeListener = new OnPreferenceChangeListener() {
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ if (!(preference instanceof SwitchPreference)) {
+ return true;
}
- } else if (preference == mAutoRestore) {
- boolean curState = mAutoRestore.isChecked();
- try {
- mBackupManager.setAutoRestore(curState);
- } catch (RemoteException e) {
- mAutoRestore.setChecked(!curState);
+ boolean nextValue = (Boolean) newValue;
+ boolean result = false;
+ if (preference == mBackup) {
+ if (nextValue == false) {
+ showEraseBackupDialog();
+ } 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() {
- mBackup.setChecked(true);
-
mDialogType = DIALOG_ERASE_BACKUP;
CharSequence msg = getResources().getText(R.string.backup_erase_dialog_message);
// TODO: DialogFragment?
@@ -159,7 +169,7 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
mConfigure.setEnabled(configureEnabled);
mConfigure.setIntent(configIntent);
setConfigureSummary(configSummary);
-}
+ }
private void setConfigureSummary(String summary) {
if (summary != null) {
@@ -179,13 +189,20 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
}
}
+ @Override
public void onClick(DialogInterface dialog, int which) {
- if (which == DialogInterface.BUTTON_POSITIVE) {
- //updateProviders();
- if (mDialogType == DIALOG_ERASE_BACKUP) {
+ // 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;
}
@@ -214,4 +231,4 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
protected int getHelpResource() {
return R.string.help_url_backup_reset;
}
-}
+} \ No newline at end of file
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index 1b9f44c..f2a0bbb 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -404,16 +404,17 @@ public class SecuritySettings extends SettingsPreferenceFragment
.setIcon(com.android.internal.R.drawable.ic_dialog_alert)
.setMessage(getResources().getString(R.string.install_all_warning))
.setPositiveButton(android.R.string.yes, this)
- .setNegativeButton(android.R.string.no, null)
+ .setNegativeButton(android.R.string.no, this)
.show();
}
@Override
public void onClick(DialogInterface dialog, int which) {
- if (dialog == mWarnInstallApps && which == DialogInterface.BUTTON_POSITIVE) {
- setNonMarketAppsAllowed(true);
+ if (dialog == mWarnInstallApps) {
+ boolean turnOn = which == DialogInterface.BUTTON_POSITIVE;
+ setNonMarketAppsAllowed(turnOn);
if (mToggleAppInstallation != null) {
- mToggleAppInstallation.setChecked(true);
+ mToggleAppInstallation.setChecked(turnOn);
}
}
}
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index f89b72e..83b3a68 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -66,7 +66,7 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di
private boolean mPreferenceHighlighted = false;
private Drawable mHighlightDrawable;
- private Object mRegisterLock = new Object();
+ private ListAdapter mCurrentRootAdapter;
private boolean mIsDataSetObserverRegistered = false;
private DataSetObserver mDataSetObserver = new DataSetObserver() {
@Override
@@ -147,6 +147,11 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di
}
@Override
+ protected void onUnbindPreferences() {
+ unregisterObserverIfNeeded();
+ }
+
+ @Override
public void onStop() {
super.onStop();
@@ -154,20 +159,23 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di
}
public void registerObserverIfNeeded() {
- synchronized (mRegisterLock) {
- if (!mIsDataSetObserverRegistered) {
- getPreferenceScreen().getRootAdapter().registerDataSetObserver(mDataSetObserver);
- mIsDataSetObserverRegistered = true;
+ if (!mIsDataSetObserverRegistered) {
+ if (mCurrentRootAdapter != null) {
+ mCurrentRootAdapter.unregisterDataSetObserver(mDataSetObserver);
}
+ mCurrentRootAdapter = getPreferenceScreen().getRootAdapter();
+ mCurrentRootAdapter.registerDataSetObserver(mDataSetObserver);
+ mIsDataSetObserverRegistered = true;
}
}
public void unregisterObserverIfNeeded() {
- synchronized (mRegisterLock) {
- if (mIsDataSetObserverRegistered) {
- getPreferenceScreen().getRootAdapter().unregisterDataSetObserver(mDataSetObserver);
- mIsDataSetObserverRegistered = false;
+ if (mIsDataSetObserverRegistered) {
+ if (mCurrentRootAdapter != null) {
+ mCurrentRootAdapter.unregisterDataSetObserver(mDataSetObserver);
+ mCurrentRootAdapter = null;
}
+ mIsDataSetObserverRegistered = false;
}
}
diff --git a/src/com/android/settings/vpn2/VpnSettings.java b/src/com/android/settings/vpn2/VpnSettings.java
index c707b44..d409764 100644
--- a/src/com/android/settings/vpn2/VpnSettings.java
+++ b/src/com/android/settings/vpn2/VpnSettings.java
@@ -491,7 +491,7 @@ public class VpnSettings extends SettingsPreferenceFragment implements
private static class TitleAdapter extends ArrayAdapter<CharSequence> {
public TitleAdapter(Context context, List<CharSequence> objects) {
- super(context, com.android.internal.R.layout.select_dialog_singlechoice_holo,
+ super(context, com.android.internal.R.layout.select_dialog_singlechoice_material,
android.R.id.text1, objects);
}
}