Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1af86365 authored by Vincent Bourgmayer's avatar Vincent Bourgmayer
Browse files

feature(SystemAppsUpdatesRepository.kt): filter release based on Android...

feature(SystemAppsUpdatesRepository.kt): filter release based on Android version for project that depend of a specific API
parent 38dd11b1
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -111,15 +111,20 @@ class SystemAppsUpdatesRepository @Inject constructor(
    private suspend fun getReleaseDetailsUrl(
        projectId: Int,
        releaseType: OsReleaseType,
        isAndroidApiSpecific: Boolean
    ): String? {
        val releaseResponse = releaseInfoApi.getReleases(projectId)
        val releases = releaseResponse.body()
        val releases = releaseResponse.body()?.toMutableList()

        if (!releaseResponse.isSuccessful || releases == null) {
            Timber.e("Failed to fetch releases for project id - $projectId")
            return null
        }

        if (isAndroidApiSpecific) {
            releases.removeIf { !it.tagName.contains("-api$androidVersionCode-")}
        }

        val sortedReleases = releases.sortedByDescending {
            it.releasedAt
        }
@@ -140,10 +145,11 @@ class SystemAppsUpdatesRepository @Inject constructor(
        device: String,
    ): Application? {

        val projectId =
            systemAppProjectList.find { it.packageName == packageName }?.projectId ?: return null
        val systemAppProject = systemAppProjectList.find { it.packageName == packageName }?: return null
        val projectId = systemAppProject.projectId
        val isAndroidApiSpecific =  systemAppProject.dependsOnAndroidVersion

        val detailsUrl = getReleaseDetailsUrl(projectId, releaseType) ?: return null
        val detailsUrl = getReleaseDetailsUrl(projectId, releaseType, isAndroidApiSpecific) ?: return null

        val response = systemAppDefinitionApi.getSystemAppUpdateInfo(detailsUrl)
        val systemAppInfo = response.body()