Commit Graph
125 Commits
Author SHA1 Message Date
Davide FerrariandClaude Opus 4.5 ea511f3c42 docs: reorganize gallery into two rows of 4 images
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 17:29:53 +01:00
Davide FerrariandClaude Opus 4.5 521e1cc881 fix: create debug keystore on CI when secrets not configured
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 17:25:31 +01:00
Davide FerrariandClaude Opus 4.5 1939b69698 fix: handle empty env vars in release signing config
The signing config now properly falls back to debug keystore when
KEYSTORE_BASE64 is set but empty (as happens in CI without secrets).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 17:18:51 +01:00
Davide FerrariandClaude Opus 4.5 63ca2295b0 chore: release v0.6.0
- Bump version to 0.6.0 (versionCode 7)
- Update repository URLs to github.com/vide/matedroid
- First public GitHub release with automated APK builds

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 17:10:37 +01:00
Davide Ferrari 5da3fcc4c5 feat: show version number at bottom of Settings screen v0.5.1 2025-12-22 14:41:30 +01:00
Davide Ferrari 4c9751b329 chore: release v0.5.0 v0.5.0 2025-12-22 14:36:48 +01:00
Davide Ferrari 24e00f40fa fix: recognize Nova19/Helix19 as same Highland M3 wheel (fallback to W38A) 2025-12-22 14:23:13 +01:00
Davide Ferrari 4f5deb9b0e feat: add Highland M3 Helix19 wheel detection (fallback to W38A) 2025-12-22 14:14:42 +01:00
Davide Ferrari 47c6f0a1d4 fix: show 'Model Y/3/S/X' when car name is empty 2025-12-22 13:44:20 +01:00
Davide Ferrari 794ff6c435 chore: ignore logo source files 2025-12-22 13:41:40 +01:00
Davide Ferrari d4012e91b5 feat: add Model Y Juniper Crossflow19 wheel support
- Add Crossflow19 wheel mapping (WY19P) for Juniper MY
- Download 3 new car images with Crossflow19 wheels
- Update ASSETS.md documentation
- Fix app icon centering
2025-12-22 13:41:26 +01:00
Davide Ferrari 218205df40 feat: add MateDroid logo as app icon 2025-12-22 13:10:22 +01:00
Davide Ferrari edb1dac9a4 feat: add GitHub Actions workflow for release builds
- Build APK automatically when a release is published
- Upload APK as release asset
- Support custom keystore signing via GitHub secrets
- Fall back to debug signing when secrets not configured
2025-12-22 11:52:28 +01:00
Davide FerrariandClaude Opus 4.5 cc5222c216 fix: allow unsecure HTTP connections to TeslamateApi
Changed android:usesCleartextTraffic from false to true in the
AndroidManifest to allow HTTP (non-HTTPS) connections to Teslamate
servers running on local networks without TLS.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
v0.4.0
2025-12-22 10:06:14 +01:00
Davide FerrariandClaude Opus 4.5 a20cfe447e fix: apply default 7-day filter on charges/drives screens
Remove auto-load from setCarId to prevent race condition where
all data was loaded before the date filter was applied.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 00:00:20 +01:00
Davide FerrariandClaude Opus 4.5 82b1addc7b docs: add multi-car support to changelog
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 23:57:48 +01:00
Davide FerrariandClaude Opus 4.5 81b70315b7 feat: add multi-car support
- Show dropdown arrow next to car name when multiple cars available
- Tap car name to open vehicle selector dialog
- Selecting a different car resets and refreshes all data
- Dialog shows all cars with checkmark on selected one

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 23:56:55 +01:00
Davide FerrariandClaude Opus 4.5 1d857030cc docs: simplify changelog, focus on user-visible features
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 23:44:17 +01:00
Davide FerrariandClaude Opus 4.5 590f48761b refactor: redesign tire pressure display to be more compact
- Replace bulky car silhouette with minimalist Tesla outline
- Use colored dots (green=OK, yellow=warning) next to pressure values
- Reduce vertical height from 100dp to 56dp
- Cleaner layout with values on sides, car shape in center
- Add mockups/ to gitignore

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 23:42:13 +01:00
Davide FerrariandClaude Opus 4.5 b8a26406ef fix: filter 0 km drives and convert certificate to toggle
- Add distance filter: drives < 0.1 km are now also hidden
- Convert certificate checkbox to toggle switch for consistency
- Update info dialog to mention distance filter

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 23:22:48 +01:00
Davide FerrariandClaude Opus 4.5 9192e5e99c fix: use car color palette for location card
Match the styling of other dashboard cards by using the palette's
surface and accent colors instead of default Material colors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 23:19:22 +01:00
Davide FerrariandClaude Opus 4.5 a0bf3f2b98 feat: add display setting to show/hide short drives and charges
- Add "Show short drives / charges" toggle in settings (disabled by default)
- Hide drives under 1 minute and charges <= 0.1 kWh from lists when disabled
- Short entries still included in totals, averages, and chart data
- Add info tooltip explaining the setting behavior
- Remove "(less secure)" text from certificate option

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 23:15:16 +01:00
Davide Ferrari bd4db48b7e fix: add chevrons to nav buttons and fix pull-to-refresh
- Add chevron arrows to all 4 navigation buttons in Vehicle Info card
- Fix pull-to-refresh indicator staying visible after refresh completes
  (was caused by loadCarStatus launching separate coroutine)
