diff options
author | Amith Yamasani <yamasani@google.com> | 2009-09-25 10:53:45 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2009-09-25 10:53:45 -0700 |
commit | cfe3c5fcaae87968beada03d71b196eeaf29f8df (patch) | |
tree | 5592edfa83d17d3bd5199b4f7717db9cb8ecd083 | |
parent | a400dd3275f99a19ef9d1ac7c5e841cfd8e71954 (diff) | |
parent | ef83ad69c79069de13202173351183af46036bfd (diff) | |
download | packages_apps_settings-cfe3c5fcaae87968beada03d71b196eeaf29f8df.zip packages_apps_settings-cfe3c5fcaae87968beada03d71b196eeaf29f8df.tar.gz packages_apps_settings-cfe3c5fcaae87968beada03d71b196eeaf29f8df.tar.bz2 |
am ef83ad69: am e65c943f: New Privacy settings screen and Backup settings toggle. See #2132044 & #2133178
Merge commit 'ef83ad69c79069de13202173351183af46036bfd'
* commit 'ef83ad69c79069de13202173351183af46036bfd':
New Privacy settings screen and Backup settings toggle. See #2132044 & #2133178
-rw-r--r-- | AndroidManifest.xml | 13 | ||||
-rwxr-xr-x | res/drawable/ic_settings_privacy.png | bin | 0 -> 1261 bytes | |||
-rw-r--r-- | res/values/strings.xml | 24 | ||||
-rw-r--r-- | res/xml/privacy_settings.xml | 50 | ||||
-rw-r--r-- | res/xml/security_settings.xml | 5 | ||||
-rw-r--r-- | res/xml/settings.xml | 14 | ||||
-rw-r--r-- | src/com/android/settings/PrivacySettings.java | 260 | ||||
-rw-r--r-- | src/com/android/settings/SecuritySettings.java | 134 |
8 files changed, 367 insertions, 133 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 7e2c248..de34dcd 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -311,6 +311,19 @@ </intent-filter> </activity> + <activity android:name="PrivacySettings" + android:label="@string/privacy_settings_title" + android:configChanges="orientation|keyboardHidden" + android:clearTaskOnLaunch="true" + > + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <action android:name="android.settings.PRIVACY_SETTINGS" /> + <category android:name="android.intent.category.DEFAULT" /> + <category android:name="android.intent.category.VOICE_LAUNCH" /> + </intent-filter> + </activity> + <activity android:name="IccLockSettings" android:label="@string/sim_lock_settings" android:process="com.android.phone"> <intent-filter> diff --git a/res/drawable/ic_settings_privacy.png b/res/drawable/ic_settings_privacy.png Binary files differnew file mode 100755 index 0000000..7e4868c --- /dev/null +++ b/res/drawable/ic_settings_privacy.png diff --git a/res/values/strings.xml b/res/values/strings.xml index 9a949b9..2a9cdb3 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1177,9 +1177,9 @@ <!-- Security & location settings screen, setting summary when Assisted GPS check box is clear --> <string name="assisted_gps_disabled">Use server to assist GPS (uncheck to improve GPS performance)</string> <!-- Setting title for allow sending location to google --> - <string name="use_location_title">Share with Google</string> - <!-- Title of dialog to user requesting use of location information to improve services --> - <string name="use_location_summary">Allow Google to use location for improved search and other services</string> + <string name="use_location_title">Use My Location</string> + <!-- Setting summary for allowing Google to use location information for improved search results. --> + <string name="use_location_summary">Use My Location for Google search results and other Google services</string> <!-- Message of dialog to user requesting use of location information --> <string name="use_location_warning_message">Do you want to allow Google to use location for improved search results and other services?</string> <!-- Agree --> @@ -2091,4 +2091,22 @@ found in the list of installed applications.</string> <string name="emergency_tone_title">Emergency tone</string> <!-- Sound settings screen, setting option summary text --> <string name="emergency_tone_summary">Set behavior when an emergency call is placed</string> + + <!-- Privacy Settings screen --><skip/> + <!-- Privacy settings menu title --> + <string name="privacy_settings">Privacy</string> + <!-- Privacy settings activity title --> + <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> + <!-- 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> + <!-- Dialog title for confirmation to erase backup data from server --> + <string name="backup_erase_dialog_title">Settings 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> </resources> diff --git a/res/xml/privacy_settings.xml b/res/xml/privacy_settings.xml new file mode 100644 index 0000000..92955a5 --- /dev/null +++ b/res/xml/privacy_settings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2009 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. +--> + +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> + + <PreferenceCategory android:key="location_category" + android:title="@string/location_section_title"> + <!-- Share location with Google --> + <CheckBoxPreference + android:key="use_location" + android:title="@string/use_location_title" + android:persistent="false" + android:summary="@string/use_location_summary"/> + </PreferenceCategory> + + <PreferenceCategory android:key="settings_category" + android:title="@string/settings_section_title"> + <!-- Backup settings --> + <CheckBoxPreference + android:key="backup_settings" + android:title="@string/backup_settings_title" + android:persistent="false" /> + </PreferenceCategory> + + <PreferenceCategory + android:title="@string/personal_data_section_title"> + <!-- Factory reset --> + <PreferenceScreen + android:title="@string/master_clear_title" + android:summary="@string/master_clear_summary"> + <intent android:action="android.intent.action.MAIN" + android:targetPackage="com.android.settings" + android:targetClass="com.android.settings.MasterClear" /> + </PreferenceScreen> + </PreferenceCategory> + +</PreferenceScreen> diff --git a/res/xml/security_settings.xml b/res/xml/security_settings.xml index 1322eaf..1b73584 100644 --- a/res/xml/security_settings.xml +++ b/res/xml/security_settings.xml @@ -40,11 +40,6 @@ android:summaryOn="@string/assisted_gps_enabled" android:summaryOff="@string/assisted_gps_disabled"/> --> - <CheckBoxPreference - android:key="use_location" - android:title="@string/use_location_title" - android:persistent="false" - android:summary="@string/use_location_summary"/> </PreferenceCategory> diff --git a/res/xml/settings.xml b/res/xml/settings.xml index 769a86f..79a777d 100644 --- a/res/xml/settings.xml +++ b/res/xml/settings.xml @@ -50,7 +50,7 @@ android:targetClass="com.android.settings.SoundAndDisplaySettings" /> </com.android.settings.IconPreferenceScreen> - <!-- Security & Privacy --> + <!-- Security & Location --> <com.android.settings.IconPreferenceScreen settings:icon="@drawable/ic_settings_security" @@ -85,6 +85,18 @@ <intent android:action="android.settings.SYNC_SETTINGS" /> </com.android.settings.IconPreferenceScreen> + <!-- Privacy --> + + <com.android.settings.IconPreferenceScreen + settings:icon="@drawable/ic_settings_privacy" + android:title="@string/privacy_settings" + android:key="privacy_settings"> + <intent + android:action="android.intent.action.MAIN" + android:targetPackage="com.android.settings" + android:targetClass="com.android.settings.PrivacySettings" /> + </com.android.settings.IconPreferenceScreen> + <!-- Storage --> <com.android.settings.IconPreferenceScreen diff --git a/src/com/android/settings/PrivacySettings.java b/src/com/android/settings/PrivacySettings.java new file mode 100644 index 0000000..2edb328 --- /dev/null +++ b/src/com/android/settings/PrivacySettings.java @@ -0,0 +1,260 @@ +/* + * Copyright (C) 2009 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.settings; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.backup.IBackupManager; +import android.content.ContentResolver; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.content.pm.PackageManager.NameNotFoundException; +import android.os.Bundle; +import android.os.RemoteException; +import android.os.ServiceManager; +import android.preference.CheckBoxPreference; +import android.preference.Preference; +import android.preference.PreferenceActivity; +import android.preference.PreferenceScreen; +import android.provider.Settings; +import android.text.method.LinkMovementMethod; +import android.widget.TextView; + +/** + * Gesture lock pattern settings. + */ +public class PrivacySettings extends PreferenceActivity implements + DialogInterface.OnDismissListener, DialogInterface.OnClickListener { + + private static final String PREFS_NAME = "location_prefs"; + private static final String PREFS_USE_LOCATION = "use_location"; + + // Vendor specific + private static final String GSETTINGS_PROVIDER = "com.google.android.providers.settings"; + private static final String LOCATION_CATEGORY = "location_category"; + private static final String SETTINGS_CATEGORY = "settings_category"; + private static final String USE_LOCATION = "use_location"; + private static final String BACKUP_SETTINGS = "backup_settings"; + private static final String KEY_DONE_USE_LOCATION = "doneLocation"; + private CheckBoxPreference mUseLocation; + private CheckBoxPreference mBackup; + private boolean mOkClicked; + private Dialog mConfirmDialog; + + private static final int DIALOG_USE_LOCATION = 1; + private static final int DIALOG_ERASE_BACKUP = 2; + private int mDialogType; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.privacy_settings); + + mUseLocation = (CheckBoxPreference) getPreferenceScreen().findPreference(USE_LOCATION); + mBackup = (CheckBoxPreference) getPreferenceScreen().findPreference(BACKUP_SETTINGS); + + // Vendor specific + try { + if (mUseLocation != null) { + getPackageManager().getPackageInfo(GSETTINGS_PROVIDER, 0); + } + } catch (NameNotFoundException nnfe) { + getPreferenceScreen().removePreference(findPreference(LOCATION_CATEGORY)); + getPreferenceScreen().removePreference(findPreference(SETTINGS_CATEGORY)); + } + updateToggles(); + + boolean doneUseLocation = savedInstanceState == null + ? false : savedInstanceState.getBoolean(KEY_DONE_USE_LOCATION, true); + if (!doneUseLocation && (getIntent().getBooleanExtra("SHOW_USE_LOCATION", false) + || savedInstanceState != null)) { + showUseLocationDialog(true); + } + } + + @Override + public void onStop() { + if (mConfirmDialog != null && mConfirmDialog.isShowing()) { + mConfirmDialog.dismiss(); + } + mConfirmDialog = null; + mDialogType = 0; + super.onStop(); + } + + @Override + public void onSaveInstanceState(Bundle icicle) { + if (mConfirmDialog != null && mConfirmDialog.isShowing() + && mDialogType == DIALOG_USE_LOCATION) { + icicle.putBoolean(KEY_DONE_USE_LOCATION, false); + } + super.onSaveInstanceState(icicle); + } + + @Override + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, + Preference preference) { + if (preference == mUseLocation) { + //normally called on the toggle click + if (mUseLocation.isChecked()) { + showUseLocationDialog(false); + } else { + updateUseLocation(); + } + } else if (preference == mBackup) { + if (!mBackup.isChecked()) { + showEraseBackupDialog(); + } else { + setBackupEnabled(true); + } + } + + return false; + } + + private void showUseLocationDialog(boolean force) { + // Show a warning to the user that location data will be shared + mOkClicked = false; + if (force) { + mUseLocation.setChecked(true); + } + + if (hasAgreedToUseLocation()) { + updateUseLocation(); + return; + } + + mDialogType = DIALOG_USE_LOCATION; + CharSequence msg = getResources().getText(R.string.use_location_warning_message); + mConfirmDialog = new AlertDialog.Builder(this).setMessage(msg) + .setTitle(R.string.use_location_title) + .setIcon(android.R.drawable.ic_dialog_alert) + .setPositiveButton(R.string.agree, this) + .setNegativeButton(R.string.disagree, this) + .show(); + ((TextView)mConfirmDialog.findViewById(android.R.id.message)) + .setMovementMethod(LinkMovementMethod.getInstance()); + mConfirmDialog.setOnDismissListener(this); + } + + private void showEraseBackupDialog() { + // Show a warning to the user that location data will be shared + mOkClicked = false; + mBackup.setChecked(true); + + mDialogType = DIALOG_ERASE_BACKUP; + CharSequence msg = getResources().getText(R.string.backup_erase_dialog_message); + mConfirmDialog = new AlertDialog.Builder(this).setMessage(msg) + .setTitle(R.string.backup_erase_dialog_title) + .setIcon(android.R.drawable.ic_dialog_alert) + .setPositiveButton(android.R.string.ok, this) + .setNegativeButton(android.R.string.cancel, this) + .show(); + mConfirmDialog.setOnDismissListener(this); + } + + /* + * Creates toggles for each available location provider + */ + private void updateToggles() { + 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); + } + + private void updateUseLocation() { + boolean use = mUseLocation.isChecked(); + Settings.Secure.putInt(getContentResolver(), + Settings.Secure.USE_LOCATION_FOR_SERVICES, use ? 1 : 0); + } + + public void onClick(DialogInterface dialog, int which) { + if (which == DialogInterface.BUTTON_POSITIVE) { + //updateProviders(); + mOkClicked = true; + if (mDialogType == DIALOG_USE_LOCATION) { + setAgreedToUseLocation(true); + } else if (mDialogType == DIALOG_ERASE_BACKUP) { + setBackupEnabled(false); + } + } else { + if (mDialogType == DIALOG_USE_LOCATION) { + // Reset the toggle + mUseLocation.setChecked(false); + } else if (mDialogType == DIALOG_ERASE_BACKUP) { + mBackup.setChecked(true); + } + } + updateUseLocation(); + mDialogType = 0; + } + + public void onDismiss(DialogInterface dialog) { + // Assuming that onClick gets called first + if (!mOkClicked) { + if (mDialogType == DIALOG_USE_LOCATION) { + mUseLocation.setChecked(false); + } + } + } + + /** + * Checks if the user has agreed to the dialog in the past. + */ + private boolean hasAgreedToUseLocation() { + SharedPreferences sp = getSharedPreferences(PREFS_NAME, 0); + if (sp == null) { + return false; + } + return sp.getBoolean(PREFS_USE_LOCATION, false); + } + + /** + * Notes that the user has agreed to the dialog and won't need to be prompted in the + * future. + */ + private void setAgreedToUseLocation(boolean agreed) { + if (agreed) { + SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); + SharedPreferences.Editor editor = settings.edit(); + editor.putBoolean(PREFS_USE_LOCATION, true); + editor.commit(); + } + } + + /** + * Informs the BackupManager of a change in backup state - if backup is disabled, + * the data on the server will be erased. + * @param enable whether to enable backup + */ + private void setBackupEnabled(boolean enable) { + IBackupManager bm = IBackupManager.Stub.asInterface( + ServiceManager.getService(Context.BACKUP_SERVICE)); + if (bm != null) { + try { + bm.setBackupEnabled(enable); + } catch (RemoteException e) { + mBackup.setChecked(!enable); + return; + } + } + mBackup.setChecked(enable); + } +} diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index 3d7a765..cdfd8bd 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -59,8 +59,7 @@ import java.util.Observer; /** * Gesture lock pattern settings. */ -public class SecuritySettings extends PreferenceActivity implements - DialogInterface.OnDismissListener, DialogInterface.OnClickListener { +public class SecuritySettings extends PreferenceActivity { // Lock Settings @@ -96,14 +95,6 @@ public class SecuritySettings extends PreferenceActivity implements private CstorHelper mCstorHelper = new CstorHelper(); - // Vendor specific - private static final String GSETTINGS_PROVIDER = "com.google.android.providers.settings"; - private static final String USE_LOCATION = "use_location"; - private static final String KEY_DONE_USE_LOCATION = "doneLocation"; - private CheckBoxPreference mUseLocation; - private boolean mOkClicked; - private Dialog mUseLocationDialog; - private CheckBoxPreference mNetwork; private CheckBoxPreference mGps; private CheckBoxPreference mAssistedGps; @@ -130,17 +121,7 @@ public class SecuritySettings extends PreferenceActivity implements mNetwork = (CheckBoxPreference) getPreferenceScreen().findPreference(LOCATION_NETWORK); mGps = (CheckBoxPreference) getPreferenceScreen().findPreference(LOCATION_GPS); mAssistedGps = (CheckBoxPreference) getPreferenceScreen().findPreference(ASSISTED_GPS); - mUseLocation = (CheckBoxPreference) getPreferenceScreen().findPreference(USE_LOCATION); - - // Vendor specific - try { - if (mUseLocation != null - && getPackageManager().getPackageInfo(GSETTINGS_PROVIDER, 0) == null) { - ((PreferenceGroup)findPreference(LOCATION_CATEGORY)) - .removePreference(mUseLocation); - } - } catch (NameNotFoundException nnfe) { - } + updateToggles(); // listen for Location Manager settings changes @@ -150,12 +131,6 @@ public class SecuritySettings extends PreferenceActivity implements null); mContentQueryMap = new ContentQueryMap(settingsCursor, Settings.System.NAME, true, null); mContentQueryMap.addObserver(new SettingsObserver()); - boolean doneUseLocation = savedInstanceState == null - ? false : savedInstanceState.getBoolean(KEY_DONE_USE_LOCATION, true); - if (!doneUseLocation && (getIntent().getBooleanExtra("SHOW_USE_LOCATION", false) - || savedInstanceState != null)) { - showUseLocationDialog(true); - } mCstorHelper.handleIntent(getIntent()); } @@ -169,6 +144,14 @@ public class SecuritySettings extends PreferenceActivity implements inlinePrefCat.setTitle(R.string.lock_settings_title); root.addPreference(inlinePrefCat); + // change pattern lock + Intent intent = new Intent(); + intent.setClassName("com.android.settings", + "com.android.settings.ChooseLockPatternTutorial"); + mChoosePattern = getPreferenceManager().createPreferenceScreen(this); + mChoosePattern.setIntent(intent); + inlinePrefCat.addPreference(mChoosePattern); + // autolock toggle mLockEnabled = new LockEnabledPref(this); mLockEnabled.setTitle(R.string.lockpattern_settings_enable_title); @@ -188,14 +171,6 @@ public class SecuritySettings extends PreferenceActivity implements mTactileFeedback.setTitle(R.string.lockpattern_settings_enable_tactile_feedback_title); inlinePrefCat.addPreference(mTactileFeedback); - // change pattern lock - Intent intent = new Intent(); - intent.setClassName("com.android.settings", - "com.android.settings.ChooseLockPatternTutorial"); - mChoosePattern = getPreferenceManager().createPreferenceScreen(this); - mChoosePattern.setIntent(intent); - inlinePrefCat.addPreference(mChoosePattern); - int activePhoneType = TelephonyManager.getDefault().getPhoneType(); // do not display SIM lock for CDMA phone @@ -259,23 +234,6 @@ public class SecuritySettings extends PreferenceActivity implements } @Override - public void onStop() { - if (mUseLocationDialog != null && mUseLocationDialog.isShowing()) { - mUseLocationDialog.dismiss(); - } - mUseLocationDialog = null; - super.onStop(); - } - - @Override - public void onSaveInstanceState(Bundle icicle) { - if (mUseLocationDialog != null && mUseLocationDialog.isShowing()) { - icicle.putBoolean(KEY_DONE_USE_LOCATION, false); - } - super.onSaveInstanceState(icicle); - } - - @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { final String key = preference.getKey(); @@ -302,13 +260,6 @@ public class SecuritySettings extends PreferenceActivity implements } else if (preference == mAssistedGps) { Settings.Secure.putInt(getContentResolver(), Settings.Secure.ASSISTED_GPS_ENABLED, mAssistedGps.isChecked() ? 1 : 0); - } else if (preference == mUseLocation) { - //normally called on the toggle click - if (mUseLocation.isChecked()) { - showUseLocationDialog(false); - } else { - updateUseLocation(); - } } return false; @@ -319,27 +270,6 @@ public class SecuritySettings extends PreferenceActivity implements startActivity(intent); } - private void showUseLocationDialog(boolean force) { - // Show a warning to the user that location data will be shared - mOkClicked = false; - if (force) { - mUseLocation.setChecked(true); - } - - if (hasAgreedToUseLocation()) return; - - CharSequence msg = getResources().getText(R.string.use_location_warning_message); - mUseLocationDialog = new AlertDialog.Builder(this).setMessage(msg) - .setTitle(R.string.use_location_title) - .setIcon(android.R.drawable.ic_dialog_alert) - .setPositiveButton(R.string.agree, this) - .setNegativeButton(R.string.disagree, this) - .show(); - ((TextView)mUseLocationDialog.findViewById(android.R.id.message)) - .setMovementMethod(LinkMovementMethod.getInstance()); - mUseLocationDialog.setOnDismissListener(this); - } - /* * Creates toggles for each available location provider */ @@ -355,20 +285,12 @@ public class SecuritySettings extends PreferenceActivity implements Settings.Secure.ASSISTED_GPS_ENABLED, 2) == 1); mAssistedGps.setEnabled(gpsEnabled); } - mUseLocation.setChecked(Settings.Secure.getInt(res, - Settings.Secure.USE_LOCATION_FOR_SERVICES, 2) == 1); } private boolean isToggled(Preference pref) { return ((CheckBoxPreference) pref).isChecked(); } - private void updateUseLocation() { - boolean use = mUseLocation.isChecked(); - Settings.Secure.putInt(getContentResolver(), - Settings.Secure.USE_LOCATION_FOR_SERVICES, use ? 1 : 0); - } - /** * For the user to disable keyguard, we first make them verify their * existing pattern. @@ -415,25 +337,6 @@ public class SecuritySettings extends PreferenceActivity implements } } - public void onClick(DialogInterface dialog, int which) { - if (which == DialogInterface.BUTTON_POSITIVE) { - //updateProviders(); - mOkClicked = true; - setAgreedToUseLocation(true); - } else { - // Reset the toggle - mUseLocation.setChecked(false); - } - updateUseLocation(); - } - - public void onDismiss(DialogInterface dialog) { - // Assuming that onClick gets called first - if (!mOkClicked) { - mUseLocation.setChecked(false); - } - } - @Override protected Dialog onCreateDialog(int id) { switch (id) { @@ -452,23 +355,6 @@ public class SecuritySettings extends PreferenceActivity implements } } - private boolean hasAgreedToUseLocation() { - SharedPreferences sp = getSharedPreferences(PREFS_NAME, 0); - if (sp == null) { - return false; - } - return sp.getBoolean(PREFS_USE_LOCATION, false); - } - - private void setAgreedToUseLocation(boolean agreed) { - if (agreed) { - SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); - SharedPreferences.Editor editor = settings.edit(); - editor.putBoolean(PREFS_USE_LOCATION, true); - editor.commit(); - } - } - private class CstorHelper implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener { private KeyStore mKeyStore = KeyStore.getInstance(); |