diff --git a/MyTracks/res/xml/preferences.xml b/MyTracks/res/xml/preferences.xml
index 06849288a..fbb40b1e3 100644
--- a/MyTracks/res/xml/preferences.xml
+++ b/MyTracks/res/xml/preferences.xml
@@ -150,6 +150,12 @@ limitations under the License.
android:summaryOn="@string/settings_recording_name_summary_on"
android:summaryOff="@string/settings_recording_name_summary_off"
android:defaultValue="true" />
+
+
diff --git a/MyTracks/src/com/google/android/apps/mytracks/AutoCompleteTextPreference.java b/MyTracks/src/com/google/android/apps/mytracks/AutoCompleteTextPreference.java
new file mode 100644
index 000000000..0469acf04
--- /dev/null
+++ b/MyTracks/src/com/google/android/apps/mytracks/AutoCompleteTextPreference.java
@@ -0,0 +1,64 @@
+package com.google.android.apps.mytracks;
+
+import com.google.android.maps.mytracks.R;
+
+import android.content.Context;
+import android.preference.EditTextPreference;
+import android.util.AttributeSet;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewParent;
+import android.widget.ArrayAdapter;
+import android.widget.AutoCompleteTextView;
+
+/**
+ * The {@link AutoCompleteTextPreference} class is a preference that allows for
+ * string input using auto complete . It is a subclass of
+ * {@link EditTextPreference} and shows the {@link AutoCompleteTextView} in a
+ * dialog.
+ *
+ * This preference will store a string into the SharedPreferences.
+ *
+ * @author Rimas Trumpa (with Matt Levan)
+ */
+public class AutoCompleteTextPreference extends EditTextPreference {
+
+ private AutoCompleteTextView mEditText = null;
+
+ public AutoCompleteTextPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ mEditText = new AutoCompleteTextView(context, attrs);
+ mEditText.setThreshold(0);
+
+ // Gets autocomplete values for 'Default Activity' preference
+ if (getKey().equals(context.getString(R.string.default_activity_key))) {
+ ArrayAdapter adapter = ArrayAdapter.createFromResource(context,
+ R.array.activity_types, android.R.layout.simple_dropdown_item_1line);
+ mEditText.setAdapter(adapter);
+ }
+ }
+
+ @Override
+ protected void onBindDialogView(View view) {
+ AutoCompleteTextView editText = mEditText;
+ editText.setText(getText());
+
+ ViewParent oldParent = editText.getParent();
+ if (oldParent != view) {
+ if (oldParent != null) {
+ ((ViewGroup) oldParent).removeView(editText);
+ }
+ onAddEditTextToDialogView(view, editText);
+ }
+ }
+
+ @Override
+ protected void onDialogClosed(boolean positiveResult) {
+ if (positiveResult) {
+ String value = mEditText.getText().toString();
+ if (callChangeListener(value)) {
+ setText(value);
+ }
+ }
+ }
+}
diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java b/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java
index 90768d827..e8d6504f2 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java
@@ -559,6 +559,11 @@ public class TrackRecordingService extends Service {
Log.d(TAG,
"Location listener now unregistered w/ TrackRecordingService.");
}
+
+ private String getDefaultActivityType(Context context) {
+ SharedPreferences prefs = context.getSharedPreferences(Constants.SETTINGS_NAME, 0);
+ return prefs.getString(context.getString(R.string.default_activity_key), "");
+ }
/*
* Recording lifecycle.
@@ -582,6 +587,7 @@ public class TrackRecordingService extends Service {
track.setId(recordingTrackId);
track.setName(new DefaultTrackNameFactory(this).newTrackName(
recordingTrackId, startTime));
+ track.setCategory(getDefaultActivityType(this));
isRecording = true;
isMoving = true;
diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java
index 75f28c0c6..c587d951c 100644
--- a/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java
+++ b/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java
@@ -382,6 +382,8 @@ public class TrackRecordingServiceTest
Track track = providerUtils.getTrack(id);
assertNotNull(track);
assertEquals(id, track.getId());
+ assertEquals(sharedPreferences.getString(context.getString(R.string.default_activity_key), ""),
+ track.getCategory());
assertEquals(id, sharedPreferences.getLong(
context.getString(R.string.recording_track_key), -1));
assertEquals(id, service.getRecordingTrackId());