diff --git a/app/src/main/java/com/aurora/store/data/receiver/UnarchivePackageReceiver.kt b/app/src/main/java/com/aurora/store/data/receiver/UnarchivePackageReceiver.kt index 5dca06a92..378a062e4 100644 --- a/app/src/main/java/com/aurora/store/data/receiver/UnarchivePackageReceiver.kt +++ b/app/src/main/java/com/aurora/store/data/receiver/UnarchivePackageReceiver.kt @@ -9,11 +9,9 @@ import android.util.Log import androidx.core.content.getSystemService import com.aurora.extensions.isVAndAbove import com.aurora.gplayapi.helpers.AppDetailsHelper -import com.aurora.gplayapi.network.IHttpClient import com.aurora.store.AuroraApp import com.aurora.store.data.helper.DownloadHelper import com.aurora.store.data.providers.AccountProvider -import com.aurora.store.data.providers.AuthProvider import com.aurora.store.util.NotificationUtil import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.Dispatchers @@ -29,10 +27,7 @@ class UnarchivePackageReceiver: BroadcastReceiver() { private val TAG = UnarchivePackageReceiver::class.java.simpleName @Inject - lateinit var httpClient: IHttpClient - - @Inject - lateinit var authProvider: AuthProvider + lateinit var appDetailsHelper: AppDetailsHelper @Inject lateinit var downloadHelper: DownloadHelper @@ -54,10 +49,7 @@ class UnarchivePackageReceiver: BroadcastReceiver() { return@launch } - val app = AppDetailsHelper(authProvider.authData!!) - .using(httpClient) - .getAppByPackageName(packageName) - + val app = appDetailsHelper.getAppByPackageName(packageName) downloadHelper.enqueueApp(app) } } 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 f18707e36..ee441b427 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 @@ -61,6 +61,7 @@ class DownloadWorker @AssistedInject constructor( private val appInstaller: AppInstaller, private val authProvider: AuthProvider, private val httpClient: IHttpClient, + private val purchaseHelper: PurchaseHelper, @Assisted private val appContext: Context, @Assisted workerParams: WorkerParameters ) : AuthWorker(authProvider, appContext, workerParams) { @@ -69,8 +70,6 @@ class DownloadWorker @AssistedInject constructor( private lateinit var icon: Bitmap private val notificationManager = appContext.getSystemService()!! - private val purchaseHelper: PurchaseHelper - get() = PurchaseHelper(authProvider.authData!!).using(httpClient) private val NOTIFICATION_ID = 200 diff --git a/app/src/main/java/com/aurora/store/data/work/UpdateWorker.kt b/app/src/main/java/com/aurora/store/data/work/UpdateWorker.kt index d6d0280a8..5cf8ff421 100644 --- a/app/src/main/java/com/aurora/store/data/work/UpdateWorker.kt +++ b/app/src/main/java/com/aurora/store/data/work/UpdateWorker.kt @@ -54,6 +54,7 @@ class UpdateWorker @AssistedInject constructor( private val updateDao: UpdateDao, private val downloadHelper: DownloadHelper, private val authProvider: AuthProvider, + private val appDetailsHelper: AppDetailsHelper, @Assisted private val appContext: Context, @Assisted workerParams: WorkerParameters ) : AuthWorker(authProvider, appContext, workerParams) { @@ -147,9 +148,6 @@ class UpdateWorker @AssistedInject constructor( private suspend fun checkUpdates(): List { return withContext(Dispatchers.IO) { val packageInfoMap = PackageUtil.getPackageInfoMap(appContext) - val appDetailsHelper = AppDetailsHelper(authProvider.authData!!) - .using(httpClient) - val updates = packageInfoMap.keys.let { packages -> val filteredPackages = packages.filter { !blacklistProvider.isBlacklisted(it) } appDetailsHelper.getAppByPackageName(filteredPackages) diff --git a/app/src/main/java/com/aurora/store/module/HelperModule.kt b/app/src/main/java/com/aurora/store/module/HelperModule.kt new file mode 100644 index 000000000..9b0ebc445 --- /dev/null +++ b/app/src/main/java/com/aurora/store/module/HelperModule.kt @@ -0,0 +1,129 @@ +package com.aurora.store.module + +import com.aurora.gplayapi.helpers.AppDetailsHelper +import com.aurora.gplayapi.helpers.CategoryHelper +import com.aurora.gplayapi.helpers.ExpandedBrowseHelper +import com.aurora.gplayapi.helpers.PurchaseHelper +import com.aurora.gplayapi.helpers.ReviewsHelper +import com.aurora.gplayapi.helpers.SearchHelper +import com.aurora.gplayapi.helpers.StreamHelper +import com.aurora.gplayapi.helpers.web.WebCategoryStreamHelper +import com.aurora.gplayapi.helpers.web.WebDataSafetyHelper +import com.aurora.gplayapi.helpers.web.WebSearchHelper +import com.aurora.gplayapi.helpers.web.WebStreamHelper +import com.aurora.gplayapi.helpers.web.WebTopChartsHelper +import com.aurora.gplayapi.network.IHttpClient +import com.aurora.store.data.providers.AuthProvider +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +/** + * Module to instantiate singleton components for different helpers from gplayapi library + */ +@Module +@InstallIn(SingletonComponent::class) +object HelperModule { + + @Singleton + @Provides + fun providesAppDetailsHelperInstance( + authProvider: AuthProvider, + httpClient: IHttpClient + ): AppDetailsHelper { + return AppDetailsHelper(authProvider.authData!!) + .using(httpClient) + } + + @Singleton + @Provides + fun providesStreamHelperInstance( + authProvider: AuthProvider, + httpClient: IHttpClient + ): StreamHelper { + return StreamHelper(authProvider.authData!!) + .using(httpClient) + } + + @Singleton + @Provides + fun providesExpandedBrowseHelperInstance( + authProvider: AuthProvider, + httpClient: IHttpClient + ): ExpandedBrowseHelper { + return ExpandedBrowseHelper(authProvider.authData!!) + .using(httpClient) + } + + @Singleton + @Provides + fun providesCategoryHelperInstance( + authProvider: AuthProvider, + httpClient: IHttpClient + ): CategoryHelper { + return CategoryHelper(authProvider.authData!!) + .using(httpClient) + } + + @Singleton + @Provides + fun providesReviewsHelperInstance( + authProvider: AuthProvider, + httpClient: IHttpClient + ): ReviewsHelper { + return ReviewsHelper(authProvider.authData!!) + .using(httpClient) + } + + @Singleton + @Provides + fun providesSearchHelperInstance( + authProvider: AuthProvider, + httpClient: IHttpClient + ): SearchHelper { + return SearchHelper(authProvider.authData!!) + .using(httpClient) + } + + @Singleton + @Provides + fun providesPurchaseHelperInstance( + authProvider: AuthProvider, + httpClient: IHttpClient + ): PurchaseHelper { + return PurchaseHelper(authProvider.authData!!) + .using(httpClient) + } + + @Singleton + @Provides + fun providesWebStreamHelperInstance(httpClient: IHttpClient): WebStreamHelper { + return WebStreamHelper().using(httpClient) + } + + @Singleton + @Provides + fun providesWebDataSafetyHelperInstance(httpClient: IHttpClient): WebDataSafetyHelper { + return WebDataSafetyHelper().using(httpClient) + } + + @Singleton + @Provides + fun providesWebSearchHelperInstance(httpClient: IHttpClient): WebSearchHelper { + return WebSearchHelper().using(httpClient) + } + + @Singleton + @Provides + fun providesWebCategoryStreamHelperInstance(httpClient: IHttpClient): WebCategoryStreamHelper { + return WebCategoryStreamHelper().using(httpClient) + } + + @Singleton + @Provides + fun providesWebTopChartsHelperInstance(httpClient: IHttpClient): WebTopChartsHelper { + return WebTopChartsHelper().using(httpClient) + } +} diff --git a/app/src/main/java/com/aurora/store/viewmodel/all/InstalledViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/all/InstalledViewModel.kt index a4fc4a561..b816803e3 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/all/InstalledViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/all/InstalledViewModel.kt @@ -25,8 +25,6 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.helpers.AppDetailsHelper -import com.aurora.gplayapi.network.IHttpClient -import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.providers.BlacklistProvider import com.aurora.store.util.PackageUtil import dagger.hilt.android.lifecycle.HiltViewModel @@ -40,8 +38,7 @@ import javax.inject.Inject @HiltViewModel class InstalledViewModel @Inject constructor( - private val authProvider: AuthProvider, - private val httpClient: IHttpClient, + private val appDetailsHelper: AppDetailsHelper, private val blacklistProvider: BlacklistProvider, @ApplicationContext private val context: Context ) : ViewModel() { @@ -58,9 +55,6 @@ class InstalledViewModel @Inject constructor( fun fetchApps() { viewModelScope.launch(Dispatchers.IO) { try { - val appDetailsHelper = AppDetailsHelper(authProvider.authData!!) - .using(httpClient) - PackageUtil.getPackageInfoMap(context).keys.let { packages -> val filtersPackages = packages.filter { !blacklistProvider.isBlacklisted(it) } 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 6d1b03b47..2df8f3cd0 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 @@ -19,17 +19,13 @@ package com.aurora.store.viewmodel.browse -import android.content.Context import android.util.Log import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.aurora.gplayapi.data.models.StreamCluster import com.aurora.gplayapi.helpers.ExpandedBrowseHelper -import com.aurora.gplayapi.network.IHttpClient -import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.supervisorScope @@ -37,16 +33,11 @@ import javax.inject.Inject @HiltViewModel class ExpandedStreamBrowseViewModel @Inject constructor( - @ApplicationContext private val context: Context, - private val authProvider: AuthProvider, - private val httpClient: IHttpClient + private val streamHelper: ExpandedBrowseHelper ) : ViewModel() { private val TAG = ExpandedStreamBrowseViewModel::class.java.simpleName - private val streamHelper: ExpandedBrowseHelper = ExpandedBrowseHelper(authProvider.authData!!) - .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 33ef574b4..6c5cc97c5 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 @@ -19,18 +19,13 @@ package com.aurora.store.viewmodel.browse -import android.content.Context import android.util.Log import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel 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.gplayapi.network.IHttpClient -import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.supervisorScope @@ -38,16 +33,11 @@ import javax.inject.Inject @HiltViewModel class StreamBrowseViewModel @Inject constructor( - @ApplicationContext private val context: Context, - private val authProvider: AuthProvider, - private val httpClient: IHttpClient + private val streamHelper: WebStreamHelper ) : ViewModel() { private val TAG = StreamBrowseViewModel::class.java.simpleName - private val streamHelper: StreamContract = WebStreamHelper() - .using(httpClient) - val liveData: MutableLiveData = MutableLiveData() private lateinit var streamCluster: StreamCluster 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 b3b3514ca..02797fe77 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 @@ -19,7 +19,6 @@ package com.aurora.store.viewmodel.category -import android.content.Context import android.util.Log import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel @@ -27,26 +26,19 @@ import androidx.lifecycle.viewModelScope import com.aurora.gplayapi.data.models.Category import com.aurora.gplayapi.helpers.CategoryHelper import com.aurora.gplayapi.helpers.contracts.CategoryContract -import com.aurora.gplayapi.network.IHttpClient import com.aurora.store.CategoryStash import com.aurora.store.data.model.ViewState -import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import javax.inject.Inject @HiltViewModel class CategoryViewModel @Inject constructor( - @ApplicationContext private val context: Context, - private val authProvider: AuthProvider, - private val httpClient: IHttpClient + private val categoryHelper: CategoryHelper ) : ViewModel() { - private val TAG = CategoryViewModel::class.java.simpleName - private val categoryHelper: CategoryHelper = CategoryHelper(authProvider.authData!!) - .using(httpClient) + private val TAG = CategoryViewModel::class.java.simpleName 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 2ea7e28cb..307d8995d 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 @@ -1,6 +1,5 @@ package com.aurora.store.viewmodel.details -import android.content.Context import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope @@ -14,12 +13,10 @@ import com.aurora.gplayapi.network.IHttpClient import com.aurora.store.data.helper.DownloadHelper import com.aurora.store.data.model.ExodusReport import com.aurora.store.data.model.Report -import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.room.favourite.Favourite import com.aurora.store.data.room.favourite.FavouriteDao import com.google.gson.GsonBuilder import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow @@ -33,9 +30,10 @@ import com.aurora.gplayapi.data.models.datasafety.Report as DataSafetyReport @HiltViewModel class AppDetailsViewModel @Inject constructor( - @ApplicationContext private val context: Context, + private val appDetailsHelper: AppDetailsHelper, + private val reviewsHelper: ReviewsHelper, + private val webDataSafetyHelper: WebDataSafetyHelper, private val downloadHelper: DownloadHelper, - private val authProvider: AuthProvider, private val favouriteDao: FavouriteDao, private val httpClient: IHttpClient ) : ViewModel() { @@ -45,9 +43,6 @@ class AppDetailsViewModel @Inject constructor( private val exodusBaseUrl = "https://reports.exodus-privacy.eu.org/api/search/" private val exodusApiKey = "Token bbe6ebae4ad45a9cbacb17d69739799b8df2c7ae" - private val appDetailsHelper = AppDetailsHelper(authProvider.authData!!).using(httpClient) - private val reviewsHelper = ReviewsHelper(authProvider.authData!!).using(httpClient) - private val appStash: MutableMap = mutableMapOf() private val _app = MutableSharedFlow() val app = _app.asSharedFlow() @@ -113,9 +108,7 @@ class AppDetailsViewModel @Inject constructor( viewModelScope.launch(Dispatchers.IO) { try { val report = dataSafetyReportStash.getOrPut(packageName) { - WebDataSafetyHelper() - .using(httpClient) - .fetch(packageName) + webDataSafetyHelper.fetch(packageName) } _dataSafetyReport.emit(report) } catch (exception: Exception) { 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 bd24e6dbc..f9d65505c 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 @@ -19,7 +19,6 @@ package com.aurora.store.viewmodel.details -import android.content.Context import android.util.Log import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel @@ -29,12 +28,9 @@ import com.aurora.gplayapi.data.models.StreamCluster import com.aurora.gplayapi.helpers.AppDetailsHelper import com.aurora.gplayapi.helpers.StreamHelper import com.aurora.gplayapi.helpers.contracts.StreamContract -import com.aurora.gplayapi.network.IHttpClient import com.aurora.store.AppStreamStash import com.aurora.store.data.model.ViewState -import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.supervisorScope @@ -42,18 +38,12 @@ import javax.inject.Inject @HiltViewModel class DetailsClusterViewModel @Inject constructor( - @ApplicationContext private val context: Context, - authProvider: AuthProvider, - private val httpClient: IHttpClient + private val appDetailsHelper: AppDetailsHelper, + private val streamHelper: StreamHelper ) : ViewModel() { private val TAG = DetailsClusterViewModel::class.java.simpleName - private var appDetailsHelper = AppDetailsHelper(authProvider.authData!!) - .using(httpClient) - private var streamHelper = StreamHelper(authProvider.authData!!) - - val liveData: MutableLiveData = MutableLiveData() private val stash: AppStreamStash = mutableMapOf() 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 57b68f480..603f822ca 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 @@ -1,15 +1,11 @@ package com.aurora.store.viewmodel.details -import android.content.Context import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.helpers.AppDetailsHelper -import com.aurora.gplayapi.network.IHttpClient -import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.asSharedFlow @@ -18,16 +14,11 @@ import javax.inject.Inject @HiltViewModel class DetailsMoreViewModel @Inject constructor( - @ApplicationContext private val context: Context, - private val authProvider: AuthProvider, - private val httpClient: IHttpClient + private val appDetailsHelper: AppDetailsHelper ) : ViewModel() { private val TAG = DetailsMoreViewModel::class.java.simpleName - private val appDetailsHelper = AppDetailsHelper(authProvider.authData!!) - .using(httpClient) - private val dependantAppsStash = mutableMapOf>() private val _dependentApps = MutableSharedFlow>() val dependentApps = _dependentApps.asSharedFlow() 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 a6d52bcb7..77bf00469 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 @@ -19,7 +19,6 @@ package com.aurora.store.viewmodel.details -import android.content.Context import android.util.Log import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel @@ -30,11 +29,8 @@ import com.aurora.gplayapi.data.models.details.DevStream import com.aurora.gplayapi.helpers.AppDetailsHelper import com.aurora.gplayapi.helpers.StreamHelper import com.aurora.gplayapi.helpers.contracts.StreamContract -import com.aurora.gplayapi.network.IHttpClient import com.aurora.store.data.model.ViewState -import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.supervisorScope @@ -42,17 +38,12 @@ import javax.inject.Inject @HiltViewModel class DevProfileViewModel @Inject constructor( - @ApplicationContext private val context: Context, - private val authProvider: AuthProvider, - private val httpClient: IHttpClient + private val appDetailsHelper: AppDetailsHelper, + private val streamHelper: StreamHelper ) : ViewModel() { private val TAG = DevProfileViewModel::class.java.simpleName - private var appDetailsHelper = AppDetailsHelper(authProvider.authData!!) - .using(httpClient) - private var streamHelper = StreamHelper(authProvider.authData!!) - val liveData: MutableLiveData = MutableLiveData() var devStream:DevStream = DevStream() var streamBundle: StreamBundle = StreamBundle() 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 c07cbf499..094a7d01b 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 @@ -19,7 +19,6 @@ package com.aurora.store.viewmodel.homestream -import android.content.Context import android.util.Log import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel @@ -28,11 +27,9 @@ import com.aurora.gplayapi.data.models.StreamBundle import com.aurora.gplayapi.data.models.StreamCluster import com.aurora.gplayapi.helpers.contracts.StreamContract import com.aurora.gplayapi.helpers.web.WebStreamHelper -import com.aurora.gplayapi.network.IHttpClient import com.aurora.store.HomeStash import com.aurora.store.data.model.ViewState import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.supervisorScope @@ -40,15 +37,11 @@ import javax.inject.Inject @HiltViewModel class StreamViewModel @Inject constructor( - @ApplicationContext private val context: Context, - private val httpClient: IHttpClient + private val webStreamHelper: WebStreamHelper ) : ViewModel() { private val TAG = StreamViewModel::class.java.simpleName - private var webStreamHelper = WebStreamHelper() - .using(httpClient) - val liveData: MutableLiveData = MutableLiveData() private var stash: HomeStash = mutableMapOf() 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 265478e32..12fc58b30 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 @@ -19,17 +19,13 @@ package com.aurora.store.viewmodel.review -import android.content.Context import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel 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.gplayapi.network.IHttpClient -import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.supervisorScope @@ -37,14 +33,9 @@ import javax.inject.Inject @HiltViewModel class ReviewViewModel @Inject constructor( - @ApplicationContext private val context: Context, - private val authProvider: AuthProvider, - private val httpClient: IHttpClient + private val reviewsHelper: ReviewsHelper ) : ViewModel() { - var reviewsHelper: ReviewsHelper = ReviewsHelper(authProvider.authData!!) - .using(httpClient) - val liveData: MutableLiveData = MutableLiveData() private lateinit var reviewsCluster: ReviewCluster 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 da350584b..cdce43762 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 @@ -19,7 +19,6 @@ package com.aurora.store.viewmodel.search -import android.content.Context import android.util.Log import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel @@ -29,11 +28,9 @@ 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.gplayapi.network.IHttpClient import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.providers.FilterProvider import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.supervisorScope @@ -42,9 +39,9 @@ import javax.inject.Inject @HiltViewModel class SearchResultViewModel @Inject constructor( val filterProvider: FilterProvider, - @ApplicationContext private val context: Context, - private val authProvider: AuthProvider, - private val httpClient: IHttpClient + authProvider: AuthProvider, + searchHelper: SearchHelper, + webSearchHelper: WebSearchHelper ) : ViewModel() { private val TAG = SearchResultViewModel::class.java.simpleName @@ -54,9 +51,9 @@ class SearchResultViewModel @Inject constructor( private var searchBundle: SearchBundle = SearchBundle() private val helper: SearchContract = if (authProvider.isAnonymous) { - WebSearchHelper().using(httpClient) + webSearchHelper } else { - SearchHelper(authProvider.authData!!).using(httpClient) + searchHelper } fun observeSearchResults(query: String) { 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 ee22d81b0..a7baac7cb 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 @@ -19,17 +19,14 @@ package com.aurora.store.viewmodel.search -import android.content.Context import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope 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.gplayapi.network.IHttpClient import com.aurora.store.data.providers.AuthProvider import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow @@ -38,18 +35,18 @@ import javax.inject.Inject @HiltViewModel class SearchSuggestionViewModel @Inject constructor( - @ApplicationContext private val context: Context, - private val authProvider: AuthProvider, - private val httpClient: IHttpClient + authProvider: AuthProvider, + searchHelper: SearchHelper, + webSearchHelper: WebSearchHelper ) : ViewModel() { private val _searchSuggestions = MutableStateFlow>(emptyList()) val searchSuggestions = _searchSuggestions.asStateFlow() private val helper: SearchContract = if (authProvider.isAnonymous) { - WebSearchHelper().using(httpClient) + webSearchHelper } else { - SearchHelper(authProvider.authData!!).using(httpClient) + searchHelper } fun observeStreamBundles(query: String) { diff --git a/app/src/main/java/com/aurora/store/viewmodel/sheets/SheetsViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/sheets/SheetsViewModel.kt index 2af659746..2cbc52fae 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/sheets/SheetsViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/sheets/SheetsViewModel.kt @@ -10,7 +10,6 @@ import com.aurora.gplayapi.helpers.PurchaseHelper import com.aurora.store.AuroraApp import com.aurora.store.data.event.BusEvent import com.aurora.store.data.model.MinimalApp -import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.room.download.Download import com.aurora.store.data.work.ExportWorker import dagger.hilt.android.lifecycle.HiltViewModel @@ -22,7 +21,7 @@ import javax.inject.Inject @HiltViewModel class SheetsViewModel @Inject constructor( - private val authProvider: AuthProvider + private val purchaseHelper: PurchaseHelper ) : ViewModel() { private val TAG = SheetsViewModel::class.java.simpleName @@ -33,7 +32,6 @@ class SheetsViewModel @Inject constructor( fun purchase(app: App, customVersion: Int) { viewModelScope.launch(Dispatchers.IO) { try { - val purchaseHelper = PurchaseHelper(authProvider.authData!!) val files = purchaseHelper.purchase(app.packageName, customVersion, app.offerType) if (files.isNotEmpty()) { AuroraApp.events.send( 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 6310cddf5..b8d08386e 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 @@ -19,7 +19,6 @@ package com.aurora.store.viewmodel.subcategory -import android.content.Context import android.util.Log import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel @@ -29,10 +28,8 @@ import com.aurora.gplayapi.data.models.StreamCluster import com.aurora.gplayapi.helpers.contracts.CategoryStreamContract import com.aurora.gplayapi.helpers.contracts.StreamContract import com.aurora.gplayapi.helpers.web.WebCategoryStreamHelper -import com.aurora.gplayapi.network.IHttpClient import com.aurora.store.data.model.ViewState import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.supervisorScope @@ -40,15 +37,11 @@ import javax.inject.Inject @HiltViewModel class CategoryStreamViewModel @Inject constructor( - @ApplicationContext private val context: Context, - private val httpClient: IHttpClient + private val webCategoryStreamHelper: WebCategoryStreamHelper ) : ViewModel() { private val TAG = CategoryStreamViewModel::class.java.simpleName - private var webCategoryStreamHelper = WebCategoryStreamHelper() - .using(httpClient) - val liveData: MutableLiveData = MutableLiveData() private var stash: MutableMap = mutableMapOf() 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 787e368bb..0ef5f1d70 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 @@ -19,18 +19,15 @@ package com.aurora.store.viewmodel.topchart -import android.content.Context import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.aurora.gplayapi.data.models.StreamCluster import com.aurora.gplayapi.helpers.contracts.TopChartsContract import com.aurora.gplayapi.helpers.web.WebTopChartsHelper -import com.aurora.gplayapi.network.IHttpClient import com.aurora.store.TopChartStash import com.aurora.store.data.model.ViewState import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.supervisorScope @@ -38,13 +35,9 @@ import javax.inject.Inject @HiltViewModel class TopChartViewModel @Inject constructor( - @ApplicationContext private val context: Context, - private val httpClient: IHttpClient + private val webTopChartsHelper: WebTopChartsHelper ): ViewModel() { - private val webTopChartsHelper: TopChartsContract = WebTopChartsHelper() - .using(httpClient) - private var stash: TopChartStash = mutableMapOf() val liveData: MutableLiveData = MutableLiveData()