@@ -52,6 +52,7 @@ import androidx.compose.ui.window.DialogProperties
5252import androidx.core.net.toUri
5353import androidx.core.os.LocaleListCompat
5454import androidx.lifecycle.compose.collectAsStateWithLifecycle
55+ import androidx.navigation.NavDestination.Companion.hasRoute
5556import androidx.navigation.compose.currentBackStackEntryAsState
5657import androidx.navigation.compose.rememberNavController
5758import com.kyant.backdrop.backdrop
@@ -68,10 +69,12 @@ import com.maxrave.domain.mediaservice.handler.MediaPlayerHandler
6869import com.maxrave.logger.Logger
6970import com.maxrave.simpmusic.di.viewModelModule
7071import com.maxrave.simpmusic.ui.component.AppBottomNavigationBar
72+ import com.maxrave.simpmusic.ui.component.LiquidGlassAppBottomNavigationBar
7173import com.maxrave.simpmusic.ui.navigation.destination.home.NotificationDestination
7274import com.maxrave.simpmusic.ui.navigation.destination.list.AlbumDestination
7375import com.maxrave.simpmusic.ui.navigation.destination.list.ArtistDestination
7476import com.maxrave.simpmusic.ui.navigation.destination.list.PlaylistDestination
77+ import com.maxrave.simpmusic.ui.navigation.destination.search.SearchDestination
7578import com.maxrave.simpmusic.ui.navigation.graph.AppNavigationGraph
7679import com.maxrave.simpmusic.ui.screen.MiniPlayer
7780import com.maxrave.simpmusic.ui.screen.player.NowPlayingScreen
@@ -238,11 +241,16 @@ class MainActivity : AppCompatActivity() {
238241 val intent by viewModel.intent.collectAsStateWithLifecycle()
239242
240243 val isTranslucentBottomBar by viewModel.getTranslucentBottomBar().collectAsStateWithLifecycle(DataStoreManager .FALSE )
244+ val isLiquidGlassEnabled by viewModel.getEnableLiquidGlass().collectAsStateWithLifecycle(DataStoreManager .FALSE )
241245 // MiniPlayer visibility logic
242246 var isShowMiniPlayer by rememberSaveable {
243247 mutableStateOf(true )
244248 }
245249
250+ var isInSearchPage by rememberSaveable {
251+ mutableStateOf(false )
252+ }
253+
246254 // Now playing screen
247255 var isShowNowPlaylistScreen by rememberSaveable {
248256 mutableStateOf(false )
@@ -349,6 +357,9 @@ class MainActivity : AppCompatActivity() {
349357 if (navBackStackEntry?.destination?.route?.contains(" FullscreenDestination" ) == true ) {
350358 isShowNowPlaylistScreen = false
351359 }
360+ navBackStackEntry?.destination?.let { current ->
361+ isInSearchPage = current.hasRoute(SearchDestination ::class )
362+ }
352363 }
353364 val backdrop = rememberBackdrop()
354365 AppTheme {
@@ -361,7 +372,7 @@ class MainActivity : AppCompatActivity() {
361372 ) {
362373 Column {
363374 AnimatedVisibility (
364- isShowMiniPlayer,
375+ isShowMiniPlayer && ( ! isInSearchPage || isLiquidGlassEnabled == DataStoreManager . FALSE ) ,
365376 enter = fadeIn() + slideInHorizontally(),
366377 exit = fadeOut(),
367378 ) {
@@ -374,6 +385,7 @@ class MainActivity : AppCompatActivity() {
374385 ).padding(
375386 bottom = 4 .dp,
376387 ),
388+ backdrop = backdrop,
377389 onClick = {
378390 isShowNowPlaylistScreen = true
379391 },
@@ -383,12 +395,23 @@ class MainActivity : AppCompatActivity() {
383395 },
384396 )
385397 }
386- AppBottomNavigationBar (
387- navController = navController,
388- isTranslucentBackground = isTranslucentBottomBar == DataStoreManager .TRUE ,
389- backdrop = backdrop,
390- ) { klass ->
391- viewModel.reloadDestination(klass)
398+ if (isLiquidGlassEnabled == DataStoreManager .TRUE ) {
399+ LiquidGlassAppBottomNavigationBar (
400+ navController = navController,
401+ backdrop = backdrop,
402+ viewModel = viewModel,
403+ shouldShowMiniPlayer = isShowMiniPlayer,
404+ onOpenNowPlaying = { isShowNowPlaylistScreen = true },
405+ ) { klass ->
406+ viewModel.reloadDestination(klass)
407+ }
408+ } else {
409+ AppBottomNavigationBar (
410+ navController = navController,
411+ isTranslucentBackground = isTranslucentBottomBar == DataStoreManager .TRUE ,
412+ ) { klass ->
413+ viewModel.reloadDestination(klass)
414+ }
392415 }
393416 }
394417 }
0 commit comments