mirror of
https://github.com/revanced/revanced-manager-compose-old.git
synced 2025-04-30 06:24:28 +02:00
feat: support painterResource in SocialItem
This commit is contained in:
parent
31dce1a0f8
commit
0533381dd6
@ -1,9 +1,8 @@
|
|||||||
package app.revanced.manager.ui.component
|
package app.revanced.manager.ui.component
|
||||||
|
|
||||||
|
import androidx.annotation.DrawableRes
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.material.icons.Icons
|
|
||||||
import androidx.compose.material.icons.filled.Code
|
|
||||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.ListItem
|
import androidx.compose.material3.ListItem
|
||||||
@ -11,32 +10,39 @@ import androidx.compose.material3.Text
|
|||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.vector.ImageVector
|
import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import app.revanced.manager.R
|
|
||||||
import app.revanced.manager.util.ghOrganization
|
|
||||||
import app.revanced.manager.util.openUrl
|
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun SocialItem(@StringRes label: Int, vec: ImageVector, fn: () -> Unit) {
|
fun SocialItem(@StringRes label: Int, imageVector: ImageVector? = null, fn: () -> Unit) {
|
||||||
val rsc = stringResource(label)
|
|
||||||
ListItem(
|
ListItem(
|
||||||
modifier = Modifier.clickable { fn() },
|
modifier = Modifier.clickable { fn() },
|
||||||
leadingContent = {
|
leadingContent = {
|
||||||
|
if (imageVector != null) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = vec,
|
imageVector = imageVector,
|
||||||
contentDescription = rsc
|
contentDescription = stringResource(label)
|
||||||
)
|
)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
headlineText = { Text(rsc) }
|
headlineText = { Text(stringResource(label)) }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun SocialItemPreview() {
|
fun SocialItem(@StringRes label: Int, @DrawableRes painterResource: Int? = null, fn: () -> Unit) {
|
||||||
val ctx = LocalContext.current.applicationContext
|
ListItem(
|
||||||
SocialItem(R.string.github, Icons.Default.Code) {
|
modifier = Modifier.clickable { fn() },
|
||||||
ctx.openUrl(ghOrganization)
|
leadingContent = {
|
||||||
|
if (painterResource != null) {
|
||||||
|
Icon(
|
||||||
|
painter = painterResource(painterResource),
|
||||||
|
contentDescription = stringResource(label)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
headlineText = { Text(stringResource(label)) }
|
||||||
|
)
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user