From 74aab57f7743e1bea1af766ebed2dbbd21f8c6db Mon Sep 17 00:00:00 2001 From: Sayantan Roychowdhury Date: Tue, 21 Mar 2023 15:43:03 +0530 Subject: [PATCH 1/4] [WIP] change Exodus tracker API --- .../e/apps/api/exodus/ExodusTrackerApi.kt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) 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 22368e594..324ca9ed0 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> } -- GitLab From 4a2e73e01721886499674e20caf1c0bf90de7d2b Mon Sep 17 00:00:00 2001 From: Sayantan Roychowdhury Date: Tue, 21 Mar 2023 16:24:58 +0530 Subject: [PATCH 2/4] [WIP] pass versionCode to exodus API --- .../exodus/repositories/AppPrivacyInfoRepositoryImpl.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 192ea12e0..981580298 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 @@ -42,7 +42,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) -- GitLab From 818ed5554fe2ad5326fda3e32c0f2fb84428b27f Mon Sep 17 00:00:00 2001 From: Sayantan Roychowdhury Date: Tue, 21 Mar 2023 17:15:21 +0530 Subject: [PATCH 3/4] pass date to exodus api --- .../api/exodus/repositories/AppPrivacyInfoRepositoryImpl.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 981580298..9889367de 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 @@ -87,7 +90,8 @@ class AppPrivacyInfoRepositoryImpl @Inject constructor( } private suspend fun generateTrackerListFromExodusApi() { - val result = getResult { exodusTrackerApi.getTrackerList() } + val dateFormat = SimpleDateFormat("ddMMyyyy", Locale("en")) + val result = getResult { exodusTrackerApi.getTrackerList(dateFormat.format(Date())) } if (result.isSuccess()) { result.data?.let { val trackerList = it.trackers.values.toList() -- GitLab From 85539b2abc42d03769115ddce2a496f9b716f080 Mon Sep 17 00:00:00 2001 From: Sayantan Roychowdhury Date: Tue, 21 Mar 2023 18:11:58 +0530 Subject: [PATCH 4/4] define function to pass date --- .../exodus/repositories/AppPrivacyInfoRepositoryImpl.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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 9889367de..0cfb3c5df 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 @@ -90,8 +90,7 @@ class AppPrivacyInfoRepositoryImpl @Inject constructor( } private suspend fun generateTrackerListFromExodusApi() { - val dateFormat = SimpleDateFormat("ddMMyyyy", Locale("en")) - val result = getResult { exodusTrackerApi.getTrackerList(dateFormat.format(Date())) } + val result = getResult { exodusTrackerApi.getTrackerList(getDate()) } if (result.isSuccess()) { result.data?.let { val trackerList = it.trackers.values.toList() @@ -101,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" } -- GitLab