Skip to content

Commit

Permalink
Merge pull request #4029 from knighthat/master
Browse files Browse the repository at this point in the history
#4001 close app after user "back"
  • Loading branch information
fast4x authored Oct 17, 2024
2 parents 819ee8b + 4bd4ab8 commit b971da8
Showing 1 changed file with 24 additions and 267 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package it.fast4x.rimusic.ui.screens.home

import android.app.Activity
import androidx.activity.compose.BackHandler
import androidx.compose.animation.ExperimentalAnimationApi
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.material.ExperimentalMaterialApi
Expand Down Expand Up @@ -29,8 +31,10 @@ import it.fast4x.rimusic.R
import it.fast4x.rimusic.enums.CheckUpdateState
import it.fast4x.rimusic.enums.HomeScreenTabs
import it.fast4x.rimusic.enums.NavRoutes
import it.fast4x.rimusic.enums.PopupType
import it.fast4x.rimusic.models.toUiMood
import it.fast4x.rimusic.ui.components.themed.ConfirmationDialog
import it.fast4x.rimusic.ui.components.themed.SmartMessage
import it.fast4x.rimusic.ui.screens.globalRoutes
import it.fast4x.rimusic.ui.screens.searchResultRoute
import it.fast4x.rimusic.ui.screens.searchRoute
Expand All @@ -45,6 +49,7 @@ import it.fast4x.rimusic.utils.rememberPreference
import it.fast4x.rimusic.utils.showSearchTabKey
import it.fast4x.rimusic.utils.showStatsInNavbarKey
import me.knighthat.Skeleton
import kotlin.system.exitProcess


@OptIn(ExperimentalMaterial3Api::class)
Expand Down Expand Up @@ -93,83 +98,7 @@ fun HomeScreen(
}
) {
globalRoutes()
/*
settingsRoute {
SettingsScreen(
navController = navController,
)
}
historyRoute {
HistoryScreen(
navController = navController,
)
}
localPlaylistRoute { playlistId ->
LocalPlaylistScreen(
navController = navController,
playlistId = playlistId ?: error("playlistId cannot be null")
)
}
*/
/*
builtInPlaylistRoute { builtInPlaylist ->
BuiltInPlaylistScreen(
navController = navController,
builtInPlaylist = builtInPlaylist
)
}

playlistRoute { browseId, params, maxDepth ->
PlaylistScreen(
navController = navController,
browseId = browseId ?: error("browseId cannot be null"),
params = params,
maxDepth = maxDepth
)
}
*/
/*
playlistRoute { browseId, params ->
PlaylistScreen(
browseId = browseId ?: "",
params = params
)
}
searchResultRoute { query ->
SearchResultScreen(
navController = navController,
query = query,
onSearchAgain = {
searchRoute(query)
}
)
}
searchRoute { initialTextInput ->
val context = LocalContext.current
SearchScreen(
navController = navController,
initialTextInput = initialTextInput,
onSearch = { query ->
pop()
searchResultRoute(query)
if (!context.preferences.getBoolean(pauseSearchHistoryKey, false)) {
query {
Database.insert(SearchQuery(query = query))
}
}
},
onViewPlaylist = onPlaylistUrl,
onDismiss = { homeRoute::global }
)
}
*/
host {

val openTabFromShortcut1 by remember{ mutableIntStateOf(openTabFromShortcut) }
Expand All @@ -186,19 +115,6 @@ fun HomeScreen(
else -> remember { mutableIntStateOf(openTabFromShortcut1) }
}


/*
var (tabIndex, onTabChanged) =
if (preferences.getEnum(indexNavigationTabKey, HomeScreenTabs.Default) == HomeScreenTabs.Default)
rememberPreference(
homeScreenTabIndexKey,
HomeScreenTabs.QuickPics.index
) else
remember {
mutableStateOf(preferences.getEnum(indexNavigationTabKey, HomeScreenTabs.QuickPics).index)
}
*/

if (tabIndex == -2) navController.navigate(NavRoutes.search.name)


Expand Down Expand Up @@ -310,183 +226,6 @@ fun HomeScreen(
}
}
}

