fix: Equalizer fix in main build variant (#239)

This commit is contained in:
eddyizm 2025-11-06 17:22:56 -08:00 committed by GitHub
commit 817b53efaa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -161,16 +161,7 @@ class MediaService : MediaLibraryService(), SessionAvailabilityListener {
private fun initializeEqualizerManager() { private fun initializeEqualizerManager() {
equalizerManager = EqualizerManager() equalizerManager = EqualizerManager()
val audioSessionId = player.audioSessionId val audioSessionId = player.audioSessionId
if (equalizerManager.attachToSession(audioSessionId)) { attachEqualizerIfPossible(audioSessionId)
val enabled = Preferences.isEqualizerEnabled()
equalizerManager.setEnabled(enabled)
val bands = equalizerManager.getNumberOfBands()
val savedLevels = Preferences.getEqualizerBandLevels(bands)
for (i in 0 until bands) {
equalizerManager.setBandLevel(i.toShort(), savedLevels[i])
}
}
} }
private fun initializePlayer() { private fun initializePlayer() {
@ -334,6 +325,10 @@ class MediaService : MediaLibraryService(), SessionAvailabilityListener {
override fun onRepeatModeChanged(repeatMode: Int) { override fun onRepeatModeChanged(repeatMode: Int) {
Preferences.setRepeatMode(repeatMode) Preferences.setRepeatMode(repeatMode)
} }
override fun onAudioSessionIdChanged(audioSessionId: Int) {
attachEqualizerIfPossible(audioSessionId)
}
}) })
if (player.isPlaying) { if (player.isPlaying) {
scheduleWidgetUpdates() scheduleWidgetUpdates()
@ -451,6 +446,22 @@ class MediaService : MediaLibraryService(), SessionAvailabilityListener {
player.playWhenReady = isPlaying player.playWhenReady = isPlaying
player.prepare() player.prepare()
} }
private fun attachEqualizerIfPossible(audioSessionId: Int): Boolean {
if (audioSessionId == 0 || audioSessionId == -1) return false
val attached = equalizerManager.attachToSession(audioSessionId)
if (attached) {
val enabled = Preferences.isEqualizerEnabled()
equalizerManager.setEnabled(enabled)
val bands = equalizerManager.getNumberOfBands()
val savedLevels = Preferences.getEqualizerBandLevels(bands)
for (i in 0 until bands) {
equalizerManager.setBandLevel(i.toShort(), savedLevels[i])
}
sendBroadcast(Intent(ACTION_EQUALIZER_UPDATED))
}
return attached
}
} }
private const val WIDGET_UPDATE_INTERVAL_MS = 1000L private const val WIDGET_UPDATE_INTERVAL_MS = 1000L