Refactor clock widget

This commit is contained in:
MM20 2021-12-31 21:20:06 +01:00
parent 41b9cecb95
commit 63e5c1337c
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
5 changed files with 12 additions and 40 deletions

View File

@ -72,7 +72,7 @@ fun WidgetColumn(
.verticalScroll(scrollState)
.navigationBarsPadding()
) {
ClockWidget(transparentBackground = background > 0.75f)
ClockWidget()
AnimatedVisibility(visible = scrollState.value == 0) {
NavBarSpacer()

View File

@ -29,26 +29,20 @@ import kotlinx.coroutines.flow.map
@Composable
fun ClockWidget(
modifier: Modifier = Modifier,
transparentBackground: Boolean
modifier: Modifier = Modifier
) {
val windowHeight = LocalWindowSize.current.height
val insets = LocalWindowInsets.current
Box(
modifier = Modifier
.fillMaxWidth(),
contentAlignment = Alignment.BottomCenter
) {
val contentColor by animateColorAsState(
if (transparentBackground) Color.White else MaterialTheme.colorScheme.onSurface
)
CompositionLocalProvider(LocalContentColor provides contentColor) {
CompositionLocalProvider(LocalContentColor provides Color.White) {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.height(IntrinsicSize.Min)
) {
Clock(transparentBackground)
Clock()
DynamicZone()
}
@ -58,7 +52,7 @@ fun ClockWidget(
}
@Composable
fun Clock(transparentBackground: Boolean) {
fun Clock() {
var time by remember { mutableStateOf(System.currentTimeMillis()) }
val context = LocalContext.current
val dataStore = context.dataStore

View File

@ -0,0 +1,6 @@
package de.mm20.launcher2.ui.launcher.widgets.clock
import androidx.lifecycle.ViewModel
class ClockWidgetVM: ViewModel() {
}

View File

@ -274,13 +274,11 @@ class LauncherActivity : AppCompatActivity() {
binding.searchBar.raise()
} else binding.searchBar.drop()
if (scrollY == 0) {
binding.clockWidget.transparentBackground = true
if (!searchVisibility) {
binding.searchBar.hide()
windowBackgroundBlur = false
}
} else {
binding.clockWidget.transparentBackground = false
binding.searchBar.show()
if (!searchVisibility) {
windowBackgroundBlur = true

View File

@ -1,33 +1,12 @@
package de.mm20.launcher2.ui.legacy.widget
import android.animation.AnimatorSet
import android.animation.LayoutTransition
import android.animation.ObjectAnimator
import android.content.ContentUris
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.provider.CalendarContract
import android.text.format.DateFormat
import android.util.AttributeSet
import android.util.TypedValue
import android.view.animation.AccelerateInterpolator
import android.view.animation.DecelerateInterpolator
import android.widget.FrameLayout
import android.widget.TextClock
import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.ui.platform.ComposeView
import androidx.core.content.ContextCompat
import androidx.lifecycle.MutableLiveData
import de.mm20.launcher2.ktx.dp
import de.mm20.launcher2.legacy.helper.ActivityStarter
import de.mm20.launcher2.preferences.LauncherPreferences
import de.mm20.launcher2.ui.ClockWidget
import de.mm20.launcher2.ui.LegacyLauncherTheme
import de.mm20.launcher2.ui.R
import de.mm20.launcher2.ui.legacy.view.LauncherCardView
import java.util.*
class ClockWidget : FrameLayout {
@ -55,15 +34,10 @@ class ClockWidget : FrameLayout {
composeView.setContent {
val transparentBg by transparentBackgroundState.observeAsState(true)
LegacyLauncherTheme {
ClockWidget(transparentBackground = transparentBg)
ClockWidget()
}
}
}
private val transparentBackgroundState = MutableLiveData<Boolean>()
var transparentBackground: Boolean = true
}