2025-12-21 23:01:06 +01:00
Davide Ferrari 46669a7109 fix: make battery row more obviously tappable
- Add subtle background to battery info row
- Add chevron icon on right to indicate tappable
- Increase battery icon size slightly
- Improve padding and rounded corners
2025-12-21 22:57:03 +01:00
Davide Ferrari a506c9f6d4 refactor: redesign Vehicle Info card with navigation buttons
- Add rectangular navigation buttons inside Vehicle Info card (Charges, Drives, Mileage, Software)
- Each button shows icon, value, and label in horizontal layout
- Remove bottom quick links row - all navigation now inside card
- Keep tire pressure display inside Vehicle Info card
- Battery row in main card remains tappable for battery health
2025-12-21 22:53:14 +01:00
Davide Ferrari f6a95cdfc0 refactor: merge Vehicle Info card with bottom quick links
- Bottom buttons now show values: Charges, Drives, Mileage (odometer), SW
- Remove Battery button from bottom - tap battery % to go to battery health
- Make battery info row in main card tappable for battery health navigation
- Move tire pressure to separate card
- Remove unused VehicleInfoCard and CompactInfoItem components
2025-12-21 22:47:15 +01:00
Davide Ferrari 374df9a5f1 docs: update changelog with custom icons and location fix 2025-12-21 22:40:24 +01:00
Davide Ferrari c4383a27e8 fix: location card not showing address outside geofences
- Handle empty string geofence (API may return '' instead of null)
- Use takeIf { it.isNotBlank() } for proper fallback chain
- Update address during auto-refresh when location changes
- Always fall back to coordinates if no geofence or address available
2025-12-21 22:38:05 +01:00
Davide Ferrari 1c828bfc49 feat: add SteeringWheel icon for drives
- Add CustomIcons.SteeringWheel from Material Symbols (search_hands_free)
- Update Drives button on dashboard to use steering wheel icon
- Update DrivesScreen and DriveDetailScreen to use steering wheel icon
2025-12-21 22:35:53 +01:00
Davide Ferrari 2bad76749f feat: add custom Road icon from Material Symbols
- Create CustomIcons.kt with Road icon converted from Material Symbols SVG
- Update Mileage button on dashboard to use Road icon
- Update all mileage-related icons to use CustomIcons.Road
- Change 'Total' icon in MileageScreen to AllInclusive
2025-12-21 22:31:04 +01:00
Davide Ferrari 902049e266 feat: use AddRoad icon for mileage and DriveEta for drives
Note: 'Road' and 'SearchHandsFree' icons from fonts.google.com
are not available in Compose Material Icons Extended library.
Using AddRoad and DriveEta as alternatives.
2025-12-21 22:21:46 +01:00
Davide Ferrari af08610801 style: remove colons from Vehicle Info labels 2025-12-21 22:07:31 +01:00
Davide Ferrari 897b489aa6 style: right-align values in Vehicle Info card 2025-12-21 22:05:53 +01:00
Davide Ferrari 352c36fd6d style: add icons back to Vehicle Info card, left-align columns 2025-12-21 22:02:48 +01:00
Davide Ferrari 55336b0fd3 refactor: make Vehicle Info card more compact
Use horizontal 'Label: Value' format instead of vertical icons:
- Row 1: Odometer | Drives
- Row 2: Charges | SW (clickable)
- Divider + Tires section
2025-12-21 22:00:22 +01:00
Davide Ferrari 9500e3e73d feat: default to 7-day filter and show charges/drives counts
- Set 'Last 7 days' as default filter in Charges and Drives screens
- Add total charges and drives counts to Vehicle Info card on dashboard
- Reorganize card into 2x2 grid layout
2025-12-21 21:54:00 +01:00
Davide Ferrari 140322d1b3 fix: reduce X-axis label crowding on charts with many bars
Show maximum ~6 labels regardless of data size.
2025-12-21 21:42:19 +01:00
Davide Ferrari 8f313bce87 docs: update changelog with dynamic chart granularity feature 2025-12-21 18:39:53 +01:00
Davide Ferrari b4e8270719 feat: dynamic chart granularity based on date range
- 30 days or less: show daily bars
- 31-90 days: show weekly bars
- More than 90 days: show monthly bars

