mirror of
https://github.com/twinksoftware/Gearslip.git
synced 2026-11-11 00:12:24 +01:00
car media: drop the "Audio to car" line; name every audio focus state
This commit is contained in:
1 parent
94ed58e13f
commit
7163598352
2 files changed
+6
-19
No files matched your search
@@ -147,7 +147,8 @@ class AudioLink(
|
||||
fun onFocus(state: Int) {
|
||||
val name = FOCUS_STATES[state] ?: "unknown($state)"
|
||||
GearslipLog.i("audio: <- AudioFocusResponse state=$name")
|
||||
focusGranted = state == FOCUS_STATE_GAIN || state == FOCUS_STATE_GAIN_TRANSIENT
|
||||
focusGranted = state == FOCUS_STATE_GAIN || state == FOCUS_STATE_GAIN_TRANSIENT ||
|
||||
state == FOCUS_STATE_GAIN_MEDIA_ONLY
|
||||
if (focusGranted) startStream() else stop()
|
||||
}
|
||||
|
||||
@@ -257,13 +258,16 @@ class AudioLink(
|
||||
private const val FOCUS_RELEASE = 4
|
||||
private const val FOCUS_STATE_GAIN = 1
|
||||
private const val FOCUS_STATE_GAIN_TRANSIENT = 2
|
||||
private const val FOCUS_STATE_GAIN_MEDIA_ONLY = 6
|
||||
private const val SESSION_ID = 2
|
||||
private const val STALL_MS = 2_000L
|
||||
private const val CHUNK_LOG_EVERY = 200 // about every four seconds
|
||||
private const val CONFIG_WAIT_MS = 1_000L
|
||||
|
||||
// AudioFocusStateNotification.AudioFocusState in aasdk.
|
||||
private val FOCUS_STATES = mapOf(
|
||||
1 to "GAIN", 2 to "GAIN_TRANSIENT", 3 to "LOSS", 4 to "LOSS_TRANSIENT",
|
||||
1 to "GAIN", 2 to "GAIN_TRANSIENT", 3 to "LOSS", 4 to "LOSS_TRANSIENT_CAN_DUCK",
|
||||
5 to "LOSS_TRANSIENT", 6 to "GAIN_MEDIA_ONLY", 7 to "GAIN_TRANSIENT_GUIDANCE_ONLY",
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -61,7 +61,6 @@ import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import app.seb3thehacker.gearslip.audio.CarAudio
|
||||
import app.seb3thehacker.gearslip.media.CarMedia
|
||||
import app.seb3thehacker.gearslip.media.MediaApp
|
||||
import app.seb3thehacker.gearslip.media.MediaArt
|
||||
@@ -88,7 +87,6 @@ fun MediaScreen(app: MediaApp, onExit: () -> Unit) {
|
||||
val queue by media.queue.collectAsStateWithLifecycle()
|
||||
val browse by media.browse.collectAsStateWithLifecycle()
|
||||
val rejection by media.rejection.collectAsStateWithLifecycle()
|
||||
val capture by CarAudio.capture.collectAsStateWithLifecycle()
|
||||
val search by media.search.collectAsStateWithLifecycle()
|
||||
var tab by remember { mutableStateOf(Tab.NOW_PLAYING) }
|
||||
var searching by remember { mutableStateOf(false) }
|
||||
@@ -174,7 +172,6 @@ fun MediaScreen(app: MediaApp, onExit: () -> Unit) {
|
||||
} else {
|
||||
CompactPlayer(now, media, Modifier.weight(1f).fillMaxWidth())
|
||||
}
|
||||
AudioBadge(capture)
|
||||
}
|
||||
Column(Modifier.weight(1.2f).fillMaxHeight()) {
|
||||
Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(8.dp)) {
|
||||
@@ -447,20 +444,6 @@ private sealed interface LyricsState {
|
||||
class Found(val result: LyricsResult) : LyricsState
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun AudioBadge(capture: CarAudio.Capture) {
|
||||
val micBlocked by CarAudio.micBlocked.collectAsStateWithLifecycle()
|
||||
val text = when (capture) {
|
||||
CarAudio.Capture.ON -> "Audio to car"
|
||||
CarAudio.Capture.ASKING -> "Allow audio capture on the phone"
|
||||
CarAudio.Capture.DENIED ->
|
||||
if (micBlocked) "Audio stays on the phone: turn on Gearslip's microphone permission"
|
||||
else "Audio stays on the phone"
|
||||
CarAudio.Capture.OFF -> return
|
||||
}
|
||||
Text(text, style = MaterialTheme.typography.labelLarge, color = MaterialTheme.colorScheme.onSurfaceVariant)
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun Notice(title: String, detail: String?, action: Pair<String, () -> Unit>? = null) {
|
||||
Column(
|
||||
|
||||
Reference in new issue
Block a user