11package com.dergoogler.mmrl.ui.screens.home.items
22
3+ import androidx.annotation.StringRes
34import androidx.compose.foundation.layout.Arrangement
45import androidx.compose.foundation.layout.Column
56import androidx.compose.foundation.layout.Row
@@ -22,20 +23,26 @@ import androidx.compose.ui.unit.dp
2223import com.dergoogler.mmrl.R
2324import com.dergoogler.mmrl.ext.nullable
2425import com.dergoogler.mmrl.ext.takeTrue
26+ import com.dergoogler.mmrl.model.local.FeaturedManager
2527import com.dergoogler.mmrl.ui.component.LabelItem
2628import com.dergoogler.mmrl.ui.component.card.Card
2729import com.dergoogler.mmrl.ui.component.text.TextRow
30+ import com.dergoogler.mmrl.ui.providable.LocalUserPreferences
2831import com.dergoogler.mmrl.viewmodel.HomeViewModel
2932
3033@Composable
3134internal fun RootItem (
3235 developerMode : Boolean = false,
3336 viewModel : HomeViewModel ,
3437) {
38+ val userPreferences = LocalUserPreferences .current
3539 val platform = viewModel.platform
3640 val isAlive = viewModel.isProviderAlive
3741 val versionCode = viewModel.versionCode
3842
43+ val manager =
44+ FeaturedManager .managers.find { userPreferences.workingMode == it.workingMode }
45+
3946 Card (
4047 modifier = Modifier .padding(20 .dp),
4148 color = MaterialTheme .colorScheme.secondaryContainer,
@@ -68,17 +75,7 @@ internal fun RootItem(
6875 Icon (
6976 modifier = Modifier .size(45 .dp),
7077 painter = painterResource(
71- id = if (isAlive) {
72- when {
73- platform.isMagisk -> R .drawable.magisk_logo
74- platform.isKernelSU -> R .drawable.kernelsu_logo
75- platform.isKernelSuNext -> R .drawable.kernelsu_next_logo
76- platform.isAPatch -> R .drawable.brand_android
77- else -> R .drawable.circle_check_filled
78- }
79- } else {
80- R .drawable.alert_circle_filled
81- }
78+ id = getManagerLogo(isAlive, manager)
8279 ),
8380 contentDescription = null ,
8481 tint = MaterialTheme .colorScheme.primary
@@ -161,4 +158,17 @@ internal fun RootItem(
161158 }
162159 }
163160 }
161+ }
162+
163+ private fun getManagerLogo (isAlive : Boolean , manager : FeaturedManager ? ): Int {
164+ if (! isAlive) {
165+ return R .drawable.alert_circle_filled
166+ }
167+
168+
169+ if (manager == null ) {
170+ return R .drawable.circle_check_filled
171+ }
172+
173+ return manager.icon
164174}
0 commit comments