From 4099f56954a0f96bc972d154f150df3708034ea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sylwester=20Zieli=C5=84ski?= Date: Tue, 30 Nov 2021 16:54:47 +0100 Subject: [PATCH] Migration to Material You --- app/build.gradle | 2 + .../android/nrftoolbox/FeatureButton.kt | 6 +- .../android/nrftoolbox/MainActivity.kt | 14 ++-- .../bonding/view/BondingErrorView.kt | 2 +- .../bonding/view/BondingInProgressView.kt | 2 +- .../bonding/view/BondingSuccessView.kt | 4 +- .../view/BluetoothNotAvailableScreen.kt | 7 +- .../permission/view/NotConnectedView.kt | 7 +- .../view/RequestPermissionScreen.kt | 4 +- lib_theme/build.gradle | 2 + .../java/no/nordicsemi/android/theme/Color.kt | 68 ------------------- .../java/no/nordicsemi/android/theme/Shape.kt | 11 --- .../java/no/nordicsemi/android/theme/Theme.kt | 50 -------------- .../java/no/nordicsemi/android/theme/Type.kt | 28 -------- .../android/theme/view/KeyValueField.kt | 6 +- .../theme/view/SelectItemRadioGroup.kt | 16 ++--- .../android/theme/view/SensorRecordCard.kt | 6 +- .../android/theme/view/TopAppBar.kt | 29 ++++++-- .../theme/view/dialog/StringListDialog.kt | 14 ++-- .../android/bps/view/BPSContentView.kt | 7 +- profile_csc/build.gradle | 1 + .../android/csc/view/CSCConnectedView.kt | 9 ++- .../android/csc/view/SelectWheelSizeDialog.kt | 4 +- .../android/csc/view/WheelSizeView.kt | 24 +++---- .../android/gls/view/GLSContentView.kt | 7 +- .../android/hrs/view/HRSContentView.kt | 7 +- .../android/hts/view/HTSContentView.kt | 7 +- .../android/prx/view/PRXContentView.kt | 7 +- .../android/rscs/view/RSCSContentView.kt | 7 +- settings.gradle | 5 +- 30 files changed, 99 insertions(+), 264 deletions(-) delete mode 100644 lib_theme/src/main/java/no/nordicsemi/android/theme/Color.kt delete mode 100644 lib_theme/src/main/java/no/nordicsemi/android/theme/Shape.kt delete mode 100644 lib_theme/src/main/java/no/nordicsemi/android/theme/Theme.kt delete mode 100644 lib_theme/src/main/java/no/nordicsemi/android/theme/Type.kt diff --git a/app/build.gradle b/app/build.gradle index 07ea47bb..63ae30dd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -48,6 +48,8 @@ android { } dependencies { + implementation libs.nordic.theme + //Hilt requires to implement every module in the main app module //https://github.com/google/dagger/issues/2123 implementation project(':profile_bps') diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/FeatureButton.kt b/app/src/main/java/no/nordicsemi/android/nrftoolbox/FeatureButton.kt index fd3eee3e..79989492 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/FeatureButton.kt +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/FeatureButton.kt @@ -11,7 +11,8 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.Text +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -21,7 +22,6 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import no.nordicsemi.android.theme.NordicColors @Composable fun FeatureButton(@DrawableRes iconId: Int, @StringRes nameId: Int, onClick: () -> Unit) { @@ -29,7 +29,7 @@ fun FeatureButton(@DrawableRes iconId: Int, @StringRes nameId: Int, onClick: () modifier = Modifier .fillMaxWidth() .clickable { onClick() } - .background(NordicColors.ItemHighlight.value()) + .background(MaterialTheme.colorScheme.background) .padding(16.dp), verticalAlignment = Alignment.CenterVertically ) { diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/MainActivity.kt b/app/src/main/java/no/nordicsemi/android/nrftoolbox/MainActivity.kt index 026d2ae7..3a0cfc2a 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/MainActivity.kt +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/MainActivity.kt @@ -2,21 +2,21 @@ package no.nordicsemi.android.nrftoolbox import android.os.Bundle import androidx.activity.compose.setContent -import androidx.appcompat.app.AppCompatActivity -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Surface +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface import dagger.hilt.android.AndroidEntryPoint -import no.nordicsemi.android.theme.TestTheme +import no.nordicsemi.android.material.you.NordicActivity +import no.nordicsemi.android.material.you.NordicTheme @AndroidEntryPoint -class MainActivity : AppCompatActivity() { +class MainActivity : NordicActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { - TestTheme { - Surface(color = MaterialTheme.colors.background) { + NordicTheme { + Surface(color = MaterialTheme.colorScheme.background) { HomeScreen() } } diff --git a/lib_permission/src/main/java/no/nordicsemi/android/permission/bonding/view/BondingErrorView.kt b/lib_permission/src/main/java/no/nordicsemi/android/permission/bonding/view/BondingErrorView.kt index a3f72000..1c1178a7 100644 --- a/lib_permission/src/main/java/no/nordicsemi/android/permission/bonding/view/BondingErrorView.kt +++ b/lib_permission/src/main/java/no/nordicsemi/android/permission/bonding/view/BondingErrorView.kt @@ -3,7 +3,7 @@ package no.nordicsemi.android.permission.bonding.view import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource diff --git a/lib_permission/src/main/java/no/nordicsemi/android/permission/bonding/view/BondingInProgressView.kt b/lib_permission/src/main/java/no/nordicsemi/android/permission/bonding/view/BondingInProgressView.kt index e4c96e2f..53bde7a2 100644 --- a/lib_permission/src/main/java/no/nordicsemi/android/permission/bonding/view/BondingInProgressView.kt +++ b/lib_permission/src/main/java/no/nordicsemi/android/permission/bonding/view/BondingInProgressView.kt @@ -3,7 +3,7 @@ package no.nordicsemi.android.permission.bonding.view import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource diff --git a/lib_permission/src/main/java/no/nordicsemi/android/permission/bonding/view/BondingSuccessView.kt b/lib_permission/src/main/java/no/nordicsemi/android/permission/bonding/view/BondingSuccessView.kt index fe5d3f7b..eadfd1b9 100644 --- a/lib_permission/src/main/java/no/nordicsemi/android/permission/bonding/view/BondingSuccessView.kt +++ b/lib_permission/src/main/java/no/nordicsemi/android/permission/bonding/view/BondingSuccessView.kt @@ -1,9 +1,9 @@ -package no.nordicsemi.android.permission.bonding +package no.nordicsemi.android.permission.bonding.view import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding -import androidx.compose.material.Text +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource diff --git a/lib_permission/src/main/java/no/nordicsemi/android/permission/view/BluetoothNotAvailableScreen.kt b/lib_permission/src/main/java/no/nordicsemi/android/permission/view/BluetoothNotAvailableScreen.kt index 9ae17a8d..21a0700e 100644 --- a/lib_permission/src/main/java/no/nordicsemi/android/permission/view/BluetoothNotAvailableScreen.kt +++ b/lib_permission/src/main/java/no/nordicsemi/android/permission/view/BluetoothNotAvailableScreen.kt @@ -11,10 +11,8 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.material.Button -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -73,7 +71,6 @@ fun BluetoothNotEnabledScreen(finish: () -> Unit) { ) Spacer(Modifier.height(32.dp)) Button( - colors = ButtonDefaults.buttonColors(backgroundColor = MaterialTheme.colors.secondary), onClick = { launcher.launch(Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)) } ) { Text(text = stringResource(id = R.string.scanner__bluetooth_open_settings)) diff --git a/lib_permission/src/main/java/no/nordicsemi/android/permission/view/NotConnectedView.kt b/lib_permission/src/main/java/no/nordicsemi/android/permission/view/NotConnectedView.kt index 1d8e9cc3..d864d378 100644 --- a/lib_permission/src/main/java/no/nordicsemi/android/permission/view/NotConnectedView.kt +++ b/lib_permission/src/main/java/no/nordicsemi/android/permission/view/NotConnectedView.kt @@ -6,10 +6,8 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.material.Button -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -39,7 +37,6 @@ private fun NotConnectedView( Text(text = stringResource(id = R.string.csc_no_connection)) Spacer(modifier = Modifier.height(16.dp)) Button( - colors = ButtonDefaults.buttonColors(backgroundColor = MaterialTheme.colors.secondary), onClick = { connect() } ) { Text(text = stringResource(id = R.string.csc_connect)) diff --git a/lib_permission/src/main/java/no/nordicsemi/android/permission/view/RequestPermissionScreen.kt b/lib_permission/src/main/java/no/nordicsemi/android/permission/view/RequestPermissionScreen.kt index 6659d36c..e5a6f7ce 100644 --- a/lib_permission/src/main/java/no/nordicsemi/android/permission/view/RequestPermissionScreen.kt +++ b/lib_permission/src/main/java/no/nordicsemi/android/permission/view/RequestPermissionScreen.kt @@ -13,8 +13,8 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.material.Button -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.saveable.rememberSaveable diff --git a/lib_theme/build.gradle b/lib_theme/build.gradle index 4d68c88e..273b27ee 100644 --- a/lib_theme/build.gradle +++ b/lib_theme/build.gradle @@ -3,6 +3,8 @@ apply from: rootProject.file("library.gradle") dependencies { implementation libs.material + implementation libs.nordic.theme + implementation libs.bundles.compose implementation libs.compose.lifecycle implementation libs.compose.activity diff --git a/lib_theme/src/main/java/no/nordicsemi/android/theme/Color.kt b/lib_theme/src/main/java/no/nordicsemi/android/theme/Color.kt deleted file mode 100644 index d1cb0537..00000000 --- a/lib_theme/src/main/java/no/nordicsemi/android/theme/Color.kt +++ /dev/null @@ -1,68 +0,0 @@ -package no.nordicsemi.android.theme - -import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.runtime.Composable -import androidx.compose.ui.graphics.Color - -object NordicColors { - val AlmostWhite = Color(0xFFDADADA) - val NordicBlue = Color(0xFF00A9CE) - val NordicLake = Color(0xFF008CD2) - - val NordicDarkGray = ThemedColor(Color(0xFF333F48), Color(0xFFCCCBC8)) - -// val NordicGray4 = ThemedColor(Color(0xFFD1D1D6), Color(0xFF3A3A3C)) - val NordicGray4 = ThemedColor(Color.White, Color(0xFF3A3A3C)) - - val NordicGray5 = ThemedColor(Color(0xFFE5E5EA), Color(0xFF2C2C2E)) - val NordicLightGray = NeutralColor(Color(0xFF929CA2)) - val NordicMediumGray = NeutralColor(Color(0xFF929CA2)) - - val NordicFall = ThemedColor(Color(0xFFF99535), Color(0xFFFF9F0A)) - val NordicGreen = ThemedColor(Color(0xFF3ED052), Color(0xFF32D74B)) - - val NordicOrange = ThemedColor(Color(0xFFDF9B16), Color(0xFFFF9F0A)) - val NordicRed = ThemedColor(Color(0xFFD03E51), Color(0xFFFF453A)) - val NordicSky = NeutralColor(Color(0xFF6AD1E3)) - val NordicYellow = ThemedColor(Color(0xFFF9EE35), Color(0xFFFFD60A)) - val TableViewBackground = NeutralColor(Color(0xFFF2F2F6)) - val TableViewSeparator = NeutralColor(Color(0xFFD2D2D6)) - - val Primary = ThemedColor(Color(0xFF00A9CE), Color(0xFF00A9CE)) - val PrimaryVariant = ThemedColor(Color(0xFF008CD2), Color(0xFF00A9CE)) - val Secondary = ThemedColor(Color(0xFF00A9CE), Color(0xFF00A9CE)) - val SecondaryVariant = ThemedColor(Color(0xFF008CD2), Color(0xFF00A9CE)) - val OnPrimary = ThemedColor(Color.White, Color.White) - val OnSecondary = ThemedColor(Color.White, Color.White) - val OnBackground = ThemedColor(Color.Black, Color.White) - val OnSurface = ThemedColor(Color.Black, Color.White) - val ItemHighlight = ThemedColor(Color.White, Color(0xFF1E1E1E)) - val Background = ThemedColor(Color(0xFFF5F5F5), Color(0xFF121212)) - val Surface = ThemedColor(Color(0xFFF5F5F5), Color(0xFF121212)) -} - -sealed class NordicColor { - - @Composable - abstract fun value(): Color -} - -data class ThemedColor(val light: Color, val dark: Color): NordicColor() { - - @Composable - override fun value(): Color { - return if (isSystemInDarkTheme()) { - dark - } else { - light - } - } -} - -data class NeutralColor(val color: Color): NordicColor() { - - @Composable - override fun value(): Color { - return color - } -} diff --git a/lib_theme/src/main/java/no/nordicsemi/android/theme/Shape.kt b/lib_theme/src/main/java/no/nordicsemi/android/theme/Shape.kt deleted file mode 100644 index 370020f6..00000000 --- a/lib_theme/src/main/java/no/nordicsemi/android/theme/Shape.kt +++ /dev/null @@ -1,11 +0,0 @@ -package no.nordicsemi.android.theme - -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Shapes -import androidx.compose.ui.unit.dp - -val Shapes = Shapes( - small = RoundedCornerShape(4.dp), - medium = RoundedCornerShape(4.dp), - large = RoundedCornerShape(0.dp) -) \ No newline at end of file diff --git a/lib_theme/src/main/java/no/nordicsemi/android/theme/Theme.kt b/lib_theme/src/main/java/no/nordicsemi/android/theme/Theme.kt deleted file mode 100644 index 7de953b0..00000000 --- a/lib_theme/src/main/java/no/nordicsemi/android/theme/Theme.kt +++ /dev/null @@ -1,50 +0,0 @@ -package no.nordicsemi.android.theme - -import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.material.MaterialTheme -import androidx.compose.material.darkColors -import androidx.compose.material.lightColors -import androidx.compose.runtime.Composable - -@Composable -fun TestTheme(darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit) { - - val darkColorPalette = darkColors( - primary = NordicColors.Primary.value(), - primaryVariant = NordicColors.PrimaryVariant.value(), - secondary = NordicColors.Secondary.value(), - secondaryVariant = NordicColors.SecondaryVariant.value(), - onSecondary = NordicColors.OnSecondary.value(), - onPrimary = NordicColors.OnPrimary.value(), - onBackground = NordicColors.OnBackground.value(), - onSurface = NordicColors.OnSurface.value(), - background = NordicColors.Background.value(), - surface = NordicColors.Surface.value(), - ) - - val lightColorPalette = lightColors( - primary = NordicColors.Primary.value(), - primaryVariant = NordicColors.PrimaryVariant.value(), - secondary = NordicColors.Secondary.value(), - secondaryVariant = NordicColors.SecondaryVariant.value(), - onSecondary = NordicColors.OnSecondary.value(), - onPrimary = NordicColors.OnPrimary.value(), - onBackground = NordicColors.OnBackground.value(), - onSurface = NordicColors.OnSurface.value(), - background = NordicColors.Background.value(), - surface = NordicColors.Surface.value(), - ) - - val colors = if (darkTheme) { - darkColorPalette - } else { - lightColorPalette - } - - MaterialTheme( - colors = colors, - typography = Typography, - shapes = Shapes, - content = content - ) -} \ No newline at end of file diff --git a/lib_theme/src/main/java/no/nordicsemi/android/theme/Type.kt b/lib_theme/src/main/java/no/nordicsemi/android/theme/Type.kt deleted file mode 100644 index f9aec207..00000000 --- a/lib_theme/src/main/java/no/nordicsemi/android/theme/Type.kt +++ /dev/null @@ -1,28 +0,0 @@ -package no.nordicsemi.android.theme - -import androidx.compose.material.Typography -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.font.FontFamily -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.unit.sp - -// Set of Material typography styles to start with -val Typography = Typography( - body1 = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 16.sp - ) - /* Other default text styles to override - button = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.W500, - fontSize = 14.sp - ), - caption = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 12.sp - ) - */ -) \ No newline at end of file diff --git a/lib_theme/src/main/java/no/nordicsemi/android/theme/view/KeyValueField.kt b/lib_theme/src/main/java/no/nordicsemi/android/theme/view/KeyValueField.kt index 4083c1de..6416a197 100644 --- a/lib_theme/src/main/java/no/nordicsemi/android/theme/view/KeyValueField.kt +++ b/lib_theme/src/main/java/no/nordicsemi/android/theme/view/KeyValueField.kt @@ -3,10 +3,10 @@ package no.nordicsemi.android.theme.view import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.material.Text +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import no.nordicsemi.android.theme.NordicColors @Composable fun KeyValueField(key: String, value: String) { @@ -16,7 +16,7 @@ fun KeyValueField(key: String, value: String) { ) { Text(text = key) Text( - color = NordicColors.NordicDarkGray.value(), + color = MaterialTheme.colorScheme.onBackground, text = value ) } diff --git a/lib_theme/src/main/java/no/nordicsemi/android/theme/view/SelectItemRadioGroup.kt b/lib_theme/src/main/java/no/nordicsemi/android/theme/view/SelectItemRadioGroup.kt index 760632e4..87eadfdc 100644 --- a/lib_theme/src/main/java/no/nordicsemi/android/theme/view/SelectItemRadioGroup.kt +++ b/lib_theme/src/main/java/no/nordicsemi/android/theme/view/SelectItemRadioGroup.kt @@ -2,14 +2,11 @@ package no.nordicsemi.android.theme.view import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.width -import androidx.compose.material.RadioButton -import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp +import no.nordicsemi.android.material.you.RadioButton +import no.nordicsemi.android.material.you.RadioButtonItem @Composable fun SelectItemRadioGroup( @@ -35,11 +32,10 @@ internal fun SelectItemRadioButton( ) { Row { RadioButton( - selected = (selectedItem == displayedItem.unit), - onClick = { onEvent(displayedItem) } - ) - Spacer(modifier = Modifier.width(4.dp)) - Text(text = displayedItem.label) + RadioButtonItem(displayedItem.label, selectedItem == displayedItem.unit), + ) { + onEvent(displayedItem) + } } } diff --git a/lib_theme/src/main/java/no/nordicsemi/android/theme/view/SensorRecordCard.kt b/lib_theme/src/main/java/no/nordicsemi/android/theme/view/SensorRecordCard.kt index 88c5bcc4..89934b6e 100644 --- a/lib_theme/src/main/java/no/nordicsemi/android/theme/view/SensorRecordCard.kt +++ b/lib_theme/src/main/java/no/nordicsemi/android/theme/view/SensorRecordCard.kt @@ -3,16 +3,16 @@ package no.nordicsemi.android.theme.view import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Card +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import no.nordicsemi.android.theme.NordicColors +import no.nordicsemi.android.material.you.Card @Composable fun ScreenSection(content: @Composable () -> Unit) { Card( - backgroundColor = NordicColors.ItemHighlight.value(), + backgroundColor = MaterialTheme.colorScheme.background, shape = RoundedCornerShape(4.dp), elevation = 0.dp ) { diff --git a/lib_theme/src/main/java/no/nordicsemi/android/theme/view/TopAppBar.kt b/lib_theme/src/main/java/no/nordicsemi/android/theme/view/TopAppBar.kt index e9d32b85..2351e0cc 100644 --- a/lib_theme/src/main/java/no/nordicsemi/android/theme/view/TopAppBar.kt +++ b/lib_theme/src/main/java/no/nordicsemi/android/theme/view/TopAppBar.kt @@ -1,20 +1,30 @@ package no.nordicsemi.android.theme.view -import androidx.compose.material.Icon -import androidx.compose.material.IconButton -import androidx.compose.material.Text -import androidx.compose.material.TopAppBar import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material.icons.filled.Close +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.SmallTopAppBar +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBarDefaults import androidx.compose.runtime.Composable +import androidx.compose.ui.res.colorResource import androidx.compose.ui.res.stringResource import no.nordicsemi.android.theme.R @Composable fun CloseIconAppBar(text: String, onClick: () -> Unit) { - TopAppBar( + SmallTopAppBar( title = { Text(text) }, + colors = TopAppBarDefaults.smallTopAppBarColors( + scrolledContainerColor = MaterialTheme.colorScheme.primary, + containerColor = colorResource(id = R.color.appBarColor), + titleContentColor = MaterialTheme.colorScheme.onPrimary, + actionIconContentColor = MaterialTheme.colorScheme.onPrimary, + navigationIconContentColor = MaterialTheme.colorScheme.onPrimary, + ), navigationIcon = { IconButton(onClick = { onClick() }) { Icon( @@ -28,8 +38,15 @@ fun CloseIconAppBar(text: String, onClick: () -> Unit) { @Composable fun BackIconAppBar(text: String, onClick: () -> Unit) { - TopAppBar( + SmallTopAppBar( title = { Text(text) }, + colors = TopAppBarDefaults.smallTopAppBarColors( + scrolledContainerColor = MaterialTheme.colorScheme.primary, + containerColor = colorResource(id = R.color.appBarColor), + titleContentColor = MaterialTheme.colorScheme.onPrimary, + actionIconContentColor = MaterialTheme.colorScheme.onPrimary, + navigationIconContentColor = MaterialTheme.colorScheme.onPrimary, + ), navigationIcon = { IconButton(onClick = { onClick() }) { Icon( diff --git a/lib_theme/src/main/java/no/nordicsemi/android/theme/view/dialog/StringListDialog.kt b/lib_theme/src/main/java/no/nordicsemi/android/theme/view/dialog/StringListDialog.kt index bf402c17..726d2321 100644 --- a/lib_theme/src/main/java/no/nordicsemi/android/theme/view/dialog/StringListDialog.kt +++ b/lib_theme/src/main/java/no/nordicsemi/android/theme/view/dialog/StringListDialog.kt @@ -13,9 +13,8 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll -import androidx.compose.material.Card -import androidx.compose.material.Text -import androidx.compose.material.TextButton +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -25,7 +24,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.compose.ui.window.Dialog -import no.nordicsemi.android.theme.NordicColors +import no.nordicsemi.android.material.you.Card import no.nordicsemi.android.theme.R @Composable @@ -39,7 +38,6 @@ fun StringListDialog(config: StringListDialogConfig) { fun StringListView(config: StringListDialogConfig) { Card( modifier = Modifier.height(300.dp), - backgroundColor = NordicColors.NordicGray4.value(), shape = RoundedCornerShape(10.dp), elevation = 0.dp ) { @@ -72,9 +70,9 @@ fun StringListView(config: StringListDialogConfig) { modifier = Modifier.padding(horizontal = 4.dp), painter = painterResource(it), contentDescription = "Content image", - colorFilter = ColorFilter.tint( - NordicColors.NordicDarkGray.value() - ) +// colorFilter = ColorFilter.tint( +// NordicColors.NordicDarkGray.value() +// ) ) } Text( diff --git a/profile_bps/src/main/java/no/nordicsemi/android/bps/view/BPSContentView.kt b/profile_bps/src/main/java/no/nordicsemi/android/bps/view/BPSContentView.kt index 1bb585a2..b0cfc530 100644 --- a/profile_bps/src/main/java/no/nordicsemi/android/bps/view/BPSContentView.kt +++ b/profile_bps/src/main/java/no/nordicsemi/android/bps/view/BPSContentView.kt @@ -3,10 +3,8 @@ package no.nordicsemi.android.bps.view import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.height -import androidx.compose.material.Button -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -27,7 +25,6 @@ internal fun BPSContentView(state: BPSData, onEvent: (BPSScreenViewEvent) -> Uni Spacer(modifier = Modifier.height(16.dp)) Button( - colors = ButtonDefaults.buttonColors(backgroundColor = MaterialTheme.colors.secondary), onClick = { onEvent(DisconnectEvent) } ) { Text(text = stringResource(id = R.string.disconnect)) diff --git a/profile_csc/build.gradle b/profile_csc/build.gradle index d397c91b..fce7ebeb 100644 --- a/profile_csc/build.gradle +++ b/profile_csc/build.gradle @@ -9,6 +9,7 @@ dependencies { implementation libs.nordic.ble.common implementation libs.nordic.log + implementation libs.nordic.theme implementation libs.bundles.compose implementation libs.androidx.core diff --git a/profile_csc/src/main/java/no/nordicsemi/android/csc/view/CSCConnectedView.kt b/profile_csc/src/main/java/no/nordicsemi/android/csc/view/CSCConnectedView.kt index fe1df765..b8dcb52f 100644 --- a/profile_csc/src/main/java/no/nordicsemi/android/csc/view/CSCConnectedView.kt +++ b/profile_csc/src/main/java/no/nordicsemi/android/csc/view/CSCConnectedView.kt @@ -3,10 +3,10 @@ package no.nordicsemi.android.csc.view import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.height -import androidx.compose.material.Button -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -38,7 +38,6 @@ internal fun CSCContentView(state: CSCData, onEvent: (CSCViewEvent) -> Unit) { Spacer(modifier = Modifier.height(16.dp)) Button( - colors = ButtonDefaults.buttonColors(backgroundColor = MaterialTheme.colors.secondary), onClick = { onEvent(OnDisconnectButtonClick) } ) { Text(text = stringResource(id = R.string.disconnect)) diff --git a/profile_csc/src/main/java/no/nordicsemi/android/csc/view/SelectWheelSizeDialog.kt b/profile_csc/src/main/java/no/nordicsemi/android/csc/view/SelectWheelSizeDialog.kt index c08a4138..6705c8c7 100644 --- a/profile_csc/src/main/java/no/nordicsemi/android/csc/view/SelectWheelSizeDialog.kt +++ b/profile_csc/src/main/java/no/nordicsemi/android/csc/view/SelectWheelSizeDialog.kt @@ -5,7 +5,7 @@ import androidx.compose.ui.res.stringArrayResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import no.nordicsemi.android.csc.R -import no.nordicsemi.android.theme.TestTheme +import no.nordicsemi.android.material.you.NordicTheme import no.nordicsemi.android.theme.view.dialog.FlowCanceled import no.nordicsemi.android.theme.view.dialog.ItemSelectedResult import no.nordicsemi.android.theme.view.dialog.StringListDialog @@ -40,7 +40,7 @@ private fun createConfig(entries: Array, onResult: (StringListDialogResu @Preview @Composable internal fun DefaultPreview() { - TestTheme { + NordicTheme { val wheelEntries = stringArrayResource(R.array.wheel_entries) StringListDialog(createConfig(wheelEntries) {}) } diff --git a/profile_csc/src/main/java/no/nordicsemi/android/csc/view/WheelSizeView.kt b/profile_csc/src/main/java/no/nordicsemi/android/csc/view/WheelSizeView.kt index 44644f7b..7f3d3809 100644 --- a/profile_csc/src/main/java/no/nordicsemi/android/csc/view/WheelSizeView.kt +++ b/profile_csc/src/main/java/no/nordicsemi/android/csc/view/WheelSizeView.kt @@ -1,12 +1,11 @@ package no.nordicsemi.android.csc.view import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.material.Icon -import androidx.compose.material.IconButton -import androidx.compose.material.OutlinedTextField -import androidx.compose.material.Text import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Edit +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource @@ -16,14 +15,15 @@ import no.nordicsemi.android.csc.data.CSCData @Composable internal fun WheelSizeView(state: CSCData, onEvent: (CSCViewEvent) -> Unit) { - OutlinedTextField( - modifier = Modifier.fillMaxWidth(), - value = state.wheelSizeDisplay, - onValueChange = { }, - enabled = false, - label = { Text(text = stringResource(id = R.string.csc_field_wheel_size)) }, - trailingIcon = { EditIcon(onEvent = onEvent) } - ) + //TODO +// OutlinedTextField( +// modifier = Modifier.fillMaxWidth(), +// value = state.wheelSizeDisplay, +// onValueChange = { }, +// enabled = false, +// label = { Text(text = stringResource(id = R.string.csc_field_wheel_size)) }, +// trailingIcon = { EditIcon(onEvent = onEvent) } +// ) } @Composable diff --git a/profile_gls/src/main/java/no/nordicsemi/android/gls/view/GLSContentView.kt b/profile_gls/src/main/java/no/nordicsemi/android/gls/view/GLSContentView.kt index 6614096e..0a4f2cf9 100644 --- a/profile_gls/src/main/java/no/nordicsemi/android/gls/view/GLSContentView.kt +++ b/profile_gls/src/main/java/no/nordicsemi/android/gls/view/GLSContentView.kt @@ -7,10 +7,8 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.material.Button -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -45,7 +43,6 @@ internal fun GLSContentView(state: GLSData, onEvent: (GLSScreenViewEvent) -> Uni Spacer(modifier = Modifier.height(16.dp)) Button( - colors = ButtonDefaults.buttonColors(backgroundColor = MaterialTheme.colors.secondary), onClick = { onEvent(DisconnectEvent) } ) { Text(text = stringResource(id = R.string.disconnect)) diff --git a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/view/HRSContentView.kt b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/view/HRSContentView.kt index 72cf830f..9f228bd6 100644 --- a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/view/HRSContentView.kt +++ b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/view/HRSContentView.kt @@ -5,10 +5,8 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.material.Button -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -40,7 +38,6 @@ internal fun HRSContentView(state: HRSData, onEvent: (HRSScreenViewEvent) -> Uni Spacer(modifier = Modifier.height(16.dp)) Button( - colors = ButtonDefaults.buttonColors(backgroundColor = MaterialTheme.colors.secondary), onClick = { onEvent(DisconnectEvent) } ) { Text(text = stringResource(id = R.string.disconnect)) diff --git a/profile_hts/src/main/java/no/nordicsemi/android/hts/view/HTSContentView.kt b/profile_hts/src/main/java/no/nordicsemi/android/hts/view/HTSContentView.kt index 0882738a..0dfd758a 100644 --- a/profile_hts/src/main/java/no/nordicsemi/android/hts/view/HTSContentView.kt +++ b/profile_hts/src/main/java/no/nordicsemi/android/hts/view/HTSContentView.kt @@ -6,10 +6,8 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.material.Button -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -55,7 +53,6 @@ internal fun HTSContentView(state: HTSData, onEvent: (HTSScreenViewEvent) -> Uni Spacer(modifier = Modifier.height(16.dp)) Button( - colors = ButtonDefaults.buttonColors(backgroundColor = MaterialTheme.colors.secondary), onClick = { onEvent(DisconnectEvent) } ) { Text(text = stringResource(id = R.string.disconnect)) diff --git a/profile_prx/src/main/java/no/nordicsemi/android/prx/view/PRXContentView.kt b/profile_prx/src/main/java/no/nordicsemi/android/prx/view/PRXContentView.kt index 120d9655..a23c7859 100644 --- a/profile_prx/src/main/java/no/nordicsemi/android/prx/view/PRXContentView.kt +++ b/profile_prx/src/main/java/no/nordicsemi/android/prx/view/PRXContentView.kt @@ -3,10 +3,8 @@ package no.nordicsemi.android.prx.view import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.height -import androidx.compose.material.Button -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource @@ -40,7 +38,6 @@ internal fun ContentView(state: PRXData, onEvent: (PRXScreenViewEvent) -> Unit) Spacer(modifier = Modifier.height(16.dp)) Button( - colors = ButtonDefaults.buttonColors(backgroundColor = MaterialTheme.colors.secondary), onClick = { onEvent(DisconnectEvent) } ) { Text(text = stringResource(id = R.string.disconnect)) diff --git a/profile_rscs/src/main/java/no/nordicsemi/android/rscs/view/RSCSContentView.kt b/profile_rscs/src/main/java/no/nordicsemi/android/rscs/view/RSCSContentView.kt index 0238961a..a754b19b 100644 --- a/profile_rscs/src/main/java/no/nordicsemi/android/rscs/view/RSCSContentView.kt +++ b/profile_rscs/src/main/java/no/nordicsemi/android/rscs/view/RSCSContentView.kt @@ -3,10 +3,8 @@ package no.nordicsemi.android.rscs.view import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.height -import androidx.compose.material.Button -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -28,7 +26,6 @@ internal fun RSCSContentView(state: RSCSData, onEvent: (RSCScreenViewEvent) -> U Spacer(modifier = Modifier.height(16.dp)) Button( - colors = ButtonDefaults.buttonColors(backgroundColor = MaterialTheme.colors.secondary), onClick = { onEvent(DisconnectEvent) } ) { Text(text = stringResource(id = R.string.disconnect)) diff --git a/settings.gradle b/settings.gradle index ddf6ba2d..647b2681 100644 --- a/settings.gradle +++ b/settings.gradle @@ -11,12 +11,13 @@ dependencyResolutionManagement { versionCatalogs { libs { + alias('nordic-theme').to('no.nordicsemi.android.common:theme:1.0.0') alias('nordic-ble-common').to('no.nordicsemi.android:ble-common:2.2.0') alias('nordic-log').to('no.nordicsemi.android:log:2.3.0') alias('nordic-scanner').to('no.nordicsemi.android.support.v18:scanner:1.5.0') alias('localbroadcastmanager').to('androidx.localbroadcastmanager:localbroadcastmanager:1.0.0') - alias('material').to('com.google.android.material:material:1.4.0') + alias('material').to('com.google.android.material:material:1.5.0-beta01') version('lifecycle', '2.3.1') alias('lifecycle-activity').to('androidx.lifecycle', 'lifecycle-runtime-ktx').versionRef('lifecycle') @@ -29,7 +30,7 @@ dependencyResolutionManagement { version('compose', '1.0.2') alias('compose-livedata').to('androidx.compose.runtime', 'runtime-livedata').versionRef('compose') alias('compose-ui').to('androidx.compose.ui', 'ui').versionRef('compose') - alias('compose-material').to('androidx.compose.material', 'material').versionRef('compose') + alias('compose-material').to('androidx.compose.material3:material3:1.0.0-alpha01') alias('compose-tooling-preview').to('androidx.compose.ui', 'ui-tooling-preview').versionRef('compose') alias('compose-navigation').to('androidx.navigation:navigation-compose:2.4.0-alpha09') bundle('compose', ['compose-livedata', 'compose-ui', 'compose-material', 'compose-tooling-preview', 'compose-navigation'])