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, packageName: String,
onNavigateUp: () -> Unit, onNavigateUp: () -> Unit,
appDetailsViewModel: AppDetailsViewModel = hiltViewModel(key = packageName), appDetailsViewModel: AppDetailsViewModel = hiltViewModel(key = packageName),
detailsExodusViewModel: DetailsExodusViewModel = hiltViewModel { factory: DetailsExodusViewModel.Factory -> detailsExodusViewModel: DetailsExodusViewModel = hiltViewModel(
factory.create(appDetailsViewModel.exodusReport.value!!) key = packageName,
}, creationCallback = { factory: DetailsExodusViewModel.Factory ->
factory.create(appDetailsViewModel.exodusReport.value!!)
}
),
windowAdaptiveInfo: WindowAdaptiveInfo = currentWindowAdaptiveInfo() windowAdaptiveInfo: WindowAdaptiveInfo = currentWindowAdaptiveInfo()
) { ) {
val app by appDetailsViewModel.app.collectAsStateWithLifecycle() val app by appDetailsViewModel.app.collectAsStateWithLifecycle()

View File

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

View File

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

View File

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