File tree Expand file tree Collapse file tree 3 files changed +13
-11
lines changed
data/src/main/java/com/m3u/data/repository/other
feature/foryou/src/main/java/com/m3u/feature/foryou Expand file tree Collapse file tree 3 files changed +13
-11
lines changed Original file line number Diff line number Diff line change @@ -3,5 +3,5 @@ package com.m3u.data.repository.other
33import com.m3u.data.api.dto.github.Release
44
55interface OtherRepository {
6- suspend fun getRelease (): Release ?
6+ suspend fun release (): Release ?
77}
Original file line number Diff line number Diff line change @@ -16,15 +16,17 @@ internal class OtherRepositoryImpl @Inject constructor(
1616 delegate : Logger
1717) : OtherRepository {
1818 private val logger = delegate.install(Profiles .REPOS_OTHER )
19- override suspend fun getRelease (): Release ? {
20- if (publisher.snapshot) return null
19+ private var releases: List <Release >? = null
20+ override suspend fun release (): Release ? {
21+ if (releases == null ) {
22+ // cannot use lazy because the suspension
23+ releases = logger.execute { githubApi.releases(" oxyroid" , " M3UAndroid" ) } ? : emptyList()
24+ }
2125 val versionName = publisher.versionName
22- val releases = logger
23- .execute { githubApi.releases(" oxyroid" , " M3UAndroid" ) }
24- ? : emptyList()
25- if (releases.isEmpty()) return null
26- val i = releases.indexOf { it.name == versionName }
27- // if (i <= 0) return null
28- return releases.first()
26+ val currentReleases = releases ? : emptyList()
27+ if (currentReleases.isEmpty()) return null
28+ val i = currentReleases.indexOf { it.name == versionName }
29+ if (i <= 0 && ! publisher.snapshot) return null
30+ return currentReleases.first()
2931 }
3032}
Original file line number Diff line number Diff line change @@ -100,7 +100,7 @@ class ForyouViewModel @Inject constructor(
100100 )
101101
102102 private val newRelease: StateFlow <Release ?> = flow {
103- emit(otherRepository.getRelease ())
103+ emit(otherRepository.release ())
104104 }
105105 .stateIn(
106106 scope = viewModelScope,
You can’t perform that action at this time.
0 commit comments