In default track name, add an option for Date + Location

This commit is contained in:
Jimmy Shih
2014-01-13 10:53:40 -08:00
parent 0743835893
commit 3a1e1bc7f8
5 changed files with 35 additions and 28 deletions
@@ -228,12 +228,14 @@ limitations under the License.
<item>@string/settings_recording_track_name_location_option</item> <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_local_option</item>
<item>@string/settings_recording_track_name_date_iso_8601_option</item> <item>@string/settings_recording_track_name_date_iso_8601_option</item>
<item>@string/settings_recording_track_name_date_iso_8601_location_option</item>
<item>@string/settings_recording_track_name_number_option</item> <item>@string/settings_recording_track_name_number_option</item>
</string-array> </string-array>
<string-array name="track_name_values"> <string-array name="track_name_values">
<item>@string/settings_recording_track_name_location_value</item> <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_local_value</item>
<item>@string/settings_recording_track_name_date_iso_8601_value</item> <item>@string/settings_recording_track_name_date_iso_8601_value</item>
<item>@string/settings_recording_track_name_date_iso_8601_location_value</item>
<item>@string/settings_recording_track_name_number_value</item> <item>@string/settings_recording_track_name_number_value</item>
</string-array> </string-array>
<string-array name="waypoint_types"> <string-array name="waypoint_types">
+1
View File
@@ -90,6 +90,7 @@ Google은 이용자에 대한 위치정보의 이용∙제공사실을 위치정
<string name="settings_map_track_color_mode_fixed_value">FIXED</string> <string name="settings_map_track_color_mode_fixed_value">FIXED</string>
<string name="settings_map_track_color_mode_single_value">SINGLE</string> <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_iso_8601_value">DATE_ISO_8601</string>
<string name="settings_recording_track_name_date_iso_8601_location_value">DATE_ISO_8601_LOCATION</string>
<string name="settings_recording_track_name_date_local_value">DATE_LOCAL</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_location_value">LOCATION</string>
<string name="settings_recording_track_name_number_value">NUMBER</string> <string name="settings_recording_track_name_number_value">NUMBER</string>
+8
View File
@@ -1705,6 +1705,14 @@ limitations under the License.
Character limit: ~23 (1 line)"> Character limit: ~23 (1 line)">
GPS accuracy GPS accuracy
</string> </string>
<string name="settings_recording_track_name_date_iso_8601_location_option"
translation_description="In the 'Recording' settings, the option in the 'Default track name'
setting to use the track starting time in the ISO-8601 format and the track starting location
as the default track name.
Character limit: ~20 (1 line)">
Date (ISO 8601) + Location
</string>
<string name="settings_recording_track_name_date_iso_8601_option" <string name="settings_recording_track_name_date_iso_8601_option"
translation_description="In the 'Recording' settings, the option in the 'Default track name' translation_description="In the 'Recording' settings, the option in the 'Default track name'
setting to use the track starting time in the ISO-8601 format as the default track name. setting to use the track starting time in the ISO-8601 format as the default track name.
@@ -773,9 +773,10 @@ public class TrackRecordingService extends Service {
updateRecordingTrack(track, myTracksProviderUtils.getLastTrackPointId(trackId), false); updateRecordingTrack(track, myTracksProviderUtils.getLastTrackPointId(trackId), false);
} }
String trackName = TrackNameUtils.getTrackName( String trackName = TrackNameUtils.getTrackName(this, trackId,
this, -1L, -1L, myTracksProviderUtils.getFirstValidTrackPoint(trackId)); track.getTripStatistics().getStartTime(),
if (trackName != null) { myTracksProviderUtils.getFirstValidTrackPoint(trackId));
if (trackName != null && !trackName.equals(track.getName())) {
track.setName(trackName); track.setName(trackName);
myTracksProviderUtils.updateTrack(track); myTracksProviderUtils.updateTrack(track);
} }
@@ -48,44 +48,39 @@ public class TrackNameUtils {
* @param context the context * @param context the context
* @param trackId the track id * @param trackId the track id
* @param startTime the track start time * @param startTime the track start time
* @param location the track location * @param location the track location, can be null
*/ */
public static String getTrackName( public static String getTrackName(
Context context, long trackId, long startTime, Location location) { Context context, long trackId, long startTime, Location location) {
String trackName = PreferencesUtils.getString(context, R.string.track_name_key, String trackName = PreferencesUtils.getString(
PreferencesUtils.TRACK_NAME_DEFAULT); context, R.string.track_name_key, PreferencesUtils.TRACK_NAME_DEFAULT);
if (trackName.equals( if (trackName.equals(
context.getString(R.string.settings_recording_track_name_location_value))) {
// Use the startTime if location is null
return location != null ? getReverseGeoCoding(context, location)
: StringUtils.formatDateTime(context, startTime);
} else if (trackName.equals(
context.getString(R.string.settings_recording_track_name_date_local_value))) { context.getString(R.string.settings_recording_track_name_date_local_value))) {
if (startTime == -1L) {
return null;
}
return StringUtils.formatDateTime(context, startTime); return StringUtils.formatDateTime(context, startTime);
} else if (trackName.equals( } else if (trackName.equals(
context.getString(R.string.settings_recording_track_name_date_iso_8601_value))) { context.getString(R.string.settings_recording_track_name_date_iso_8601_value))) {
if (startTime == -1L) { return new SimpleDateFormat(ISO_8601_FORMAT, Locale.US).format(startTime);
return null;
}
SimpleDateFormat dateFormat = new SimpleDateFormat(ISO_8601_FORMAT, Locale.US);
return dateFormat.format(startTime);
} else if (trackName.equals( } else if (trackName.equals(
context.getString(R.string.settings_recording_track_name_number_value))) { context.getString(R.string.settings_recording_track_name_date_iso_8601_location_value))) {
if (trackId == -1L) { StringBuffer value = new StringBuffer(
return null; new SimpleDateFormat(ISO_8601_FORMAT, Locale.US).format(startTime));
}
return context.getString(R.string.track_name_format, trackId);
} else {
// trackName equals settings_recording_track_name_location_value or any
// value
if (location != null) { if (location != null) {
return getReverseGeoCoding(context, location); String address = getReverseGeoCoding(context, location);
} else { if (address != null && !address.equals("")) {
// Use the startTime if available value.append(" " + address);
if (startTime != -1L) {
return StringUtils.formatDateTime(context, startTime);
} }
return null;
} }
return value.toString();
} else {
// R.string.settings_recording_track_name_number_value)
return context.getString(R.string.track_name_format, trackId);
} }
} }