diff --git a/MyTracks/res/values/keys.xml b/MyTracks/res/values/keys.xml index f7fa8a154..5c500004a 100644 --- a/MyTracks/res/values/keys.xml +++ b/MyTracks/res/values/keys.xml @@ -31,6 +31,7 @@ limitations under the License. chartShowSpeed defaultActivity defaultMapPublic + googleAccount maxRecordingDistance metricUnits minRecordingDistance @@ -44,7 +45,6 @@ limitations under the License. sendToFusionTables sendToMaps sensorType - sharingAccount showCheckUnitsDialog showWelcomeDialog splitFrequency diff --git a/MyTracks/res/values/strings.xml b/MyTracks/res/values/strings.xml index 41d57e549..a062e839a 100644 --- a/MyTracks/res/values/strings.xml +++ b/MyTracks/res/values/strings.xml @@ -1800,14 +1800,6 @@ limitations under the License. Character limit: ~26 (1 line)"> Sharing - - Switch account - - - Account used when sending a track to Google. - + Switch account + + diff --git a/MyTracks/res/xml/settings.xml b/MyTracks/res/xml/settings.xml index ff24e55be..c48825eac 100644 --- a/MyTracks/res/xml/settings.xml +++ b/MyTracks/res/xml/settings.xml @@ -44,6 +44,10 @@ limitations under the License. android:key="@string/settings_backup_key" android:persistent="false" android:title="@string/settings_backup" /> + - entries = new ArrayList(); + Account[] accounts = AccountManager.get(this).getAccountsByType(Constants.ACCOUNT_TYPE); + for (Account account : accounts) { + entries.add(account.name); + } + googleAccountListPreference.setEntries(entries.toArray(new CharSequence[entries.size()])); + googleAccountListPreference.setEntryValues(entries.toArray( + new CharSequence[entries.size()])); + if (entries.size() == 1) { + googleAccountListPreference.setValueIndex(0); + } + String googleAccount = PreferencesUtils.getString(this, R.string.google_account_key, + PreferencesUtils.GOOGLE_ACCOUNT_DEFAULT); + updateSwitchAccountSummary(googleAccount); + googleAccountListPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + updateSwitchAccountSummary((String) newValue); + return true; + } + }); + resetPreference = findPreference(getString(R.string.settings_reset_key)); resetPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override @@ -143,6 +174,17 @@ public class SettingsActivity extends AbstractSettingsActivity { : R.string.settings_reset_summary); } + /** + * Updates the switch account summary. + * + * @param value the value + */ + private void updateSwitchAccountSummary(String value) { + googleAccountListPreference.setSummary( + PreferencesUtils.GOOGLE_ACCOUNT_DEFAULT.equals(value) ? getString(R.string.value_unknown) + : value); + } + @Override protected Dialog onCreateDialog(int id) { if (id != DIALOG_CONFIRM_RESET_ID) { diff --git a/MyTracks/src/com/google/android/apps/mytracks/settings/SharingSettingsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/settings/SharingSettingsActivity.java index d2c7c191b..8b63fdab5 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/settings/SharingSettingsActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/settings/SharingSettingsActivity.java @@ -16,24 +16,17 @@ package com.google.android.apps.mytracks.settings; -import com.google.android.apps.mytracks.Constants; import com.google.android.apps.mytracks.util.DialogUtils; import com.google.android.apps.mytracks.util.PreferencesUtils; import com.google.android.maps.mytracks.R; -import android.accounts.Account; -import android.accounts.AccountManager; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.preference.CheckBoxPreference; -import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; -import java.util.ArrayList; -import java.util.List; - /** * An activity for accessing the sharing settings. * @@ -79,21 +72,6 @@ public class SharingSettingsActivity extends AbstractSettingsActivity { } } }); - - ListPreference sharingAccountListPreference = (ListPreference) findPreference( - getString(R.string.sharing_account_key)); - List entries = new ArrayList(); - Account[] accounts = AccountManager.get(this).getAccountsByType(Constants.ACCOUNT_TYPE); - for (Account account : accounts) { - entries.add(account.name); - } - - sharingAccountListPreference.setEntries(entries.toArray(new CharSequence[entries.size()])); - sharingAccountListPreference.setEntryValues(entries.toArray( - new CharSequence[entries.size()])); - if (entries.size() == 1) { - sharingAccountListPreference.setValueIndex(0); - } } @Override @@ -110,7 +88,7 @@ public class SharingSettingsActivity extends AbstractSettingsActivity { } }); } - + /** * Updates the title for the default map public check box preference. * diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java index 6c915a81e..4911d0c7a 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java @@ -53,6 +53,7 @@ public class PreferencesUtils { public static final String DEFAULT_ACTIVITY_DEFAULT = ""; public static final boolean DEFAULT_MAP_PUBLIC_DEFAULT = false; public static final int FREQUENCY_OFF = 0; + public static final String GOOGLE_ACCOUNT_DEFAULT = ""; public static final int MAX_RECORDING_DISTANCE_DEFAULT = 200; public static final boolean METRIC_UNITS_DEFAULT = true; public static final int MIN_RECORDING_DISTANCE_DEFAULT = 5; @@ -72,7 +73,6 @@ public class PreferencesUtils { public static final boolean SEND_TO_DOCS_DEFAULT = true; public static final boolean SEND_TO_FUSION_TABLES_DEFAULT = true; public static final boolean SEND_TO_MAPS_DEFAULT = true; - public static final String SHARING_ACCOUNT_DEFAULT = ""; public static final boolean SHOW_CHECK_UNITS_DIALOG_DEFAULT = true; public static final boolean SHOW_WELCOME_DIALOG_DEFAULT = true; public static final int SPLIT_FREQUENCY_DEFAULT = 0;