|
|
пре 1 недеља | |
|---|---|---|
| android | пре 1 недеља | |
| assets | пре 1 недеља | |
| docs | пре 1 недеља | |
| lib | пре 1 недеља | |
| test | пре 1 недеља | |
| tool | пре 1 недеља | |
| .gitignore | пре 1 недеља | |
| .metadata | пре 1 недеља | |
| AGENTS.md | пре 1 недеља | |
| README.md | пре 1 недеља | |
| analysis_options.yaml | пре 1 недеља | |
| pubspec.lock | пре 1 недеља | |
| pubspec.yaml | пре 1 недеља |
A calm, configurable Android car dashboard launcher, built with Flutter.
CarDash replaces the tablet home screen with one landscape page: a large clock, battery and Wi-Fi status, the main media-volume control, and five shortcuts — Navigation, Music, Radio, Settings and All apps. The first three are configurable; a long press picks a different installed app. External apps open full-screen using the normal Android launcher mechanism. No overlays, no root, no kiosk setup.
Early preview — implementation and UI screenshots are in progress.
A landscape tablet or an emulator; the app locks itself to landscape
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk
export ANDROID_HOME=/opt/android-sdk
export PATH="$ANDROID_HOME/platform-tools:$PATH"
flutter pub get
./tool/check.sh
# Boot the prepared 10.1" 1280×800 Android 15 tablet (headless)
./tool/emulator.sh 35
# Build, install, and make CarDash the HOME app
./tool/install.sh debug
If the emulator does not yet exist on another machine, create it with:
sdkmanager "system-images;android-35;google_apis;x86_64"
avdmanager create avd -n cardash_tablet_api35 \
-k "system-images;android-35;google_apis;x86_64" \
-d "10.1in WXGA (Tablet)"
The repository also has an Android 10 AVD (cardash_tablet_api29) for
minimum-version checks.
flutter build apk --debug
adb install -r build/app/outputs/flutter-apk/app-debug.apk
adb shell cmd role add-role-holder android.app.role.HOME com.wasp.cardash_launcher
adb shell am start -a android.intent.action.MAIN -c android.intent.category.HOME
On a real tablet, use Settings → General → Home app → Set as default and accept the system prompt. The in-app "Make CarDash your home app" card does the same thing. Android will not let an app force itself into the home role silently.
| Action | Result |
|---|---|
| Tap Navigation / Music / Radio | Open the assigned app full-screen |
| Long-press Navigation / Music / Radio | Pick a different installed app |
| Tap an unassigned shortcut | Open the app picker |
| Settings | Theme, home shortcuts, default-home role, PIN |
| All apps | Search every launchable app; tap to open |
| Volume ring / mute | Toggle media mute |
| Slider or − / + | Set media volume |
| Hardware volume keys | Update the on-screen control automatically |
The app hides the Android status and navigation bars while CarDash is in the foreground. Swipe from an edge to reveal them temporarily; they hide again when the app resumes.
General
Security
lib/
core/ design tokens, theme controller, icons, shared widgets
data/ models, platform services, SettingsRepository (single source of truth)
features/
home/ home page, shortcut grid, volume card, controllers
apps/ All Apps, app-picker sheet
settings/ General + Security
lock/ PIN pad, cold-start lock screen
android/... MainActivity, LauncherBridge, SystemBridge (Kotlin)
tool/ emulator, install, check scripts
docs/ implementation plan, design notes
MethodChannels.SettingsRepository is the only persistence path. Controllers are
ChangeNotifiers injected with provider.flutter analyze
flutter test
./tool/check.sh
Current tests cover PIN hashing/persistence, settings persistence, theme resolution and the shortcut tile widget. Native package enumeration and the HOME role are verified on the emulator.
sensorLandscape). The home page is designed for
1280×800 and remains usable at 1024×600.QUERY_ALL_PACKAGES is used to list all launchable apps. It is reasonable
for a launcher but requires a Play policy declaration if the app is ever
distributed; this is a local/sideload build for now.The visual language is inspired by the TrailCurrent Godwit head unit (MIT): warm neutral surfaces, a single deep-green instrument accent, large numerals and quiet line icons. It is not a copy of that UI.
lib/core/theme/app_colors.dart.docs/screenshots/.This repository is currently local-only; a project license has not been chosen. Third-party asset licenses: Manrope (OFL) and Lucide (ISC). The design is inspired by TrailCurrent Godwit (MIT).