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_date_local_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>
</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_date_iso_8601_location_value</item>
<item>@string/settings_recording_track_name_number_value</item>
</string-array>
<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_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_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_location_value">LOCATION</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)">
GPS accuracy
</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"
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.
@@ -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);
}
}