Simplify AudioHelper.

This commit is contained in:
Isira Seneviratne 2023-02-10 04:52:31 +05:30
parent dca36fa95a
commit 9d469b1627

View File

@ -2,42 +2,22 @@ package com.github.libretube.helpers
import android.content.Context import android.content.Context
import android.media.AudioManager import android.media.AudioManager
import android.os.Build import androidx.core.content.getSystemService
import androidx.core.math.MathUtils import androidx.core.math.MathUtils
import androidx.media.AudioManagerCompat
import com.github.libretube.extensions.normalize import com.github.libretube.extensions.normalize
class AudioHelper( class AudioHelper(context: Context) {
context: Context, private val audioManager = context.getSystemService<AudioManager>()!!
private val stream: Int = AudioManager.STREAM_MUSIC private val minimumVolumeIndex = AudioManagerCompat
) { .getStreamMinVolume(audioManager, AudioManager.STREAM_MUSIC)
private val maximumVolumeIndex = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)
private lateinit var audioManager: AudioManager
private var minimumVolumeIndex = 0
private var maximumVolumeIndex = 16
init {
(context.getSystemService(Context.AUDIO_SERVICE) as? AudioManager)?.let {
audioManager = it
maximumVolumeIndex = it.getStreamMaxVolume(stream)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
minimumVolumeIndex = it.getStreamMinVolume(stream)
}
}
}
var volume: Int var volume: Int
get() { get() = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC) - minimumVolumeIndex
return if (this::audioManager.isInitialized) {
audioManager.getStreamVolume(stream) - minimumVolumeIndex
} else {
0
}
}
set(value) { set(value) {
if (this::audioManager.isInitialized) { val vol = MathUtils.clamp(value, minimumVolumeIndex, maximumVolumeIndex)
val vol = MathUtils.clamp(value, minimumVolumeIndex, maximumVolumeIndex) audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, vol, 0)
audioManager.setStreamVolume(stream, vol, 0)
}
} }
fun setVolumeWithScale(value: Int, maxValue: Int, minValue: Int = 0) { fun setVolumeWithScale(value: Int, maxValue: Int, minValue: Int = 0) {