Refactor: Update MainActivity to use Koin for DI
This commit is contained in:
parent
40011a18d4
commit
82c8093d1e
|
|
@ -5,26 +5,25 @@ import android.os.Bundle
|
|||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.activity.viewModels
|
||||
import com.syaroful.agrilinkvocpro.core.components.DownloadModuleConfirmationDialog
|
||||
import com.syaroful.agrilinkvocpro.core.components.DownloadProgressDialog
|
||||
import com.syaroful.agrilinkvocpro.core.route.SetupNavigation
|
||||
import com.syaroful.agrilinkvocpro.ui.screen.home.HomeViewModel
|
||||
import com.syaroful.agrilinkvocpro.data.UserPreferences
|
||||
import com.syaroful.agrilinkvocpro.navigation.SetupNavigation
|
||||
import com.syaroful.agrilinkvocpro.ui.screen.home.DynamicModuleViewModel
|
||||
import com.syaroful.agrilinkvocpro.ui.theme.AgrilinkVocproTheme
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import org.koin.android.ext.android.get
|
||||
import org.koin.androidx.viewmodel.ext.android.viewModel
|
||||
|
||||
@AndroidEntryPoint
|
||||
class MainActivity : ComponentActivity() {
|
||||
private val homeViewModel: HomeViewModel by viewModels()
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
|
||||
super.onCreate(savedInstanceState)
|
||||
enableEdgeToEdge()
|
||||
setContent {
|
||||
AgrilinkVocproTheme {
|
||||
val dynamicModuleViewModel: DynamicModuleViewModel by viewModel()
|
||||
val userPreferences: UserPreferences = get()
|
||||
SetupNavigation(
|
||||
homeViewModel = homeViewModel,
|
||||
dynamicModuleViewModel = dynamicModuleViewModel,
|
||||
userPreferences = userPreferences,
|
||||
onLaunchFeature = { className ->
|
||||
val intent = Intent().apply {
|
||||
setClassName(packageName, className)
|
||||
|
|
@ -32,44 +31,21 @@ class MainActivity : ComponentActivity() {
|
|||
startActivity(intent)
|
||||
}
|
||||
)
|
||||
|
||||
DownloadProgressDialog(
|
||||
showDialog = homeViewModel.showProgressDialog.value,
|
||||
message = homeViewModel.progressMessage.value,
|
||||
progress = homeViewModel.progressPercent.floatValue,
|
||||
onDismiss = {homeViewModel.showProgressDialog.value = false}
|
||||
)
|
||||
|
||||
DownloadModuleConfirmationDialog(
|
||||
moduleName = homeViewModel.currentModuleToDownload.value,
|
||||
onDismiss = { homeViewModel.currentModuleToDownload.value = null },
|
||||
onClickConfirm = { homeViewModel.confirmDownload { startFeature(it) } }
|
||||
moduleName = dynamicModuleViewModel.currentModuleToDownload.value,
|
||||
onDismiss = { dynamicModuleViewModel.currentModuleToDownload.value = null },
|
||||
onClickConfirm = { dynamicModuleViewModel.confirmDownload { startFeature(it) } }
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun startFeature(className: String) {
|
||||
val intent = Intent().apply {
|
||||
setClassName(packageName, className)
|
||||
}
|
||||
startActivity(intent)
|
||||
}
|
||||
|
||||
private fun startFeatureActivity(moduleName: String) {
|
||||
val activityClassName = when (moduleName) {
|
||||
"control_feature" -> "com.syaroful.agrilinkvocpro.control_feature.ControlActuatorActivity"
|
||||
"recipe_feature" -> "com.syaroful.agrilinkvocpro.recipe_feature.RecipeActivity"
|
||||
"price_prediction_feature" -> "com.syaroful.agrilinkvocpro.price_prediction_feature.PricePredictionActivity"
|
||||
"plant_disease_detection_feature" -> "com.syaroful.agrilinkvocpro.diseasedetection_feature.PlantDiseaseDetectionActivity"
|
||||
else -> null
|
||||
}
|
||||
activityClassName?.let {
|
||||
val intent = Intent().apply {
|
||||
setClassName("com.syaroful.agrilinkvocpro", it)
|
||||
}
|
||||
startActivity(intent)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user