@@ -111,6 +111,10 @@ import java.util.Locale
111111import kotlin.math.absoluteValue
112112import kotlin.math.max
113113
114+ @ExperimentalMaterialApi
115+ private fun BackdropScaffoldState.offsetOrZero (): Float =
116+ try { requireOffset() } catch (_: IllegalStateException ) { 0f }
117+
114118@ExperimentalMaterialApi
115119@Composable
116120fun BrainzPlayerBackDropScreen (
@@ -177,7 +181,7 @@ fun BrainzPlayerBackDropScreen(
177181 persistentAppBar = false ,
178182 frontLayerContent = {
179183 LaunchedEffect (Unit ) {
180- val delta = backdropScaffoldState.requireOffset ()
184+ val delta = backdropScaffoldState.offsetOrZero ()
181185 maxDelta = max(delta, maxDelta)
182186 }
183187
@@ -209,7 +213,7 @@ fun BrainzPlayerBackDropScreen(
209213 .height(ListenBrainzTheme .sizes.brainzPlayerPeekHeight)
210214 .graphicsLayer {
211215 alpha =
212- (backdropScaffoldState.requireOffset () / (maxDelta - headerHeight.toPx()))
216+ (backdropScaffoldState.offsetOrZero () / (maxDelta - headerHeight.toPx()))
213217 },
214218 songList = currentPlayableState.value.songs,
215219 backdropScaffoldState = backdropScaffoldState,
@@ -235,7 +239,7 @@ fun BrainzPlayerBackDropScreen(
235239 .fillMaxSize()
236240 .graphicsLayer {
237241 val value =
238- (backdropScaffoldState.requireOffset () / (maxDelta - headerHeight.toPx()))
242+ (backdropScaffoldState.offsetOrZero () / (maxDelta - headerHeight.toPx()))
239243 alpha =
240244 if (value < 0.8f )
241245 (1f - value) * 0.25f else 0f
@@ -267,7 +271,7 @@ fun BrainzPlayerBackDropScreen(
267271 .height(ListenBrainzTheme .sizes.brainzPlayerPeekHeight)
268272 .graphicsLayer {
269273 alpha =
270- (backdropScaffoldState.requireOffset () / (maxDelta - headerHeight.toPx()))
274+ (backdropScaffoldState.offsetOrZero () / (maxDelta - headerHeight.toPx()))
271275 }
272276 )
273277 }
0 commit comments