diff --git a/src/main/java/com/aurora/gplayapi/GooglePlayApi.kt b/src/main/java/com/aurora/gplayapi/GooglePlayApi.kt index 0c8c26cc879811b09558f4c38cf17aae48b7a94e..577ff178217f51d2186024560f4a38d7bc43044a 100644 --- a/src/main/java/com/aurora/gplayapi/GooglePlayApi.kt +++ b/src/main/java/com/aurora/gplayapi/GooglePlayApi.kt @@ -194,6 +194,7 @@ class GooglePlayApi(private val authData: AuthData) { const val PURCHASE_URL = "$URL_FDFE/purchase" const val PURCHASE_HISTORY_URL = "$URL_FDFE/purchaseHistory" const val TOP_CHART_URL = "$URL_FDFE/listTopChartItems" + const val LIST = "$URL_FDFE/list" const val URL_AUTH = "$URL_BASE/auth" const val URL_BULK_DETAILS = "$URL_FDFE/bulkDetails" const val URL_BULK_PREFETCH = "$URL_FDFE/bulkPrefetch" diff --git a/src/main/java/com/aurora/gplayapi/helpers/CategoryAppsHelper.kt b/src/main/java/com/aurora/gplayapi/helpers/CategoryAppsHelper.kt new file mode 100644 index 0000000000000000000000000000000000000000..d771e5acb2ef60cdf35d7e896d8aa4dc20a9fba4 --- /dev/null +++ b/src/main/java/com/aurora/gplayapi/helpers/CategoryAppsHelper.kt @@ -0,0 +1,40 @@ +package com.aurora.gplayapi.helpers + +import com.aurora.gplayapi.GooglePlayApi +import com.aurora.gplayapi.data.models.AuthData +import com.aurora.gplayapi.data.models.StreamCluster +import com.aurora.gplayapi.data.providers.HeaderProvider +import com.aurora.gplayapi.network.IHttpClient +import java.util.HashMap + +class CategoryAppsHelper(authData: AuthData) : BaseHelper(authData) { + + private val streamCluster = ClusterHelper(authData) + + override fun using(httpClient: IHttpClient) = apply { + this.httpClient = httpClient + streamCluster.using(httpClient) + } + + fun getCategoryAppsList(category: String): StreamCluster { + val headers: MutableMap = HeaderProvider.getDefaultHeaders(authData) + val params: MutableMap = HashMap() + params["c"] = "3" + params["cat"] = category + params["ctr"] = Chart.TOP_SELLING_FREE.value + + val playResponse = httpClient.get(GooglePlayApi.LIST, headers, params) + + return if (playResponse.isSuccessful) { + val listResponse = getListResponseFromBytes(playResponse.responseBytes) + val streamCluster = getStreamCluster(listResponse) + streamCluster + } else { + StreamCluster() + } + } + + fun next(nextPageUrl: String): StreamCluster { + return streamCluster.next(nextPageUrl) + } +} \ No newline at end of file diff --git a/src/main/java/com/aurora/gplayapi/helpers/Chart.kt b/src/main/java/com/aurora/gplayapi/helpers/Chart.kt new file mode 100644 index 0000000000000000000000000000000000000000..d90ed90f84c5d6f0e6beec2faa6d3d51429dcb88 --- /dev/null +++ b/src/main/java/com/aurora/gplayapi/helpers/Chart.kt @@ -0,0 +1,8 @@ +package com.aurora.gplayapi.helpers + +enum class Chart(var value: String) { + TOP_SELLING_FREE("apps_topselling_free"), + TOP_SELLING_PAID("apps_topselling_paid"), + TOP_GROSSING("apps_topgrossing"), + MOVERS_SHAKERS("apps_movers_shakers"); +} \ No newline at end of file diff --git a/src/main/java/com/aurora/gplayapi/helpers/TopChartsHelper.kt b/src/main/java/com/aurora/gplayapi/helpers/TopChartsHelper.kt index 083d054fb3e761bac726c5b71ff08a83f27bd307..d6d30c9247defd9db8fe4f22fd74f2283216a975 100644 --- a/src/main/java/com/aurora/gplayapi/helpers/TopChartsHelper.kt +++ b/src/main/java/com/aurora/gplayapi/helpers/TopChartsHelper.kt @@ -44,13 +44,6 @@ class TopChartsHelper(authData: AuthData) : BaseHelper(authData) { StreamCluster() } - enum class Chart(var value: String) { - TOP_SELLING_FREE("apps_topselling_free"), - TOP_SELLING_PAID("apps_topselling_paid"), - TOP_GROSSING("apps_topgrossing"), - MOVERS_SHAKERS("apps_movers_shakers"); - } - enum class Type(var value: String) { GAME("GAME"), APPLICATION("APPLICATION");