mirror of
https://github.com/twinksoftware/Gearslip.git
synced 2026-11-10 16:02:25 +01:00
car: setting to put the home screen's player left of the map
This commit is contained in:
1 parent
f8aa0a259a
commit
ea45bf994b
3 files changed
+26
-2
No files matched your search
@@ -93,9 +93,14 @@ fun CarHome() {
|
|||||||
if (onHome) seenHome[0] = true
|
if (onHome) seenHome[0] = true
|
||||||
}
|
}
|
||||||
val splitScreen = phase == CarMedia.Phase.READY && now.isActive && panel != SidePanel.NONE
|
val splitScreen = phase == CarMedia.Phase.READY && now.isActive && panel != SidePanel.NONE
|
||||||
|
val playerLeft by CarSettings.playerLeft.collectAsStateWithLifecycle()
|
||||||
|
|
||||||
// No padding anywhere, split screen or not: the player sits flush against the map.
|
// No padding anywhere, split screen or not: the player sits flush against the map.
|
||||||
Row(Modifier.fillMaxSize()) {
|
Row(Modifier.fillMaxSize()) {
|
||||||
|
val side = Modifier.weight(1f).fillMaxHeight().padding(bottom = LocalNavBarInset.current)
|
||||||
|
if (splitScreen && playerLeft) {
|
||||||
|
if (panel == SidePanel.LYRICS) SideLyrics(now, side) else DockedPlayer(now, side)
|
||||||
|
}
|
||||||
Box(
|
Box(
|
||||||
Modifier
|
Modifier
|
||||||
.weight(if (splitScreen) 2.1f else 1f)
|
.weight(if (splitScreen) 2.1f else 1f)
|
||||||
@@ -103,8 +108,7 @@ fun CarHome() {
|
|||||||
) {
|
) {
|
||||||
MapPane(navStatus, frame)
|
MapPane(navStatus, frame)
|
||||||
}
|
}
|
||||||
if (splitScreen) {
|
if (splitScreen && !playerLeft) {
|
||||||
val side = Modifier.weight(1f).fillMaxHeight().padding(bottom = LocalNavBarInset.current)
|
|
||||||
if (panel == SidePanel.LYRICS) SideLyrics(now, side) else DockedPlayer(now, side)
|
if (panel == SidePanel.LYRICS) SideLyrics(now, side) else DockedPlayer(now, side)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ private const val KEY_LOCATION_WARNING = "car_location_warning"
|
|||||||
private const val KEY_LAST_MEDIA = "car_last_media"
|
private const val KEY_LAST_MEDIA = "car_last_media"
|
||||||
private const val KEY_AUTOPLAY = "car_autoplay"
|
private const val KEY_AUTOPLAY = "car_autoplay"
|
||||||
private const val KEY_PLAYER_TITLE = "car_player_title"
|
private const val KEY_PLAYER_TITLE = "car_player_title"
|
||||||
|
private const val KEY_PLAYER_LEFT = "car_player_left"
|
||||||
private const val KEY_THEME = "car_app_theme"
|
private const val KEY_THEME = "car_app_theme"
|
||||||
private const val KEY_UI_THEME = "car_ui_theme"
|
private const val KEY_UI_THEME = "car_ui_theme"
|
||||||
private const val KEY_PINNED = "car_pinned_apps"
|
private const val KEY_PINNED = "car_pinned_apps"
|
||||||
@@ -100,6 +101,7 @@ private const val KEY_LOCATION_WARNING = "car_location_warning"
|
|||||||
private val lastMediaFlow = MutableStateFlow<String?>(null)
|
private val lastMediaFlow = MutableStateFlow<String?>(null)
|
||||||
private val autoplayFlow = MutableStateFlow(false)
|
private val autoplayFlow = MutableStateFlow(false)
|
||||||
private val playerTitleFlow = MutableStateFlow(false)
|
private val playerTitleFlow = MutableStateFlow(false)
|
||||||
|
private val playerLeftFlow = MutableStateFlow(false)
|
||||||
private val themeFlow = MutableStateFlow(AppTheme.PHONE)
|
private val themeFlow = MutableStateFlow(AppTheme.PHONE)
|
||||||
val appTheme: StateFlow<AppTheme> = themeFlow
|
val appTheme: StateFlow<AppTheme> = themeFlow
|
||||||
private val uiThemeFlow = MutableStateFlow(GsThemes.default.id)
|
private val uiThemeFlow = MutableStateFlow(GsThemes.default.id)
|
||||||
@@ -215,6 +217,9 @@ private const val KEY_LOCATION_WARNING = "car_location_warning"
|
|||||||
*/
|
*/
|
||||||
val playerTitle: StateFlow<Boolean> = playerTitleFlow
|
val playerTitle: StateFlow<Boolean> = playerTitleFlow
|
||||||
|
|
||||||
|
/** The home screen's player sits left of the map instead of right of it. */
|
||||||
|
val playerLeft: StateFlow<Boolean> = playerLeftFlow
|
||||||
|
|
||||||
val scale: StateFlow<Float> = scaleFlow
|
val scale: StateFlow<Float> = scaleFlow
|
||||||
val openOnConnect: StateFlow<String> = openFlow
|
val openOnConnect: StateFlow<String> = openFlow
|
||||||
val nightMode: StateFlow<NightMode> = nightFlow
|
val nightMode: StateFlow<NightMode> = nightFlow
|
||||||
@@ -292,6 +297,7 @@ private const val KEY_LOCATION_WARNING = "car_location_warning"
|
|||||||
uiThemeFlow.value = AppSettings.getString(app, KEY_UI_THEME, GsThemes.default.id)
|
uiThemeFlow.value = AppSettings.getString(app, KEY_UI_THEME, GsThemes.default.id)
|
||||||
autoplayFlow.value = AppSettings.getString(app, KEY_AUTOPLAY, "false") == "true"
|
autoplayFlow.value = AppSettings.getString(app, KEY_AUTOPLAY, "false") == "true"
|
||||||
playerTitleFlow.value = AppSettings.getString(app, KEY_PLAYER_TITLE, "false") == "true"
|
playerTitleFlow.value = AppSettings.getString(app, KEY_PLAYER_TITLE, "false") == "true"
|
||||||
|
playerLeftFlow.value = AppSettings.getString(app, KEY_PLAYER_LEFT, "false") == "true"
|
||||||
pipeAudioFlow.value = AppSettings.getString(app, KEY_PIPE_AUDIO, "true") == "true"
|
pipeAudioFlow.value = AppSettings.getString(app, KEY_PIPE_AUDIO, "true") == "true"
|
||||||
// Until the driver sets it, on for USB audio and off for Bluetooth, where the map app's
|
// Until the driver sets it, on for USB audio and off for Bluetooth, where the map app's
|
||||||
// own voice already reaches the car.
|
// own voice already reaches the car.
|
||||||
@@ -362,6 +368,11 @@ private const val KEY_LOCATION_WARNING = "car_location_warning"
|
|||||||
AppSettings.putString(app, KEY_PLAYER_TITLE, on.toString())
|
AppSettings.putString(app, KEY_PLAYER_TITLE, on.toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setPlayerLeft(on: Boolean) {
|
||||||
|
playerLeftFlow.value = on
|
||||||
|
AppSettings.putString(app, KEY_PLAYER_LEFT, on.toString())
|
||||||
|
}
|
||||||
|
|
||||||
fun setAutoplay(on: Boolean) {
|
fun setAutoplay(on: Boolean) {
|
||||||
autoplayFlow.value = on
|
autoplayFlow.value = on
|
||||||
AppSettings.putString(app, KEY_AUTOPLAY, on.toString())
|
AppSettings.putString(app, KEY_AUTOPLAY, on.toString())
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ fun CarSettingsScreen() {
|
|||||||
val locationWarning by CarSettings.locationWarning.collectAsState()
|
val locationWarning by CarSettings.locationWarning.collectAsState()
|
||||||
val autoplay by CarSettings.autoplay.collectAsState()
|
val autoplay by CarSettings.autoplay.collectAsState()
|
||||||
val playerTitle by CarSettings.playerTitle.collectAsState()
|
val playerTitle by CarSettings.playerTitle.collectAsState()
|
||||||
|
val playerLeft by CarSettings.playerLeft.collectAsState()
|
||||||
val theme by CarSettings.appTheme.collectAsState()
|
val theme by CarSettings.appTheme.collectAsState()
|
||||||
val uiTheme by CarSettings.uiTheme.collectAsState()
|
val uiTheme by CarSettings.uiTheme.collectAsState()
|
||||||
val experimentalFeatures by CarSettings.experimentalFeaturesEnabled.collectAsState()
|
val experimentalFeatures by CarSettings.experimentalFeaturesEnabled.collectAsState()
|
||||||
@@ -172,6 +173,14 @@ fun CarSettingsScreen() {
|
|||||||
) { CarSettings.setPlayerTitle(it) }
|
) { CarSettings.setPlayerTitle(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
item {
|
||||||
|
ChoiceRow(
|
||||||
|
"Player beside the map",
|
||||||
|
listOf(false to "Right", true to "Left"),
|
||||||
|
playerLeft,
|
||||||
|
) { CarSettings.setPlayerLeft(it) }
|
||||||
|
}
|
||||||
|
|
||||||
item {
|
item {
|
||||||
ChoiceRow(
|
ChoiceRow(
|
||||||
"Autoplay on connect",
|
"Autoplay on connect",
|
||||||
|
|||||||
Reference in new issue
Block a user