From ad64bb10559a24df5a005ee641fefe1af83c3a05 Mon Sep 17 00:00:00 2001 From: Rahul Patel Date: Fri, 21 Jun 2024 22:44:05 +0530 Subject: [PATCH] Initial web-helper migration --- app/build.gradle.kts | 3 ++- .../java/com/aurora/store/data/network/OkHttpClient.kt | 7 +------ .../aurora/store/view/ui/commons/EditorChoiceFragment.kt | 5 +++-- .../com/aurora/store/view/ui/commons/ForYouFragment.kt | 4 ++-- .../com/aurora/store/view/ui/commons/TopChartFragment.kt | 4 ++-- .../store/viewmodel/details/DetailsClusterViewModel.kt | 5 +++-- .../store/viewmodel/details/DevProfileViewModel.kt | 5 +++-- .../viewmodel/editorschoice/EditorChoiceViewModel.kt | 3 ++- .../store/viewmodel/homestream/BaseClusterViewModel.kt | 9 +++++---- .../store/viewmodel/search/SearchResultViewModel.kt | 7 ++++--- .../store/viewmodel/search/SearchSuggestionViewModel.kt | 9 +++++---- .../aurora/store/viewmodel/topchart/TopChartViewModel.kt | 7 ++++--- 12 files changed, 36 insertions(+), 32 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 8e2bae376..d7b007bf4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -171,7 +171,8 @@ dependencies { implementation(libs.github.topjohnwu.libsu) //GPlayApi - implementation(libs.gitlab.auroraoss.gplayapi) + //implementation(libs.gitlab.auroraoss.gplayapi) + implementation("com.gitlab.AuroraOSS:gplayapi:98a2a06e20") //Shizuku compileOnly(libs.rikka.hidden.stub) diff --git a/app/src/main/java/com/aurora/store/data/network/OkHttpClient.kt b/app/src/main/java/com/aurora/store/data/network/OkHttpClient.kt index 1e59aed1f..0887dfc78 100644 --- a/app/src/main/java/com/aurora/store/data/network/OkHttpClient.kt +++ b/app/src/main/java/com/aurora/store/data/network/OkHttpClient.kt @@ -121,12 +121,7 @@ object OkHttpClient : IProxyHttpClient { @Throws(IOException::class) override fun post(url: String, headers: Map, body: ByteArray): PlayResponse { - val requestBody = body.toRequestBody( - "application/x-protobuf".toMediaType(), - 0, - body.size - ) - return post(url, headers, requestBody) + return post(url, headers, body.toRequestBody()) } @Throws(IOException::class) diff --git a/app/src/main/java/com/aurora/store/view/ui/commons/EditorChoiceFragment.kt b/app/src/main/java/com/aurora/store/view/ui/commons/EditorChoiceFragment.kt index 97b102166..0cd8884cf 100644 --- a/app/src/main/java/com/aurora/store/view/ui/commons/EditorChoiceFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/commons/EditorChoiceFragment.kt @@ -25,6 +25,7 @@ import androidx.fragment.app.viewModels import com.aurora.Constants import com.aurora.gplayapi.data.models.editor.EditorChoiceCluster import com.aurora.gplayapi.helpers.StreamHelper +import com.aurora.gplayapi.helpers.contracts.StreamContract import com.aurora.store.R import com.aurora.store.databinding.FragmentForYouBinding import com.aurora.store.view.epoxy.controller.EditorChoiceController @@ -65,8 +66,8 @@ class EditorChoiceFragment : BaseFragment(R.layout.fragment_for_you), binding.recycler.setController(editorChoiceController) when (pageType) { - 0 -> viewModel.getEditorChoiceStream(StreamHelper.Category.APPLICATION) - 1 -> viewModel.getEditorChoiceStream(StreamHelper.Category.GAME) + 0 -> viewModel.getEditorChoiceStream(StreamContract.Category.APPLICATION) + 1 -> viewModel.getEditorChoiceStream(StreamContract.Category.GAME) } viewModel.liveData.observe(viewLifecycleOwner) { diff --git a/app/src/main/java/com/aurora/store/view/ui/commons/ForYouFragment.kt b/app/src/main/java/com/aurora/store/view/ui/commons/ForYouFragment.kt index 3a345e676..f18086d2f 100644 --- a/app/src/main/java/com/aurora/store/view/ui/commons/ForYouFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/commons/ForYouFragment.kt @@ -26,8 +26,8 @@ import com.aurora.Constants import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.StreamBundle import com.aurora.gplayapi.data.models.StreamCluster -import com.aurora.gplayapi.helpers.StreamHelper.Category -import com.aurora.gplayapi.helpers.StreamHelper.Type +import com.aurora.gplayapi.helpers.contracts.StreamContract.Category +import com.aurora.gplayapi.helpers.contracts.StreamContract.Type import com.aurora.store.R import com.aurora.store.data.model.ViewState import com.aurora.store.databinding.FragmentForYouBinding diff --git a/app/src/main/java/com/aurora/store/view/ui/commons/TopChartFragment.kt b/app/src/main/java/com/aurora/store/view/ui/commons/TopChartFragment.kt index a17762db7..9aa33234a 100644 --- a/app/src/main/java/com/aurora/store/view/ui/commons/TopChartFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/commons/TopChartFragment.kt @@ -24,8 +24,8 @@ import android.view.View import androidx.fragment.app.viewModels import com.aurora.Constants import com.aurora.gplayapi.data.models.StreamCluster -import com.aurora.gplayapi.helpers.TopChartsHelper.Chart -import com.aurora.gplayapi.helpers.TopChartsHelper.Type +import com.aurora.gplayapi.helpers.contracts.TopChartsContract.Chart +import com.aurora.gplayapi.helpers.contracts.TopChartsContract.Type import com.aurora.store.R import com.aurora.store.databinding.FragmentTopContainerBinding import com.aurora.store.view.custom.recycler.EndlessRecyclerOnScrollListener diff --git a/app/src/main/java/com/aurora/store/viewmodel/details/DetailsClusterViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/details/DetailsClusterViewModel.kt index 8ebc226bb..9a0fe5f57 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/details/DetailsClusterViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/details/DetailsClusterViewModel.kt @@ -29,6 +29,7 @@ import com.aurora.gplayapi.data.models.StreamCluster import com.aurora.gplayapi.helpers.AppDetailsHelper import com.aurora.gplayapi.helpers.StreamHelper import com.aurora.store.data.model.ViewState +import com.aurora.gplayapi.helpers.contracts.StreamContract import com.aurora.store.data.network.HttpClient import com.aurora.store.data.providers.AuthProvider import com.aurora.store.util.Log @@ -53,8 +54,8 @@ class DetailsClusterViewModel @Inject constructor( val liveData: MutableLiveData = MutableLiveData() var streamBundle: StreamBundle = StreamBundle() - lateinit var type: StreamHelper.Type - lateinit var category: StreamHelper.Category + lateinit var type: StreamContract.Type + lateinit var category: StreamContract.Category fun getStreamBundle(streamUrl: String) { viewModelScope.launch(Dispatchers.IO) { diff --git a/app/src/main/java/com/aurora/store/viewmodel/details/DevProfileViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/details/DevProfileViewModel.kt index 0237138d0..484bcb706 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/details/DevProfileViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/details/DevProfileViewModel.kt @@ -30,6 +30,7 @@ import com.aurora.gplayapi.data.models.details.DevStream import com.aurora.gplayapi.helpers.AppDetailsHelper import com.aurora.gplayapi.helpers.StreamHelper import com.aurora.store.data.model.ViewState +import com.aurora.gplayapi.helpers.contracts.StreamContract import com.aurora.store.data.network.HttpClient import com.aurora.store.data.providers.AuthProvider import com.aurora.store.util.Log @@ -55,8 +56,8 @@ class DevProfileViewModel @Inject constructor( var devStream:DevStream = DevStream() var streamBundle: StreamBundle = StreamBundle() - lateinit var type: StreamHelper.Type - lateinit var category: StreamHelper.Category + lateinit var type: StreamContract.Type + lateinit var category: StreamContract.Category fun getStreamBundle(devId: String) { viewModelScope.launch(Dispatchers.IO) { diff --git a/app/src/main/java/com/aurora/store/viewmodel/editorschoice/EditorChoiceViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/editorschoice/EditorChoiceViewModel.kt index 83a1334ce..cb4665c1b 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/editorschoice/EditorChoiceViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/editorschoice/EditorChoiceViewModel.kt @@ -27,6 +27,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.aurora.gplayapi.data.models.editor.EditorChoiceBundle import com.aurora.gplayapi.helpers.StreamHelper +import com.aurora.gplayapi.helpers.contracts.StreamContract import com.aurora.store.data.network.HttpClient import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel @@ -50,7 +51,7 @@ class EditorChoiceViewModel @Inject constructor( val liveData: MutableLiveData> = MutableLiveData() - fun getEditorChoiceStream(category: StreamHelper.Category) { + fun getEditorChoiceStream(category: StreamContract.Category) { viewModelScope.launch(Dispatchers.IO) { supervisorScope { try { diff --git a/app/src/main/java/com/aurora/store/viewmodel/homestream/BaseClusterViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/homestream/BaseClusterViewModel.kt index ba5c6274e..c0ad6bf9b 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/homestream/BaseClusterViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/homestream/BaseClusterViewModel.kt @@ -28,15 +28,16 @@ import com.aurora.gplayapi.data.models.StreamBundle import com.aurora.gplayapi.data.models.StreamCluster import com.aurora.gplayapi.helpers.StreamHelper import com.aurora.store.data.model.ViewState +import com.aurora.gplayapi.helpers.contracts.StreamContract import com.aurora.store.data.network.HttpClient import com.aurora.store.data.providers.AuthProvider import com.aurora.store.util.Log import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext -import javax.inject.Inject import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.supervisorScope +import javax.inject.Inject @HiltViewModel @SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253 @@ -51,10 +52,10 @@ class BaseClusterViewModel @Inject constructor( val liveData: MutableLiveData = MutableLiveData() var streamBundle: StreamBundle = StreamBundle() - lateinit var type: StreamHelper.Type - lateinit var category: StreamHelper.Category + lateinit var type: StreamContract.Type + lateinit var category: StreamContract.Category - fun getStreamBundle(category: StreamHelper.Category, type: StreamHelper.Type) { + fun getStreamBundle(category: StreamContract.Category, type: StreamContract.Type) { this.type = type this.category = category liveData.postValue(ViewState.Loading) diff --git a/app/src/main/java/com/aurora/store/viewmodel/search/SearchResultViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/search/SearchResultViewModel.kt index 7c66a22aa..19a2198b1 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/search/SearchResultViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/search/SearchResultViewModel.kt @@ -28,7 +28,8 @@ import androidx.lifecycle.viewModelScope import com.aurora.extensions.flushAndAdd import com.aurora.gplayapi.data.models.SearchBundle import com.aurora.gplayapi.helpers.SearchHelper -import com.aurora.gplayapi.helpers.WebSearchHelper +import com.aurora.gplayapi.helpers.contracts.SearchContract +import com.aurora.gplayapi.helpers.web.WebSearchHelper import com.aurora.store.data.network.HttpClient import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.providers.FilterProvider @@ -49,7 +50,7 @@ class SearchResultViewModel @Inject constructor( private val TAG = SearchResultViewModel::class.java.simpleName - private val webSearchHelper: WebSearchHelper = WebSearchHelper(authProvider.authData) + private val webSearchHelper: WebSearchHelper = WebSearchHelper() private val searchHelper: SearchHelper = SearchHelper(authProvider.authData) .using(HttpClient.getPreferredClient(context)) @@ -57,7 +58,7 @@ class SearchResultViewModel @Inject constructor( private var searchBundle: SearchBundle = SearchBundle() - fun helper(): SearchHelper { + fun helper(): SearchContract { return if (authProvider.isAnonymous) { webSearchHelper } else { diff --git a/app/src/main/java/com/aurora/store/viewmodel/search/SearchSuggestionViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/search/SearchSuggestionViewModel.kt index c55d8a421..2e7d69330 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/search/SearchSuggestionViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/search/SearchSuggestionViewModel.kt @@ -26,14 +26,15 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.aurora.gplayapi.SearchSuggestEntry import com.aurora.gplayapi.helpers.SearchHelper -import com.aurora.gplayapi.helpers.WebSearchHelper +import com.aurora.gplayapi.helpers.contracts.SearchContract +import com.aurora.gplayapi.helpers.web.WebSearchHelper import com.aurora.store.data.network.HttpClient import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext -import javax.inject.Inject import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch +import javax.inject.Inject @HiltViewModel @SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253 @@ -42,13 +43,13 @@ class SearchSuggestionViewModel @Inject constructor( private val authProvider: AuthProvider ) : ViewModel() { - private val webSearchHelper: WebSearchHelper = WebSearchHelper(authProvider.authData) + private val webSearchHelper: WebSearchHelper = WebSearchHelper() private val searchHelper: SearchHelper = SearchHelper(authProvider.authData) .using(HttpClient.getPreferredClient(context)) val liveSearchSuggestions: MutableLiveData> = MutableLiveData() - fun helper(): SearchHelper { + fun helper(): SearchContract { return if (authProvider.isAnonymous) { webSearchHelper } else { diff --git a/app/src/main/java/com/aurora/store/viewmodel/topchart/TopChartViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/topchart/TopChartViewModel.kt index 2c6ccff0f..f356b00fd 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/topchart/TopChartViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/topchart/TopChartViewModel.kt @@ -26,14 +26,15 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.aurora.gplayapi.data.models.StreamCluster import com.aurora.gplayapi.helpers.TopChartsHelper +import com.aurora.gplayapi.helpers.contracts.TopChartsContract import com.aurora.store.data.network.HttpClient import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext -import javax.inject.Inject import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.supervisorScope +import javax.inject.Inject @HiltViewModel @SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253 @@ -48,10 +49,10 @@ class TopChartViewModel @Inject constructor( val liveData: MutableLiveData = MutableLiveData() var streamCluster: StreamCluster = StreamCluster() - fun getStreamCluster(type: TopChartsHelper.Type, chart: TopChartsHelper.Chart) { + fun getStreamCluster(type: TopChartsContract.Type, chart: TopChartsContract.Chart) { viewModelScope.launch(Dispatchers.IO) { try { - streamCluster = topChartsHelper.getCluster(type, chart) + streamCluster = topChartsHelper.getCluster(type.value, chart.value) liveData.postValue(streamCluster) } catch (_: Exception) { }