HelperModule: Switch to singleton components for helper classes
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<NotificationManager>()!!
|
||||
private val purchaseHelper: PurchaseHelper
|
||||
get() = PurchaseHelper(authProvider.authData!!).using(httpClient)
|
||||
|
||||
private val NOTIFICATION_ID = 200
|
||||
|
||||
|
||||
@@ -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<Update> {
|
||||
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)
|
||||
|
||||
129
app/src/main/java/com/aurora/store/module/HelperModule.kt
Normal file
129
app/src/main/java/com/aurora/store/module/HelperModule.kt
Normal file
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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) }
|
||||
|
||||
|
||||
@@ -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<StreamCluster> = MutableLiveData()
|
||||
var streamCluster: StreamCluster = StreamCluster()
|
||||
|
||||
|
||||
@@ -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<StreamCluster> = MutableLiveData()
|
||||
|
||||
private lateinit var streamCluster: StreamCluster
|
||||
|
||||
@@ -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(),
|
||||
|
||||
@@ -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<String, App> = mutableMapOf()
|
||||
private val _app = MutableSharedFlow<App>()
|
||||
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) {
|
||||
|
||||
@@ -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<ViewState> = MutableLiveData()
|
||||
private val stash: AppStreamStash = mutableMapOf()
|
||||
|
||||
|
||||
@@ -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<String, List<App>>()
|
||||
private val _dependentApps = MutableSharedFlow<List<App>>()
|
||||
val dependentApps = _dependentApps.asSharedFlow()
|
||||
|
||||
@@ -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<ViewState> = MutableLiveData()
|
||||
var devStream:DevStream = DevStream()
|
||||
var streamBundle: StreamBundle = StreamBundle()
|
||||
|
||||
@@ -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<ViewState> = MutableLiveData()
|
||||
|
||||
private var stash: HomeStash = mutableMapOf()
|
||||
|
||||
@@ -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<ReviewCluster> = MutableLiveData()
|
||||
|
||||
private lateinit var reviewsCluster: ReviewCluster
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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<List<SearchSuggestEntry>>(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) {
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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<ViewState> = MutableLiveData()
|
||||
|
||||
private var stash: MutableMap<String, StreamBundle> = mutableMapOf()
|
||||
|
||||
@@ -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<ViewState> = MutableLiveData()
|
||||
|
||||
Reference in New Issue
Block a user