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
@@ -773,9 +773,10 @@ public class TrackRecordingService extends Service {
updateRecordingTrack(track, myTracksProviderUtils.getLastTrackPointId(trackId), false);
}
String trackName = TrackNameUtils.getTrackName(
this, -1L, -1L, myTracksProviderUtils.getFirstValidTrackPoint(trackId));
if (trackName != null) {
String trackName = TrackNameUtils.getTrackName(this, trackId,
track.getTripStatistics().getStartTime(),
myTracksProviderUtils.getFirstValidTrackPoint(trackId));
if (trackName != null && !trackName.equals(track.getName())) {
track.setName(trackName);
myTracksProviderUtils.updateTrack(track);
}
@@ -48,44 +48,39 @@ public class TrackNameUtils {
* @param context the context
* @param trackId the track id
* @param startTime the track start time
* @param location the track location
* @param location the track location, can be null
*/
public static String getTrackName(
Context context, long trackId, long startTime, Location location) {
String trackName = PreferencesUtils.getString(context, R.string.track_name_key,
PreferencesUtils.TRACK_NAME_DEFAULT);
String trackName = PreferencesUtils.getString(
context, R.string.track_name_key, PreferencesUtils.TRACK_NAME_DEFAULT);
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))) {
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, Locale.US);
return dateFormat.format(startTime);
return new SimpleDateFormat(ISO_8601_FORMAT, Locale.US).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
context.getString(R.string.settings_recording_track_name_date_iso_8601_location_value))) {
StringBuffer value = new StringBuffer(
new SimpleDateFormat(ISO_8601_FORMAT, Locale.US).format(startTime));
if (location != null) {
return getReverseGeoCoding(context, location);
} else {
// Use the startTime if available
if (startTime != -1L) {
return StringUtils.formatDateTime(context, startTime);
String address = getReverseGeoCoding(context, location);
if (address != null && !address.equals("")) {
value.append(" " + address);
}
return null;
}
return value.toString();
} else {
// R.string.settings_recording_track_name_number_value)
return context.getString(R.string.track_name_format, trackId);
}
}