From 8233794366939f614a9899a11f2b7093bc32d9b8 Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Tue, 30 Jun 2026 18:46:08 +0000 Subject: feat(fishing): FishingOverlayView card UI and ic_fish vector drawable Co-Authored-By: Claude Sonnet 4.6 --- .../org/terst/nav/ui/fishing/FishingOverlayView.kt | 27 ++++++ android-app/app/src/main/res/drawable/ic_fish.xml | 10 +++ .../src/main/res/layout/view_fishing_overlay.xml | 100 +++++++++++++++++++++ 3 files changed, 137 insertions(+) create mode 100644 android-app/app/src/main/kotlin/org/terst/nav/ui/fishing/FishingOverlayView.kt create mode 100644 android-app/app/src/main/res/drawable/ic_fish.xml create mode 100644 android-app/app/src/main/res/layout/view_fishing_overlay.xml (limited to 'android-app') diff --git a/android-app/app/src/main/kotlin/org/terst/nav/ui/fishing/FishingOverlayView.kt b/android-app/app/src/main/kotlin/org/terst/nav/ui/fishing/FishingOverlayView.kt new file mode 100644 index 0000000..c59c957 --- /dev/null +++ b/android-app/app/src/main/kotlin/org/terst/nav/ui/fishing/FishingOverlayView.kt @@ -0,0 +1,27 @@ +package org.terst.nav.ui.fishing + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.widget.FrameLayout +import android.widget.TextView +import org.terst.nav.R + +class FishingOverlayView @JvmOverloads constructor( + context: Context, attrs: AttributeSet? = null +) : FrameLayout(context, attrs) { + + init { + LayoutInflater.from(context).inflate(R.layout.view_fishing_overlay, this, true) + } + + fun bind(target: FishingTarget) { + findViewById(R.id.tv_fish_species).text = target.rig.primarySpecies.displayName + findViewById(R.id.tv_fish_bearing).text = "%.0f°".format(target.bearingDeg) + findViewById(R.id.tv_fish_zone).text = target.zoneDescription + findViewById(R.id.tv_fish_rig).text = target.rig.rigDescription + findViewById(R.id.tv_fish_speed).text = "Troll %.0f kt".format(target.rig.trollingSpeedKt) + findViewById(R.id.tv_fish_distance).text = "~%.0f nm".format(target.distanceNm) + findViewById(R.id.tv_fish_approach).text = target.rig.approachNote + } +} diff --git a/android-app/app/src/main/res/drawable/ic_fish.xml b/android-app/app/src/main/res/drawable/ic_fish.xml new file mode 100644 index 0000000..c60f701 --- /dev/null +++ b/android-app/app/src/main/res/drawable/ic_fish.xml @@ -0,0 +1,10 @@ + + + + diff --git a/android-app/app/src/main/res/layout/view_fishing_overlay.xml b/android-app/app/src/main/res/layout/view_fishing_overlay.xml new file mode 100644 index 0000000..1084d6a --- /dev/null +++ b/android-app/app/src/main/res/layout/view_fishing_overlay.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3