minor fixes

* fix current language is set to preferred and not to actual language
* fix player episodes lists sometimes missing the play icon
This commit is contained in:
Jannik 2020-12-31 13:12:37 +01:00
parent 489ef02a35
commit 31197a5d44
Signed by: Seil0
GPG Key ID: E8459F3723C52C24
3 changed files with 11 additions and 6 deletions

View File

@ -10,8 +10,8 @@ android {
applicationId "org.mosad.teapod"
minSdkVersion 23
targetSdkVersion 30
versionCode 2100 //00.02.100
versionName "0.2.92"
versionCode 2900 //00.02.900
versionName "0.3.0-RC1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
resValue "string", "build_time", buildTime()

View File

@ -33,6 +33,7 @@ class PlayerViewModel(application: Application) : AndroidViewModel(application)
val dataSourceFactory = DefaultDataSourceFactory(application, Util.getUserAgent(application, "Teapod"))
val currentEpisodeChangedListener = ArrayList<() -> Unit>()
val preferredLanguage = if (Preferences.preferSecondary) Locale.JAPANESE else Locale.GERMAN
var media: Media = Media(-1, "", DataTypes.MediaType.OTHER)
internal set
@ -56,8 +57,8 @@ class PlayerViewModel(application: Application) : AndroidViewModel(application)
}
currentEpisode = media.getEpisodeById(episodeId)
currentLanguage = if (Preferences.preferSecondary) Locale.JAPANESE else Locale.GERMAN
nextEpisode = selectNextEpisode()
currentLanguage = currentEpisode.getPreferredStream(preferredLanguage).language
}
fun setLanguage(language: Locale) {
@ -94,12 +95,14 @@ class PlayerViewModel(application: Application) : AndroidViewModel(application)
* updateWatchedState for the next (now current) episode
*/
fun playEpisode(episode: Episode, replace: Boolean = false, seekPosition: Long = 0) {
val preferredStream = episode.getPreferredStream(currentLanguage)
currentLanguage = preferredStream.language // update current language, since it may have changed
currentEpisode = episode
nextEpisode = selectNextEpisode()
currentEpisodeChangedListener.forEach { it() } // update player gui (title)
val mediaSource = HlsMediaSource.Factory(dataSourceFactory).createMediaSource(
MediaItem.fromUri(Uri.parse( episode.getPreferredStream(currentLanguage).url))
MediaItem.fromUri(Uri.parse(preferredStream.url))
)
playMedia(mediaSource, replace, seekPosition)

View File

@ -40,8 +40,10 @@ class PlayerEpisodeItemAdapter(private val episodes: List<Episode>) : RecyclerVi
}
// hide the play icon, if it's the current episode
if (currentSelected == position) {
holder.binding.imageEpisodePlay.visibility = View.GONE
holder.binding.imageEpisodePlay.visibility = if (currentSelected == position) {
View.GONE
} else {
View.VISIBLE
}
}