PlayerAndroid/app/src/main/java/code/name/monkey/retromusic/dialogs/LyricsDialog.kt

60 lines
2.0 KiB
Kotlin
Raw Normal View History

2020-09-06 17:56:39 +00:00
package code.name.monkey.retromusic.dialogs
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.DialogFragment
import androidx.lifecycle.lifecycleScope
import code.name.monkey.retromusic.R
2020-09-10 19:22:10 +00:00
import code.name.monkey.retromusic.extensions.accentTextColor
import code.name.monkey.retromusic.extensions.hide
2020-09-06 17:56:39 +00:00
import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.network.Result
import code.name.monkey.retromusic.repository.Repository
import kotlinx.android.synthetic.main.lyrics_dialog.*
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.Dispatchers.Main
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.koin.android.ext.android.inject
class LyricsDialog : DialogFragment() {
override fun getTheme(): Int {
return R.style.MaterialAlertDialogTheme
}
private val repository by inject<Repository>()
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.lyrics_dialog, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
2020-09-10 19:22:10 +00:00
val song = MusicPlayerRemote.currentSong
dialogTitle.text = song.title
syncedLyrics.accentTextColor()
2020-09-06 17:56:39 +00:00
lifecycleScope.launch(IO) {
val result: Result<String> = repository.lyrics(
2020-09-10 19:22:10 +00:00
song.artistName,
song.title
2020-09-06 17:56:39 +00:00
)
withContext(Main) {
2020-09-10 19:22:10 +00:00
2020-09-06 17:56:39 +00:00
when (result) {
2020-09-10 19:22:10 +00:00
is Result.Error -> progressBar.hide()
2020-09-06 17:56:39 +00:00
is Result.Loading -> println("Loading")
2020-09-10 19:22:10 +00:00
is Result.Success -> {
progressBar.hide()
lyricsText.text = result.data
}
2020-09-06 17:56:39 +00:00
}
}
}
}
}