Commit Graph
135 Commits
Author SHA1 Message Date
Davide FerrariandClaude Opus 4.5 9c77434825 feat: add release notes link to software version cards
Each software version card now shows an external link icon next to the
version number. Tapping it opens the NotATeslaApp release notes page
for that specific version.

URL pattern: https://www.notateslaapp.com/software-updates/version/{version}/release-notes

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 19:36:41 +01:00
Davide FerrariandClaude Opus 4.5 89b60a623b fix: show all software updates instead of only 100 (#2)
The TeslaMateAPI updates endpoint supports pagination with `page` and
`show` query parameters, defaulting to show=100 results.

The app was not passing these parameters, causing users with more than
100 software updates to only see the most recent 100.

Fixed by adding pagination parameters to the API interface and passing
show=50000 in the repository (same pattern used for charges and drives).

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

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 19:05:07 +01:00
Davide Ferrari 65575e61b8 docs: tweaked CC instructions 2025-12-23 18:44:59 +01:00
Davide Ferrari 713d23a02f feat: rename APK artifact to matedroid-VERSION.apk v0.6.1 2025-12-22 18:51:39 +01:00
Davide Ferrari c552e8ebec fix: add contents:write permission to release workflow 2025-12-22 18:42:03 +01:00
Davide Ferrari 248d80bd2a fix: use correct secret name KEYSTORE_ALIAS for key alias 2025-12-22 18:24:57 +01:00
Davide FerrariandClaude Opus 4.5 8d9101bbc5 fix: simplify workflow keystore setup logic
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 18:12:32 +01:00
Davide FerrariandClaude Opus 4.5 07811d5cf4 ci: add workflow_dispatch trigger for manual builds
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 18:11:57 +01:00
Davide FerrariandClaude Opus 4.5 91f017cf1e chore: release v0.6.1
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 17:58:27 +01:00
Davide FerrariandClaude Opus 4.5 6cdd205f03 docs: add drive-details screenshot
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 17:30:50 +01:00
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