summaryrefslogtreecommitdiff
path: root/android-app/app/src/main/res/values
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-03-23 04:16:32 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-03-23 04:16:32 +0000
commit77892d354eda07d98e2dfa5d00fca1ed1f808d8b (patch)
tree53c05f944d616eef5cbc3ee667ad6beb18665d23 /android-app/app/src/main/res/values
parentf024a6a1cbcb68395fe1a15d4ac852c2be2416e6 (diff)
feat: refactor UI to BottomNavigationView with Safety and Doc fragments
Replace FAB-based navigation with a 4-tab BottomNavigationView (Map, Instruments, Log, Safety). Instruments use a collapsible bottom sheet; Log and Safety display as full-screen overlay fragments. - Add SafetyFragment with MOB and Anchor Watch controls - Add DocFragment for in-app markdown help (Markwon: core, tables, images) - Add layout_instruments_sheet with 3x3 instrument grid and PolarDiagramView - Add fragment_safety and fragment_doc layouts - Add vector drawables: ic_map, ic_instruments, ic_log, ic_safety, ic_close - Update activity_main.xml to CoordinatorLayout with bottom sheet + overlay - Fix: set isHideable=true before STATE_HIDDEN to avoid silent no-op from behavior_hideable=false default; restore false on Map/Instruments tabs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'android-app/app/src/main/res/values')
-rwxr-xr-xandroid-app/app/src/main/res/values/colors.xml57
-rwxr-xr-xandroid-app/app/src/main/res/values/themes.xml81
2 files changed, 79 insertions, 59 deletions
diff --git a/android-app/app/src/main/res/values/colors.xml b/android-app/app/src/main/res/values/colors.xml
index 43e0076..b380d2d 100755
--- a/android-app/app/src/main/res/values/colors.xml
+++ b/android-app/app/src/main/res/values/colors.xml
@@ -1,28 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
- <color name="purple_200">#FFBB86FC</color>
- <color name="purple_500">#FF6200EE</color>
- <color name="purple_700">#FF3700B3</color>
- <color name="teal_200">#FF03DAC5</color>
- <color name="teal_700">#FF018786</color>
+ <!-- M3 Color Palette -->
+ <color name="md_theme_primary">#005FB0</color>
+ <color name="md_theme_onPrimary">#FFFFFF</color>
+ <color name="md_theme_primaryContainer">#D6E3FF</color>
+ <color name="md_theme_onPrimaryContainer">#001B3E</color>
+
+ <color name="md_theme_secondary">#565F71</color>
+ <color name="md_theme_onSecondary">#FFFFFF</color>
+ <color name="md_theme_secondaryContainer">#DAE2F9</color>
+ <color name="md_theme_onSecondaryContainer">#131C2C</color>
+
+ <color name="md_theme_error">#BA1A1A</color>
+ <color name="md_theme_onError">#FFFFFF</color>
+ <color name="md_theme_errorContainer">#FFDAD6</color>
+ <color name="md_theme_onErrorContainer">#410002</color>
+
+ <color name="md_theme_background">#FDFBFF</color>
+ <color name="md_theme_onBackground">#1A1C1E</color>
+ <color name="md_theme_surface">#FDFBFF</color>
+ <color name="md_theme_onSurface">#1A1C1E</color>
+ <color name="md_theme_surfaceVariant">#E0E2EC</color>
+ <color name="md_theme_onSurfaceVariant">#44474E</color>
+ <color name="md_theme_outline">#74777F</color>
+
+ <!-- Legacy / Functional Colors -->
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
-
- <!-- Maritime theme colors -->
- <color name="primary">#0D47A1</color>
+ <color name="primary">#005FB0</color>
<color name="primary_dark">#002171</color>
<color name="accent">#FF6D00</color>
- <color name="surface">#FFFFFF</color>
- <color name="on_primary">#FFFFFF</color>
- <!-- Colors for instrument display -->
- <color name="instrument_text_normal">#FFFFFFFF</color>
- <color name="instrument_text_secondary">#B3FFFFFF</color>
- <color name="instrument_text_alarm">#FFFF0000</color>
- <color name="instrument_text_stale">#FFFFFF00</color>
- <color name="instrument_background">#E61E1E1E</color>
- <color name="mob_button_background">#FFD70000</color>
- <color name="anchor_button_background">#3F51B5</color>
+ <!-- Instrument Specific -->
+ <color name="instrument_text_normal">#1A1C1E</color>
+ <color name="instrument_text_secondary">#44474E</color>
+ <color name="instrument_text_alarm">#BA1A1A</color>
+ <color name="instrument_text_stale">#74777F</color>
+ <color name="instrument_background">#FDFBFF</color>
+ <color name="instrument_card_background">#F1F4F9</color>
+
+ <color name="mob_button_background">#BA1A1A</color>
+ <color name="anchor_button_background">#005FB0</color>
<!-- Wind overlay colors -->
<color name="wind_arrow">#FFFFFFFF</color>
@@ -30,12 +48,11 @@
<color name="wind_medium">#FF9800</color>
<color name="wind_strong">#F44336</color>
- <!-- Night Vision Mode Colors -->
+ <!-- Night Vision Mode (Stays Red) -->
<color name="night_red_primary">#FFFF0000</color>
<color name="night_red_variant">#FFBB0000</color>
<color name="night_on_red">#FF000000</color>
<color name="night_background">#FF000000</color>
- <color name="night_on_background">#FFFF0000</color>
<color name="night_surface">#FF110000</color>
<color name="night_on_surface">#FFFF0000</color>
</resources>
diff --git a/android-app/app/src/main/res/values/themes.xml b/android-app/app/src/main/res/values/themes.xml
index abef4b9..2281d96 100755
--- a/android-app/app/src/main/res/values/themes.xml
+++ b/android-app/app/src/main/res/values/themes.xml
@@ -1,64 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
- <!-- Base application theme. -->
- <style name="Theme.Nav" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
- <item name="colorPrimary">@color/purple_200</item>
- <item name="colorPrimaryVariant">@color/purple_700</item>
- <item name="colorOnPrimary">@color/black</item>
- <item name="colorSecondary">@color/teal_200</item>
- <item name="colorSecondaryVariant">@color/teal_200</item>
- <item name="colorOnSecondary">@color/black</item>
- <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
+ <!-- Base application theme (Material 3) -->
+ <style name="Theme.Nav" parent="Theme.Material3.DayNight.NoActionBar">
+ <item name="colorPrimary">@color/md_theme_primary</item>
+ <item name="colorOnPrimary">@color/md_theme_onPrimary</item>
+ <item name="colorPrimaryContainer">@color/md_theme_primaryContainer</item>
+ <item name="colorOnPrimaryContainer">@color/md_theme_onPrimaryContainer</item>
+
+ <item name="colorSecondary">@color/md_theme_secondary</item>
+ <item name="colorOnSecondary">@color/md_theme_onSecondary</item>
+ <item name="colorSecondaryContainer">@color/md_theme_secondaryContainer</item>
+ <item name="colorOnSecondaryContainer">@color/md_theme_onSecondaryContainer</item>
+
+ <item name="android:colorBackground">@color/md_theme_background</item>
+ <item name="colorSurface">@color/md_theme_surface</item>
+ <item name="colorOnSurface">@color/md_theme_onSurface</item>
+ <item name="colorSurfaceVariant">@color/md_theme_surfaceVariant</item>
+ <item name="colorOnSurfaceVariant">@color/md_theme_onSurfaceVariant</item>
+
+ <item name="colorError">@color/md_theme_error</item>
+ <item name="colorOnError">@color/md_theme_onError</item>
+ <item name="colorErrorContainer">@color/md_theme_errorContainer</item>
+ <item name="colorOnErrorContainer">@color/md_theme_onErrorContainer</item>
+
+ <item name="android:statusBarColor" tools:targetApi="l">?attr/colorSurface</item>
+ <item name="android:windowLightStatusBar">true</item>
</style>
- <!-- Maritime theme (weather/forecast features) -->
- <style name="Theme.NavApp" parent="Theme.MaterialComponents.DayNight.NoActionBar">
- <item name="colorPrimary">@color/primary</item>
- <item name="colorPrimaryDark">@color/primary_dark</item>
- <item name="colorAccent">@color/accent</item>
- <item name="android:statusBarColor">@color/primary_dark</item>
- </style>
-
- <!-- Night Vision Theme -->
- <style name="Theme.Nav.NightVision" parent="Theme.MaterialComponents.NoActionBar">
+ <!-- Night Vision Theme (Stays Dark and Red) -->
+ <style name="Theme.Nav.NightVision" parent="Theme.Material3.DayNight.NoActionBar">
<item name="colorPrimary">@color/night_red_primary</item>
- <item name="colorPrimaryVariant">@color/night_red_variant</item>
<item name="colorOnPrimary">@color/night_on_red</item>
- <item name="colorSecondary">@color/night_red_primary</item>
- <item name="colorSecondaryVariant">@color/night_red_variant</item>
- <item name="colorOnSecondary">@color/night_on_red</item>
<item name="android:colorBackground">@color/night_background</item>
<item name="colorSurface">@color/night_surface</item>
<item name="colorOnSurface">@color/night_on_surface</item>
<item name="android:statusBarColor" tools:targetApi="l">@color/night_background</item>
+ <item name="android:windowLightStatusBar">false</item>
</style>
<!-- Instrument Display Styles -->
- <style name="InstrumentLabel" parent="Widget.AppCompat.TextView">
- <item name="android:layout_width">0dp</item>
- <item name="android:layout_height">wrap_content</item>
- <item name="android:gravity">center</item>
- <item name="android:textColor">@color/instrument_text_normal</item>
+ <style name="InstrumentLabel" parent="android:Widget.TextView">
+ <item name="android:textColor">@color/instrument_text_secondary</item>
<item name="android:textSize">@dimen/text_size_instrument_label</item>
+ <item name="android:textAllCaps">true</item>
+ <item name="android:letterSpacing">0.1</item>
<item name="android:textStyle">bold</item>
- <item name="android:paddingTop">@dimen/instrument_padding</item>
- <item name="android:paddingBottom">@dimen/instrument_padding</item>
</style>
- <style name="InstrumentPrimaryValue" parent="Widget.AppCompat.TextView">
- <item name="android:layout_width">0dp</item>
- <item name="android:layout_height">wrap_content</item>
- <item name="android:gravity">center</item>
+ <style name="InstrumentPrimaryValue" parent="android:Widget.TextView">
<item name="android:textColor">@color/instrument_text_normal</item>
<item name="android:textSize">@dimen/text_size_instrument_primary</item>
<item name="android:textStyle">bold</item>
+ <item name="android:includeFontPadding">false</item>
</style>
- <style name="InstrumentSecondaryLabel" parent="Widget.AppCompat.TextView">
- <item name="android:layout_width">0dp</item>
- <item name="android:layout_height">wrap_content</item>
- <item name="android:gravity">center</item>
- <item name="android:textColor">@color/instrument_text_normal</item>
+ <style name="InstrumentSecondaryLabel" parent="android:Widget.TextView">
+ <item name="android:textColor">@color/instrument_text_secondary</item>
<item name="android:textSize">@dimen/text_size_instrument_secondary</item>
</style>
+
+ <style name="InstrumentCard" parent="Widget.Material3.CardView.Elevated">
+ <item name="cardBackgroundColor">@color/instrument_card_background</item>
+ <item name="cardCornerRadius">12dp</item>
+ <item name="cardElevation">2dp</item>
+ </style>
</resources>