// Scaffold(
// navController = navController,
// playerEssential = playerEssential,
// topIconButtonId = R.drawable.settings,
// onTopIconButtonClick = {
// //settingsRoute()
// navController.navigate(NavRoutes.settings.name)
// },
// showButton1 = uiType() != UiType.RiMusic,
// topIconButton2Id = R.drawable.stats_chart,
// onTopIconButton2Click = {
// //statisticsTypeRoute(StatisticsType.Today)
// navController.navigate(NavRoutes.statistics.name)
// },
// showButton2 = if( uiType() == UiType.RiMusic ) false else showStatsInNavbar,
// showBottomButton = if( uiType() == UiType.RiMusic ) false else showSearchTab,
// onBottomIconButtonClick = {
// //searchRoute("")
// navController.navigate(NavRoutes.search.name)
// },
// tabIndex = tabIndex,
// onTabChanged = onTabChanged,
// showTopActions = true,
// onHomeClick = {},
// onSettingsClick = {
// //settingsRoute()
// navController.navigate(NavRoutes.settings.name)
// },
// onStatisticsClick = {
// //statisticsTypeRoute(StatisticsType.Today)
// navController.navigate(NavRoutes.statistics.name)
// },
// onHistoryClick = {
// //historyRoute()
// navController.navigate(NavRoutes.history.name)
// },
// onSearchClick = {
// //searchRoute("")
// navController.navigate(NavRoutes.search.name)
// },
// tabColumnContent = { Item ->
// if (enableQuickPicksPage)
// Item(0, stringResource(R.string.quick_picks), R.drawable.sparkles)
// Item(1, stringResource(R.string.songs), R.drawable.musical_notes)
// Item(2, stringResource(R.string.artists), R.drawable.artists)
// Item(3, stringResource(R.string.albums), R.drawable.album)
// Item(4, stringResource(R.string.playlists), R.drawable.library)
// }
// ) { currentTabIndex ->
// saveableStateHolder.SaveableStateProvider(key = currentTabIndex) {
// when (currentTabIndex) {
// 0 -> QuickPicksModern(
// onAlbumClick = {
// //albumRoute(it)
// navController.navigate(route = "${NavRoutes.album.name}/$it")
// },
// onArtistClick = {
// //artistRoute(it)
// navController.navigate(route = "${NavRoutes.artist.name}/$it")
// },
// onPlaylistClick = {
// //playlistRoute(it)
// navController.navigate(route = "${NavRoutes.playlist.name}/$it")
// },
// onSearchClick = {
// //searchRoute("")
// navController.navigate(NavRoutes.search.name)
// },
// onMoodClick = { mood ->
// //moodRoute(mood.toUiMood())
// navController.currentBackStackEntry?.savedStateHandle?.set("mood", mood.toUiMood())
// navController.navigate(NavRoutes.mood.name)
// },
// onSettingsClick = {
// //settingsRoute()
// navController.navigate(NavRoutes.settings.name)
// },
// navController = navController
//
// )
//
// 1 -> HomeSongsModern(
// navController = navController,
// onSearchClick = {
// //searchRoute("")
// navController.navigate(NavRoutes.search.name)
// },
// onSettingsClick = {
// //settingsRoute()
// navController.navigate(NavRoutes.settings.name)
// }
// )
//
// 2 -> HomeArtistsModern(
// onArtistClick = {
// //artistRoute(it.id)
// navController.navigate(route = "${NavRoutes.artist.name}/${it.id}")
// },
// onSearchClick = {
// //searchRoute("")
// navController.navigate(NavRoutes.search.name)
// },
// onSettingsClick = {
// //settingsRoute()
// navController.navigate(NavRoutes.settings.name)
// }
// )
//
// 3 -> HomeAlbumsModern(
// onAlbumClick = {
// //albumRoute(it.id)
// navController.navigate(route = "${NavRoutes.album.name}/${it.id}")
// },
// onSearchClick = {
// //searchRoute("")
// navController.navigate(NavRoutes.search.name)
// },
// onSettingsClick = {
// //settingsRoute()
// navController.navigate(NavRoutes.settings.name)
// }
// )
//
// 4 -> HomeLibraryModern(
// onBuiltInPlaylist = {
// //builtInPlaylistRoute(it)
// navController.navigate(route = "${NavRoutes.builtInPlaylist.name}/${it.ordinal}")
// },
// onPlaylistClick = {
// //localPlaylistRoute(it.id)
// navController.navigate(route = "${NavRoutes.localPlaylist.name}/${it.id}")
// },
// onSearchClick = {
// //searchRoute("")
// navController.navigate(NavRoutes.search.name)
// },
// onDeviceListSongsClick = {
// //deviceListSongRoute("")
// navController.navigate(NavRoutes.onDevice.name)
// },
// onStatisticsClick = {
// //statisticsTypeRoute(StatisticsType.Today)
// navController.navigate(NavRoutes.statistics.name)
// },
// onSettingsClick = {
// //settingsRoute()
// navController.navigate(NavRoutes.settings.name)
// }
//
// )
// /*
// 5 -> HomeDiscovery(
// onMoodClick = { mood -> moodRoute(mood.toUiMood()) },
// onNewReleaseAlbumClick = { albumRoute(it) },
// onSearchClick = { searchRoute("") }
// )
// */
//
// //6 -> HomeEqualizer( )
// /*
// 5 -> HomeStatistics(
// onStatisticsType = { statisticsTypeRoute(it)},
// onBuiltInPlaylist = { builtInPlaylistRoute(it) },
// onPlaylistClick = { localPlaylistRoute(it.id) },
// onSearchClick = { searchRoute("") }
// )
// */
//
// /*
// 6 -> HomeSearch(
// onSearchType = { searchTypeRoute(it) }
// )
// */
// }
// }
// }
}
}

Expand All @@ -509,5 +248,23 @@ fun HomeScreen(
onDismiss = { checkUpdateState = CheckUpdateState.Disabled },
onConfirm = { checkUpdateState = CheckUpdateState.Enabled },
)


// Exit app when user uses back
val context = LocalContext.current
var confirmCount by remember { mutableIntStateOf( 0 ) }
BackHandler {
if( confirmCount == 0 ) {
SmartMessage(
// TODO: add this string to xml
"Press once again to exit",
context = context
)
confirmCount++
} else {
val activity = context as? Activity
activity?.finishAffinity()
// Close app with exit 0 notify that no problem occurred
exitProcess( 0 )
}
}
}

0 comments on commit b971da8

Please sign in to comment.