Merge heads
@@ -16,7 +16,7 @@ limitations under the License.
|
||||
-->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:installLocation="auto"
|
||||
android:versionCode="42"
|
||||
android:versionCode="43"
|
||||
android:versionName="2.0"
|
||||
package="com.google.android.maps.mytracks" >
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 68 KiB |
@@ -190,11 +190,13 @@ limitations under the License.
|
||||
<item>@string/settings_map_track_color_mode_dynamic_value</item>
|
||||
</string-array>
|
||||
<string-array name="track_name_options">
|
||||
<item>@string/settings_recording_track_name_location_option</item>
|
||||
<item>@string/settings_recording_track_name_date_local_option</item>
|
||||
<item>@string/settings_recording_track_name_date_iso_8601_option</item>
|
||||
<item>@string/settings_recording_track_name_number_option</item>
|
||||
</string-array>
|
||||
<string-array name="track_name_values">
|
||||
<item>@string/settings_recording_track_name_location_value</item>
|
||||
<item>@string/settings_recording_track_name_date_local_value</item>
|
||||
<item>@string/settings_recording_track_name_date_iso_8601_value</item>
|
||||
<item>@string/settings_recording_track_name_number_value</item>
|
||||
|
||||
@@ -35,6 +35,7 @@ limitations under the License.
|
||||
<string name="settings_map_track_color_mode_single_value">SINGLE</string>
|
||||
<string name="settings_recording_track_name_date_iso_8601_value">DATE_ISO_8601</string>
|
||||
<string name="settings_recording_track_name_date_local_value">DATE_LOCAL</string>
|
||||
<string name="settings_recording_track_name_location_value">LOCATION</string>
|
||||
<string name="settings_recording_track_name_number_value">NUMBER</string>
|
||||
<string name="track_action_end">com.google.android.apps.mytracks.END_CURRENT_TRACK</string>
|
||||
<string name="track_action_save">android.intent.action.SAVE</string>
|
||||
|
||||
@@ -363,52 +363,7 @@ limitations under the License.
|
||||
completion suggestion for wind surfing.">
|
||||
wind surfing
|
||||
</string>
|
||||
|
||||
<!-- Android Market -->
|
||||
<string name="android_market_description_text"
|
||||
translation_description="For the Android Market (not used in the app), the description text.
|
||||
|
||||
Character limit: 4000.">
|
||||
Use My Tracks while you walk, run, bike, or do anything else outdoors. It uses the GPS sensor
|
||||
in your phone to record your path and gather useful statistics such as time, speed, distance,
|
||||
and elevation. You can review all of this data live or save it for use later. While recording,
|
||||
you can insert markers, have split markers inserted automatically, and hear periodic voice
|
||||
announcements of your progress.\n
|
||||
\n
|
||||
My Tracks can record data from external sensors:\n
|
||||
- Zephyr HxM Bluetooth heart rate monitor\n
|
||||
- Polar WearLink Bluetooth heart rate monitor\n
|
||||
- ANT+ heart rate monitors (*)\n
|
||||
- Ant+ speed distance monitors (*)\n
|
||||
\n
|
||||
* Requires an ANT+ compatible phone\n
|
||||
\n
|
||||
My Tracks can share your track data:\n
|
||||
- Via Google+, Facebook, or Twitter\n
|
||||
- Using Google Maps, Google Fusion Tables, or Google Docs\n
|
||||
- As a GPX, KML, CSV, or TCX file\n
|
||||
\n
|
||||
Other features:\n
|
||||
- Record in metric (km, m) or imperial (mi, ft) units\n
|
||||
- Display your movement in terms of speed or pace\n
|
||||
\n
|
||||
My Tracks is an open source project. If you like to contribute, please visit:\n
|
||||
\n
|
||||
http://mytracks.googlecode.com\n
|
||||
</string>
|
||||
<string name="android_market_promo_text"
|
||||
translation_description="For the Android Market (not used in the app), the promotion text.
|
||||
|
||||
Character limit: 80.">
|
||||
Record and share your GPS tracks with My Tracks.
|
||||
</string>
|
||||
<string name="android_market_recent_changes_text"
|
||||
translation_description="For the Android Market (not used in the app), the recent changes text.
|
||||
|
||||
Character limit: 500.">
|
||||
Please see the English version for more information.
|
||||
</string>
|
||||
|
||||
|
||||
<!-- Description -->
|
||||
<string name="description_activity_type"
|
||||
translation_description="Activity type description.
|
||||
@@ -1670,6 +1625,13 @@ limitations under the License.
|
||||
Character limit: ~21 (1 line)">
|
||||
Date (local)
|
||||
</string>
|
||||
<string name="settings_recording_track_name_location_option"
|
||||
translation_description="In the 'Recording' settings, the option in the 'Track name' dropdown
|
||||
list to use the track location as the track name.
|
||||
|
||||
Character limit: ~21 (1 line)">
|
||||
Location
|
||||
</string>
|
||||
<string name="settings_recording_track_name_number_option"
|
||||
translation_description="In the 'Recording' settings, the option in the 'Track name' dropdown
|
||||
list to use a number as the track name.
|
||||
@@ -1735,14 +1697,15 @@ limitations under the License.
|
||||
an ANT+ heart rate monitor. Note that ANT+ is a radio standard.
|
||||
|
||||
Character limit: ~26 (1 line)">
|
||||
Reset heart rate monitor
|
||||
Reset heart rate
|
||||
</string>
|
||||
<string name="settings_sensor_ant_reset_speed_distance_monitor"
|
||||
translation_description="In the 'Sensor' settings, under the 'ANT+ options', the option to reset
|
||||
an ANT+ speed distance monitor. Note that ANT+ is a radio standard.
|
||||
an ANT+ stride based speed distance monitor, also known as foot pod. Note that ANT+ is a radio
|
||||
standard.
|
||||
|
||||
Character limit: ~26 (1 line)">
|
||||
Reset speed distance monitor
|
||||
Reset foot pod
|
||||
</string>
|
||||
<string name="settings_sensor_bluetooth_options"
|
||||
translation_description="In the 'Sensor' settings, the section header to configure the Bluetooth
|
||||
|
||||
@@ -17,7 +17,7 @@ limitations under the License.
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:title="@string/settings_recording" >
|
||||
<ListPreference
|
||||
android:defaultValue="@string/settings_recording_track_name_date_local_value"
|
||||
android:defaultValue="@string/settings_recording_track_name_location_value"
|
||||
android:entries="@array/track_name_options"
|
||||
android:entryValues="@array/track_name_values"
|
||||
android:key="@string/track_name_key"
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.google.android.apps.mytracks;
|
||||
|
||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
||||
import com.google.android.apps.mytracks.content.Track;
|
||||
import com.google.android.apps.mytracks.util.TrackNameUtils;
|
||||
import com.google.android.maps.mytracks.R;
|
||||
|
||||
import android.os.Bundle;
|
||||
@@ -95,6 +96,11 @@ public class TrackEditActivity extends AbstractMyTracksActivity {
|
||||
|
||||
Button cancel = (Button) findViewById(R.id.track_edit_cancel);
|
||||
if (getIntent().getBooleanExtra(EXTRA_NEW_TRACK, false)) {
|
||||
String trackName = TrackNameUtils.getTrackName(
|
||||
this, -1L, -1L, myTracksProviderUtils.getLastLocation());
|
||||
if (trackName != null) {
|
||||
name.setText(trackName);
|
||||
}
|
||||
setTitle(R.string.track_edit_new_track_title);
|
||||
cancel.setVisibility(View.GONE);
|
||||
} else {
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
* use this file except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
package com.google.android.apps.mytracks.services;
|
||||
|
||||
import com.google.android.apps.mytracks.util.PreferencesUtils;
|
||||
import com.google.android.apps.mytracks.util.StringUtils;
|
||||
import com.google.android.maps.mytracks.R;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
|
||||
/**
|
||||
* Creates a default track name based on the track name setting.
|
||||
*
|
||||
* @author Matthew Simmons
|
||||
*/
|
||||
public class DefaultTrackNameFactory {
|
||||
|
||||
@VisibleForTesting
|
||||
static final String ISO_8601_FORMAT = "yyyy-MM-dd HH:mm";
|
||||
private final Context context;
|
||||
|
||||
public DefaultTrackNameFactory(Context context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the default track name.
|
||||
*
|
||||
* @param trackId the track id
|
||||
* @param startTime the track start time
|
||||
*/
|
||||
public String getDefaultTrackName(long trackId, long startTime) {
|
||||
String trackNameSetting = getTrackNameSetting();
|
||||
|
||||
if (trackNameSetting.equals(
|
||||
context.getString(R.string.settings_recording_track_name_date_local_value))) {
|
||||
return StringUtils.formatDateTime(context, startTime);
|
||||
} else if (trackNameSetting.equals(
|
||||
context.getString(R.string.settings_recording_track_name_date_iso_8601_value))) {
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat(ISO_8601_FORMAT);
|
||||
return dateFormat.format(startTime);
|
||||
} else {
|
||||
// trackNameSetting equals
|
||||
// R.string.settings_recording_track_name_number_value
|
||||
return context.getString(R.string.track_name_format, trackId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the track name setting.
|
||||
*/
|
||||
@VisibleForTesting
|
||||
String getTrackNameSetting() {
|
||||
return PreferencesUtils.getString(context, R.string.track_name_key,
|
||||
context.getString(R.string.settings_recording_track_name_date_local_value));
|
||||
}
|
||||
}
|
||||
@@ -42,6 +42,7 @@ import com.google.android.apps.mytracks.stats.TripStatisticsBuilder;
|
||||
import com.google.android.apps.mytracks.util.IntentUtils;
|
||||
import com.google.android.apps.mytracks.util.LocationUtils;
|
||||
import com.google.android.apps.mytracks.util.PreferencesUtils;
|
||||
import com.google.android.apps.mytracks.util.TrackNameUtils;
|
||||
import com.google.android.maps.mytracks.R;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
|
||||
@@ -584,8 +585,7 @@ public class TrackRecordingService extends Service {
|
||||
Uri trackUri = providerUtils.insertTrack(track);
|
||||
recordingTrackId = Long.parseLong(trackUri.getLastPathSegment());
|
||||
track.setId(recordingTrackId);
|
||||
track.setName(new DefaultTrackNameFactory(this).getDefaultTrackName(
|
||||
recordingTrackId, startTime));
|
||||
track.setName(TrackNameUtils.getTrackName(this, recordingTrackId, startTime, null));
|
||||
track.setCategory(PreferencesUtils.getString(
|
||||
this, R.string.default_activity_key, PreferencesUtils.DEFAULT_ACTIVITY_DEFAULT));
|
||||
isRecording = true;
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
* Copyright 2010 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
* use this file except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package com.google.android.apps.mytracks.util;
|
||||
|
||||
import com.google.android.maps.mytracks.R;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
|
||||
import android.content.Context;
|
||||
import android.location.Address;
|
||||
import android.location.Geocoder;
|
||||
import android.location.Location;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Utilities for track name.
|
||||
*
|
||||
* @author Matthew Simmons
|
||||
*/
|
||||
public class TrackNameUtils {
|
||||
|
||||
@VisibleForTesting
|
||||
static final String ISO_8601_FORMAT = "yyyy-MM-dd HH:mm";
|
||||
|
||||
private TrackNameUtils() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the track name.
|
||||
*
|
||||
* @param context the context
|
||||
* @param trackId the track id
|
||||
* @param startTime the track start time
|
||||
* @param location the track location
|
||||
*/
|
||||
public static String getTrackName(
|
||||
Context context, long trackId, long startTime, Location location) {
|
||||
String trackName = PreferencesUtils.getString(context, R.string.track_name_key,
|
||||
context.getString(R.string.settings_recording_track_name_location_value));
|
||||
|
||||
if (trackName.equals(
|
||||
context.getString(R.string.settings_recording_track_name_date_local_value))) {
|
||||
if (startTime == -1L) {
|
||||
return null;
|
||||
}
|
||||
return StringUtils.formatDateTime(context, startTime);
|
||||
} else if (trackName.equals(
|
||||
context.getString(R.string.settings_recording_track_name_date_iso_8601_value))) {
|
||||
if (startTime == -1L) {
|
||||
return null;
|
||||
}
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat(ISO_8601_FORMAT);
|
||||
return dateFormat.format(startTime);
|
||||
} else if (trackName.equals(
|
||||
context.getString(R.string.settings_recording_track_name_number_value))) {
|
||||
if (trackId == -1L) {
|
||||
return null;
|
||||
}
|
||||
return context.getString(R.string.track_name_format, trackId);
|
||||
} else {
|
||||
// trackName equals settings_recording_track_name_location_value or any
|
||||
// value
|
||||
if (location != null) {
|
||||
return getReverseGeoCoding(context, location);
|
||||
} else {
|
||||
// assume startTime != -1L when location == null
|
||||
return StringUtils.formatDateTime(context, startTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the reverse geo coding string for a location.
|
||||
*
|
||||
* @param context the context
|
||||
* @param location the location
|
||||
*/
|
||||
private static String getReverseGeoCoding(Context context, Location location) {
|
||||
if (location == null || !Geocoder.isPresent()) {
|
||||
return null;
|
||||
}
|
||||
Geocoder geocoder = new Geocoder(context);
|
||||
try {
|
||||
List<Address> addresses = geocoder.getFromLocation(
|
||||
location.getLatitude(), location.getLongitude(), 1);
|
||||
if (addresses.size() > 0) {
|
||||
Address address = addresses.get(0);
|
||||
int lines = address.getMaxAddressLineIndex();
|
||||
if (lines > 0) {
|
||||
return address.getAddressLine(0);
|
||||
}
|
||||
String featureName = address.getFeatureName();
|
||||
if (featureName != null) {
|
||||
return featureName;
|
||||
}
|
||||
String thoroughfare = address.getThoroughfare();
|
||||
if (thoroughfare != null) {
|
||||
return thoroughfare;
|
||||
}
|
||||
String locality = address.getLocality();
|
||||
if (locality != null) {
|
||||
return locality;
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
// Can safely ignore
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 42 KiB |
@@ -76,6 +76,13 @@ public interface MyTracksProviderUtils {
|
||||
*/
|
||||
boolean updateWaypoint(Waypoint waypoint);
|
||||
|
||||
/**
|
||||
* Finds the first recorded location from the location provider.
|
||||
*
|
||||
* @return the first location, or null if no locations available
|
||||
*/
|
||||
Location getFirstLocation();
|
||||
|
||||
/**
|
||||
* Finds the last recorded location from the location provider.
|
||||
*
|
||||
|
||||
@@ -653,6 +653,11 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Location getFirstLocation() {
|
||||
return findLocationBy("_id=(select min(_id) from trackpoints)");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Location getLastLocation() {
|
||||
return findLocationBy("_id=(select max(_id) from trackpoints)");
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
* use this file except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
package com.google.android.apps.mytracks.services;
|
||||
|
||||
import com.google.android.apps.mytracks.util.StringUtils;
|
||||
import com.google.android.maps.mytracks.R;
|
||||
|
||||
import android.test.AndroidTestCase;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* Tests {@link DefaultTrackNameFactory}
|
||||
*
|
||||
* @author Matthew Simmons
|
||||
*/
|
||||
public class DefaultTrackNameFactoryTest extends AndroidTestCase {
|
||||
|
||||
private static final long TRACK_ID = 1L;
|
||||
private static final long START_TIME = 1288213406000L;
|
||||
|
||||
public void testDefaultTrackName_date_local() {
|
||||
DefaultTrackNameFactory defaultTrackNameFactory = new DefaultTrackNameFactory(getContext()) {
|
||||
@Override
|
||||
String getTrackNameSetting() {
|
||||
return getContext().getString(R.string.settings_recording_track_name_date_local_value);
|
||||
}
|
||||
};
|
||||
assertEquals(StringUtils.formatDateTime(getContext(), START_TIME),
|
||||
defaultTrackNameFactory.getDefaultTrackName(TRACK_ID, START_TIME));
|
||||
}
|
||||
|
||||
public void testDefaultTrackName_date_iso_8601() {
|
||||
DefaultTrackNameFactory defaultTrackNameFactory = new DefaultTrackNameFactory(getContext()) {
|
||||
@Override
|
||||
String getTrackNameSetting() {
|
||||
return getContext().getString(R.string.settings_recording_track_name_date_iso_8601_value);
|
||||
}
|
||||
};
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
|
||||
DefaultTrackNameFactory.ISO_8601_FORMAT);
|
||||
assertEquals(simpleDateFormat.format(new Date(START_TIME)),
|
||||
defaultTrackNameFactory.getDefaultTrackName(TRACK_ID, START_TIME));
|
||||
}
|
||||
|
||||
public void testDefaultTrackName_number() {
|
||||
DefaultTrackNameFactory defaultTrackNameFactory = new DefaultTrackNameFactory(getContext()) {
|
||||
@Override
|
||||
String getTrackNameSetting() {
|
||||
return getContext().getString(R.string.settings_recording_track_name_number_value);
|
||||
}
|
||||
};
|
||||
assertEquals(
|
||||
"Track " + TRACK_ID, defaultTrackNameFactory.getDefaultTrackName(TRACK_ID, START_TIME));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright 2010 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
* use this file except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package com.google.android.apps.mytracks.util;
|
||||
|
||||
import com.google.android.maps.mytracks.R;
|
||||
|
||||
import android.test.AndroidTestCase;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* Tests {@link TrackNameUtils}.
|
||||
*
|
||||
* @author Matthew Simmons
|
||||
*/
|
||||
public class TrackNameUtilsTest extends AndroidTestCase {
|
||||
|
||||
private static final long TRACK_ID = 1L;
|
||||
private static final long START_TIME = 1288213406000L;
|
||||
|
||||
/**
|
||||
* Tests when the track_name_key is
|
||||
* settings_recording_track_name_date_local_value.
|
||||
*/
|
||||
public void testTrackName_date_local() {
|
||||
PreferencesUtils.setString(getContext(), R.string.track_name_key,
|
||||
getContext().getString(R.string.settings_recording_track_name_date_local_value));
|
||||
assertEquals(StringUtils.formatDateTime(getContext(), START_TIME),
|
||||
TrackNameUtils.getTrackName(getContext(), TRACK_ID, START_TIME, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests when the track_name_key is
|
||||
* settings_recording_track_name_date_iso_8601_value.
|
||||
*/
|
||||
public void testTrackName_date_iso_8601() {
|
||||
PreferencesUtils.setString(getContext(), R.string.track_name_key,
|
||||
getContext().getString(R.string.settings_recording_track_name_date_iso_8601_value));
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(TrackNameUtils.ISO_8601_FORMAT);
|
||||
assertEquals(simpleDateFormat.format(new Date(START_TIME)),
|
||||
TrackNameUtils.getTrackName(getContext(), TRACK_ID, START_TIME, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests when the track_name_key is
|
||||
* settings_recording_track_name_number_value.
|
||||
*/
|
||||
public void testTrackName_number() {
|
||||
PreferencesUtils.setString(getContext(), R.string.track_name_key,
|
||||
getContext().getString(R.string.settings_recording_track_name_number_value));
|
||||
assertEquals(
|
||||
"Track " + TRACK_ID, TrackNameUtils.getTrackName(getContext(), TRACK_ID, START_TIME, null));
|
||||
}
|
||||
}
|
||||