refactor: remove unnecessary code from new built in functions in Compose
This commit is contained in:
parent
95fd5727d0
commit
4f3f7c7c66
3 changed files with 6 additions and 34 deletions
|
@ -7,6 +7,7 @@ import androidx.compose.foundation.isSystemInDarkTheme
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.lifecycle.Lifecycle
|
import androidx.lifecycle.Lifecycle
|
||||||
|
import androidx.lifecycle.compose.LifecycleEventEffect
|
||||||
import com.google.accompanist.systemuicontroller.rememberSystemUiController
|
import com.google.accompanist.systemuicontroller.rememberSystemUiController
|
||||||
|
|
||||||
fun Context.getActivity(): Activity {
|
fun Context.getActivity(): Activity {
|
||||||
|
@ -30,10 +31,8 @@ fun TransparentSystemBars() {
|
||||||
fun <T : Any> onEventValue(event: Lifecycle.Event = Lifecycle.Event.ON_START, value: () -> T): T {
|
fun <T : Any> onEventValue(event: Lifecycle.Event = Lifecycle.Event.ON_START, value: () -> T): T {
|
||||||
val rememberLatestUpdateState by rememberUpdatedState(newValue = value)
|
val rememberLatestUpdateState by rememberUpdatedState(newValue = value)
|
||||||
var rememberedValue by remember { mutableStateOf(value()) }
|
var rememberedValue by remember { mutableStateOf(value()) }
|
||||||
OnLifecycleEvent { lifecycleEvent ->
|
LifecycleEventEffect(event = event) {
|
||||||
if (lifecycleEvent == event) {
|
rememberedValue = rememberLatestUpdateState()
|
||||||
rememberedValue = rememberLatestUpdateState()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return rememberedValue
|
return rememberedValue
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
package com.simplemobiletools.calculator.compose.extensions
|
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
|
||||||
import androidx.compose.runtime.DisposableEffect
|
|
||||||
import androidx.compose.runtime.getValue
|
|
||||||
import androidx.compose.runtime.rememberUpdatedState
|
|
||||||
import androidx.compose.ui.platform.LocalLifecycleOwner
|
|
||||||
import androidx.lifecycle.Lifecycle
|
|
||||||
import androidx.lifecycle.LifecycleEventObserver
|
|
||||||
import androidx.lifecycle.LifecycleOwner
|
|
||||||
|
|
||||||
@Composable
|
|
||||||
fun OnLifecycleEvent(
|
|
||||||
lifecycleOwner: LifecycleOwner = LocalLifecycleOwner.current,
|
|
||||||
onEvent: (event: Lifecycle.Event) -> Unit
|
|
||||||
) {
|
|
||||||
val currentOnEvent by rememberUpdatedState(onEvent)
|
|
||||||
DisposableEffect(lifecycleOwner) {
|
|
||||||
val observer = LifecycleEventObserver { _, event ->
|
|
||||||
currentOnEvent(event)
|
|
||||||
}
|
|
||||||
lifecycleOwner.lifecycle.addObserver(observer)
|
|
||||||
onDispose {
|
|
||||||
lifecycleOwner.lifecycle.removeObserver(observer)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -7,7 +7,7 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.platform.LocalView
|
import androidx.compose.ui.platform.LocalView
|
||||||
import androidx.lifecycle.Lifecycle
|
import androidx.lifecycle.Lifecycle
|
||||||
import com.simplemobiletools.calculator.compose.extensions.OnLifecycleEvent
|
import androidx.lifecycle.compose.LifecycleEventEffect
|
||||||
import com.simplemobiletools.calculator.compose.theme.model.Theme.Companion.systemDefaultMaterialYou
|
import com.simplemobiletools.calculator.compose.theme.model.Theme.Companion.systemDefaultMaterialYou
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
@ -27,8 +27,8 @@ fun AppThemeSurface(
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
OnLifecycleEvent { event ->
|
LifecycleEventEffect(event = Lifecycle.Event.ON_START) {
|
||||||
if (event == Lifecycle.Event.ON_START && !view.isInEditMode) {
|
if (!view.isInEditMode) {
|
||||||
currentTheme = getTheme(context = context, materialYouTheme = materialYouTheme)
|
currentTheme = getTheme(context = context, materialYouTheme = materialYouTheme)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue