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 androidx.core.content.getSystemService
|
||||||
import com.aurora.extensions.isVAndAbove
|
import com.aurora.extensions.isVAndAbove
|
||||||
import com.aurora.gplayapi.helpers.AppDetailsHelper
|
import com.aurora.gplayapi.helpers.AppDetailsHelper
|
||||||
import com.aurora.gplayapi.network.IHttpClient
|
|
||||||
import com.aurora.store.AuroraApp
|
import com.aurora.store.AuroraApp
|
||||||
import com.aurora.store.data.helper.DownloadHelper
|
import com.aurora.store.data.helper.DownloadHelper
|
||||||
import com.aurora.store.data.providers.AccountProvider
|
import com.aurora.store.data.providers.AccountProvider
|
||||||
import com.aurora.store.data.providers.AuthProvider
|
|
||||||
import com.aurora.store.util.NotificationUtil
|
import com.aurora.store.util.NotificationUtil
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
@@ -29,10 +27,7 @@ class UnarchivePackageReceiver: BroadcastReceiver() {
|
|||||||
private val TAG = UnarchivePackageReceiver::class.java.simpleName
|
private val TAG = UnarchivePackageReceiver::class.java.simpleName
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var httpClient: IHttpClient
|
lateinit var appDetailsHelper: AppDetailsHelper
|
||||||
|
|
||||||
@Inject
|
|
||||||
lateinit var authProvider: AuthProvider
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var downloadHelper: DownloadHelper
|
lateinit var downloadHelper: DownloadHelper
|
||||||
@@ -54,10 +49,7 @@ class UnarchivePackageReceiver: BroadcastReceiver() {
|
|||||||
return@launch
|
return@launch
|
||||||
}
|
}
|
||||||
|
|
||||||
val app = AppDetailsHelper(authProvider.authData!!)
|
val app = appDetailsHelper.getAppByPackageName(packageName)
|
||||||
.using(httpClient)
|
|
||||||
.getAppByPackageName(packageName)
|
|
||||||
|
|
||||||
downloadHelper.enqueueApp(app)
|
downloadHelper.enqueueApp(app)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ class DownloadWorker @AssistedInject constructor(
|
|||||||
private val appInstaller: AppInstaller,
|
private val appInstaller: AppInstaller,
|
||||||
private val authProvider: AuthProvider,
|
private val authProvider: AuthProvider,
|
||||||
private val httpClient: IHttpClient,
|
private val httpClient: IHttpClient,
|
||||||
|
private val purchaseHelper: PurchaseHelper,
|
||||||
@Assisted private val appContext: Context,
|
@Assisted private val appContext: Context,
|
||||||
@Assisted workerParams: WorkerParameters
|
@Assisted workerParams: WorkerParameters
|
||||||
) : AuthWorker(authProvider, appContext, workerParams) {
|
) : AuthWorker(authProvider, appContext, workerParams) {
|
||||||
@@ -69,8 +70,6 @@ class DownloadWorker @AssistedInject constructor(
|
|||||||
private lateinit var icon: Bitmap
|
private lateinit var icon: Bitmap
|
||||||
|
|
||||||
private val notificationManager = appContext.getSystemService<NotificationManager>()!!
|
private val notificationManager = appContext.getSystemService<NotificationManager>()!!
|
||||||
private val purchaseHelper: PurchaseHelper
|
|
||||||
get() = PurchaseHelper(authProvider.authData!!).using(httpClient)
|
|
||||||
|
|
||||||
private val NOTIFICATION_ID = 200
|
private val NOTIFICATION_ID = 200
|
||||||
|
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ class UpdateWorker @AssistedInject constructor(
|
|||||||
private val updateDao: UpdateDao,
|
private val updateDao: UpdateDao,
|
||||||
private val downloadHelper: DownloadHelper,
|
private val downloadHelper: DownloadHelper,
|
||||||
private val authProvider: AuthProvider,
|
private val authProvider: AuthProvider,
|
||||||
|
private val appDetailsHelper: AppDetailsHelper,
|
||||||
@Assisted private val appContext: Context,
|
@Assisted private val appContext: Context,
|
||||||
@Assisted workerParams: WorkerParameters
|
@Assisted workerParams: WorkerParameters
|
||||||
) : AuthWorker(authProvider, appContext, workerParams) {
|
) : AuthWorker(authProvider, appContext, workerParams) {
|
||||||
@@ -147,9 +148,6 @@ class UpdateWorker @AssistedInject constructor(
|
|||||||
private suspend fun checkUpdates(): List<Update> {
|
private suspend fun checkUpdates(): List<Update> {
|
||||||
return withContext(Dispatchers.IO) {
|
return withContext(Dispatchers.IO) {
|
||||||
val packageInfoMap = PackageUtil.getPackageInfoMap(appContext)
|
val packageInfoMap = PackageUtil.getPackageInfoMap(appContext)
|
||||||
val appDetailsHelper = AppDetailsHelper(authProvider.authData!!)
|
|
||||||
.using(httpClient)
|
|
||||||
|
|
||||||
val updates = packageInfoMap.keys.let { packages ->
|
val updates = packageInfoMap.keys.let { packages ->
|
||||||
val filteredPackages = packages.filter { !blacklistProvider.isBlacklisted(it) }
|
val filteredPackages = packages.filter { !blacklistProvider.isBlacklisted(it) }
|
||||||
appDetailsHelper.getAppByPackageName(filteredPackages)
|
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 androidx.lifecycle.viewModelScope
|
||||||
import com.aurora.gplayapi.data.models.App
|
import com.aurora.gplayapi.data.models.App
|
||||||
import com.aurora.gplayapi.helpers.AppDetailsHelper
|
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.data.providers.BlacklistProvider
|
||||||
import com.aurora.store.util.PackageUtil
|
import com.aurora.store.util.PackageUtil
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
@@ -40,8 +38,7 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class InstalledViewModel @Inject constructor(
|
class InstalledViewModel @Inject constructor(
|
||||||
private val authProvider: AuthProvider,
|
private val appDetailsHelper: AppDetailsHelper,
|
||||||
private val httpClient: IHttpClient,
|
|
||||||
private val blacklistProvider: BlacklistProvider,
|
private val blacklistProvider: BlacklistProvider,
|
||||||
@ApplicationContext private val context: Context
|
@ApplicationContext private val context: Context
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
@@ -58,9 +55,6 @@ class InstalledViewModel @Inject constructor(
|
|||||||
fun fetchApps() {
|
fun fetchApps() {
|
||||||
viewModelScope.launch(Dispatchers.IO) {
|
viewModelScope.launch(Dispatchers.IO) {
|
||||||
try {
|
try {
|
||||||
val appDetailsHelper = AppDetailsHelper(authProvider.authData!!)
|
|
||||||
.using(httpClient)
|
|
||||||
|
|
||||||
PackageUtil.getPackageInfoMap(context).keys.let { packages ->
|
PackageUtil.getPackageInfoMap(context).keys.let { packages ->
|
||||||
val filtersPackages = packages.filter { !blacklistProvider.isBlacklisted(it) }
|
val filtersPackages = packages.filter { !blacklistProvider.isBlacklisted(it) }
|
||||||
|
|
||||||
|
|||||||
@@ -19,17 +19,13 @@
|
|||||||
|
|
||||||
package com.aurora.store.viewmodel.browse
|
package com.aurora.store.viewmodel.browse
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.aurora.gplayapi.data.models.StreamCluster
|
import com.aurora.gplayapi.data.models.StreamCluster
|
||||||
import com.aurora.gplayapi.helpers.ExpandedBrowseHelper
|
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.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.supervisorScope
|
import kotlinx.coroutines.supervisorScope
|
||||||
@@ -37,16 +33,11 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class ExpandedStreamBrowseViewModel @Inject constructor(
|
class ExpandedStreamBrowseViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
private val streamHelper: ExpandedBrowseHelper
|
||||||
private val authProvider: AuthProvider,
|
|
||||||
private val httpClient: IHttpClient
|
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = ExpandedStreamBrowseViewModel::class.java.simpleName
|
private val TAG = ExpandedStreamBrowseViewModel::class.java.simpleName
|
||||||
|
|
||||||
private val streamHelper: ExpandedBrowseHelper = ExpandedBrowseHelper(authProvider.authData!!)
|
|
||||||
.using(httpClient)
|
|
||||||
|
|
||||||
val liveData: MutableLiveData<StreamCluster> = MutableLiveData()
|
val liveData: MutableLiveData<StreamCluster> = MutableLiveData()
|
||||||
var streamCluster: StreamCluster = StreamCluster()
|
var streamCluster: StreamCluster = StreamCluster()
|
||||||
|
|
||||||
|
|||||||
@@ -19,18 +19,13 @@
|
|||||||
|
|
||||||
package com.aurora.store.viewmodel.browse
|
package com.aurora.store.viewmodel.browse
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.aurora.gplayapi.data.models.StreamCluster
|
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.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.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.supervisorScope
|
import kotlinx.coroutines.supervisorScope
|
||||||
@@ -38,16 +33,11 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class StreamBrowseViewModel @Inject constructor(
|
class StreamBrowseViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
private val streamHelper: WebStreamHelper
|
||||||
private val authProvider: AuthProvider,
|
|
||||||
private val httpClient: IHttpClient
|
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = StreamBrowseViewModel::class.java.simpleName
|
private val TAG = StreamBrowseViewModel::class.java.simpleName
|
||||||
|
|
||||||
private val streamHelper: StreamContract = WebStreamHelper()
|
|
||||||
.using(httpClient)
|
|
||||||
|
|
||||||
val liveData: MutableLiveData<StreamCluster> = MutableLiveData()
|
val liveData: MutableLiveData<StreamCluster> = MutableLiveData()
|
||||||
|
|
||||||
private lateinit var streamCluster: StreamCluster
|
private lateinit var streamCluster: StreamCluster
|
||||||
|
|||||||
@@ -19,7 +19,6 @@
|
|||||||
|
|
||||||
package com.aurora.store.viewmodel.category
|
package com.aurora.store.viewmodel.category
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
@@ -27,26 +26,19 @@ import androidx.lifecycle.viewModelScope
|
|||||||
import com.aurora.gplayapi.data.models.Category
|
import com.aurora.gplayapi.data.models.Category
|
||||||
import com.aurora.gplayapi.helpers.CategoryHelper
|
import com.aurora.gplayapi.helpers.CategoryHelper
|
||||||
import com.aurora.gplayapi.helpers.contracts.CategoryContract
|
import com.aurora.gplayapi.helpers.contracts.CategoryContract
|
||||||
import com.aurora.gplayapi.network.IHttpClient
|
|
||||||
import com.aurora.store.CategoryStash
|
import com.aurora.store.CategoryStash
|
||||||
import com.aurora.store.data.model.ViewState
|
import com.aurora.store.data.model.ViewState
|
||||||
import com.aurora.store.data.providers.AuthProvider
|
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class CategoryViewModel @Inject constructor(
|
class CategoryViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
private val categoryHelper: CategoryHelper
|
||||||
private val authProvider: AuthProvider,
|
|
||||||
private val httpClient: IHttpClient
|
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
private val TAG = CategoryViewModel::class.java.simpleName
|
|
||||||
|
|
||||||
private val categoryHelper: CategoryHelper = CategoryHelper(authProvider.authData!!)
|
private val TAG = CategoryViewModel::class.java.simpleName
|
||||||
.using(httpClient)
|
|
||||||
|
|
||||||
private var stash: CategoryStash = mutableMapOf(
|
private var stash: CategoryStash = mutableMapOf(
|
||||||
Category.Type.APPLICATION to emptyList(),
|
Category.Type.APPLICATION to emptyList(),
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.aurora.store.viewmodel.details
|
package com.aurora.store.viewmodel.details
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
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.helper.DownloadHelper
|
||||||
import com.aurora.store.data.model.ExodusReport
|
import com.aurora.store.data.model.ExodusReport
|
||||||
import com.aurora.store.data.model.Report
|
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.Favourite
|
||||||
import com.aurora.store.data.room.favourite.FavouriteDao
|
import com.aurora.store.data.room.favourite.FavouriteDao
|
||||||
import com.google.gson.GsonBuilder
|
import com.google.gson.GsonBuilder
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
@@ -33,9 +30,10 @@ import com.aurora.gplayapi.data.models.datasafety.Report as DataSafetyReport
|
|||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class AppDetailsViewModel @Inject constructor(
|
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 downloadHelper: DownloadHelper,
|
||||||
private val authProvider: AuthProvider,
|
|
||||||
private val favouriteDao: FavouriteDao,
|
private val favouriteDao: FavouriteDao,
|
||||||
private val httpClient: IHttpClient
|
private val httpClient: IHttpClient
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
@@ -45,9 +43,6 @@ class AppDetailsViewModel @Inject constructor(
|
|||||||
private val exodusBaseUrl = "https://reports.exodus-privacy.eu.org/api/search/"
|
private val exodusBaseUrl = "https://reports.exodus-privacy.eu.org/api/search/"
|
||||||
private val exodusApiKey = "Token bbe6ebae4ad45a9cbacb17d69739799b8df2c7ae"
|
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 appStash: MutableMap<String, App> = mutableMapOf()
|
||||||
private val _app = MutableSharedFlow<App>()
|
private val _app = MutableSharedFlow<App>()
|
||||||
val app = _app.asSharedFlow()
|
val app = _app.asSharedFlow()
|
||||||
@@ -113,9 +108,7 @@ class AppDetailsViewModel @Inject constructor(
|
|||||||
viewModelScope.launch(Dispatchers.IO) {
|
viewModelScope.launch(Dispatchers.IO) {
|
||||||
try {
|
try {
|
||||||
val report = dataSafetyReportStash.getOrPut(packageName) {
|
val report = dataSafetyReportStash.getOrPut(packageName) {
|
||||||
WebDataSafetyHelper()
|
webDataSafetyHelper.fetch(packageName)
|
||||||
.using(httpClient)
|
|
||||||
.fetch(packageName)
|
|
||||||
}
|
}
|
||||||
_dataSafetyReport.emit(report)
|
_dataSafetyReport.emit(report)
|
||||||
} catch (exception: Exception) {
|
} catch (exception: Exception) {
|
||||||
|
|||||||
@@ -19,7 +19,6 @@
|
|||||||
|
|
||||||
package com.aurora.store.viewmodel.details
|
package com.aurora.store.viewmodel.details
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
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.AppDetailsHelper
|
||||||
import com.aurora.gplayapi.helpers.StreamHelper
|
import com.aurora.gplayapi.helpers.StreamHelper
|
||||||
import com.aurora.gplayapi.helpers.contracts.StreamContract
|
import com.aurora.gplayapi.helpers.contracts.StreamContract
|
||||||
import com.aurora.gplayapi.network.IHttpClient
|
|
||||||
import com.aurora.store.AppStreamStash
|
import com.aurora.store.AppStreamStash
|
||||||
import com.aurora.store.data.model.ViewState
|
import com.aurora.store.data.model.ViewState
|
||||||
import com.aurora.store.data.providers.AuthProvider
|
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.supervisorScope
|
import kotlinx.coroutines.supervisorScope
|
||||||
@@ -42,18 +38,12 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class DetailsClusterViewModel @Inject constructor(
|
class DetailsClusterViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
private val appDetailsHelper: AppDetailsHelper,
|
||||||
authProvider: AuthProvider,
|
private val streamHelper: StreamHelper
|
||||||
private val httpClient: IHttpClient
|
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = DetailsClusterViewModel::class.java.simpleName
|
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()
|
val liveData: MutableLiveData<ViewState> = MutableLiveData()
|
||||||
private val stash: AppStreamStash = mutableMapOf()
|
private val stash: AppStreamStash = mutableMapOf()
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,11 @@
|
|||||||
package com.aurora.store.viewmodel.details
|
package com.aurora.store.viewmodel.details
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.aurora.gplayapi.data.models.App
|
import com.aurora.gplayapi.data.models.App
|
||||||
import com.aurora.gplayapi.helpers.AppDetailsHelper
|
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.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||||
import kotlinx.coroutines.flow.asSharedFlow
|
import kotlinx.coroutines.flow.asSharedFlow
|
||||||
@@ -18,16 +14,11 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class DetailsMoreViewModel @Inject constructor(
|
class DetailsMoreViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
private val appDetailsHelper: AppDetailsHelper
|
||||||
private val authProvider: AuthProvider,
|
|
||||||
private val httpClient: IHttpClient
|
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = DetailsMoreViewModel::class.java.simpleName
|
private val TAG = DetailsMoreViewModel::class.java.simpleName
|
||||||
|
|
||||||
private val appDetailsHelper = AppDetailsHelper(authProvider.authData!!)
|
|
||||||
.using(httpClient)
|
|
||||||
|
|
||||||
private val dependantAppsStash = mutableMapOf<String, List<App>>()
|
private val dependantAppsStash = mutableMapOf<String, List<App>>()
|
||||||
private val _dependentApps = MutableSharedFlow<List<App>>()
|
private val _dependentApps = MutableSharedFlow<List<App>>()
|
||||||
val dependentApps = _dependentApps.asSharedFlow()
|
val dependentApps = _dependentApps.asSharedFlow()
|
||||||
|
|||||||
@@ -19,7 +19,6 @@
|
|||||||
|
|
||||||
package com.aurora.store.viewmodel.details
|
package com.aurora.store.viewmodel.details
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
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.AppDetailsHelper
|
||||||
import com.aurora.gplayapi.helpers.StreamHelper
|
import com.aurora.gplayapi.helpers.StreamHelper
|
||||||
import com.aurora.gplayapi.helpers.contracts.StreamContract
|
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.model.ViewState
|
||||||
import com.aurora.store.data.providers.AuthProvider
|
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.supervisorScope
|
import kotlinx.coroutines.supervisorScope
|
||||||
@@ -42,17 +38,12 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class DevProfileViewModel @Inject constructor(
|
class DevProfileViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
private val appDetailsHelper: AppDetailsHelper,
|
||||||
private val authProvider: AuthProvider,
|
private val streamHelper: StreamHelper
|
||||||
private val httpClient: IHttpClient
|
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = DevProfileViewModel::class.java.simpleName
|
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()
|
val liveData: MutableLiveData<ViewState> = MutableLiveData()
|
||||||
var devStream:DevStream = DevStream()
|
var devStream:DevStream = DevStream()
|
||||||
var streamBundle: StreamBundle = StreamBundle()
|
var streamBundle: StreamBundle = StreamBundle()
|
||||||
|
|||||||
@@ -19,7 +19,6 @@
|
|||||||
|
|
||||||
package com.aurora.store.viewmodel.homestream
|
package com.aurora.store.viewmodel.homestream
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
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.data.models.StreamCluster
|
||||||
import com.aurora.gplayapi.helpers.contracts.StreamContract
|
import com.aurora.gplayapi.helpers.contracts.StreamContract
|
||||||
import com.aurora.gplayapi.helpers.web.WebStreamHelper
|
import com.aurora.gplayapi.helpers.web.WebStreamHelper
|
||||||
import com.aurora.gplayapi.network.IHttpClient
|
|
||||||
import com.aurora.store.HomeStash
|
import com.aurora.store.HomeStash
|
||||||
import com.aurora.store.data.model.ViewState
|
import com.aurora.store.data.model.ViewState
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.supervisorScope
|
import kotlinx.coroutines.supervisorScope
|
||||||
@@ -40,15 +37,11 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class StreamViewModel @Inject constructor(
|
class StreamViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
private val webStreamHelper: WebStreamHelper
|
||||||
private val httpClient: IHttpClient
|
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = StreamViewModel::class.java.simpleName
|
private val TAG = StreamViewModel::class.java.simpleName
|
||||||
|
|
||||||
private var webStreamHelper = WebStreamHelper()
|
|
||||||
.using(httpClient)
|
|
||||||
|
|
||||||
val liveData: MutableLiveData<ViewState> = MutableLiveData()
|
val liveData: MutableLiveData<ViewState> = MutableLiveData()
|
||||||
|
|
||||||
private var stash: HomeStash = mutableMapOf()
|
private var stash: HomeStash = mutableMapOf()
|
||||||
|
|||||||
@@ -19,17 +19,13 @@
|
|||||||
|
|
||||||
package com.aurora.store.viewmodel.review
|
package com.aurora.store.viewmodel.review
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.aurora.gplayapi.data.models.Review
|
import com.aurora.gplayapi.data.models.Review
|
||||||
import com.aurora.gplayapi.data.models.ReviewCluster
|
import com.aurora.gplayapi.data.models.ReviewCluster
|
||||||
import com.aurora.gplayapi.helpers.ReviewsHelper
|
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.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.supervisorScope
|
import kotlinx.coroutines.supervisorScope
|
||||||
@@ -37,14 +33,9 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class ReviewViewModel @Inject constructor(
|
class ReviewViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
private val reviewsHelper: ReviewsHelper
|
||||||
private val authProvider: AuthProvider,
|
|
||||||
private val httpClient: IHttpClient
|
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
var reviewsHelper: ReviewsHelper = ReviewsHelper(authProvider.authData!!)
|
|
||||||
.using(httpClient)
|
|
||||||
|
|
||||||
val liveData: MutableLiveData<ReviewCluster> = MutableLiveData()
|
val liveData: MutableLiveData<ReviewCluster> = MutableLiveData()
|
||||||
|
|
||||||
private lateinit var reviewsCluster: ReviewCluster
|
private lateinit var reviewsCluster: ReviewCluster
|
||||||
|
|||||||
@@ -19,7 +19,6 @@
|
|||||||
|
|
||||||
package com.aurora.store.viewmodel.search
|
package com.aurora.store.viewmodel.search
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
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.SearchHelper
|
||||||
import com.aurora.gplayapi.helpers.contracts.SearchContract
|
import com.aurora.gplayapi.helpers.contracts.SearchContract
|
||||||
import com.aurora.gplayapi.helpers.web.WebSearchHelper
|
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.AuthProvider
|
||||||
import com.aurora.store.data.providers.FilterProvider
|
import com.aurora.store.data.providers.FilterProvider
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.supervisorScope
|
import kotlinx.coroutines.supervisorScope
|
||||||
@@ -42,9 +39,9 @@ import javax.inject.Inject
|
|||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class SearchResultViewModel @Inject constructor(
|
class SearchResultViewModel @Inject constructor(
|
||||||
val filterProvider: FilterProvider,
|
val filterProvider: FilterProvider,
|
||||||
@ApplicationContext private val context: Context,
|
authProvider: AuthProvider,
|
||||||
private val authProvider: AuthProvider,
|
searchHelper: SearchHelper,
|
||||||
private val httpClient: IHttpClient
|
webSearchHelper: WebSearchHelper
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = SearchResultViewModel::class.java.simpleName
|
private val TAG = SearchResultViewModel::class.java.simpleName
|
||||||
@@ -54,9 +51,9 @@ class SearchResultViewModel @Inject constructor(
|
|||||||
private var searchBundle: SearchBundle = SearchBundle()
|
private var searchBundle: SearchBundle = SearchBundle()
|
||||||
|
|
||||||
private val helper: SearchContract = if (authProvider.isAnonymous) {
|
private val helper: SearchContract = if (authProvider.isAnonymous) {
|
||||||
WebSearchHelper().using(httpClient)
|
webSearchHelper
|
||||||
} else {
|
} else {
|
||||||
SearchHelper(authProvider.authData!!).using(httpClient)
|
searchHelper
|
||||||
}
|
}
|
||||||
|
|
||||||
fun observeSearchResults(query: String) {
|
fun observeSearchResults(query: String) {
|
||||||
|
|||||||
@@ -19,17 +19,14 @@
|
|||||||
|
|
||||||
package com.aurora.store.viewmodel.search
|
package com.aurora.store.viewmodel.search
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.aurora.gplayapi.SearchSuggestEntry
|
import com.aurora.gplayapi.SearchSuggestEntry
|
||||||
import com.aurora.gplayapi.helpers.SearchHelper
|
import com.aurora.gplayapi.helpers.SearchHelper
|
||||||
import com.aurora.gplayapi.helpers.contracts.SearchContract
|
import com.aurora.gplayapi.helpers.contracts.SearchContract
|
||||||
import com.aurora.gplayapi.helpers.web.WebSearchHelper
|
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.AuthProvider
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
@@ -38,18 +35,18 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class SearchSuggestionViewModel @Inject constructor(
|
class SearchSuggestionViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
authProvider: AuthProvider,
|
||||||
private val authProvider: AuthProvider,
|
searchHelper: SearchHelper,
|
||||||
private val httpClient: IHttpClient
|
webSearchHelper: WebSearchHelper
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val _searchSuggestions = MutableStateFlow<List<SearchSuggestEntry>>(emptyList())
|
private val _searchSuggestions = MutableStateFlow<List<SearchSuggestEntry>>(emptyList())
|
||||||
val searchSuggestions = _searchSuggestions.asStateFlow()
|
val searchSuggestions = _searchSuggestions.asStateFlow()
|
||||||
|
|
||||||
private val helper: SearchContract = if (authProvider.isAnonymous) {
|
private val helper: SearchContract = if (authProvider.isAnonymous) {
|
||||||
WebSearchHelper().using(httpClient)
|
webSearchHelper
|
||||||
} else {
|
} else {
|
||||||
SearchHelper(authProvider.authData!!).using(httpClient)
|
searchHelper
|
||||||
}
|
}
|
||||||
|
|
||||||
fun observeStreamBundles(query: String) {
|
fun observeStreamBundles(query: String) {
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import com.aurora.gplayapi.helpers.PurchaseHelper
|
|||||||
import com.aurora.store.AuroraApp
|
import com.aurora.store.AuroraApp
|
||||||
import com.aurora.store.data.event.BusEvent
|
import com.aurora.store.data.event.BusEvent
|
||||||
import com.aurora.store.data.model.MinimalApp
|
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.room.download.Download
|
||||||
import com.aurora.store.data.work.ExportWorker
|
import com.aurora.store.data.work.ExportWorker
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
@@ -22,7 +21,7 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class SheetsViewModel @Inject constructor(
|
class SheetsViewModel @Inject constructor(
|
||||||
private val authProvider: AuthProvider
|
private val purchaseHelper: PurchaseHelper
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = SheetsViewModel::class.java.simpleName
|
private val TAG = SheetsViewModel::class.java.simpleName
|
||||||
@@ -33,7 +32,6 @@ class SheetsViewModel @Inject constructor(
|
|||||||
fun purchase(app: App, customVersion: Int) {
|
fun purchase(app: App, customVersion: Int) {
|
||||||
viewModelScope.launch(Dispatchers.IO) {
|
viewModelScope.launch(Dispatchers.IO) {
|
||||||
try {
|
try {
|
||||||
val purchaseHelper = PurchaseHelper(authProvider.authData!!)
|
|
||||||
val files = purchaseHelper.purchase(app.packageName, customVersion, app.offerType)
|
val files = purchaseHelper.purchase(app.packageName, customVersion, app.offerType)
|
||||||
if (files.isNotEmpty()) {
|
if (files.isNotEmpty()) {
|
||||||
AuroraApp.events.send(
|
AuroraApp.events.send(
|
||||||
|
|||||||
@@ -19,7 +19,6 @@
|
|||||||
|
|
||||||
package com.aurora.store.viewmodel.subcategory
|
package com.aurora.store.viewmodel.subcategory
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
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.CategoryStreamContract
|
||||||
import com.aurora.gplayapi.helpers.contracts.StreamContract
|
import com.aurora.gplayapi.helpers.contracts.StreamContract
|
||||||
import com.aurora.gplayapi.helpers.web.WebCategoryStreamHelper
|
import com.aurora.gplayapi.helpers.web.WebCategoryStreamHelper
|
||||||
import com.aurora.gplayapi.network.IHttpClient
|
|
||||||
import com.aurora.store.data.model.ViewState
|
import com.aurora.store.data.model.ViewState
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.supervisorScope
|
import kotlinx.coroutines.supervisorScope
|
||||||
@@ -40,15 +37,11 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class CategoryStreamViewModel @Inject constructor(
|
class CategoryStreamViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
private val webCategoryStreamHelper: WebCategoryStreamHelper
|
||||||
private val httpClient: IHttpClient
|
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = CategoryStreamViewModel::class.java.simpleName
|
private val TAG = CategoryStreamViewModel::class.java.simpleName
|
||||||
|
|
||||||
private var webCategoryStreamHelper = WebCategoryStreamHelper()
|
|
||||||
.using(httpClient)
|
|
||||||
|
|
||||||
val liveData: MutableLiveData<ViewState> = MutableLiveData()
|
val liveData: MutableLiveData<ViewState> = MutableLiveData()
|
||||||
|
|
||||||
private var stash: MutableMap<String, StreamBundle> = mutableMapOf()
|
private var stash: MutableMap<String, StreamBundle> = mutableMapOf()
|
||||||
|
|||||||
@@ -19,18 +19,15 @@
|
|||||||
|
|
||||||
package com.aurora.store.viewmodel.topchart
|
package com.aurora.store.viewmodel.topchart
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.aurora.gplayapi.data.models.StreamCluster
|
import com.aurora.gplayapi.data.models.StreamCluster
|
||||||
import com.aurora.gplayapi.helpers.contracts.TopChartsContract
|
import com.aurora.gplayapi.helpers.contracts.TopChartsContract
|
||||||
import com.aurora.gplayapi.helpers.web.WebTopChartsHelper
|
import com.aurora.gplayapi.helpers.web.WebTopChartsHelper
|
||||||
import com.aurora.gplayapi.network.IHttpClient
|
|
||||||
import com.aurora.store.TopChartStash
|
import com.aurora.store.TopChartStash
|
||||||
import com.aurora.store.data.model.ViewState
|
import com.aurora.store.data.model.ViewState
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.supervisorScope
|
import kotlinx.coroutines.supervisorScope
|
||||||
@@ -38,13 +35,9 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class TopChartViewModel @Inject constructor(
|
class TopChartViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
private val webTopChartsHelper: WebTopChartsHelper
|
||||||
private val httpClient: IHttpClient
|
|
||||||
): ViewModel() {
|
): ViewModel() {
|
||||||
|
|
||||||
private val webTopChartsHelper: TopChartsContract = WebTopChartsHelper()
|
|
||||||
.using(httpClient)
|
|
||||||
|
|
||||||
private var stash: TopChartStash = mutableMapOf()
|
private var stash: TopChartStash = mutableMapOf()
|
||||||
|
|
||||||
val liveData: MutableLiveData<ViewState> = MutableLiveData()
|
val liveData: MutableLiveData<ViewState> = MutableLiveData()
|
||||||
|
|||||||
Reference in New Issue
Block a user