forked from upstream-mirrors/OpenTracks
3030b4dfd9
This also removes UI updates if a GPS measurement is received as 1s update should be sufficient. Fixes #828.
457 lines
21 KiB
XML
457 lines
21 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
xmlns:tools="http://schemas.android.com/tools"
|
|
style="@style/StatsScrollView">
|
|
|
|
<androidx.constraintlayout.widget.ConstraintLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content">
|
|
|
|
<!-- Guidelines -->
|
|
<androidx.constraintlayout.widget.Guideline
|
|
android:id="@+id/guideline"
|
|
android:layout_width="0dp"
|
|
android:layout_height="0dp"
|
|
android:orientation="vertical"
|
|
app:layout_constraintGuide_begin="8dp" />
|
|
|
|
<androidx.constraintlayout.widget.Guideline
|
|
android:id="@+id/guideline2"
|
|
android:layout_width="0dp"
|
|
android:layout_height="0dp"
|
|
android:orientation="vertical"
|
|
app:layout_constraintGuide_percent="0.5" />
|
|
|
|
<androidx.constraintlayout.widget.Guideline
|
|
android:id="@+id/guideline3"
|
|
android:layout_width="0dp"
|
|
android:layout_height="0dp"
|
|
android:orientation="vertical"
|
|
app:layout_constraintGuide_end="8dp" />
|
|
|
|
<!-- Distance -->
|
|
<TextView
|
|
android:id="@+id/stats_distance_label"
|
|
style="@style/StatsLargeLabel"
|
|
android:text="@string/stats_distance"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline2"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toTopOf="parent" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_distance_value"
|
|
style="@style/StatsLargeValue"
|
|
android:value="@string/value_unknown"
|
|
app:layout_constraintEnd_toStartOf="@id/stats_distance_unit"
|
|
app:layout_constraintHorizontal_chainStyle="packed"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_distance_label"
|
|
tools:text="100" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_distance_unit"
|
|
style="@style/StatsUnit"
|
|
app:layout_constraintBottom_toBottomOf="@id/stats_distance_value"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline2"
|
|
app:layout_constraintStart_toEndOf="@id/stats_distance_value"
|
|
tools:text="km" />
|
|
|
|
<!-- Activity Type -->
|
|
<TextView
|
|
android:id="@+id/stats_activity_type_label"
|
|
style="@style/StatsLargeLabel"
|
|
android:text="@string/track_edit_activity_type_hint"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/guideline2"
|
|
app:layout_constraintTop_toTopOf="parent" />
|
|
|
|
<ImageView
|
|
android:id="@+id/stats_activity_type_icon"
|
|
style="@style/StatsLargeValue"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
app:layout_constraintBottom_toBottomOf="@id/stats_distance_value"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/guideline2"
|
|
app:layout_constraintTop_toTopOf="@id/stats_distance_value"
|
|
app:tint="?android:textColorPrimary" />
|
|
|
|
<!-- Total time -->
|
|
<TextView
|
|
android:id="@+id/stats_total_time_label"
|
|
style="@style/StatsLargeLabel"
|
|
android:text="@string/stats_total_time"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline2"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_distance_value" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_total_time_value"
|
|
style="@style/StatsLargeValue"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline2"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_total_time_label"
|
|
tools:text="00:00:00" />
|
|
|
|
<!-- Moving time -->
|
|
<TextView
|
|
android:id="@+id/stats_moving_time_label"
|
|
style="@style/StatsLargeLabel"
|
|
android:text="@string/stats_moving_time"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintBottom_toBottomOf="@id/stats_total_time_label"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/guideline2"
|
|
app:layout_constraintTop_toTopOf="@id/stats_total_time_label"
|
|
app:layout_constraintVertical_bias="1.0" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_moving_time_value"
|
|
style="@style/StatsLargeValue"
|
|
android:value="@string/value_unknown"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/guideline2"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_moving_time_label"
|
|
tools:text="00:00:00" />
|
|
|
|
<!-- Barrier -->
|
|
<androidx.constraintlayout.widget.Barrier
|
|
android:id="@+id/stats_time_barrier"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
app:barrierDirection="bottom"
|
|
app:constraint_referenced_ids="stats_total_time_value,stats_moving_time_value" />
|
|
|
|
<!-- Horizontal line -->
|
|
<View
|
|
android:id="@+id/stats_speed_horizontal_line"
|
|
style="@style/StatsHorizontalLine"
|
|
android:layout_marginBottom="8dp"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_time_barrier" />
|
|
|
|
<!-- Speed/pace -->
|
|
<TextView
|
|
android:id="@+id/stats_speed_label"
|
|
style="@style/StatsSmallLabel"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline2"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_speed_horizontal_line"
|
|
tools:text="Speed" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_speed_value"
|
|
style="@style/StatsSmallValue"
|
|
android:value="@string/value_unknown"
|
|
app:layout_constraintEnd_toStartOf="@id/stats_speed_unit"
|
|
app:layout_constraintHorizontal_chainStyle="packed"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_speed_label"
|
|
tools:text="30.00" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_speed_unit"
|
|
style="@style/StatsUnit"
|
|
app:layout_constraintBottom_toBottomOf="@id/stats_speed_value"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline2"
|
|
app:layout_constraintStart_toEndOf="@id/stats_speed_value"
|
|
tools:text="km/h" />
|
|
|
|
<!-- Average speed/pace -->
|
|
<TextView
|
|
android:id="@+id/stats_average_speed_label"
|
|
style="@style/StatsSmallLabel"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/guideline2"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_speed_horizontal_line"
|
|
tools:text="Avg. Speed" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_average_speed_value"
|
|
style="@style/StatsSmallValue"
|
|
android:value="@string/value_unknown"
|
|
app:layout_constraintEnd_toStartOf="@id/stats_average_speed_unit"
|
|
app:layout_constraintHorizontal_chainStyle="packed"
|
|
app:layout_constraintStart_toEndOf="@id/guideline2"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_average_speed_label"
|
|
tools:text="30.00" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_average_speed_unit"
|
|
style="@style/StatsUnit"
|
|
app:layout_constraintBottom_toBottomOf="@id/stats_average_speed_value"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/stats_average_speed_value"
|
|
tools:text="km/h" />
|
|
|
|
<!-- Speed max -->
|
|
<TextView
|
|
android:id="@+id/stats_max_speed_label"
|
|
style="@style/StatsSmallLabel"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline2"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_average_speed_value"
|
|
tools:text="Max. Speed" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_max_speed_value"
|
|
style="@style/StatsSmallValue"
|
|
android:value="@string/value_unknown"
|
|
app:layout_constraintEnd_toStartOf="@id/stats_max_speed_unit"
|
|
app:layout_constraintHorizontal_chainStyle="packed"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_max_speed_label"
|
|
tools:text="30.00" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_max_speed_unit"
|
|
style="@style/StatsUnit"
|
|
app:layout_constraintBottom_toBottomOf="@id/stats_max_speed_value"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline2"
|
|
app:layout_constraintStart_toEndOf="@id/stats_max_speed_value"
|
|
tools:text="km/h" />
|
|
|
|
<!-- Moving speed max -->
|
|
<TextView
|
|
android:id="@+id/stats_moving_speed_label"
|
|
style="@style/StatsSmallLabel"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/guideline2"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_average_speed_value"
|
|
tools:text="Max. Moving Speed" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_moving_speed_value"
|
|
style="@style/StatsSmallValue"
|
|
android:value="@string/value_unknown"
|
|
app:layout_constraintEnd_toStartOf="@id/stats_moving_speed_unit"
|
|
app:layout_constraintHorizontal_chainStyle="packed"
|
|
app:layout_constraintStart_toEndOf="@id/guideline2"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_moving_speed_label"
|
|
tools:text="30.00" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_moving_speed_unit"
|
|
style="@style/StatsUnit"
|
|
app:layout_constraintBottom_toBottomOf="@id/stats_moving_speed_value"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/stats_moving_speed_value"
|
|
tools:text="km/h" />
|
|
|
|
<!-- Barrier -->
|
|
<androidx.constraintlayout.widget.Barrier
|
|
android:id="@+id/stats_speed_barrier"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
app:barrierDirection="bottom"
|
|
app:constraint_referenced_ids="stats_max_speed_value,stats_moving_speed_value" />
|
|
|
|
<!-- Horizontal line -->
|
|
<View
|
|
android:id="@+id/stats_altitude_horizontal_line"
|
|
style="@style/StatsHorizontalLine"
|
|
android:layout_marginBottom="8dp"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_speed_barrier" />
|
|
|
|
<!-- altitude -->
|
|
<androidx.constraintlayout.widget.Group
|
|
android:id="@+id/stats_altitude_group"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
app:constraint_referenced_ids="stats_altitude_horizontal_line,stats_altitude_current_label,stats_altitude_current_value,stats_altitude_current_unit,stats_altitude_gain_label,stats_altitude_gain_value,stats_altitude_gain_unit,stats_altitude_loss_label,stats_altitude_loss_value,stats_altitude_loss_unit,@+id/stats_altitude_current_label_egm" />
|
|
|
|
<!-- altitude -->
|
|
<TextView
|
|
android:id="@+id/stats_altitude_current_label"
|
|
style="@style/StatsSmallLabel"
|
|
android:text="@string/stats_altitude"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline2"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_altitude_horizontal_line" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_altitude_current_label_egm"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="0dp"
|
|
android:text="@string/egm2008"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline2"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_altitude_current_value" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_altitude_current_value"
|
|
style="@style/StatsSmallValue"
|
|
android:value="@string/value_unknown"
|
|
app:layout_constraintEnd_toStartOf="@id/stats_altitude_current_unit"
|
|
app:layout_constraintHorizontal_chainStyle="packed"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_altitude_current_label"
|
|
tools:text="100" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_altitude_current_unit"
|
|
style="@style/StatsUnit"
|
|
app:layout_constraintBottom_toBottomOf="@id/stats_altitude_current_value"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline2"
|
|
app:layout_constraintStart_toEndOf="@id/stats_altitude_current_value"
|
|
tools:text="m" />
|
|
|
|
<!-- Altitude gain -->
|
|
<TextView
|
|
android:id="@+id/stats_altitude_gain_label"
|
|
style="@style/StatsSmallLabel"
|
|
android:text="@string/stats_gain"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/guideline2"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_altitude_horizontal_line" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_altitude_gain_value"
|
|
style="@style/StatsSmallValue"
|
|
android:value="@string/value_unknown"
|
|
app:layout_constraintEnd_toStartOf="@id/stats_altitude_gain_unit"
|
|
app:layout_constraintHorizontal_chainStyle="packed"
|
|
app:layout_constraintStart_toEndOf="@id/guideline2"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_altitude_gain_label"
|
|
tools:text="100" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_altitude_gain_unit"
|
|
style="@style/StatsUnit"
|
|
app:layout_constraintBottom_toBottomOf="@id/stats_altitude_gain_value"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/stats_altitude_gain_value"
|
|
tools:text="m" />
|
|
|
|
<!-- Altitude loss -->
|
|
<TextView
|
|
android:id="@+id/stats_altitude_loss_label"
|
|
style="@style/StatsSmallLabel"
|
|
android:text="@string/stats_loss"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/guideline2"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_altitude_gain_value" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_altitude_loss_value"
|
|
style="@style/StatsSmallValue"
|
|
android:value="@string/value_unknown"
|
|
app:layout_constraintEnd_toStartOf="@id/stats_altitude_loss_unit"
|
|
app:layout_constraintHorizontal_chainStyle="packed"
|
|
app:layout_constraintStart_toEndOf="@id/guideline2"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_altitude_loss_label"
|
|
tools:text="100" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_altitude_loss_unit"
|
|
style="@style/StatsUnit"
|
|
app:layout_constraintBottom_toBottomOf="@id/stats_altitude_loss_value"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/stats_altitude_loss_value"
|
|
tools:text="m" />
|
|
|
|
<!-- Coordinate group -->
|
|
<androidx.constraintlayout.widget.Group
|
|
android:id="@+id/stats_coordinate_group"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
app:constraint_referenced_ids="stats_latitude_label,stats_latitude_value,stats_longitude_label,stats_longitude_value,stats_coordinate_horizontal_line" />
|
|
|
|
<!-- Barrier -->
|
|
<androidx.constraintlayout.widget.Barrier
|
|
android:id="@+id/stats_altitude_barrier"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
app:barrierDirection="bottom"
|
|
app:constraint_referenced_ids="stats_altitude_current_value,stats_altitude_gain_value,stats_altitude_loss_value" />
|
|
|
|
<!-- Horizontal line -->
|
|
<View
|
|
android:id="@+id/stats_coordinate_horizontal_line"
|
|
style="@style/StatsHorizontalLine"
|
|
android:layout_marginBottom="8dp"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_altitude_barrier" />
|
|
|
|
<!-- Latitude -->
|
|
<TextView
|
|
android:id="@+id/stats_latitude_label"
|
|
style="@style/StatsSmallLabel"
|
|
android:text="@string/stats_latitude"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline2"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_coordinate_horizontal_line" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_latitude_value"
|
|
style="@style/StatsSmallValue"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline2"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_latitude_label"
|
|
tools:text="0.834937848" />
|
|
|
|
<!-- Longitude -->
|
|
<TextView
|
|
android:id="@+id/stats_longitude_label"
|
|
style="@style/StatsSmallLabel"
|
|
android:text="@string/stats_longitude"
|
|
app:layout_constrainedWidth="true"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/guideline2"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_coordinate_horizontal_line" />
|
|
|
|
<TextView
|
|
android:id="@+id/stats_longitude_value"
|
|
style="@style/StatsSmallValue"
|
|
android:value="@string/value_unknown"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/guideline2"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_longitude_label"
|
|
tools:text="0.834937848" />
|
|
|
|
<!-- Barrier -->
|
|
<androidx.constraintlayout.widget.Barrier
|
|
android:id="@+id/stats_location_barrier"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
app:barrierDirection="bottom"
|
|
app:constraint_referenced_ids="stats_latitude_value,stats_longitude_value" />
|
|
|
|
<!-- Horizontal line -->
|
|
<View
|
|
android:id="@+id/stats_sensor_horizontal_line"
|
|
style="@style/StatsHorizontalLine"
|
|
android:layout_marginBottom="8dp"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_location_barrier" />
|
|
|
|
<!-- Sensors data -->
|
|
<androidx.recyclerview.widget.RecyclerView
|
|
android:id="@+id/stats_sensors_recycler_view"
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
app:layout_constraintEnd_toStartOf="@id/guideline3"
|
|
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
app:layout_constraintTop_toBottomOf="@id/stats_sensor_horizontal_line" />
|
|
|
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
</ScrollView> |