compose: details: Also map child screen viewmodels with key

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2025-09-15 13:16:41 +05:30
parent 153e1349a8
commit 54b7bf502e
4 changed files with 24 additions and 12 deletions

View File

@@ -41,9 +41,12 @@ fun ExodusScreen(
packageName: String,
onNavigateUp: () -> Unit,
appDetailsViewModel: AppDetailsViewModel = hiltViewModel(key = packageName),
detailsExodusViewModel: DetailsExodusViewModel = hiltViewModel { factory: DetailsExodusViewModel.Factory ->
factory.create(appDetailsViewModel.exodusReport.value!!)
},
detailsExodusViewModel: DetailsExodusViewModel = hiltViewModel(
key = packageName,
creationCallback = { factory: DetailsExodusViewModel.Factory ->
factory.create(appDetailsViewModel.exodusReport.value!!)
}
),
windowAdaptiveInfo: WindowAdaptiveInfo = currentWindowAdaptiveInfo()
) {
val app by appDetailsViewModel.app.collectAsStateWithLifecycle()

View File

@@ -52,9 +52,12 @@ fun MoreScreen(
onNavigateUp: () -> Unit,
onNavigateToAppDetails: (packageName: String) -> Unit,
appDetailsViewModel: AppDetailsViewModel = hiltViewModel(key = packageName),
detailsMoreViewModel: DetailsMoreViewModel = hiltViewModel { factory: DetailsMoreViewModel.Factory ->
factory.create(appDetailsViewModel.app.value!!.dependencies.dependentPackages)
}
detailsMoreViewModel: DetailsMoreViewModel = hiltViewModel(
key = packageName,
creationCallback = { factory: DetailsMoreViewModel.Factory ->
factory.create(appDetailsViewModel.app.value!!.dependencies.dependentPackages)
}
)
) {
val app by appDetailsViewModel.app.collectAsStateWithLifecycle()
val dependencies by detailsMoreViewModel.dependentApps.collectAsStateWithLifecycle()

View File

@@ -41,9 +41,12 @@ fun PermissionScreen(
packageName: String,
onNavigateUp: () -> Unit,
appDetailsViewModel: AppDetailsViewModel = hiltViewModel(key = packageName),
detailsPermissionViewModel: DetailsPermissionViewModel = hiltViewModel { factory: DetailsPermissionViewModel.Factory ->
factory.create(appDetailsViewModel.app.value!!.permissions)
},
detailsPermissionViewModel: DetailsPermissionViewModel = hiltViewModel(
key = packageName,
creationCallback = { factory: DetailsPermissionViewModel.Factory ->
factory.create(appDetailsViewModel.app.value!!.permissions)
}
),
windowAdaptiveInfo: WindowAdaptiveInfo = currentWindowAdaptiveInfo()
) {
val app by appDetailsViewModel.app.collectAsStateWithLifecycle()

View File

@@ -58,9 +58,12 @@ fun ReviewScreen(
packageName: String,
onNavigateUp: () -> Unit,
appDetailsViewModel: AppDetailsViewModel = hiltViewModel(key = packageName),
detailsReviewViewModel: DetailsReviewViewModel = hiltViewModel { factory: DetailsReviewViewModel.Factory ->
factory.create(appDetailsViewModel.app.value!!.packageName)
},
detailsReviewViewModel: DetailsReviewViewModel = hiltViewModel(
key = packageName,
creationCallback = { factory: DetailsReviewViewModel.Factory ->
factory.create(appDetailsViewModel.app.value!!.packageName)
}
),
windowAdaptiveInfo: WindowAdaptiveInfo = currentWindowAdaptiveInfo()
) {
val app by appDetailsViewModel.app.collectAsStateWithLifecycle()