From 9156735aa0721209ed5f9725d939959726d8fc1e Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Sun, 9 Oct 2011 14:36:09 -0700 Subject: [PATCH] Add a confirmation dialog when user allows access to other apps --- MyTracks/res/values/strings.xml | 2 ++ .../apps/mytracks/SettingsActivity.java | 27 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/MyTracks/res/values/strings.xml b/MyTracks/res/values/strings.xml index 0da53bda1..a9f64db89 100644 --- a/MyTracks/res/values/strings.xml +++ b/MyTracks/res/values/strings.xml @@ -240,6 +240,8 @@ limitations under the License. MyTracks data, including starting/stopping a recording. MyTracks data is not shared with any installed app. + Are you sure? This will allow any app installed + on your phone control and access to MyTracks. Share only URL Only the URL of the map will be sent when sharing diff --git a/MyTracks/src/com/google/android/apps/mytracks/SettingsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/SettingsActivity.java index 559d9af31..f3a974ae8 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/SettingsActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/SettingsActivity.java @@ -142,6 +142,33 @@ public class SettingsActivity extends PreferenceActivity { return true; } }); + + // Add a confirmation dialog for the share data preference. + final CheckBoxPreference shareDataPreference = (CheckBoxPreference) findPreference( + getString(R.string.share_data_key)); + shareDataPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + if ((Boolean) newValue) { + AlertDialog dialog = new AlertDialog.Builder(SettingsActivity.this) + .setCancelable(true) + .setTitle(getString(R.string.settings_share_data)) + .setMessage(getString(R.string.settings_share_data_dialog_message)) + .setPositiveButton(android.R.string.ok, new OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int button) { + shareDataPreference.setChecked(true); + } + }) + .setNegativeButton(android.R.string.cancel, null) + .create(); + dialog.show(); + return false; + } else { + return true; + } + } + }); } private boolean processIntent() {