Lokik Soni
02/18/2022, 11:13 AM@AndroidEntryPoint
class MainActivity : ComponentActivity() {
@Inject
lateinit var batteryBroadcast: BatteryBroadcast
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
BatteryAlarmGoldTheme {
val homeViewModel = hiltViewModel<HomeViewModel>()
lifecycle.addObserver(batteryBroadcast)
homeViewModel.setBatteryProfileData(batteryBroadcast.dataFlow)
// A surface container using the 'background' color from the theme
Surface(color = MaterialTheme.colors.background) {
BatteryAlarmGoldApp()
}
}
}
}
}
Now I want to use the same ViewModel in my compose to access that data. I am using NavHost for that currently
fun NavGraphBuilder.homeNavGraph(
navController: NavHostController
) {
navigation(startDestination = Screen.HomeScreen.route, route = HOME_ROUTE) {
composable(Screen.HomeScreen.route) {
val homeBackStackEntry = remember { navController.getBackStackEntry(HOME_ROUTE) }
val homeViewModel: HomeViewModel = hiltViewModel(homeBackStackEntry)
HomeScreen(
navController = navController,
viewModel = homeViewModel
)
}
composable(Screen.SelectRingtoneScreen.route) {
val homeBackStackEntry = remember { navController.getBackStackEntry(HOME_ROUTE) }
val homeViewModel: HomeViewModel = hiltViewModel(homeBackStackEntry)
RingtoneScreen(
viewModel = homeViewModel
)
}
}
}
Or there is any batter solution to achieve the same please suggest me.Marcello Galhardo
02/18/2022, 12:35 PMLokik Soni
02/19/2022, 5:03 AM