From cc4d57bc0ce994309a73b7bb75f088aac7b5834c Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Thu, 10 Nov 2011 16:26:30 -0800 Subject: [PATCH] merge heads --- MyTracks/res/values/keys.xml | 1 + MyTracks/res/values/strings.xml | 10 +++ MyTracks/res/xml/preferences.xml | 6 ++ .../mytracks/AutoCompleteTextPreference.java | 64 +++++++++++++++++++ .../services/TrackRecordingService.java | 6 ++ .../services/TrackRecordingServiceTest.java | 2 + 6 files changed, 89 insertions(+) create mode 100644 MyTracks/src/com/google/android/apps/mytracks/AutoCompleteTextPreference.java diff --git a/MyTracks/res/values/keys.xml b/MyTracks/res/values/keys.xml index f7fa7e4ed..2afe45313 100644 --- a/MyTracks/res/values/keys.xml +++ b/MyTracks/res/values/keys.xml @@ -25,6 +25,7 @@ limitations under the License. bluetoothDevice bluetoothPairing bluetoothSensor + defaultActivity defaultMapPublic maxRecordingDistance metricUnits diff --git a/MyTracks/res/values/strings.xml b/MyTracks/res/values/strings.xml index d4588fa5a..dfced7cff 100644 --- a/MyTracks/res/values/strings.xml +++ b/MyTracks/res/values/strings.xml @@ -871,6 +871,16 @@ limitations under the License. recording will not be resumed after phone reboot."> Maximum time after which a previously recording track will not be resumed on phone reboot + + Default activity type + + + Default activity type for a new track. + 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());