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

Commit 7edeaa51 authored by Sayantan Roychowdhury's avatar Sayantan Roychowdhury
Browse files

Issue 6133: Pass version code to exodus API

parent ec722fb3
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -3,17 +3,20 @@ package foundation.e.apps.api.exodus
import retrofit2.Response
import retrofit2.http.GET
import retrofit2.http.Path
import retrofit2.http.Query

interface ExodusTrackerApi {

    companion object {
        const val BASE_URL = "https://exodus.ecloud.global/api/"
        const val VERSION = "190239"
    }

    @GET("trackers?v=$VERSION")
    suspend fun getTrackerList(): Response<Trackers>
    @GET("trackers?v={date}")
    suspend fun getTrackerList(@Path("date") date: String): Response<Trackers>

    @GET("search/{appHandle}/details?v=$VERSION")
    suspend fun getTrackerInfoOfApp(@Path("appHandle") appHandle: String): Response<List<Report>>
    @GET("search/{appHandle}/details")
    suspend fun getTrackerInfoOfApp(
        @Path("appHandle") appHandle: String,
        @Query("v") versionCode: Int,
    ): Response<List<Report>>
}
+15 −2
Original line number Diff line number Diff line
@@ -9,6 +9,9 @@ import foundation.e.apps.api.exodus.models.AppPrivacyInfo
import foundation.e.apps.api.fused.data.FusedApp
import foundation.e.apps.api.getResult
import foundation.e.apps.utils.modules.CommonUtilsModule.LIST_OF_NULL
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Locale
import javax.inject.Inject
import javax.inject.Singleton
import kotlin.math.ceil
@@ -42,7 +45,12 @@ class AppPrivacyInfoRepositoryImpl @Inject constructor(
            return Result.success(appInfo)
        }

        val appTrackerInfoResult = getResult { exodusTrackerApi.getTrackerInfoOfApp(appHandle) }
        val appTrackerInfoResult = getResult {
            exodusTrackerApi.getTrackerInfoOfApp(
                appHandle,
                fusedApp.latest_version_code,
            )
        }
        if (appTrackerInfoResult.isSuccess()) {
            val appPrivacyPrivacyInfoResult =
                handleAppPrivacyInfoResultSuccess(appTrackerInfoResult)
@@ -82,7 +90,7 @@ class AppPrivacyInfoRepositoryImpl @Inject constructor(
    }

    private suspend fun generateTrackerListFromExodusApi() {
        val result = getResult { exodusTrackerApi.getTrackerList() }
        val result = getResult { exodusTrackerApi.getTrackerList(getDate()) }
        if (result.isSuccess()) {
            result.data?.let {
                val trackerList = it.trackers.values.toList()
@@ -92,6 +100,11 @@ class AppPrivacyInfoRepositoryImpl @Inject constructor(
        }
    }

    private fun getDate(): String {
        val dateFormat = SimpleDateFormat("ddMMyyyy", Locale("en"))
        return dateFormat.format(Date())
    }

    private fun extractErrorMessage(appTrackerResult: Result<List<Report>>): String {
        return appTrackerResult.message ?: "Unknown Error"
    }