├── web
├── online
│ ├── connectivity_check.txt
│ └── status.html
├── avc.wasm
├── favicon.ico
├── icons
│ ├── apple-icon.png
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── favicon-96x96.png
│ ├── ms-icon-70x70.png
│ ├── apple-icon-57x57.png
│ ├── apple-icon-60x60.png
│ ├── apple-icon-72x72.png
│ ├── apple-icon-76x76.png
│ ├── ms-icon-144x144.png
│ ├── ms-icon-150x150.png
│ ├── ms-icon-310x310.png
│ ├── android-icon-36x36.png
│ ├── android-icon-48x48.png
│ ├── android-icon-72x72.png
│ ├── android-icon-96x96.png
│ ├── apple-icon-114x114.png
│ ├── apple-icon-120x120.png
│ ├── apple-icon-144x144.png
│ ├── apple-icon-152x152.png
│ ├── apple-icon-180x180.png
│ ├── android-icon-144x144.png
│ ├── android-icon-192x192.png
│ ├── apple-icon-precomposed.png
│ └── manifest.json
├── browserconfig.xml
├── mjpeg.js
├── h264Brodway.js
├── h264WebCodecs.js
├── audio-ws-worker.js
├── estimator.js
└── h264BrodwayWorker.js
├── ios
├── Runner
│ ├── Runner-Bridging-Header.h
│ ├── Assets.xcassets
│ │ ├── LaunchImage.imageset
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ ├── README.md
│ │ │ └── Contents.json
│ │ └── AppIcon.appiconset
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ ├── Icon-App-83.5x83.5@2x.png
│ │ │ └── Contents.json
│ ├── AppDelegate.swift
│ ├── Base.lproj
│ │ ├── Main.storyboard
│ │ └── LaunchScreen.storyboard
│ └── Info.plist
├── Flutter
│ ├── Debug.xcconfig
│ ├── Release.xcconfig
│ └── AppFrameworkInfo.plist
├── Runner.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── WorkspaceSettings.xcsettings
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Runner.xcscheme
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── WorkspaceSettings.xcsettings
│ │ └── IDEWorkspaceChecks.plist
├── .gitignore
└── Podfile
├── lib
├── common
│ ├── navigation
│ │ ├── ta_page_type.dart
│ │ ├── ta_page.dart
│ │ ├── ta_navigator.dart
│ │ └── ta_page_factory.dart
│ ├── ui
│ │ ├── constants
│ │ │ ├── ta_colors.dart
│ │ │ ├── ta_timing.dart
│ │ │ └── ta_dimens.dart
│ │ └── components
│ │ │ ├── ta_app_bar.dart
│ │ │ ├── ta_bottom_sheet.dart
│ │ │ └── ta_bottom_navigation_bar.dart
│ ├── di
│ │ ├── ta_locator.dart
│ │ ├── network_module.dart
│ │ └── app_module.dart
│ ├── utils
│ │ ├── logger.dart
│ │ └── audio_api.dart
│ └── network
│ │ ├── health_service.dart
│ │ ├── github_service.dart
│ │ ├── device_info_service.dart
│ │ ├── display_service.dart
│ │ ├── health_service.g.dart
│ │ ├── configuration_service.dart
│ │ ├── github_service.g.dart
│ │ ├── base_websocket_transport.dart
│ │ ├── device_info_service.g.dart
│ │ └── display_service.g.dart
├── feature
│ ├── connectivityCheck
│ │ ├── model
│ │ │ └── connectivity_state.dart
│ │ └── cubit
│ │ │ └── connectivity_check_cubit.dart
│ ├── home
│ │ ├── cubit
│ │ │ ├── ota_update_state.dart
│ │ │ └── ota_update_cubit.dart
│ │ ├── model
│ │ │ ├── github_release.g.dart
│ │ │ └── github_release.dart
│ │ ├── repository
│ │ │ └── github_release_repository.dart
│ │ └── widget
│ │ │ ├── settings_button.dart
│ │ │ ├── display_size_watcher.dart
│ │ │ ├── update_button.dart
│ │ │ └── audio_button.dart
│ ├── settings
│ │ ├── repository
│ │ │ ├── device_info_repository.dart
│ │ │ └── system_configuration_repository.dart
│ │ ├── bloc
│ │ │ ├── device_info_state.dart
│ │ │ ├── audio_configuration_state.dart
│ │ │ ├── gps_configuration_state.dart
│ │ │ ├── rear_display_configuration_state.dart
│ │ │ ├── display_configuration_state.dart
│ │ │ ├── device_info_cubit.dart
│ │ │ ├── gps_configuration_cubit.dart
│ │ │ ├── audio_configuration_cubit.dart
│ │ │ ├── rear_display_configuration_cubit.dart
│ │ │ ├── system_configuration_state.dart
│ │ │ └── display_configuration_cubit.dart
│ │ ├── widget
│ │ │ ├── settings_tile.dart
│ │ │ ├── settings_section.dart
│ │ │ ├── gps_settings.dart
│ │ │ ├── settings_page.dart
│ │ │ ├── device_settings.dart
│ │ │ └── sound_settings.dart
│ │ └── model
│ │ │ ├── device_info.g.dart
│ │ │ ├── softap_band_type.dart
│ │ │ ├── device_info.dart
│ │ │ ├── system_configuration_response_body.dart
│ │ │ └── system_configuration_response_body.g.dart
│ ├── releaseNotes
│ │ ├── model
│ │ │ ├── release_notes.dart
│ │ │ ├── version.dart
│ │ │ ├── release_notes.g.dart
│ │ │ ├── version.g.dart
│ │ │ ├── changelog_item.dart
│ │ │ └── changelog_item.g.dart
│ │ ├── widget
│ │ │ ├── detail
│ │ │ │ └── release_notes_changelog_item_details_view.dart
│ │ │ ├── list
│ │ │ │ └── release_notes_versions_list.dart
│ │ │ ├── card
│ │ │ │ └── release_notes_changelog_item_card.dart
│ │ │ └── release_notes_page.dart
│ │ └── cubit
│ │ │ ├── release_notes_state.dart
│ │ │ └── release_notes_cubit.dart
│ ├── touchscreen
│ │ ├── model
│ │ │ ├── virtual_touchscreen_slot_state.dart
│ │ │ └── virtual_touchscreen_command.dart
│ │ ├── touchscreen_view.dart
│ │ └── cubit
│ │ │ └── touchscreen_cubit.dart
│ ├── display
│ │ ├── repository
│ │ │ └── display_repository.dart
│ │ ├── cubit
│ │ │ └── display_state.dart
│ │ ├── model
│ │ │ └── remote_display_state.g.dart
│ │ └── widget
│ │ │ └── display_view.dart
│ ├── donations
│ │ └── widget
│ │ │ └── donation_page.dart
│ └── about
│ │ └── about_page.dart
└── main.dart
├── .fvm
└── fvm_config.json
├── fonts
└── Roboto-Regular.ttf
├── android
├── gradle.properties
├── app
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── drawable
│ │ │ │ │ └── launch_background.xml
│ │ │ │ ├── drawable-v21
│ │ │ │ │ └── launch_background.xml
│ │ │ │ ├── values
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-night
│ │ │ │ │ └── styles.xml
│ │ │ ├── kotlin
│ │ │ │ └── eu
│ │ │ │ │ └── gapinski
│ │ │ │ │ └── tesla_android_automotive
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── AndroidManifest.xml
│ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ └── profile
│ │ │ └── AndroidManifest.xml
│ └── build.gradle
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
├── .gitignore
├── settings.gradle
└── build.gradle
├── images
└── png
│ └── tesla-android-logo.png
├── devtools_options.yaml
├── .vscode
├── settings.json
└── launch.json
├── README.md
├── .gitignore
├── .metadata
├── pubspec.yaml
├── analysis_options.yaml
└── jenkins
└── multi-branch-ci.groovy
/web/online/connectivity_check.txt:
--------------------------------------------------------------------------------
1 | online
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/lib/common/navigation/ta_page_type.dart:
--------------------------------------------------------------------------------
1 | enum TAPageType { standard, dialog }
--------------------------------------------------------------------------------
/.fvm/fvm_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "flutterSdkVersion": "3.35.0",
3 | "flavors": {}
4 | }
--------------------------------------------------------------------------------
/web/avc.wasm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/avc.wasm
--------------------------------------------------------------------------------
/web/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/favicon.ico
--------------------------------------------------------------------------------
/web/online/status.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/fonts/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/fonts/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/web/icons/apple-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/apple-icon.png
--------------------------------------------------------------------------------
/web/icons/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/favicon-16x16.png
--------------------------------------------------------------------------------
/web/icons/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/favicon-32x32.png
--------------------------------------------------------------------------------
/web/icons/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/favicon-96x96.png
--------------------------------------------------------------------------------
/web/icons/ms-icon-70x70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/ms-icon-70x70.png
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/lib/feature/connectivityCheck/model/connectivity_state.dart:
--------------------------------------------------------------------------------
1 | enum ConnectivityState { backendAccessible, backendUnreachable }
--------------------------------------------------------------------------------
/web/icons/apple-icon-57x57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/apple-icon-57x57.png
--------------------------------------------------------------------------------
/web/icons/apple-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/apple-icon-60x60.png
--------------------------------------------------------------------------------
/web/icons/apple-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/apple-icon-72x72.png
--------------------------------------------------------------------------------
/web/icons/apple-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/apple-icon-76x76.png
--------------------------------------------------------------------------------
/web/icons/ms-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/ms-icon-144x144.png
--------------------------------------------------------------------------------
/web/icons/ms-icon-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/ms-icon-150x150.png
--------------------------------------------------------------------------------
/web/icons/ms-icon-310x310.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/ms-icon-310x310.png
--------------------------------------------------------------------------------
/images/png/tesla-android-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/images/png/tesla-android-logo.png
--------------------------------------------------------------------------------
/web/icons/android-icon-36x36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/android-icon-36x36.png
--------------------------------------------------------------------------------
/web/icons/android-icon-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/android-icon-48x48.png
--------------------------------------------------------------------------------
/web/icons/android-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/android-icon-72x72.png
--------------------------------------------------------------------------------
/web/icons/android-icon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/android-icon-96x96.png
--------------------------------------------------------------------------------
/web/icons/apple-icon-114x114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/apple-icon-114x114.png
--------------------------------------------------------------------------------
/web/icons/apple-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/apple-icon-120x120.png
--------------------------------------------------------------------------------
/web/icons/apple-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/apple-icon-144x144.png
--------------------------------------------------------------------------------
/web/icons/apple-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/apple-icon-152x152.png
--------------------------------------------------------------------------------
/web/icons/apple-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/apple-icon-180x180.png
--------------------------------------------------------------------------------
/web/icons/android-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/android-icon-144x144.png
--------------------------------------------------------------------------------
/web/icons/android-icon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/android-icon-192x192.png
--------------------------------------------------------------------------------
/web/icons/apple-icon-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/web/icons/apple-icon-precomposed.png
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/lib/common/ui/constants/ta_colors.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class TAColors {
4 | static const settingsPrimaryColor = Color(0xFFB71C1C);
5 | }
6 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tesla-android/flutter-app/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/devtools_options.yaml:
--------------------------------------------------------------------------------
1 | description: This file stores settings for Dart & Flutter DevTools.
2 | documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
3 | extensions:
4 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/eu/gapinski/tesla_android_automotive/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package eu.gapinski.tesla_android_automotive
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/lib/feature/home/cubit/ota_update_state.dart:
--------------------------------------------------------------------------------
1 | abstract class OTAUpdateState {}
2 |
3 | class OTAUpdateStateInitial extends OTAUpdateState {}
4 |
5 | class OTAUpdateStateAvailable extends OTAUpdateState {}
6 |
7 | class OTAUpdateStateNotAvailable extends OTAUpdateState {}
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jun 23 08:50:38 CEST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
7 |
--------------------------------------------------------------------------------
/lib/common/di/ta_locator.dart:
--------------------------------------------------------------------------------
1 | import 'package:get_it/get_it.dart';
2 | import 'package:injectable/injectable.dart';
3 | import 'package:tesla_android/common/di/ta_locator.config.dart';
4 |
5 | final getIt = GetIt.instance;
6 |
7 | @InjectableInit()
8 | Future configureTADependencies() => getIt.init();
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/web/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 | #ffffff
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lib/common/utils/logger.dart:
--------------------------------------------------------------------------------
1 | mixin Logger {
2 | void log(String message) {
3 | print("[$runtimeType $hashCode] $message" );
4 | }
5 |
6 | void logException({exception, StackTrace? stackTrace}) {
7 | print("[$runtimeType] ${exception.toString()}");
8 | print("[$runtimeType] ${stackTrace.toString()}");
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "dart.flutterSdkPath": ".fvm/flutter_sdk",
3 | // Remove .fvm files from search
4 | "search.exclude": {
5 | "**/.fvm": true
6 | },
7 | // Remove from file watching
8 | "files.watcherExclude": {
9 | "**/.fvm": true
10 | },
11 | "cSpell.words": [
12 | "Dimens"
13 | ]
14 | }
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 | **/*.keystore
13 | **/*.jks
14 |
--------------------------------------------------------------------------------
/lib/common/ui/constants/ta_timing.dart:
--------------------------------------------------------------------------------
1 | class TATiming {
2 | static const splashPageTransitionDuration = Duration(seconds: 2);
3 | static const webRtcTimeoutDuration = Duration(seconds: 5);
4 | static const snackBarDuration = Duration(seconds: 30);
5 | static const animationDuration = Duration(milliseconds: 250);
6 | static const timeoutDuration = Duration(milliseconds: 250);
7 | }
8 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lib/common/di/network_module.dart:
--------------------------------------------------------------------------------
1 | import 'package:dio/dio.dart';
2 | import 'package:injectable/injectable.dart';
3 |
4 | @module
5 | abstract class NetworkModule {
6 | @singleton
7 | Dio get dio => Dio(
8 | BaseOptions(
9 | connectTimeout: const Duration(seconds: 5),
10 | receiveTimeout: const Duration(seconds: 5),
11 | sendTimeout: const Duration(seconds: 5),
12 | ),
13 | );
14 | }
15 |
--------------------------------------------------------------------------------
/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @UIApplicationMain
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | GeneratedPluginRegistrant.register(with: self)
11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/lib/feature/settings/repository/device_info_repository.dart:
--------------------------------------------------------------------------------
1 | import 'package:injectable/injectable.dart';
2 | import 'package:tesla_android/common/network/device_info_service.dart';
3 | import 'package:tesla_android/feature/settings/model/device_info.dart';
4 |
5 | @injectable
6 | class DeviceInfoRepository {
7 | final DeviceInfoService _service;
8 |
9 | DeviceInfoRepository(this._service);
10 |
11 | Future getDeviceInfo(){
12 | return _service.getDeviceInfo();
13 | }
14 | }
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/web/mjpeg.js:
--------------------------------------------------------------------------------
1 | var img = document.getElementById("image");
2 | var canvas = document.getElementById("canvas");
3 | var urlCreator = window.URL || window.webkitURL;
4 | img.style.display = "block";
5 | canvas.style.display = "none";
6 |
7 | var currentImageUrl;
8 |
9 | function drawDisplayFrame(blob) {
10 | if (currentImageUrl) {
11 | urlCreator.revokeObjectURL(currentImageUrl);
12 | }
13 |
14 |
15 | let imageUrl = urlCreator.createObjectURL(blob);
16 | currentImageUrl = imageUrl;
17 |
18 | img.src = imageUrl;
19 | }
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchImage.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchImage@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "LaunchImage@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/lib/feature/settings/bloc/device_info_state.dart:
--------------------------------------------------------------------------------
1 | import 'package:tesla_android/feature/settings/model/device_info.dart';
2 |
3 | abstract class DeviceInfoState {}
4 |
5 | class DeviceInfoStateInitial extends DeviceInfoState {}
6 |
7 | class DeviceInfoStateLoading extends DeviceInfoState {}
8 |
9 | class DeviceInfoStateLoaded
10 | extends DeviceInfoState {
11 | final DeviceInfo deviceInfo;
12 |
13 | DeviceInfoStateLoaded({
14 | required this.deviceInfo,
15 | });
16 | }
17 | class DeviceInfoStateError extends DeviceInfoState {}
18 |
--------------------------------------------------------------------------------
/lib/feature/releaseNotes/model/release_notes.dart:
--------------------------------------------------------------------------------
1 | import 'package:json_annotation/json_annotation.dart';
2 | import 'package:tesla_android/feature/releaseNotes/model/version.dart';
3 |
4 | part 'release_notes.g.dart';
5 |
6 | @JsonSerializable()
7 | class ReleaseNotes {
8 | final List versions;
9 |
10 | const ReleaseNotes({
11 | required this.versions,
12 | });
13 |
14 | factory ReleaseNotes.fromJson(Map json) =>
15 | _$ReleaseNotesFromJson(json);
16 |
17 | Map toJson() => _$ReleaseNotesToJson(this);
18 | }
19 |
--------------------------------------------------------------------------------
/lib/feature/home/model/github_release.g.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 |
3 | part of 'github_release.dart';
4 |
5 | // **************************************************************************
6 | // JsonSerializableGenerator
7 | // **************************************************************************
8 |
9 | GitHubRelease _$GitHubReleaseFromJson(Map json) =>
10 | GitHubRelease(name: json['name'] as String);
11 |
12 | Map _$GitHubReleaseToJson(GitHubRelease instance) =>
13 | {'name': instance.name};
14 |
--------------------------------------------------------------------------------
/lib/feature/touchscreen/model/virtual_touchscreen_slot_state.dart:
--------------------------------------------------------------------------------
1 | import 'dart:ui';
2 |
3 | class VirtualTouchscreenSlotState {
4 | int slotIndex; // 0-9
5 | int trackingId; // active pointer index or -1
6 | Offset position;
7 |
8 | VirtualTouchscreenSlotState.initial({required this.slotIndex})
9 | : trackingId = -1,
10 | position = Offset.zero;
11 |
12 | static List generateSlots() {
13 | return List.generate(
14 | 10,
15 | (index) => VirtualTouchscreenSlotState.initial(slotIndex: index),
16 | );
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Tesla Android
2 |
3 | Flutter app for Tesla Android.
4 |
5 | Please refer to https://teslaandroid.com for release notes, hardware requirements and the install guide.
6 |
7 | ## Getting Started
8 |
9 | ```
10 | flutter pub get
11 | flutter packages pub run build_runner build --delete-conflicting-outputs
12 | flutter build web
13 | ```
14 |
15 | In order to build this project for debugging make sure to disable cors in Chrome and connect to Tesla Android Wi-Fi network
16 |
17 | #### Please consider supporting the project:
18 |
19 | [Donations](https://teslaandroid.com/donations)
20 |
21 |
--------------------------------------------------------------------------------
/lib/common/network/health_service.dart:
--------------------------------------------------------------------------------
1 | import 'package:dio/dio.dart' hide Headers;
2 | import 'package:flavor/flavor.dart';
3 | import 'package:injectable/injectable.dart';
4 | import 'package:retrofit/retrofit.dart';
5 |
6 | part 'health_service.g.dart';
7 |
8 | @injectable
9 | @RestApi()
10 | abstract class HealthService {
11 | @factoryMethod
12 | factory HealthService(
13 | Dio dio,
14 | Flavor flavor,
15 | ) =>
16 | _HealthService(
17 | dio,
18 | baseUrl: flavor.getString("configurationApiBaseUrl"),
19 | );
20 |
21 | @GET("/health")
22 | Future getHealthCheck();
23 | }
24 |
--------------------------------------------------------------------------------
/lib/feature/releaseNotes/model/version.dart:
--------------------------------------------------------------------------------
1 | import 'package:tesla_android/feature/releaseNotes/model/changelog_item.dart';
2 | import 'package:json_annotation/json_annotation.dart';
3 |
4 | part 'version.g.dart';
5 |
6 | @JsonSerializable()
7 | class Version {
8 | final String versionName;
9 | final List changelogItems;
10 |
11 | const Version({
12 | required this.versionName,
13 | required this.changelogItems,
14 | });
15 |
16 | factory Version.fromJson(Map json) =>
17 | _$VersionFromJson(json);
18 |
19 | Map toJson() => _$VersionToJson(this);
20 | }
21 |
--------------------------------------------------------------------------------
/lib/feature/home/model/github_release.dart:
--------------------------------------------------------------------------------
1 | import 'package:equatable/equatable.dart';
2 | import 'package:json_annotation/json_annotation.dart';
3 |
4 | part 'github_release.g.dart';
5 |
6 | @JsonSerializable()
7 | class GitHubRelease extends Equatable {
8 | final String name;
9 |
10 | const GitHubRelease({
11 | required this.name,
12 | });
13 |
14 | factory GitHubRelease.fromJson(Map json) =>
15 | _$GitHubReleaseFromJson(json);
16 |
17 | Map toJson() => _$GitHubReleaseToJson(this);
18 |
19 | @override
20 | List