Disconnect dfu device after redirection

This commit is contained in:
himalia416
2025-10-07 10:12:16 +02:00
committed by Himali Aryal
parent 8947c82c6d
commit a3c5d5fb60
2 changed files with 6 additions and 3 deletions

View File

@@ -29,12 +29,12 @@ import no.nordicsemi.android.common.permissions.ble.RequireLocation
import no.nordicsemi.android.common.permissions.notification.RequestNotificationPermission
import no.nordicsemi.android.toolbox.lib.utils.Profile
import no.nordicsemi.android.toolbox.profile.data.displayMessage
import no.nordicsemi.android.toolbox.profile.view.dfu.DFUScreen
import no.nordicsemi.android.toolbox.profile.view.battery.BatteryScreen
import no.nordicsemi.android.toolbox.profile.view.bps.BPSScreen
import no.nordicsemi.android.toolbox.profile.view.cgms.CGMScreen
import no.nordicsemi.android.toolbox.profile.view.channelSounding.ChannelSoundingScreen
import no.nordicsemi.android.toolbox.profile.view.cscs.CSCScreen
import no.nordicsemi.android.toolbox.profile.view.dfu.DFUScreen
import no.nordicsemi.android.toolbox.profile.view.directionFinder.DFSScreen
import no.nordicsemi.android.toolbox.profile.view.gls.GLSScreen
import no.nordicsemi.android.toolbox.profile.view.hrs.HRSScreen
@@ -208,7 +208,7 @@ internal fun DeviceConnectedView(
Profile.BATTERY -> BatteryScreen()
Profile.THROUGHPUT -> ThroughputScreen(state.maxValueLength)
Profile.UART -> UARTScreen(state.maxValueLength)
Profile.DFU -> DFUScreen()
Profile.DFU -> DFUScreen { onEvent(ConnectionEvent.DisconnectEvent) }
}
}
}

View File

@@ -26,10 +26,11 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import no.nordicsemi.android.toolbox.profile.R
import no.nordicsemi.android.toolbox.profile.viewmodel.ConnectionEvent
import no.nordicsemi.android.toolbox.profile.viewmodel.DFUViewModel
@Composable
internal fun DFUScreen() {
internal fun DFUScreen(onRedirection: (ConnectionEvent.DisconnectEvent) -> Unit) {
val dfuViewModel = hiltViewModel<DFUViewModel>()
val dfuServiceState by dfuViewModel.dfuServiceState.collectAsStateWithLifecycle()
val context = LocalContext.current
@@ -91,6 +92,8 @@ internal fun DFUScreen() {
onClick = {
intent?.let { context.startActivity(it) }
?: uriHandler.openUri(dfuApp.appLink)
// Also disconnect from the current device.
onRedirection(ConnectionEvent.DisconnectEvent)
}
) {
Row(verticalAlignment = Alignment.CenterVertically) {