diff options
Diffstat (limited to 'android-app/app/src/main/res/layout')
| -rw-r--r-- | android-app/app/src/main/res/layout/fragment_trip_report.xml | 190 |
1 files changed, 173 insertions, 17 deletions
diff --git a/android-app/app/src/main/res/layout/fragment_trip_report.xml b/android-app/app/src/main/res/layout/fragment_trip_report.xml index c8092ba..ec3f58e 100644 --- a/android-app/app/src/main/res/layout/fragment_trip_report.xml +++ b/android-app/app/src/main/res/layout/fragment_trip_report.xml @@ -18,48 +18,204 @@ android:text="Trip Report" android:textSize="24sp" android:textStyle="bold" - android:layout_marginBottom="24dp" + android:layout_marginBottom="20dp" android:longClickable="true" /> - <com.google.android.material.card.MaterialCardView + <!-- Structured content (hidden in pirate mode) --> + <LinearLayout + android:id="@+id/layout_structured_content" android:layout_width="match_parent" android:layout_height="wrap_content" - app:cardCornerRadius="16dp" - app:cardElevation="4dp" - app:strokeWidth="1dp" - app:strokeColor="?attr/colorOutlineVariant"> + android:orientation="vertical" + android:visibility="gone"> + + <!-- Passage header: date + time range --> + <TextView + android:id="@+id/tv_passage_date" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="13sp" + android:textAllCaps="true" + android:letterSpacing="0.1" + android:alpha="0.6" + android:layout_marginBottom="2dp" /> + + <TextView + android:id="@+id/tv_passage_time" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="17sp" + android:layout_marginBottom="20dp" /> + + <!-- Stats row: distance · avg · max --> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:layout_marginBottom="16dp"> + + <LinearLayout + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:orientation="vertical" + android:gravity="center_horizontal"> + <TextView + android:id="@+id/tv_stat_distance" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="34sp" + android:textStyle="bold" /> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="nm" + android:textSize="11sp" + android:alpha="0.55" /> + </LinearLayout> + + <LinearLayout + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:orientation="vertical" + android:gravity="center_horizontal"> + <TextView + android:id="@+id/tv_stat_avg" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="34sp" + android:textStyle="bold" /> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="avg kt" + android:textSize="11sp" + android:alpha="0.55" /> + </LinearLayout> + + <LinearLayout + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:orientation="vertical" + android:gravity="center_horizontal"> + <TextView + android:id="@+id/tv_stat_max" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="34sp" + android:textStyle="bold" /> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="max kt" + android:textSize="11sp" + android:alpha="0.55" /> + </LinearLayout> + + </LinearLayout> + + <!-- Conditions row (seas / temp) — hidden if no data --> + <LinearLayout + android:id="@+id/layout_conditions" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:layout_marginBottom="20dp" + android:visibility="gone"> + + <TextView + android:id="@+id/tv_conditions" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="14sp" + android:alpha="0.7" /> + + </LinearLayout> + <!-- Divider before log --> + <View + android:id="@+id/divider_log" + android:layout_width="match_parent" + android:layout_height="1dp" + android:background="?attr/colorOutlineVariant" + android:visibility="gone" /> + + <!-- Log entries — hidden if none --> <LinearLayout + android:id="@+id/layout_log_section" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" - android:padding="16dp"> + android:layout_marginTop="16dp" + android:visibility="gone"> <TextView - android:id="@+id/tv_narrative_content" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="LOG" + android:textSize="11sp" + android:textAllCaps="true" + android:letterSpacing="0.12" + android:alpha="0.5" + android:layout_marginBottom="8dp" /> + + <LinearLayout + android:id="@+id/ll_log_entries" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="Generate a report to see your passage summary…" - android:textSize="15sp" - android:fontFamily="monospace" - android:lineSpacingExtra="4dp" /> + android:orientation="vertical" /> </LinearLayout> + + </LinearLayout> + + <!-- Pirate mode: monospace narrative card --> + <com.google.android.material.card.MaterialCardView + android:id="@+id/cv_pirate" + android:layout_width="match_parent" + android:layout_height="wrap_content" + app:cardCornerRadius="16dp" + app:cardElevation="0dp" + app:strokeWidth="1dp" + app:strokeColor="?attr/colorOutlineVariant" + android:visibility="gone"> + + <TextView + android:id="@+id/tv_narrative_content" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:padding="16dp" + android:textSize="14sp" + android:fontFamily="monospace" + android:lineSpacingExtra="4dp" /> + </com.google.android.material.card.MaterialCardView> + <!-- Error state --> + <TextView + android:id="@+id/tv_error" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textSize="14sp" + android:alpha="0.7" + android:layout_marginBottom="16dp" + android:visibility="gone" /> + <com.google.android.material.button.MaterialButton - android:id="@+id/btn_refresh_report" + android:id="@+id/btn_retry" android:layout_width="match_parent" - android:layout_height="60dp" - android:layout_marginTop="24dp" - android:text="GENERATE REPORT" /> + android:layout_height="wrap_content" + android:text="RETRY" + android:visibility="gone" /> <ProgressBar android:id="@+id/progress_report" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:layout_marginTop="16dp" + android:layout_marginTop="48dp" android:visibility="gone" /> </LinearLayout> |
