Loading app/src/main/java/foundation/e/apps/api/exodus/ExodusTrackerApi.kt +8 −5 Original line number Diff line number Diff line Loading @@ -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>> } app/src/main/java/foundation/e/apps/api/exodus/repositories/AppPrivacyInfoRepositoryImpl.kt +15 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) Loading Loading @@ -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() Loading @@ -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" } Loading Loading
app/src/main/java/foundation/e/apps/api/exodus/ExodusTrackerApi.kt +8 −5 Original line number Diff line number Diff line Loading @@ -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>> }
app/src/main/java/foundation/e/apps/api/exodus/repositories/AppPrivacyInfoRepositoryImpl.kt +15 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) Loading Loading @@ -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() Loading @@ -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" } Loading