Make Menu composable @Stable

This commit is contained in:
vfsfitvnm
2022-08-26 10:56:22 +02:00
parent 305d6c80c5
commit 82ebda51b6
2 changed files with 8 additions and 22 deletions

View File

@@ -58,7 +58,6 @@ import it.vfsfitvnm.vimusic.service.PlayerService
import it.vfsfitvnm.vimusic.ui.components.BottomSheetMenu import it.vfsfitvnm.vimusic.ui.components.BottomSheetMenu
import it.vfsfitvnm.vimusic.ui.components.LocalMenuState import it.vfsfitvnm.vimusic.ui.components.LocalMenuState
import it.vfsfitvnm.vimusic.ui.components.rememberBottomSheetState import it.vfsfitvnm.vimusic.ui.components.rememberBottomSheetState
import it.vfsfitvnm.vimusic.ui.components.rememberMenuState
import it.vfsfitvnm.vimusic.ui.screens.HomeScreen import it.vfsfitvnm.vimusic.ui.screens.HomeScreen
import it.vfsfitvnm.vimusic.ui.screens.IntentUriScreen import it.vfsfitvnm.vimusic.ui.screens.IntentUriScreen
import it.vfsfitvnm.vimusic.ui.styling.Appearance import it.vfsfitvnm.vimusic.ui.styling.Appearance
@@ -311,7 +310,6 @@ class MainActivity : ComponentActivity() {
LocalRippleTheme provides rippleTheme, LocalRippleTheme provides rippleTheme,
LocalShimmerTheme provides shimmerTheme, LocalShimmerTheme provides shimmerTheme,
LocalPlayerServiceBinder provides binder, LocalPlayerServiceBinder provides binder,
LocalMenuState provides rememberMenuState(),
LocalPlayerAwarePaddingValues provides playerAwarePaddingValues LocalPlayerAwarePaddingValues provides playerAwarePaddingValues
) { ) {
when (val uri = uri) { when (val uri = uri) {

View File

@@ -11,23 +11,24 @@ import androidx.compose.foundation.gestures.detectTapGestures
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.MutableState import androidx.compose.runtime.Stable
import androidx.compose.runtime.compositionLocalOf
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.runtime.staticCompositionLocalOf
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.input.pointer.pointerInput
val LocalMenuState = compositionLocalOf<MenuState> { TODO() } val LocalMenuState = staticCompositionLocalOf { MenuState() }
class MenuState(isDisplayedState: MutableState<Boolean>) { @Stable
var isDisplayed by isDisplayedState class MenuState {
var isDisplayed by mutableStateOf(false)
private set private set
var content: @Composable () -> Unit = {} var content by mutableStateOf<@Composable () -> Unit>({})
private set
fun display(content: @Composable () -> Unit) { fun display(content: @Composable () -> Unit) {
this.content = content this.content = content
@@ -39,19 +40,6 @@ class MenuState(isDisplayedState: MutableState<Boolean>) {
} }
} }
@Composable
fun rememberMenuState(): MenuState {
val isDisplayedState = remember {
mutableStateOf(false)
}
return remember {
MenuState(
isDisplayedState = isDisplayedState
)
}
}
@Composable @Composable
fun BottomSheetMenu( fun BottomSheetMenu(
state: MenuState, state: MenuState,