diff --git a/app/src/main/java/foundation/e/apps/api/exodus/ExodusTrackerApi.kt b/app/src/main/java/foundation/e/apps/api/exodus/ExodusTrackerApi.kt index 22368e594c809efa199f9d5f5b2741450e163d9e..324ca9ed09cf2e7d6f435d4f70c1d96834f2f2fd 100644 --- a/app/src/main/java/foundation/e/apps/api/exodus/ExodusTrackerApi.kt +++ b/app/src/main/java/foundation/e/apps/api/exodus/ExodusTrackerApi.kt @@ -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 + @GET("trackers?v={date}") + suspend fun getTrackerList(@Path("date") date: String): Response - @GET("search/{appHandle}/details?v=$VERSION") - suspend fun getTrackerInfoOfApp(@Path("appHandle") appHandle: String): Response> + @GET("search/{appHandle}/details") + suspend fun getTrackerInfoOfApp( + @Path("appHandle") appHandle: String, + @Query("v") versionCode: Int, + ): Response> } diff --git a/app/src/main/java/foundation/e/apps/api/exodus/repositories/AppPrivacyInfoRepositoryImpl.kt b/app/src/main/java/foundation/e/apps/api/exodus/repositories/AppPrivacyInfoRepositoryImpl.kt index 192ea12e0b86926f3feffd9672276ceeb629538e..0cfb3c5dfd7966e701d590b639962f3de9ead2a1 100644 --- a/app/src/main/java/foundation/e/apps/api/exodus/repositories/AppPrivacyInfoRepositoryImpl.kt +++ b/app/src/main/java/foundation/e/apps/api/exodus/repositories/AppPrivacyInfoRepositoryImpl.kt @@ -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>): String { return appTrackerResult.message ?: "Unknown Error" }