From ed4257212813cc7247212587c8a37bbed5c076a5 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Tue, 20 Aug 2024 14:14:56 +0530 Subject: [PATCH] HttpClient: Inject using hilt Signed-off-by: Aayush Gupta --- .../com/aurora/store/data/network/HttpClient.kt | 14 ++++++++++++-- .../aurora/store/data/providers/AuthProvider.kt | 12 +++++------- .../com/aurora/store/data/work/DownloadWorker.kt | 5 +++-- app/src/main/java/com/aurora/store/util/AppUtil.kt | 8 ++++---- .../store/viewmodel/all/BlacklistViewModel.kt | 5 +++-- .../aurora/store/viewmodel/auth/AuthViewModel.kt | 10 ++++------ .../browse/ExpandedStreamBrowseViewModel.kt | 7 ++++--- .../viewmodel/browse/StreamBrowseViewModel.kt | 7 ++++--- .../store/viewmodel/category/CategoryViewModel.kt | 7 ++++--- .../store/viewmodel/details/AppDetailsViewModel.kt | 6 +++--- .../viewmodel/details/DetailsClusterViewModel.kt | 7 ++++--- .../viewmodel/details/DetailsMoreViewModel.kt | 7 ++++--- .../store/viewmodel/details/DevProfileViewModel.kt | 7 ++++--- .../store/viewmodel/homestream/StreamViewModel.kt | 7 ++++--- .../store/viewmodel/review/ReviewViewModel.kt | 7 ++++--- .../viewmodel/search/SearchResultViewModel.kt | 7 ++++--- .../viewmodel/search/SearchSuggestionViewModel.kt | 7 ++++--- .../subcategory/CategoryStreamViewModel.kt | 7 ++++--- .../store/viewmodel/topchart/TopChartViewModel.kt | 10 ++++++---- 19 files changed, 84 insertions(+), 63 deletions(-) diff --git a/app/src/main/java/com/aurora/store/data/network/HttpClient.kt b/app/src/main/java/com/aurora/store/data/network/HttpClient.kt index 0a56c07a9..4c7cf6b8c 100644 --- a/app/src/main/java/com/aurora/store/data/network/HttpClient.kt +++ b/app/src/main/java/com/aurora/store/data/network/HttpClient.kt @@ -24,17 +24,27 @@ import android.util.Log import com.aurora.store.data.model.ProxyInfo import com.aurora.store.util.Preferences import com.google.gson.Gson +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.android.qualifiers.ApplicationContext +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton +@Module +@InstallIn(SingletonComponent::class) object HttpClient { private const val TAG = "HttpClient" - fun getPreferredClient(context: Context): IProxyHttpClient { + @Provides + @Singleton + fun getPreferredClient(@ApplicationContext context: Context, gson: Gson): IProxyHttpClient { val proxyEnabled = Preferences.getBoolean(context, Preferences.PREFERENCE_PROXY_ENABLED) val proxyInfoString = Preferences.getString(context, Preferences.PREFERENCE_PROXY_INFO) return if (proxyEnabled && proxyInfoString.isNotBlank() && proxyInfoString != "{}") { - val proxyInfo = Gson().fromJson(proxyInfoString, ProxyInfo::class.java) + val proxyInfo = gson.fromJson(proxyInfoString, ProxyInfo::class.java) if (proxyInfo != null) { OkHttpClient.setProxy(proxyInfo) diff --git a/app/src/main/java/com/aurora/store/data/providers/AuthProvider.kt b/app/src/main/java/com/aurora/store/data/providers/AuthProvider.kt index 3a21eacec..3a16079a9 100644 --- a/app/src/main/java/com/aurora/store/data/providers/AuthProvider.kt +++ b/app/src/main/java/com/aurora/store/data/providers/AuthProvider.kt @@ -29,7 +29,7 @@ import com.aurora.gplayapi.helpers.AuthValidator import com.aurora.store.R import com.aurora.store.data.model.AccountType import com.aurora.store.data.model.Auth -import com.aurora.store.data.network.HttpClient +import com.aurora.store.data.network.IProxyHttpClient import com.aurora.store.util.Preferences import com.aurora.store.util.Preferences.PREFERENCE_AUTH_DATA import com.aurora.store.util.Preferences.PREFERENCE_DISPENSER_URLS @@ -47,7 +47,8 @@ import javax.inject.Singleton class AuthProvider @Inject constructor( @ApplicationContext private val context: Context, private val gson: Gson, - private val spoofProvider: SpoofProvider + private val spoofProvider: SpoofProvider, + private val httpClient: IProxyHttpClient ) { private val TAG = AuthProvider::class.java.simpleName @@ -104,7 +105,7 @@ class AuthProvider @Inject constructor( return withContext(Dispatchers.IO) { try { AuthValidator(authData ?: return@withContext false) - .using(HttpClient.getPreferredClient(context)) + .using(httpClient) .isValid() } catch (exception: Exception) { false @@ -145,10 +146,7 @@ class AuthProvider @Inject constructor( private suspend fun buildAnonymousAuthData(): AuthData? { return withContext(Dispatchers.IO) { try { - val playResponse = HttpClient - .getPreferredClient(context) - .getAuth(dispenserURL!!) - + val playResponse = httpClient.getAuth(dispenserURL!!) val auth = gson.fromJson(String(playResponse.responseBytes), Auth::class.java) return@withContext AuthHelper.build( email = auth.email, diff --git a/app/src/main/java/com/aurora/store/data/work/DownloadWorker.kt b/app/src/main/java/com/aurora/store/data/work/DownloadWorker.kt index d6188979b..f192a2235 100644 --- a/app/src/main/java/com/aurora/store/data/work/DownloadWorker.kt +++ b/app/src/main/java/com/aurora/store/data/work/DownloadWorker.kt @@ -25,7 +25,7 @@ import com.aurora.store.data.model.DownloadInfo import com.aurora.store.data.model.DownloadStatus import com.aurora.store.data.model.ProxyInfo import com.aurora.store.data.model.Request -import com.aurora.store.data.network.HttpClient +import com.aurora.store.data.network.IProxyHttpClient import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.room.download.Download import com.aurora.store.data.room.download.DownloadDao @@ -67,6 +67,7 @@ class DownloadWorker @AssistedInject constructor( private val gson: Gson, private val appInstaller: AppInstaller, private val authProvider: AuthProvider, + private val httpClient: IProxyHttpClient, @Assisted private val appContext: Context, @Assisted workerParams: WorkerParameters ) : CoroutineWorker(appContext, workerParams) { @@ -113,7 +114,7 @@ class DownloadWorker @AssistedInject constructor( // Purchase the app (free apps needs to be purchased too) purchaseHelper = PurchaseHelper(authProvider.authData!!) - .using(HttpClient.getPreferredClient(appContext)) + .using(httpClient) notificationManager = appContext.getSystemService(Service.NOTIFICATION_SERVICE) as NotificationManager diff --git a/app/src/main/java/com/aurora/store/util/AppUtil.kt b/app/src/main/java/com/aurora/store/util/AppUtil.kt index 48ef4da6a..8babb03f8 100644 --- a/app/src/main/java/com/aurora/store/util/AppUtil.kt +++ b/app/src/main/java/com/aurora/store/util/AppUtil.kt @@ -11,7 +11,7 @@ import com.aurora.gplayapi.helpers.AppDetailsHelper import com.aurora.store.AuroraApp import com.aurora.store.BuildConfig import com.aurora.store.data.model.SelfUpdate -import com.aurora.store.data.network.HttpClient +import com.aurora.store.data.network.IProxyHttpClient import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.providers.BlacklistProvider import com.aurora.store.data.room.update.Update @@ -30,6 +30,7 @@ class AppUtil @Inject constructor( private val authProvider: AuthProvider, private val updateDao: UpdateDao, private val blacklistProvider: BlacklistProvider, + private val httpClient: IProxyHttpClient, @ApplicationContext private val context: Context ) { @@ -77,7 +78,7 @@ class AppUtil @Inject constructor( ): List { return withContext(Dispatchers.IO) { val appDetailsHelper = AppDetailsHelper(tmpAuthData?: authProvider.authData!!) - .using(HttpClient.getPreferredClient(context)) + .using(httpClient) (packageInfoMap ?: PackageUtil.getPackageInfoMap(context)).keys.let { packages -> val filtersPackages = packages.filter { !blacklistProvider.isBlacklisted(it) } @@ -103,8 +104,7 @@ class AppUtil @Inject constructor( } try { - val response = - HttpClient.getPreferredClient(context).get(Constants.UPDATE_URL, mapOf()) + val response = httpClient.get(Constants.UPDATE_URL, mapOf()) val selfUpdate = gson.fromJson(String(response.responseBytes), SelfUpdate::class.java) diff --git a/app/src/main/java/com/aurora/store/viewmodel/all/BlacklistViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/all/BlacklistViewModel.kt index 006b85333..7e5b39d23 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/all/BlacklistViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/all/BlacklistViewModel.kt @@ -26,7 +26,7 @@ import androidx.lifecycle.viewModelScope import com.aurora.extensions.isApp import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.helpers.AppDetailsHelper -import com.aurora.store.data.network.HttpClient +import com.aurora.store.data.network.IProxyHttpClient import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.providers.BlacklistProvider import dagger.hilt.android.lifecycle.HiltViewModel @@ -44,10 +44,11 @@ import javax.inject.Inject class BlacklistViewModel @Inject constructor( val blacklistProvider: BlacklistProvider, @ApplicationContext private val context: Context, + private val httpClient: IProxyHttpClient, authProvider: AuthProvider ) : ViewModel() { private val appDetailsHelper = AppDetailsHelper(authProvider.authData!!) - .using(HttpClient.getPreferredClient(context)) + .using(httpClient) private val _blacklistedApps = MutableStateFlow?>(null) val blackListedApps = _blacklistedApps.asStateFlow() diff --git a/app/src/main/java/com/aurora/store/viewmodel/auth/AuthViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/auth/AuthViewModel.kt index 6b365dd23..5b021da90 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/auth/AuthViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/auth/AuthViewModel.kt @@ -36,7 +36,7 @@ import com.aurora.store.data.event.AuthEvent import com.aurora.store.data.model.AccountType import com.aurora.store.data.model.Auth import com.aurora.store.data.model.AuthState -import com.aurora.store.data.network.HttpClient +import com.aurora.store.data.network.IProxyHttpClient import com.aurora.store.data.providers.AccountProvider import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.work.UpdateWorker @@ -60,7 +60,8 @@ import javax.inject.Inject class AuthViewModel @Inject constructor( val authProvider: AuthProvider, @ApplicationContext private val context: Context, - private val gson: Gson + private val gson: Gson, + private val httpClient: IProxyHttpClient ) : ViewModel() { private val TAG = AuthViewModel::class.java.simpleName @@ -104,10 +105,7 @@ class AuthViewModel @Inject constructor( liveData.postValue(AuthState.Fetching) viewModelScope.launch(Dispatchers.IO) { try { - val playResponse = HttpClient - .getPreferredClient(context) - .getAuth(authProvider.dispenserURL!!) - + val playResponse = httpClient.getAuth(authProvider.dispenserURL!!) if (playResponse.isSuccessful) { val tmpAuthData = gson.fromJson( String(playResponse.responseBytes), diff --git a/app/src/main/java/com/aurora/store/viewmodel/browse/ExpandedStreamBrowseViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/browse/ExpandedStreamBrowseViewModel.kt index b3636e4f3..3b0b45172 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/browse/ExpandedStreamBrowseViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/browse/ExpandedStreamBrowseViewModel.kt @@ -27,7 +27,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.aurora.gplayapi.data.models.StreamCluster import com.aurora.gplayapi.helpers.ExpandedBrowseHelper -import com.aurora.store.data.network.HttpClient +import com.aurora.store.data.network.IProxyHttpClient import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext @@ -40,13 +40,14 @@ import javax.inject.Inject @SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253 class ExpandedStreamBrowseViewModel @Inject constructor( @ApplicationContext private val context: Context, - private val authProvider: AuthProvider + private val authProvider: AuthProvider, + private val httpClient: IProxyHttpClient ) : ViewModel() { private val TAG = ExpandedStreamBrowseViewModel::class.java.simpleName private val streamHelper: ExpandedBrowseHelper = ExpandedBrowseHelper(authProvider.authData!!) - .using(HttpClient.getPreferredClient(context)) + .using(httpClient) val liveData: MutableLiveData = MutableLiveData() var streamCluster: StreamCluster = StreamCluster() diff --git a/app/src/main/java/com/aurora/store/viewmodel/browse/StreamBrowseViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/browse/StreamBrowseViewModel.kt index bcf24807b..efff2be18 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/browse/StreamBrowseViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/browse/StreamBrowseViewModel.kt @@ -28,7 +28,7 @@ import androidx.lifecycle.viewModelScope import com.aurora.gplayapi.data.models.StreamCluster import com.aurora.gplayapi.helpers.contracts.StreamContract import com.aurora.gplayapi.helpers.web.WebStreamHelper -import com.aurora.store.data.network.HttpClient +import com.aurora.store.data.network.IProxyHttpClient import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext @@ -41,13 +41,14 @@ import javax.inject.Inject @SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253 class StreamBrowseViewModel @Inject constructor( @ApplicationContext private val context: Context, - private val authProvider: AuthProvider + private val authProvider: AuthProvider, + private val httpClient: IProxyHttpClient ) : ViewModel() { private val TAG = StreamBrowseViewModel::class.java.simpleName private val streamHelper: StreamContract = WebStreamHelper() - .using(HttpClient.getPreferredClient(context)) + .using(httpClient) val liveData: MutableLiveData = MutableLiveData() diff --git a/app/src/main/java/com/aurora/store/viewmodel/category/CategoryViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/category/CategoryViewModel.kt index cba9da37f..a7d835d4d 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/category/CategoryViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/category/CategoryViewModel.kt @@ -30,7 +30,7 @@ import com.aurora.gplayapi.helpers.CategoryHelper import com.aurora.gplayapi.helpers.contracts.CategoryContract import com.aurora.store.CategoryStash import com.aurora.store.data.model.ViewState -import com.aurora.store.data.network.HttpClient +import com.aurora.store.data.network.IProxyHttpClient import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext @@ -42,12 +42,13 @@ import javax.inject.Inject @SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253 class CategoryViewModel @Inject constructor( @ApplicationContext private val context: Context, - private val authProvider: AuthProvider + private val authProvider: AuthProvider, + private val httpClient: IProxyHttpClient ) : ViewModel() { private val TAG = CategoryViewModel::class.java.simpleName private val categoryHelper: CategoryHelper = CategoryHelper(authProvider.authData!!) - .using(HttpClient.getPreferredClient(context)) + .using(httpClient) private var stash: CategoryStash = mutableMapOf( Category.Type.APPLICATION to emptyList(), diff --git a/app/src/main/java/com/aurora/store/viewmodel/details/AppDetailsViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/details/AppDetailsViewModel.kt index af1737e07..fb3a9ada2 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/details/AppDetailsViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/details/AppDetailsViewModel.kt @@ -12,7 +12,7 @@ import com.aurora.gplayapi.helpers.ReviewsHelper import com.aurora.gplayapi.helpers.web.WebDataSafetyHelper import com.aurora.store.data.model.ExodusReport import com.aurora.store.data.model.Report -import com.aurora.store.data.network.HttpClient +import com.aurora.store.data.network.IProxyHttpClient import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.room.favourites.Favourite import com.aurora.store.data.room.favourites.FavouriteDao @@ -36,7 +36,8 @@ class AppDetailsViewModel @Inject constructor( @ApplicationContext private val context: Context, private val downloadWorkerUtil: DownloadWorkerUtil, private val authProvider: AuthProvider, - private val favouriteDao: FavouriteDao + private val favouriteDao: FavouriteDao, + private val httpClient: IProxyHttpClient ) : ViewModel() { private val TAG = AppDetailsViewModel::class.java.simpleName @@ -44,7 +45,6 @@ class AppDetailsViewModel @Inject constructor( private val exodusBaseUrl = "https://reports.exodus-privacy.eu.org/api/search/" private val exodusApiKey = "Token bbe6ebae4ad45a9cbacb17d69739799b8df2c7ae" - private val httpClient = HttpClient.getPreferredClient(context) private val appDetailsHelper = AppDetailsHelper(authProvider.authData!!).using(httpClient) private val reviewsHelper = ReviewsHelper(authProvider.authData!!).using(httpClient) 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 71733582a..ae6513a43 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 @@ -31,7 +31,7 @@ import com.aurora.gplayapi.helpers.StreamHelper import com.aurora.gplayapi.helpers.contracts.StreamContract import com.aurora.store.AppStreamStash import com.aurora.store.data.model.ViewState -import com.aurora.store.data.network.HttpClient +import com.aurora.store.data.network.IProxyHttpClient import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext @@ -43,13 +43,14 @@ import javax.inject.Inject @HiltViewModel class DetailsClusterViewModel @Inject constructor( @ApplicationContext private val context: Context, - authProvider: AuthProvider + authProvider: AuthProvider, + private val httpClient: IProxyHttpClient ) : ViewModel() { private val TAG = DetailsClusterViewModel::class.java.simpleName private var appDetailsHelper = AppDetailsHelper(authProvider.authData!!) - .using(HttpClient.getPreferredClient(context)) + .using(httpClient) private var streamHelper = StreamHelper(authProvider.authData!!) diff --git a/app/src/main/java/com/aurora/store/viewmodel/details/DetailsMoreViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/details/DetailsMoreViewModel.kt index 020cbf979..93ae9cecf 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/details/DetailsMoreViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/details/DetailsMoreViewModel.kt @@ -6,7 +6,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.helpers.AppDetailsHelper -import com.aurora.store.data.network.HttpClient +import com.aurora.store.data.network.IProxyHttpClient import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext @@ -19,13 +19,14 @@ import javax.inject.Inject @HiltViewModel class DetailsMoreViewModel @Inject constructor( @ApplicationContext private val context: Context, - private val authProvider: AuthProvider + private val authProvider: AuthProvider, + private val httpClient: IProxyHttpClient ) : ViewModel() { private val TAG = DetailsMoreViewModel::class.java.simpleName private val appDetailsHelper = AppDetailsHelper(authProvider.authData!!) - .using(HttpClient.getPreferredClient(context)) + .using(httpClient) private val dependantAppsStash = mutableMapOf>() private val _dependentApps = MutableSharedFlow>() 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 99f020a1f..1d8508154 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 @@ -32,7 +32,7 @@ import com.aurora.gplayapi.helpers.AppDetailsHelper import com.aurora.gplayapi.helpers.StreamHelper import com.aurora.gplayapi.helpers.contracts.StreamContract import com.aurora.store.data.model.ViewState -import com.aurora.store.data.network.HttpClient +import com.aurora.store.data.network.IProxyHttpClient import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext @@ -45,13 +45,14 @@ import javax.inject.Inject @SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253 class DevProfileViewModel @Inject constructor( @ApplicationContext private val context: Context, - private val authProvider: AuthProvider + private val authProvider: AuthProvider, + private val httpClient: IProxyHttpClient ) : ViewModel() { private val TAG = DevProfileViewModel::class.java.simpleName private var appDetailsHelper = AppDetailsHelper(authProvider.authData!!) - .using(HttpClient.getPreferredClient(context)) + .using(httpClient) private var streamHelper = StreamHelper(authProvider.authData!!) val liveData: MutableLiveData = MutableLiveData() diff --git a/app/src/main/java/com/aurora/store/viewmodel/homestream/StreamViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/homestream/StreamViewModel.kt index 1bf68cfab..e0bdc35e2 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/homestream/StreamViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/homestream/StreamViewModel.kt @@ -31,7 +31,7 @@ import com.aurora.gplayapi.helpers.contracts.StreamContract import com.aurora.gplayapi.helpers.web.WebStreamHelper import com.aurora.store.HomeStash import com.aurora.store.data.model.ViewState -import com.aurora.store.data.network.HttpClient +import com.aurora.store.data.network.IProxyHttpClient import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers @@ -42,13 +42,14 @@ import javax.inject.Inject @HiltViewModel @SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253 class StreamViewModel @Inject constructor( - @ApplicationContext private val context: Context + @ApplicationContext private val context: Context, + private val httpClient: IProxyHttpClient ) : ViewModel() { private val TAG = StreamViewModel::class.java.simpleName private var webStreamHelper = WebStreamHelper() - .using(HttpClient.getPreferredClient(context)) + .using(httpClient) val liveData: MutableLiveData = MutableLiveData() diff --git a/app/src/main/java/com/aurora/store/viewmodel/review/ReviewViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/review/ReviewViewModel.kt index 81f1ae4a5..8ea42d3e3 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/review/ReviewViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/review/ReviewViewModel.kt @@ -27,7 +27,7 @@ import androidx.lifecycle.viewModelScope import com.aurora.gplayapi.data.models.Review import com.aurora.gplayapi.data.models.ReviewCluster import com.aurora.gplayapi.helpers.ReviewsHelper -import com.aurora.store.data.network.HttpClient +import com.aurora.store.data.network.IProxyHttpClient import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext @@ -40,11 +40,12 @@ import javax.inject.Inject @SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253 class ReviewViewModel @Inject constructor( @ApplicationContext private val context: Context, - private val authProvider: AuthProvider + private val authProvider: AuthProvider, + private val httpClient: IProxyHttpClient ) : ViewModel() { var reviewsHelper: ReviewsHelper = ReviewsHelper(authProvider.authData!!) - .using(HttpClient.getPreferredClient(context)) + .using(httpClient) val liveData: MutableLiveData = MutableLiveData() 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 8f631fa52..79e091802 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 @@ -30,7 +30,7 @@ import com.aurora.gplayapi.data.models.SearchBundle import com.aurora.gplayapi.helpers.SearchHelper 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.network.IProxyHttpClient import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.providers.FilterProvider import dagger.hilt.android.lifecycle.HiltViewModel @@ -45,14 +45,15 @@ import javax.inject.Inject class SearchResultViewModel @Inject constructor( val filterProvider: FilterProvider, @ApplicationContext private val context: Context, - private val authProvider: AuthProvider + private val authProvider: AuthProvider, + private val httpClient: IProxyHttpClient ) : ViewModel() { private val TAG = SearchResultViewModel::class.java.simpleName private val webSearchHelper: WebSearchHelper = WebSearchHelper() private val searchHelper: SearchHelper = SearchHelper(authProvider.authData!!) - .using(HttpClient.getPreferredClient(context)) + .using(httpClient) val liveData: MutableLiveData = MutableLiveData() 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 77d9eb5f7..bafc13eba 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 @@ -28,7 +28,7 @@ import com.aurora.gplayapi.SearchSuggestEntry import com.aurora.gplayapi.helpers.SearchHelper 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.network.IProxyHttpClient import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext @@ -40,12 +40,13 @@ import javax.inject.Inject @SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253 class SearchSuggestionViewModel @Inject constructor( @ApplicationContext private val context: Context, - private val authProvider: AuthProvider + private val authProvider: AuthProvider, + private val httpClient: IProxyHttpClient ) : ViewModel() { private val webSearchHelper: WebSearchHelper = WebSearchHelper() private val searchHelper: SearchHelper = SearchHelper(authProvider.authData!!) - .using(HttpClient.getPreferredClient(context)) + .using(httpClient) val liveSearchSuggestions: MutableLiveData> = MutableLiveData() diff --git a/app/src/main/java/com/aurora/store/viewmodel/subcategory/CategoryStreamViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/subcategory/CategoryStreamViewModel.kt index b29b70662..9152e48da 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/subcategory/CategoryStreamViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/subcategory/CategoryStreamViewModel.kt @@ -31,7 +31,7 @@ import com.aurora.gplayapi.helpers.contracts.CategoryStreamContract import com.aurora.gplayapi.helpers.contracts.StreamContract import com.aurora.gplayapi.helpers.web.WebCategoryStreamHelper import com.aurora.store.data.model.ViewState -import com.aurora.store.data.network.HttpClient +import com.aurora.store.data.network.IProxyHttpClient import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers @@ -42,13 +42,14 @@ import javax.inject.Inject @HiltViewModel @SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253 class CategoryStreamViewModel @Inject constructor( - @ApplicationContext private val context: Context + @ApplicationContext private val context: Context, + private val httpClient: IProxyHttpClient ) : ViewModel() { private val TAG = CategoryStreamViewModel::class.java.simpleName private var webCategoryStreamHelper = WebCategoryStreamHelper() - .using(HttpClient.getPreferredClient(context)) + .using(httpClient) val liveData: MutableLiveData = MutableLiveData() 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 96a8b7e93..4a412510d 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 @@ -29,7 +29,7 @@ import com.aurora.gplayapi.helpers.contracts.TopChartsContract import com.aurora.gplayapi.helpers.web.WebTopChartsHelper import com.aurora.store.TopChartStash import com.aurora.store.data.model.ViewState -import com.aurora.store.data.network.HttpClient +import com.aurora.store.data.network.IProxyHttpClient import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers @@ -39,11 +39,13 @@ import javax.inject.Inject @HiltViewModel @SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253 -class TopChartViewModel @Inject constructor(@ApplicationContext private val context: Context) : - ViewModel() { +class TopChartViewModel @Inject constructor( + @ApplicationContext private val context: Context, + private val httpClient: IProxyHttpClient +): ViewModel() { private val webTopChartsHelper: TopChartsContract = WebTopChartsHelper() - .using(HttpClient.getPreferredClient(context)) + .using(httpClient) private var stash: TopChartStash = mutableMapOf()