diff --git a/src/main/java/de/dennisguse/opentracks/ui/TrackListAdapter.java b/src/main/java/de/dennisguse/opentracks/ui/TrackListAdapter.java index e32aaf332..17ce22ff2 100644 --- a/src/main/java/de/dennisguse/opentracks/ui/TrackListAdapter.java +++ b/src/main/java/de/dennisguse/opentracks/ui/TrackListAdapter.java @@ -31,7 +31,6 @@ import de.dennisguse.opentracks.util.IntentUtils; public class TrackListAdapter extends RecyclerView.Adapter implements ActionMode.Callback { - private static final String TAG = TrackListAdapter.class.getSimpleName(); private final AppCompatActivity context; private final RecyclerView recyclerView; @@ -193,19 +192,25 @@ public class TrackListAdapter extends RecyclerView.Adapter 0 ? View.VISIBLE : View.GONE); - viewBinding.trackListItemMarkerCount.setText(tracksListItem.markerCount() > 0 ? Integer.toString(tracksListItem.markerCount()) : null); + viewBinding.trackListItemDistance.setText(distanceText); + viewBinding.trackListItemDuration.setText(timeText); - if (!recordingStatus.isRecording()) { - ListItemUtils.setDateAndTime(context, viewBinding.trackListItemDate, viewBinding.trackListItemTime, tracksListItem.startTime(), tracksListItem.zoneOffset()); + if (tracksListItem.markerCount() > 0) { + viewBinding.trackListItemDistanceMarkerSeparator.setVisibility(View.VISIBLE); + viewBinding.trackListItemMarkerCountIcon.setVisibility(View.VISIBLE); + viewBinding.trackListItemMarkerCount.setText(Integer.toString(tracksListItem.markerCount())); } else { - viewBinding.trackListItemDate.setText(null); - viewBinding.trackListItemTime.setText(null); + viewBinding.trackListItemDistanceMarkerSeparator.setVisibility(View.GONE); + viewBinding.trackListItemMarkerCountIcon.setVisibility(View.GONE); + viewBinding.trackListItemMarkerCount.setText(null); } + + ListItemUtils.setDateAndTime(context, viewBinding.trackListItemDate, viewBinding.trackListItemTime, tracksListItem.startTime(), tracksListItem.zoneOffset()); + viewBinding.trackListItemActivityTypeLocalized.setText(tracksListItem.activityTypeLocalized()); viewBinding.trackListItemActivityTypeLocalized.setVisibility(TextUtils.isEmpty(tracksListItem.activityTypeLocalized()) ? View.GONE : View.VISIBLE); diff --git a/src/main/java/de/dennisguse/opentracks/ui/util/ListItemUtils.java b/src/main/java/de/dennisguse/opentracks/ui/util/ListItemUtils.java index a272d602c..1a4192902 100644 --- a/src/main/java/de/dennisguse/opentracks/ui/util/ListItemUtils.java +++ b/src/main/java/de/dennisguse/opentracks/ui/util/ListItemUtils.java @@ -17,7 +17,6 @@ package de.dennisguse.opentracks.ui.util; import android.content.Context; -import android.text.TextUtils; import android.widget.TextView; import java.time.Duration; @@ -42,50 +41,30 @@ public class ListItemUtils { private ListItemUtils() { } - /** - * Gets a string for share owner, total time, and total distance. - * - * @param totalTime the total time. Can be null - * @param totalDistance the total distance. Can be null - */ - private static String getTimeDistance(String totalTime, String totalDistance) { - StringBuilder builder = new StringBuilder(); - if (!TextUtils.isEmpty(totalTime)) { - if (builder.length() != 0) { - builder.append(" ‧ "); - } - builder.append(totalTime); + public static String getTimeText(Context context, boolean isRecording, Duration totalTime) { + String timeText; + if (isRecording) { + timeText = context.getString(R.string.generic_recording); + } else { + timeText = StringUtils.formatElapsedTime(totalTime); } - if (!TextUtils.isEmpty(totalDistance)) { - if (builder.length() != 0) { - builder.append(" "); - } - //TODO Use strings.xml - builder.append("(").append(totalDistance).append(")"); - } - return builder.toString(); + return timeText; } - public static String getTimeDistanceText(Context context, UnitSystem unitSystem, boolean isRecording, Duration totalTime, Distance totalDistance, int markerCount) { - String timeDistanceText; - if (isRecording) { - timeDistanceText = context.getString(R.string.generic_recording); - } else { - // Match list_item_time_distance in list_item.xml + public static String getDistanceText(Context context, UnitSystem unitSystem, boolean isRecording, Distance totalDistance) { - String time = StringUtils.formatElapsedTime(totalTime); - String distance = DistanceFormatter.Builder() + StringBuilder builder = new StringBuilder(); + + if (!isRecording) { + String distanceText = DistanceFormatter.Builder() .setUnit(unitSystem) .build(context) .formatDistance(totalDistance); - timeDistanceText = getTimeDistance(time, distance); - if (markerCount > 0) { - timeDistanceText += " ‧"; - } + builder.append("(").append(distanceText).append(")"); } - return timeDistanceText; + return builder.toString(); } public static void setDateAndTime(Context context, TextView dateView, TextView timeView, Instant time, ZoneOffset timeZone) { diff --git a/src/main/res/layout/track_list_item.xml b/src/main/res/layout/track_list_item.xml index 0b12a7fef..4aa48bc16 100644 --- a/src/main/res/layout/track_list_item.xml +++ b/src/main/res/layout/track_list_item.xml @@ -5,8 +5,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/activated_background" - android:paddingTop="8dp" - android:paddingHorizontal="8dp"> + android:paddingHorizontal="8dp" + android:paddingTop="8dp"> @@ -44,14 +44,41 @@ tools:text="2022-02-17" /> - + app:layout_constraintTop_toBottomOf="@id/track_list_item_name"> + + + + + + + + @@ -93,7 +120,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" app:barrierDirection="bottom" - app:constraint_referenced_ids="track_list_item_time_distance,track_list_item_marker_count_icon,track_list_item_marker_count,track_list_item_time" /> + app:constraint_referenced_ids="track_list_item_duration_distance_wrapper,track_list_item_marker_count_icon,track_list_item_marker_count,track_list_item_time" /> + + \ No newline at end of file