Applied to both Charges and Drives screens.
2025-12-21 18:38:03 +01:00
Davide Ferrari 23eb68f349 fix: reset chart selection when data changes to prevent crash 2025-12-21 18:29:08 +01:00
Davide Ferrari 5ed4f0033b docs: update changelog with interactive bar chart features 2025-12-21 18:24:38 +01:00
Davide FerrariandClaude Opus 4.5 cca78184d3 feat: add interactive bar charts with tooltips to all data screens
- Create shared InteractiveBarChart component with tap-to-show-value tooltip
- Add monthly bar charts to Charges and Drives screens
- Update Software Versions and Mileage screens to use InteractiveBarChart
- Replace DirectionsRun icons with Route icons in Mileage screens
- Add Y-axis labels showing max and min values on all charts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 18:24:23 +01:00
Davide Ferrari 83aad925e3 feat: add max/min Y-axis labels to Mileage screen bar charts
Shows the maximum value at the top (with 'k' suffix for thousands)
and 0 at the bottom for all bar charts in the Mileage screen:
- Yearly mileage chart
- Monthly mileage chart
- Daily mileage chart
2025-12-21 18:09:51 +01:00
Davide Ferrari d90bee530f feat: add max/min Y-axis labels to Software Versions bar chart
Shows the maximum update count at the top and 0 at the bottom
of the monthly updates chart for better readability.
2025-12-21 18:07:36 +01:00
Davide Ferrari 40d087412f fix: use drivingDetails.elevation instead of carGeodata.elevation
The elevation field is in DrivingDetails, not CarGeodata.
Also adds elevation display to LocationCard with metric/imperial units.
2025-12-21 17:58:41 +01:00
Davide FerrariandClaude Opus 4.5 63a0351a27 fix: improve tire pressure display colors and thresholds
- Normal pressure (2.7-3.2 bar / 39-46 PSI): uses main text color
- Out of bounds: yellow warning color
- Also respects Tesla's soft warning flags from API
- Car body now filled with 30% transparency instead of stroke
- Works with both bar and PSI display units (API returns bar)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 17:48:17 +01:00
Davide FerrariandClaude Opus 4.5 f6d82c3ba4 fix: position tires inside car body outline
Tires are now drawn inside the car rectangle at the corners,
like real wheel wells. Car body is now a stroke outline so
the colored tires are visible inside it.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 17:44:42 +01:00
Davide FerrariandClaude Opus 4.5 f60b59b4a2 feat: improve battery range icons, tire display, and plug indicator
Battery Health:
- Range card icons now use green (new) and yellow (now) colors
  to match the capacity cards styling

Dashboard:
- Redesigned tire pressure display with visual top-down car view
  - Canvas drawing shows car body with 4 colored tire rectangles
  - Tires are green when OK, yellow/orange when low pressure warning
  - Cleaner layout with values on each side
- Added plug icon next to locked status when vehicle is plugged in
  but not actively charging (charging state already shows power icon)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 17:41:52 +01:00
Davide FerrariandClaude Opus 4.5 99f9b92eac feat: add info tooltips to battery health screen
- Add clickable tooltips explaining Capacity, Degradation, Range,
  Current Charge, Range Information, and Estimated Total Capacity
- Replace generic Info icons with Route icons in range value cards
- Rename "Battery Status" to "Current Charge" for clarity
- Each tooltip provides clear explanations of what the metrics mean

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 17:33:13 +01:00
Davide FerrariandClaude Opus 4.5 e477b51ce5 chore: release v0.3.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 13:14:52 +01:00