mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 13:08:46 +00:00
Add PNP settings.
This commit is contained in:
committed by
Greyson Parrelli
parent
f3693c966a
commit
45a04423b0
32
core-ui/src/main/java/org/signal/core/ui/Dividers.kt
Normal file
32
core-ui/src/main/java/org/signal/core/ui/Dividers.kt
Normal file
@@ -0,0 +1,32 @@
|
||||
package org.signal.core.ui
|
||||
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material3.Divider
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.signal.core.ui.theme.SignalTheme
|
||||
|
||||
/**
|
||||
* Thin divider lines for separating content.
|
||||
*/
|
||||
object Dividers {
|
||||
@Composable
|
||||
fun Default(modifier: Modifier = Modifier) {
|
||||
Divider(
|
||||
thickness = 1.5.dp,
|
||||
color = MaterialTheme.colorScheme.surfaceVariant,
|
||||
modifier = modifier.padding(vertical = 16.25.dp)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
private fun DefaultPreview() {
|
||||
SignalTheme(isDarkMode = false) {
|
||||
Dividers.Default()
|
||||
}
|
||||
}
|
||||
55
core-ui/src/main/java/org/signal/core/ui/Rows.kt
Normal file
55
core-ui/src/main/java/org/signal/core/ui/Rows.kt
Normal file
@@ -0,0 +1,55 @@
|
||||
package org.signal.core.ui
|
||||
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.RadioButton
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.dimensionResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.signal.core.ui.theme.SignalTheme
|
||||
|
||||
object Rows {
|
||||
/**
|
||||
* A row consisting of a radio button and text, which takes up the full
|
||||
* width of the screen.
|
||||
*/
|
||||
@Composable
|
||||
fun RadioRow(
|
||||
selected: Boolean,
|
||||
text: String,
|
||||
modifier: Modifier = Modifier
|
||||
) {
|
||||
Row(
|
||||
modifier = modifier
|
||||
.fillMaxWidth()
|
||||
.padding(
|
||||
horizontal = dimensionResource(id = R.dimen.core_ui__gutter),
|
||||
vertical = 16.dp
|
||||
)
|
||||
) {
|
||||
RadioButton(
|
||||
selected = selected,
|
||||
onClick = null,
|
||||
modifier = Modifier.padding(end = 24.dp)
|
||||
)
|
||||
|
||||
Text(
|
||||
text = text,
|
||||
style = MaterialTheme.typography.bodyLarge
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
private fun RadioRowPreview() {
|
||||
SignalTheme(isDarkMode = false) {
|
||||
Rows.RadioRow(true, "RadioRow")
|
||||
}
|
||||
}
|
||||
54
core-ui/src/main/java/org/signal/core/ui/Scaffolds.kt
Normal file
54
core-ui/src/main/java/org/signal/core/ui/Scaffolds.kt
Normal file
@@ -0,0 +1,54 @@
|
||||
package org.signal.core.ui
|
||||
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBar
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.painter.Painter
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
object Scaffolds {
|
||||
@Composable
|
||||
fun Settings(
|
||||
title: String,
|
||||
onNavigationClick: () -> Unit,
|
||||
painter: Painter,
|
||||
modifier: Modifier = Modifier,
|
||||
navigationContentDescription: String? = null,
|
||||
content: @Composable (PaddingValues) -> Unit
|
||||
) {
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
title = {
|
||||
Text(
|
||||
text = title,
|
||||
style = MaterialTheme.typography.titleLarge
|
||||
)
|
||||
},
|
||||
navigationIcon = {
|
||||
IconButton(
|
||||
onClick = onNavigationClick,
|
||||
Modifier.padding(end = 16.dp)
|
||||
) {
|
||||
Icon(
|
||||
painter = painter,
|
||||
contentDescription = navigationContentDescription
|
||||
)
|
||||
}
|
||||
}
|
||||
)
|
||||
},
|
||||
modifier = modifier,
|
||||
content = content
|
||||
)
|
||||
}
|
||||
}
|
||||
40
core-ui/src/main/java/org/signal/core/ui/Texts.kt
Normal file
40
core-ui/src/main/java/org/signal/core/ui/Texts.kt
Normal file
@@ -0,0 +1,40 @@
|
||||
package org.signal.core.ui
|
||||
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.dimensionResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.signal.core.ui.theme.SignalTheme
|
||||
|
||||
object Texts {
|
||||
/**
|
||||
* Header row for settings pages.
|
||||
*/
|
||||
@Composable
|
||||
fun SectionHeader(
|
||||
text: String,
|
||||
modifier: Modifier = Modifier
|
||||
) {
|
||||
Text(
|
||||
text = text,
|
||||
style = MaterialTheme.typography.titleSmall,
|
||||
modifier = modifier
|
||||
.padding(
|
||||
horizontal = dimensionResource(id = R.dimen.core_ui__gutter)
|
||||
)
|
||||
.padding(top = 16.dp, bottom = 12.dp)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
private fun SectionHeaderPreview() {
|
||||
SignalTheme(isDarkMode = false) {
|
||||
Texts.SectionHeader("Header")
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,7 @@ import androidx.compose.ui.text.font.FontFamily
|
||||
import androidx.compose.ui.text.font.FontStyle
|
||||
import androidx.compose.ui.unit.sp
|
||||
|
||||
private val typography = Typography().apply {
|
||||
private val typography = Typography().run {
|
||||
copy(
|
||||
headlineLarge = headlineLarge.copy(
|
||||
lineHeight = 40.sp,
|
||||
|
||||
4
core-ui/src/main/res/values-sw360dp/dimens.xml
Normal file
4
core-ui/src/main/res/values-sw360dp/dimens.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="core_ui__gutter">24dp</dimen>
|
||||
</resources>
|
||||
4
core-ui/src/main/res/values/dimens.xml
Normal file
4
core-ui/src/main/res/values/dimens.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="core_ui__gutter">16dp</dimen>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user