Replace scanne library with remote version

This commit is contained in:
Sylwester Zieliński
2021-12-06 16:30:45 +01:00
parent d19c3f5b81
commit 13796c6cad
9 changed files with 119 additions and 28 deletions

View File

@@ -60,14 +60,15 @@ dependencies {
implementation project(':profile_hts')
implementation project(':profile_prx')
implementation project(':profile_rscs')
implementation project(':scanner')
implementation project(":lib_theme")
implementation project(":lib_utils")
implementation project(":lib_service")
implementation libs.nordic.ble.common
implementation libs.nordic.ui.scanner
implementation libs.bundles.koin
implementation libs.bundles.hilt
kapt libs.bundles.hiltkapt

View File

@@ -1,6 +1,7 @@
package no.nordicsemi.android.nrftoolbox
import android.app.Activity
import android.os.ParcelUuid
import androidx.activity.OnBackPressedCallback
import androidx.activity.compose.BackHandler
import androidx.activity.compose.LocalOnBackPressedDispatcherOwner
@@ -15,6 +16,7 @@ import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
@@ -32,6 +34,7 @@ import no.nordicsemi.ui.scanner.navigation.view.FindDeviceScreen
@Composable
internal fun HomeScreen() {
val navController = rememberNavController()
val deviceHolder: HomeViewModel = hiltViewModel()
val activity = LocalContext.current as Activity
BackHandler {
@@ -46,17 +49,56 @@ internal fun HomeScreen() {
NavHost(navController = navController, startDestination = NavDestination.HOME.id) {
composable(NavDestination.HOME.id) {
FindDeviceScreen()
HomeView { goHome() }
HomeView { navController.navigate(it.id) }
}
composable(NavDestination.CSC.id) {
FindDeviceScreen(ParcelUuid(NavDestination.CSC.uuid)) {
deviceHolder.onDeviceSelected(it)
CSCScreen { goHome() }
}
}
composable(NavDestination.HRS.id) {
FindDeviceScreen(ParcelUuid(NavDestination.HRS.uuid)) {
deviceHolder.onDeviceSelected(it)
HRSScreen { goHome() }
}
}
composable(NavDestination.HTS.id) {
FindDeviceScreen(ParcelUuid(NavDestination.HTS.uuid)) {
deviceHolder.onDeviceSelected(it)
HTSScreen { goHome() }
}
}
composable(NavDestination.GLS.id) {
FindDeviceScreen(ParcelUuid(NavDestination.GLS.uuid)) {
deviceHolder.onDeviceSelected(it)
GLSScreen { goHome() }
}
}
composable(NavDestination.BPS.id) {
FindDeviceScreen(ParcelUuid(NavDestination.BPS.uuid)) {
deviceHolder.onDeviceSelected(it)
BPSScreen { goHome() }
}
}
composable(NavDestination.PRX.id) {
FindDeviceScreen(ParcelUuid(NavDestination.PRX.uuid)) {
deviceHolder.onDeviceSelected(it)
PRXScreen { goHome() }
}
}
composable(NavDestination.RSCS.id) {
FindDeviceScreen(ParcelUuid(NavDestination.RSCS.uuid)) {
deviceHolder.onDeviceSelected(it)
RSCSScreen { goHome() }
}
}
composable(NavDestination.CGMS.id) {
FindDeviceScreen(ParcelUuid(NavDestination.CGMS.uuid)) {
deviceHolder.onDeviceSelected(it)
CGMScreen { goHome() }
}
}
composable(NavDestination.CSC.id) { CSCScreen { goHome() } }
composable(NavDestination.HRS.id) { HRSScreen { goHome() } }
composable(NavDestination.HTS.id) { HTSScreen { goHome() } }
composable(NavDestination.GLS.id) { GLSScreen { goHome() } }
composable(NavDestination.BPS.id) { BPSScreen { goHome() } }
composable(NavDestination.PRX.id) { PRXScreen { goHome() } }
composable(NavDestination.RSCS.id) { RSCSScreen { goHome() } }
composable(NavDestination.CGMS.id) { CGMScreen { goHome() } }
}
}

View File

@@ -0,0 +1,17 @@
package no.nordicsemi.android.nrftoolbox
import androidx.lifecycle.ViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import no.nordicsemi.android.service.SelectedBluetoothDeviceHolder
import no.nordicsemi.ui.scanner.DiscoveredBluetoothDevice
import javax.inject.Inject
@HiltViewModel
class HomeViewModel @Inject constructor(
private val deviceHolder: SelectedBluetoothDeviceHolder
) : ViewModel() {
fun onDeviceSelected(device: DiscoveredBluetoothDevice) {
deviceHolder.attachDevice(device.device)
}
}

View File

@@ -1,15 +1,25 @@
package no.nordicsemi.android.nrftoolbox
import no.nordicsemi.android.bps.repository.BPS_SERVICE_UUID
import no.nordicsemi.android.cgms.repository.CGMS_SERVICE_UUID
import no.nordicsemi.android.csc.service.CYCLING_SPEED_AND_CADENCE_SERVICE_UUID
import no.nordicsemi.android.gls.repository.GLS_SERVICE_UUID
import no.nordicsemi.android.hrs.service.HR_SERVICE_UUID
import no.nordicsemi.android.hts.service.HT_SERVICE_UUID
import no.nordicsemi.android.prx.service.PRX_SERVICE_UUID
import no.nordicsemi.android.rscs.service.RSCS_SERVICE_UUID
import java.util.*
const val ARGS_KEY = "args"
enum class NavDestination(val id: String, val pairingRequired: Boolean) {
HOME("home-screen", false),
CSC("csc-screen", false),
HRS("hrs-screen", false),
HTS("hts-screen", false),
GLS("gls-screen", true),
BPS("bps-screen", false),
PRX("prx-screen", true),
RSCS("rscs-screen", false),
CGMS("cgms-screen", false);
enum class NavDestination(val id: String, val uuid: UUID?, val pairingRequired: Boolean) {
HOME("home-screen", null, false),
CSC("csc-screen", CYCLING_SPEED_AND_CADENCE_SERVICE_UUID, false),
HRS("hrs-screen", HR_SERVICE_UUID, false),
HTS("hts-screen", HT_SERVICE_UUID, false),
GLS("gls-screen", GLS_SERVICE_UUID, true),
BPS("bps-screen", BPS_SERVICE_UUID, false),
PRX("prx-screen", PRX_SERVICE_UUID, true),
RSCS("rscs-screen", RSCS_SERVICE_UUID, false),
CGMS("cgms-screen", CGMS_SERVICE_UUID, false);
}

View File

@@ -2,6 +2,19 @@ package no.nordicsemi.android.nrftoolbox
import android.app.Application
import dagger.hilt.android.HiltAndroidApp
import no.nordicsemi.ui.scanner.scannerModule
import org.koin.android.ext.koin.androidContext
import org.koin.core.context.startKoin
@HiltAndroidApp
class NrfToolboxApplication : Application()
class NrfToolboxApplication : Application() {
override fun onCreate() {
super.onCreate()
startKoin {
androidContext(this@NrfToolboxApplication)
modules(scannerModule)
}
}
}