Compact clock widget: remove caret

Close #269
This commit is contained in:
MM20 2023-03-14 20:13:45 +01:00
parent dd539ea301
commit d4749aab8d
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389

View File

@ -3,14 +3,22 @@ package de.mm20.launcher2.ui.launcher.widgets.clock
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.clickable import androidx.compose.foundation.clickable
import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
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.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.HorizontalPager
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.rounded.ExpandLess
import androidx.compose.material3.Icon
import androidx.compose.material3.LocalContentColor import androidx.compose.material3.LocalContentColor
import androidx.compose.runtime.* import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
@ -22,7 +30,12 @@ import de.mm20.launcher2.preferences.Settings.ClockWidgetSettings.ClockStyle
import de.mm20.launcher2.preferences.Settings.ClockWidgetSettings.ClockWidgetColors import de.mm20.launcher2.preferences.Settings.ClockWidgetSettings.ClockWidgetColors
import de.mm20.launcher2.preferences.Settings.ClockWidgetSettings.ClockWidgetLayout import de.mm20.launcher2.preferences.Settings.ClockWidgetSettings.ClockWidgetLayout
import de.mm20.launcher2.ui.base.LocalTime import de.mm20.launcher2.ui.base.LocalTime
import de.mm20.launcher2.ui.launcher.widgets.clock.clocks.* import de.mm20.launcher2.ui.launcher.widgets.clock.clocks.AnalogClock
import de.mm20.launcher2.ui.launcher.widgets.clock.clocks.BinaryClock
import de.mm20.launcher2.ui.launcher.widgets.clock.clocks.DigitalClock1
import de.mm20.launcher2.ui.launcher.widgets.clock.clocks.DigitalClock2
import de.mm20.launcher2.ui.launcher.widgets.clock.clocks.EmptyClock
import de.mm20.launcher2.ui.launcher.widgets.clock.clocks.OrbitClock
import de.mm20.launcher2.ui.launcher.widgets.clock.parts.PartProvider import de.mm20.launcher2.ui.launcher.widgets.clock.parts.PartProvider
import de.mm20.launcher2.ui.locals.LocalPreferDarkContentOverWallpaper import de.mm20.launcher2.ui.locals.LocalPreferDarkContentOverWallpaper
@ -41,7 +54,9 @@ fun ClockWidget(
viewModel.updateTime(time) viewModel.updateTime(time)
} }
val partProviders by remember { viewModel.getActiveParts(context) }.collectAsStateWithLifecycle(emptyList()) val partProviders by remember { viewModel.getActiveParts(context) }.collectAsStateWithLifecycle(
emptyList()
)
Box( Box(
modifier = Modifier modifier = Modifier
@ -85,59 +100,51 @@ fun ClockWidget(
} }
} }
if (layout == ClockWidgetLayout.Horizontal) { if (layout == ClockWidgetLayout.Horizontal) {
Column( Row(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.padding(bottom = 16.dp), .padding(end = 8.dp, bottom = 16.dp),
horizontalAlignment = Alignment.CenterHorizontally verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceBetween
) { ) {
Icon(imageVector = Icons.Rounded.ExpandLess, contentDescription = "") if (partProviders.size > 1) {
Row( HorizontalPager(
modifier = Modifier pageCount = 2,
.fillMaxWidth() beyondBoundsPageCount = 1,
.padding(end = 8.dp), modifier = Modifier.weight(1f)
verticalAlignment = Alignment.CenterVertically, ) {
horizontalArrangement = Arrangement.SpaceBetween
) {
if (partProviders.size > 1) {
HorizontalPager(
pageCount = 2,
beyondBoundsPageCount = 1,
modifier = Modifier.weight(1f)
) {
DynamicZone(
modifier = Modifier.fillMaxWidth(),
layout = ClockWidgetLayout.Horizontal,
provider = partProviders[it],
)
}
} else if (partProviders.isNotEmpty()) {
DynamicZone( DynamicZone(
modifier = Modifier.weight(1f), modifier = Modifier.fillMaxWidth(),
layout = ClockWidgetLayout.Horizontal, layout = ClockWidgetLayout.Horizontal,
provider = partProviders[0], provider = partProviders[it],
) )
} }
Box( } else if (partProviders.isNotEmpty()) {
modifier = Modifier DynamicZone(
.padding(horizontal = 16.dp) modifier = Modifier.weight(1f),
.height(56.dp) layout = ClockWidgetLayout.Horizontal,
.width(2.dp) provider = partProviders[0],
.background(
LocalContentColor.current
),
) )
Box( }
modifier = Modifier.clickable( Box(
enabled = clockStyle != ClockStyle.EmptyClock, modifier = Modifier
indication = null, .padding(horizontal = 16.dp)
interactionSource = remember { MutableInteractionSource() } .height(56.dp)
) { .width(2.dp)
viewModel.launchClockApp(context) .background(
} LocalContentColor.current
),
)
Box(
modifier = Modifier.clickable(
enabled = clockStyle != ClockStyle.EmptyClock,
indication = null,
interactionSource = remember { MutableInteractionSource() }
) { ) {
Clock(clockStyle, ClockWidgetLayout.Horizontal) viewModel.launchClockApp(context)
} }
) {
Clock(clockStyle, ClockWidgetLayout.Horizontal)
} }
} }
} }