summaryrefslogtreecommitdiff
path: root/android-app/app/src/main/res
diff options
context:
space:
mode:
Diffstat (limited to 'android-app/app/src/main/res')
-rw-r--r--android-app/app/src/main/res/layout/fragment_pretrip_report.xml246
-rw-r--r--android-app/app/src/main/res/layout/item_condition_column.xml44
2 files changed, 231 insertions, 59 deletions
diff --git a/android-app/app/src/main/res/layout/fragment_pretrip_report.xml b/android-app/app/src/main/res/layout/fragment_pretrip_report.xml
index d7ede49..5f3fb67 100644
--- a/android-app/app/src/main/res/layout/fragment_pretrip_report.xml
+++ b/android-app/app/src/main/res/layout/fragment_pretrip_report.xml
@@ -1,32 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+<ScrollView
+ xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="?attr/colorSurface">
+ android:background="?attr/colorBackground">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
- android:padding="24dp">
+ android:padding="16dp">
+ <!-- ── Title ──────────────────────────────────────────────── -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="Pre-Trip Planning"
- android:textSize="24sp"
- android:textStyle="bold"
+ android:text="Departure Briefing"
+ android:textAppearance="?attr/textAppearanceHeadlineSmall"
android:layout_marginBottom="16dp" />
- <!-- Boat Config (Simple for now) -->
+ <!-- ── Boat selector ──────────────────────────────────────── -->
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginBottom="24dp"
- app:cardCornerRadius="12dp"
- app:strokeWidth="1dp"
- app:strokeColor="?attr/colorOutlineVariant">
+ android:layout_marginBottom="12dp"
+ app:cardElevation="2dp"
+ app:cardCornerRadius="12dp">
<LinearLayout
android:layout_width="match_parent"
@@ -37,108 +37,236 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="Vessel Profile"
- android:textStyle="bold"
+ android:text="VESSEL"
+ android:textSize="11sp"
+ android:textAllCaps="true"
+ android:letterSpacing="0.12"
+ android:textColor="?attr/colorOnSurfaceVariant"
android:layout_marginBottom="8dp" />
+ <com.google.android.material.chip.ChipGroup
+ android:id="@+id/chip_group_boats"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:singleSelection="true"
+ app:selectionRequired="true" />
+
+ </LinearLayout>
+ </com.google.android.material.card.MaterialCardView>
+
+ <!-- ── Generate button + progress ─────────────────────────── -->
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:gravity="center_vertical"
+ android:layout_marginBottom="16dp">
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/btn_generate_pretrip"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="Refresh Briefing" />
+
+ <ProgressBar
+ android:id="@+id/progress_pretrip"
+ android:layout_width="32dp"
+ android:layout_height="32dp"
+ android:layout_marginStart="12dp"
+ android:visibility="gone" />
+ </LinearLayout>
+
+ <!-- ── Conditions window ───────────────────────────────────── -->
+ <com.google.android.material.card.MaterialCardView
+ android:id="@+id/card_conditions"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="12dp"
+ android:visibility="gone"
+ app:cardElevation="2dp"
+ app:cardCornerRadius="12dp">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="16dp">
+
<TextView
- android:id="@+id/tv_vessel_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="35ft Sloop (Monohull)"
- android:textSize="14sp" />
+ android:text="CONDITIONS WINDOW"
+ android:textSize="11sp"
+ android:textAllCaps="true"
+ android:letterSpacing="0.12"
+ android:textColor="?attr/colorOnSurfaceVariant"
+ android:layout_marginBottom="12dp" />
+
+ <!-- 4-column table built programmatically -->
+ <LinearLayout
+ android:id="@+id/conditions_table"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
- <!-- Report Content -->
+ <!-- ── Route projection ────────────────────────────────────── -->
<com.google.android.material.card.MaterialCardView
- android:id="@+id/card_report"
+ android:id="@+id/card_route"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_marginBottom="12dp"
android:visibility="gone"
- app:cardCornerRadius="16dp"
- app:cardElevation="4dp">
+ app:cardElevation="2dp"
+ app:cardCornerRadius="12dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
- android:padding="20dp">
+ android:padding="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="Weather Summary"
- android:textStyle="bold"
- android:textSize="18sp"
+ android:text="ROUTE PROJECTION"
+ android:textSize="11sp"
+ android:textAllCaps="true"
+ android:letterSpacing="0.12"
+ android:textColor="?attr/colorOnSurfaceVariant"
android:layout_marginBottom="8dp" />
<TextView
- android:id="@+id/tv_weather_summary"
+ android:id="@+id/tv_route"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:textSize="16sp"
- android:layout_marginBottom="16dp" />
+ android:textAppearance="?attr/textAppearanceBodyMedium"
+ android:lineSpacingMultiplier="1.3" />
- <View
- android:layout_width="match_parent"
- android:layout_height="1dp"
- android:background="?attr/colorOutlineVariant"
- android:layout_marginBottom="16dp" />
+ </LinearLayout>
+ </com.google.android.material.card.MaterialCardView>
+
+ <!-- ── Sail plan ───────────────────────────────────────────── -->
+ <com.google.android.material.card.MaterialCardView
+ android:id="@+id/card_sail_plan"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="12dp"
+ android:visibility="gone"
+ app:cardElevation="2dp"
+ app:cardCornerRadius="12dp">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="Routing Suggestion"
- android:textStyle="bold"
- android:textSize="18sp"
+ android:text="SAIL PLAN"
+ android:textSize="11sp"
+ android:textAllCaps="true"
+ android:letterSpacing="0.12"
+ android:textColor="?attr/colorOnSurfaceVariant"
android:layout_marginBottom="8dp" />
<TextView
- android:id="@+id/tv_routing_content"
+ android:id="@+id/tv_sail_plan"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:textSize="16sp"
- android:layout_marginBottom="16dp" />
+ android:textAppearance="?attr/textAppearanceBodyMedium"
+ android:lineSpacingMultiplier="1.4" />
- <View
- android:layout_width="match_parent"
- android:layout_height="1dp"
- android:background="?attr/colorOutlineVariant"
- android:layout_marginBottom="16dp" />
+ </LinearLayout>
+ </com.google.android.material.card.MaterialCardView>
+
+ <!-- ── Watch list ──────────────────────────────────────────── -->
+ <com.google.android.material.card.MaterialCardView
+ android:id="@+id/card_watchlist"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="12dp"
+ android:visibility="gone"
+ app:cardElevation="2dp"
+ app:cardCornerRadius="12dp"
+ app:strokeColor="?attr/colorError"
+ app:strokeWidth="1dp">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="Sail Plan"
- android:textStyle="bold"
- android:textSize="18sp"
+ android:text="WATCH FOR"
+ android:textSize="11sp"
+ android:textAllCaps="true"
+ android:letterSpacing="0.12"
+ android:textColor="?attr/colorOnSurfaceVariant"
android:layout_marginBottom="8dp" />
<TextView
- android:id="@+id/tv_sail_plan_content"
+ android:id="@+id/tv_watchlist"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:textSize="16sp" />
+ android:textAppearance="?attr/textAppearanceBodyMedium"
+ android:lineSpacingMultiplier="1.5" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
- <com.google.android.material.button.MaterialButton
- android:id="@+id/btn_generate_pretrip"
+ <!-- ── Similar trips ───────────────────────────────────────── -->
+ <com.google.android.material.card.MaterialCardView
+ android:id="@+id/card_similar"
android:layout_width="match_parent"
- android:layout_height="60dp"
- android:layout_marginTop="24dp"
- android:text="GENERATE PRE-TRIP REPORT" />
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="12dp"
+ android:visibility="gone"
+ app:cardElevation="2dp"
+ app:cardCornerRadius="12dp">
- <ProgressBar
- android:id="@+id/progress_pretrip"
- android:layout_width="wrap_content"
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="16dp">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="SIMILAR TRIPS"
+ android:textSize="11sp"
+ android:textAllCaps="true"
+ android:letterSpacing="0.12"
+ android:textColor="?attr/colorOnSurfaceVariant"
+ android:layout_marginBottom="8dp" />
+
+ <TextView
+ android:id="@+id/tv_similar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="?attr/textAppearanceBodyMedium"
+ android:lineSpacingMultiplier="1.3" />
+
+ </LinearLayout>
+ </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:layout_gravity="center"
- android:layout_marginTop="16dp"
- android:visibility="gone" />
+ android:visibility="gone"
+ android:textColor="?attr/colorError"
+ android:textAppearance="?attr/textAppearanceBodyMedium" />
</LinearLayout>
</ScrollView>
diff --git a/android-app/app/src/main/res/layout/item_condition_column.xml b/android-app/app/src/main/res/layout/item_condition_column.xml
new file mode 100644
index 0000000..1ffcd55
--- /dev/null
+++ b/android-app/app/src/main/res/layout/item_condition_column.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:orientation="vertical"
+ android:gravity="center_horizontal"
+ android:padding="4dp">
+
+ <TextView
+ android:id="@+id/col_label"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="10sp"
+ android:textAllCaps="true"
+ android:letterSpacing="0.08"
+ android:textColor="?attr/colorOnSurfaceVariant"
+ android:layout_marginBottom="4dp" />
+
+ <TextView
+ android:id="@+id/col_wind"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?attr/textAppearanceTitleMedium"
+ android:layout_marginBottom="2dp" />
+
+ <TextView
+ android:id="@+id/col_wind_dir"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?attr/textAppearanceBodySmall"
+ android:textColor="?attr/colorOnSurfaceVariant"
+ android:layout_marginBottom="4dp" />
+
+ <TextView
+ android:id="@+id/col_sky"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="10sp"
+ android:textColor="?attr/colorOnSurfaceVariant"
+ android:gravity="center" />
+
+</LinearLayout>