diff --git a/MyTracks/res/values/do_not_translate.xml b/MyTracks/res/values/do_not_translate.xml
index 3f8a69c29..e6e472948 100644
--- a/MyTracks/res/values/do_not_translate.xml
+++ b/MyTracks/res/values/do_not_translate.xml
@@ -49,4 +49,5 @@ limitations under the License.
android.intent.action.SAVE
+ android.intent.action.settings.OPEN
diff --git a/MyTracks/src/com/google/android/apps/mytracks/CheckUnits.java b/MyTracks/src/com/google/android/apps/mytracks/CheckUnits.java
index cd39e2d31..0aeef0697 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/CheckUnits.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/CheckUnits.java
@@ -80,7 +80,8 @@ class CheckUnits {
private static void accept(Context context, SharedPreferences preferences) {
recordCheckPerformed(preferences);
Intent startIntent = new Intent(context, SettingsActivity.class);
- startIntent.putExtra("Open", context.getString(R.string.settings_display));
+ startIntent.putExtra(context.getString(R.string.open_settings_screen),
+ context.getString(R.string.settings_display));
context.startActivity(startIntent);
}
diff --git a/MyTracks/src/com/google/android/apps/mytracks/SettingsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/SettingsActivity.java
index 7d3f1b600..4d455e70a 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/SettingsActivity.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/SettingsActivity.java
@@ -58,7 +58,6 @@ public class SettingsActivity extends PreferenceActivity {
private BackupPreferencesListener backupListener;
private SharedPreferences preferences;
- private boolean displaySettingsOnly = false;
/** Called when the activity is first created. */
@Override
@@ -83,8 +82,6 @@ public class SettingsActivity extends PreferenceActivity {
// Load the preferences to be displayed
addPreferencesFromResource(R.xml.preferences);
-
- processIntent();
// Disable TTS announcement preference if not available
if (!apiFeatures.hasTextToSpeech()) {
@@ -96,9 +93,10 @@ public class SettingsActivity extends PreferenceActivity {
announcementFrequency.setSummary(
R.string.settings_not_available_summary);
}
-
- if (displaySettingsOnly)
- return;
+
+ // If we only need the display setting screen nothing else needs to load.
+ if (processIntent())
+ return;
// Hook up switching of displayed list entries between metric and imperial
// units
@@ -128,18 +126,24 @@ public class SettingsActivity extends PreferenceActivity {
return true;
}
});
+
}
- private void processIntent() {
+ private boolean processIntent() {
+ boolean showDisplaySettings = false;
Bundle bundle = getIntent().getExtras();
PreferenceScreen preferenceScreen;
+ String intentString = getString(R.string.open_settings_screen);
+
if (bundle != null) {
- preferenceScreen = (PreferenceScreen)findPreference(bundle.getString("Open"));
+ preferenceScreen = (PreferenceScreen) findPreference(bundle.getString(intentString));
if (preferenceScreen != null) {
- displaySettingsOnly = true;
+ showDisplaySettings = true;
setPreferenceScreen(preferenceScreen);
}
}
+
+ return showDisplaySettings;
}
private void customizeSensorOptionsPreferences() {
@@ -194,7 +198,7 @@ public class SettingsActivity extends PreferenceActivity {
super.onResume();
// If we only need the display setting screen nothing else needs to load.
- if (displaySettingsOnly)
+ if (processIntent())
return;
configureBluetoothPreferences();