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;