Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,7 @@ class MainActivity : ComponentActivity() {
composable<SetupRoute> {
val manager by connectionVM.bleManager.collectAsState()
val dashStateFlow by connectionVM.dashState.collectAsState()
val activeSourceType by connectionVM.activeSourceType.collectAsState()
val toDashboard = {
val dashboard = getSelectedDashboard(context)
navController.navigate(DashboardRoute(
Expand All @@ -260,6 +261,7 @@ class MainActivity : ComponentActivity() {
}
HomeScreen(
connectionStatus = connectionStatus,
activeSourceType = activeSourceType,
bleManager = manager,
dashState = dashStateFlow,
pinnedControlId = pinnedControl,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ private val debugSources = buildList {
@Composable
fun DebugDataSourceMenu(
connectionStatus: ConnectionStatus,
activeSourceType: String?,
onSelectDataSource: (String) -> Unit,
onConnect: (serverAddress: String, dataSourceType: String) -> Unit,
onDisconnect: () -> Unit
Expand All @@ -53,13 +54,15 @@ fun DebugDataSourceMenu(
var showIpDialog by remember { mutableStateOf(false) }
val idle = connectionStatus is ConnectionStatus.Disconnected ||
connectionStatus is ConnectionStatus.Error
val sourceName = debugSources.firstOrNull { it.first == activeSourceType }?.second
?: stringResource(R.string.data_source)

Column(horizontalAlignment = Alignment.CenterHorizontally) {
TextButton(onClick = { expanded = true }) {
Text(
text = when (connectionStatus) {
is ConnectionStatus.Connected -> stringResource(R.string.data_source_connected)
is ConnectionStatus.Connecting -> stringResource(R.string.data_source_connecting)
is ConnectionStatus.Connected -> stringResource(R.string.data_source_connected, sourceName)
is ConnectionStatus.Connecting -> stringResource(R.string.data_source_connecting, sourceName)
else -> stringResource(R.string.data_source)
},
color = DarkColors.TextMuted,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ import com.softwiredtech.dashpilot.R
@Composable
fun HomeScreen(
connectionStatus: ConnectionStatus,
activeSourceType: String?,
bleManager: DashKitBleManager?,
dashState: Flow<DashState>?,
pinnedControlId: String?,
Expand Down Expand Up @@ -108,6 +109,7 @@ fun HomeScreen(
dashState = dashState,
bleManager = bleManager,
connectionStatus = connectionStatus,
activeSourceType = activeSourceType,
pinnedControlId = pinnedControlId,
teslaStatus = teslaStatus,
teslaResetPending = teslaResetPending,
Expand Down Expand Up @@ -145,6 +147,7 @@ private fun ConnectedHomeContent(
dashState: Flow<DashState>?,
bleManager: DashKitBleManager?,
connectionStatus: ConnectionStatus,
activeSourceType: String?,
pinnedControlId: String?,
teslaStatus: StateFlow<TeslaStatus>?,
teslaResetPending: StateFlow<Boolean>?,
Expand Down Expand Up @@ -182,6 +185,7 @@ private fun ConnectedHomeContent(
Header(
showDataSource = landscape,
connectionStatus = connectionStatus,
activeSourceType = activeSourceType,
onSelectDataSource = onSelectDataSource,
onConnect = onConnect,
onDisconnect = onDisconnect,
Expand Down Expand Up @@ -215,6 +219,7 @@ private fun ConnectedHomeContent(
tesla = tesla,
resetPending = resetPending,
connectionStatus = connectionStatus,
activeSourceType = activeSourceType,
onEnrollTesla = onEnrollTesla,
onConnect = onConnect,
onDisconnect = onDisconnect,
Expand All @@ -234,6 +239,7 @@ private fun ConnectedHomeContent(
private fun Header(
showDataSource: Boolean,
connectionStatus: ConnectionStatus,
activeSourceType: String?,
onSelectDataSource: (String) -> Unit,
onConnect: (serverAddress: String, dataSourceType: String) -> Unit,
onDisconnect: () -> Unit,
Expand Down Expand Up @@ -272,7 +278,7 @@ private fun Header(
.align(Alignment.CenterEnd)
.offset(x = 12.dp)
) {
DebugDataSourceMenu(connectionStatus, onSelectDataSource, onConnect, onDisconnect)
DebugDataSourceMenu(connectionStatus, activeSourceType, onSelectDataSource, onConnect, onDisconnect)
}
}
}
Expand All @@ -287,6 +293,7 @@ private fun PortraitContent(
tesla: TeslaStatus,
resetPending: Boolean,
connectionStatus: ConnectionStatus,
activeSourceType: String?,
onEnrollTesla: () -> Unit,
onConnect: (serverAddress: String, dataSourceType: String) -> Unit,
onDisconnect: () -> Unit,
Expand Down Expand Up @@ -335,7 +342,7 @@ private fun PortraitContent(
DriveButton(onDrive)
Spacer(modifier = Modifier.height(12.dp))
Box(modifier = Modifier.align(Alignment.CenterHorizontally)) {
DebugDataSourceMenu(connectionStatus, onSelectDataSource, onConnect, onDisconnect)
DebugDataSourceMenu(connectionStatus, activeSourceType, onSelectDataSource, onConnect, onDisconnect)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ fun SettingsScreen(
val sharedPrefs = remember { context.getSharedPreferences(DASH_PREFS_NAME, Context.MODE_PRIVATE) }

val extraBusState = remember {
mutableStateOf(sharedPrefs.getBoolean(PREF_EXTRA_VEHICLE_BUS, DEFAULT_EXTRA_VEHICLE_BUS))
mutableStateOf(BuildConfig.DEBUG && sharedPrefs.getBoolean(PREF_EXTRA_VEHICLE_BUS, DEFAULT_EXTRA_VEHICLE_BUS))
}

val showPhoneBatteryState = remember {
Expand Down Expand Up @@ -314,11 +314,13 @@ fun SettingsScreen(

Spacer(modifier = Modifier.height(8.dp))

Text(stringResource(R.string.settings_section_configuration), color = DarkColors.TextMuted, fontSize = 16.sp)
if (BuildConfig.DEBUG) {
Text(stringResource(R.string.settings_section_configuration), color = DarkColors.TextMuted, fontSize = 16.sp)

SettingsToggle(stringResource(R.string.settings_toggle_extra_vehicle_bus), extraBusState.value) { enabled ->
extraBusState.value = enabled
sharedPrefs.edit { putBoolean(PREF_EXTRA_VEHICLE_BUS, enabled) }
SettingsToggle(stringResource(R.string.settings_toggle_extra_vehicle_bus), extraBusState.value) { enabled ->
extraBusState.value = enabled
sharedPrefs.edit { putBoolean(PREF_EXTRA_VEHICLE_BUS, enabled) }
}
}

Text(stringResource(R.string.settings_section_display), color = DarkColors.TextMuted, fontSize = 16.sp)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import com.softwiredtech.dashpilot.datamodel.dash.DisplaySettings
import com.softwiredtech.dashpilot.datamodel.dash.PREF_ALWAYS_ON_BLIND_SPOT_MONITOR
import com.softwiredtech.dashpilot.datamodel.dash.PREF_DARK_MODE
import com.softwiredtech.dashpilot.datamodel.dash.PREF_DARK_MODE_BACKGROUND_GRAY
import com.softwiredtech.dashpilot.BuildConfig
import com.softwiredtech.dashpilot.datamodel.dash.PREF_EXTRA_VEHICLE_BUS
import com.softwiredtech.dashpilot.datamodel.dash.PREF_RENDER_QUALITY
import com.softwiredtech.dashpilot.datamodel.dash.PREF_SHOW_CAR_BATTERY
Expand Down Expand Up @@ -231,6 +232,8 @@ class ConnectionViewModel(private var networkUtil: NetworkUtil) : ViewModel() {
private var startupDiscoveryStarted = false
private var discoveryGeneration = 0

private val _activeSourceType = MutableStateFlow<String?>(null)
val activeSourceType = _activeSourceType.asStateFlow()
private var lastDataSourceType: String? = null
private var lastServerAddress: String = ""

Expand Down Expand Up @@ -355,14 +358,15 @@ class ConnectionViewModel(private var networkUtil: NetworkUtil) : ViewModel() {

if (userInitiated) userSelectedType = dataSourceType
lastDataSourceType = dataSourceType
_activeSourceType.value = dataSourceType
lastServerAddress = manualServerAddress

var finalServerAddress = manualServerAddress
_connectionStatus.value = ConnectionStatus.Connecting
connectionJob = viewModelScope.launch(Dispatchers.IO) {
val vehicleName = "tesla" // TODO: make configurable via UI
val prefs = context.getSharedPreferences(DASH_PREFS_NAME, Context.MODE_PRIVATE)
val extraBus = prefs.getBoolean(PREF_EXTRA_VEHICLE_BUS, DEFAULT_EXTRA_VEHICLE_BUS)
val extraBus = BuildConfig.DEBUG && prefs.getBoolean(PREF_EXTRA_VEHICLE_BUS, DEFAULT_EXTRA_VEHICLE_BUS)
val configFile = when (dataSourceType) {
DataSourceType.DASHKIT -> "config_dashkit.json"
else -> if (extraBus) "config_comma_extra_bus.json" else "config_comma_normal.json"
Expand Down Expand Up @@ -495,6 +499,7 @@ class ConnectionViewModel(private var networkUtil: NetworkUtil) : ViewModel() {
_dataSource.value = null
_bleManager.value?.disconnect()
_bleManager.value = null
_activeSourceType.value = null
_dashState.value = null
_vehicleVin.value = null
_hasAutoNavigatedToDashboard.value = false
Expand Down
Loading
Loading