HttpClient: Inject using hilt
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -24,17 +24,27 @@ import android.util.Log
|
|||||||
import com.aurora.store.data.model.ProxyInfo
|
import com.aurora.store.data.model.ProxyInfo
|
||||||
import com.aurora.store.util.Preferences
|
import com.aurora.store.util.Preferences
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
|
import dagger.Module
|
||||||
|
import dagger.Provides
|
||||||
|
import dagger.hilt.InstallIn
|
||||||
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
|
import dagger.hilt.components.SingletonComponent
|
||||||
|
import javax.inject.Singleton
|
||||||
|
|
||||||
|
@Module
|
||||||
|
@InstallIn(SingletonComponent::class)
|
||||||
object HttpClient {
|
object HttpClient {
|
||||||
|
|
||||||
private const val TAG = "HttpClient"
|
private const val TAG = "HttpClient"
|
||||||
|
|
||||||
fun getPreferredClient(context: Context): IProxyHttpClient {
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
fun getPreferredClient(@ApplicationContext context: Context, gson: Gson): IProxyHttpClient {
|
||||||
val proxyEnabled = Preferences.getBoolean(context, Preferences.PREFERENCE_PROXY_ENABLED)
|
val proxyEnabled = Preferences.getBoolean(context, Preferences.PREFERENCE_PROXY_ENABLED)
|
||||||
val proxyInfoString = Preferences.getString(context, Preferences.PREFERENCE_PROXY_INFO)
|
val proxyInfoString = Preferences.getString(context, Preferences.PREFERENCE_PROXY_INFO)
|
||||||
|
|
||||||
return if (proxyEnabled && proxyInfoString.isNotBlank() && proxyInfoString != "{}") {
|
return if (proxyEnabled && proxyInfoString.isNotBlank() && proxyInfoString != "{}") {
|
||||||
val proxyInfo = Gson().fromJson(proxyInfoString, ProxyInfo::class.java)
|
val proxyInfo = gson.fromJson(proxyInfoString, ProxyInfo::class.java)
|
||||||
|
|
||||||
if (proxyInfo != null) {
|
if (proxyInfo != null) {
|
||||||
OkHttpClient.setProxy(proxyInfo)
|
OkHttpClient.setProxy(proxyInfo)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import com.aurora.gplayapi.helpers.AuthValidator
|
|||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.data.model.AccountType
|
import com.aurora.store.data.model.AccountType
|
||||||
import com.aurora.store.data.model.Auth
|
import com.aurora.store.data.model.Auth
|
||||||
import com.aurora.store.data.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
import com.aurora.store.util.Preferences
|
import com.aurora.store.util.Preferences
|
||||||
import com.aurora.store.util.Preferences.PREFERENCE_AUTH_DATA
|
import com.aurora.store.util.Preferences.PREFERENCE_AUTH_DATA
|
||||||
import com.aurora.store.util.Preferences.PREFERENCE_DISPENSER_URLS
|
import com.aurora.store.util.Preferences.PREFERENCE_DISPENSER_URLS
|
||||||
@@ -47,7 +47,8 @@ import javax.inject.Singleton
|
|||||||
class AuthProvider @Inject constructor(
|
class AuthProvider @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
@ApplicationContext private val context: Context,
|
||||||
private val gson: Gson,
|
private val gson: Gson,
|
||||||
private val spoofProvider: SpoofProvider
|
private val spoofProvider: SpoofProvider,
|
||||||
|
private val httpClient: IProxyHttpClient
|
||||||
) {
|
) {
|
||||||
|
|
||||||
private val TAG = AuthProvider::class.java.simpleName
|
private val TAG = AuthProvider::class.java.simpleName
|
||||||
@@ -104,7 +105,7 @@ class AuthProvider @Inject constructor(
|
|||||||
return withContext(Dispatchers.IO) {
|
return withContext(Dispatchers.IO) {
|
||||||
try {
|
try {
|
||||||
AuthValidator(authData ?: return@withContext false)
|
AuthValidator(authData ?: return@withContext false)
|
||||||
.using(HttpClient.getPreferredClient(context))
|
.using(httpClient)
|
||||||
.isValid()
|
.isValid()
|
||||||
} catch (exception: Exception) {
|
} catch (exception: Exception) {
|
||||||
false
|
false
|
||||||
@@ -145,10 +146,7 @@ class AuthProvider @Inject constructor(
|
|||||||
private suspend fun buildAnonymousAuthData(): AuthData? {
|
private suspend fun buildAnonymousAuthData(): AuthData? {
|
||||||
return withContext(Dispatchers.IO) {
|
return withContext(Dispatchers.IO) {
|
||||||
try {
|
try {
|
||||||
val playResponse = HttpClient
|
val playResponse = httpClient.getAuth(dispenserURL!!)
|
||||||
.getPreferredClient(context)
|
|
||||||
.getAuth(dispenserURL!!)
|
|
||||||
|
|
||||||
val auth = gson.fromJson(String(playResponse.responseBytes), Auth::class.java)
|
val auth = gson.fromJson(String(playResponse.responseBytes), Auth::class.java)
|
||||||
return@withContext AuthHelper.build(
|
return@withContext AuthHelper.build(
|
||||||
email = auth.email,
|
email = auth.email,
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import com.aurora.store.data.model.DownloadInfo
|
|||||||
import com.aurora.store.data.model.DownloadStatus
|
import com.aurora.store.data.model.DownloadStatus
|
||||||
import com.aurora.store.data.model.ProxyInfo
|
import com.aurora.store.data.model.ProxyInfo
|
||||||
import com.aurora.store.data.model.Request
|
import com.aurora.store.data.model.Request
|
||||||
import com.aurora.store.data.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
import com.aurora.store.data.providers.AuthProvider
|
import com.aurora.store.data.providers.AuthProvider
|
||||||
import com.aurora.store.data.room.download.Download
|
import com.aurora.store.data.room.download.Download
|
||||||
import com.aurora.store.data.room.download.DownloadDao
|
import com.aurora.store.data.room.download.DownloadDao
|
||||||
@@ -67,6 +67,7 @@ class DownloadWorker @AssistedInject constructor(
|
|||||||
private val gson: Gson,
|
private val gson: Gson,
|
||||||
private val appInstaller: AppInstaller,
|
private val appInstaller: AppInstaller,
|
||||||
private val authProvider: AuthProvider,
|
private val authProvider: AuthProvider,
|
||||||
|
private val httpClient: IProxyHttpClient,
|
||||||
@Assisted private val appContext: Context,
|
@Assisted private val appContext: Context,
|
||||||
@Assisted workerParams: WorkerParameters
|
@Assisted workerParams: WorkerParameters
|
||||||
) : CoroutineWorker(appContext, workerParams) {
|
) : CoroutineWorker(appContext, workerParams) {
|
||||||
@@ -113,7 +114,7 @@ class DownloadWorker @AssistedInject constructor(
|
|||||||
|
|
||||||
// Purchase the app (free apps needs to be purchased too)
|
// Purchase the app (free apps needs to be purchased too)
|
||||||
purchaseHelper = PurchaseHelper(authProvider.authData!!)
|
purchaseHelper = PurchaseHelper(authProvider.authData!!)
|
||||||
.using(HttpClient.getPreferredClient(appContext))
|
.using(httpClient)
|
||||||
|
|
||||||
notificationManager =
|
notificationManager =
|
||||||
appContext.getSystemService(Service.NOTIFICATION_SERVICE) as NotificationManager
|
appContext.getSystemService(Service.NOTIFICATION_SERVICE) as NotificationManager
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import com.aurora.gplayapi.helpers.AppDetailsHelper
|
|||||||
import com.aurora.store.AuroraApp
|
import com.aurora.store.AuroraApp
|
||||||
import com.aurora.store.BuildConfig
|
import com.aurora.store.BuildConfig
|
||||||
import com.aurora.store.data.model.SelfUpdate
|
import com.aurora.store.data.model.SelfUpdate
|
||||||
import com.aurora.store.data.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
import com.aurora.store.data.providers.AuthProvider
|
import com.aurora.store.data.providers.AuthProvider
|
||||||
import com.aurora.store.data.providers.BlacklistProvider
|
import com.aurora.store.data.providers.BlacklistProvider
|
||||||
import com.aurora.store.data.room.update.Update
|
import com.aurora.store.data.room.update.Update
|
||||||
@@ -30,6 +30,7 @@ class AppUtil @Inject constructor(
|
|||||||
private val authProvider: AuthProvider,
|
private val authProvider: AuthProvider,
|
||||||
private val updateDao: UpdateDao,
|
private val updateDao: UpdateDao,
|
||||||
private val blacklistProvider: BlacklistProvider,
|
private val blacklistProvider: BlacklistProvider,
|
||||||
|
private val httpClient: IProxyHttpClient,
|
||||||
@ApplicationContext private val context: Context
|
@ApplicationContext private val context: Context
|
||||||
) {
|
) {
|
||||||
|
|
||||||
@@ -77,7 +78,7 @@ class AppUtil @Inject constructor(
|
|||||||
): List<App> {
|
): List<App> {
|
||||||
return withContext(Dispatchers.IO) {
|
return withContext(Dispatchers.IO) {
|
||||||
val appDetailsHelper = AppDetailsHelper(tmpAuthData?: authProvider.authData!!)
|
val appDetailsHelper = AppDetailsHelper(tmpAuthData?: authProvider.authData!!)
|
||||||
.using(HttpClient.getPreferredClient(context))
|
.using(httpClient)
|
||||||
|
|
||||||
(packageInfoMap ?: PackageUtil.getPackageInfoMap(context)).keys.let { packages ->
|
(packageInfoMap ?: PackageUtil.getPackageInfoMap(context)).keys.let { packages ->
|
||||||
val filtersPackages = packages.filter { !blacklistProvider.isBlacklisted(it) }
|
val filtersPackages = packages.filter { !blacklistProvider.isBlacklisted(it) }
|
||||||
@@ -103,8 +104,7 @@ class AppUtil @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
val response =
|
val response = httpClient.get(Constants.UPDATE_URL, mapOf())
|
||||||
HttpClient.getPreferredClient(context).get(Constants.UPDATE_URL, mapOf())
|
|
||||||
val selfUpdate =
|
val selfUpdate =
|
||||||
gson.fromJson(String(response.responseBytes), SelfUpdate::class.java)
|
gson.fromJson(String(response.responseBytes), SelfUpdate::class.java)
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import androidx.lifecycle.viewModelScope
|
|||||||
import com.aurora.extensions.isApp
|
import com.aurora.extensions.isApp
|
||||||
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.store.data.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
import com.aurora.store.data.providers.AuthProvider
|
import com.aurora.store.data.providers.AuthProvider
|
||||||
import com.aurora.store.data.providers.BlacklistProvider
|
import com.aurora.store.data.providers.BlacklistProvider
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
@@ -44,10 +44,11 @@ import javax.inject.Inject
|
|||||||
class BlacklistViewModel @Inject constructor(
|
class BlacklistViewModel @Inject constructor(
|
||||||
val blacklistProvider: BlacklistProvider,
|
val blacklistProvider: BlacklistProvider,
|
||||||
@ApplicationContext private val context: Context,
|
@ApplicationContext private val context: Context,
|
||||||
|
private val httpClient: IProxyHttpClient,
|
||||||
authProvider: AuthProvider
|
authProvider: AuthProvider
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
private val appDetailsHelper = AppDetailsHelper(authProvider.authData!!)
|
private val appDetailsHelper = AppDetailsHelper(authProvider.authData!!)
|
||||||
.using(HttpClient.getPreferredClient(context))
|
.using(httpClient)
|
||||||
|
|
||||||
private val _blacklistedApps = MutableStateFlow<List<App>?>(null)
|
private val _blacklistedApps = MutableStateFlow<List<App>?>(null)
|
||||||
val blackListedApps = _blacklistedApps.asStateFlow()
|
val blackListedApps = _blacklistedApps.asStateFlow()
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ import com.aurora.store.data.event.AuthEvent
|
|||||||
import com.aurora.store.data.model.AccountType
|
import com.aurora.store.data.model.AccountType
|
||||||
import com.aurora.store.data.model.Auth
|
import com.aurora.store.data.model.Auth
|
||||||
import com.aurora.store.data.model.AuthState
|
import com.aurora.store.data.model.AuthState
|
||||||
import com.aurora.store.data.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
import com.aurora.store.data.providers.AccountProvider
|
import com.aurora.store.data.providers.AccountProvider
|
||||||
import com.aurora.store.data.providers.AuthProvider
|
import com.aurora.store.data.providers.AuthProvider
|
||||||
import com.aurora.store.data.work.UpdateWorker
|
import com.aurora.store.data.work.UpdateWorker
|
||||||
@@ -60,7 +60,8 @@ import javax.inject.Inject
|
|||||||
class AuthViewModel @Inject constructor(
|
class AuthViewModel @Inject constructor(
|
||||||
val authProvider: AuthProvider,
|
val authProvider: AuthProvider,
|
||||||
@ApplicationContext private val context: Context,
|
@ApplicationContext private val context: Context,
|
||||||
private val gson: Gson
|
private val gson: Gson,
|
||||||
|
private val httpClient: IProxyHttpClient
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = AuthViewModel::class.java.simpleName
|
private val TAG = AuthViewModel::class.java.simpleName
|
||||||
@@ -104,10 +105,7 @@ class AuthViewModel @Inject constructor(
|
|||||||
liveData.postValue(AuthState.Fetching)
|
liveData.postValue(AuthState.Fetching)
|
||||||
viewModelScope.launch(Dispatchers.IO) {
|
viewModelScope.launch(Dispatchers.IO) {
|
||||||
try {
|
try {
|
||||||
val playResponse = HttpClient
|
val playResponse = httpClient.getAuth(authProvider.dispenserURL!!)
|
||||||
.getPreferredClient(context)
|
|
||||||
.getAuth(authProvider.dispenserURL!!)
|
|
||||||
|
|
||||||
if (playResponse.isSuccessful) {
|
if (playResponse.isSuccessful) {
|
||||||
val tmpAuthData = gson.fromJson(
|
val tmpAuthData = gson.fromJson(
|
||||||
String(playResponse.responseBytes),
|
String(playResponse.responseBytes),
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ 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.store.data.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
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 dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
@@ -40,13 +40,14 @@ import javax.inject.Inject
|
|||||||
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
||||||
class ExpandedStreamBrowseViewModel @Inject constructor(
|
class ExpandedStreamBrowseViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
@ApplicationContext private val context: Context,
|
||||||
private val authProvider: AuthProvider
|
private val authProvider: AuthProvider,
|
||||||
|
private val httpClient: IProxyHttpClient
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = ExpandedStreamBrowseViewModel::class.java.simpleName
|
private val TAG = ExpandedStreamBrowseViewModel::class.java.simpleName
|
||||||
|
|
||||||
private val streamHelper: ExpandedBrowseHelper = ExpandedBrowseHelper(authProvider.authData!!)
|
private val streamHelper: ExpandedBrowseHelper = ExpandedBrowseHelper(authProvider.authData!!)
|
||||||
.using(HttpClient.getPreferredClient(context))
|
.using(httpClient)
|
||||||
|
|
||||||
val liveData: MutableLiveData<StreamCluster> = MutableLiveData()
|
val liveData: MutableLiveData<StreamCluster> = MutableLiveData()
|
||||||
var streamCluster: StreamCluster = StreamCluster()
|
var streamCluster: StreamCluster = StreamCluster()
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ 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.contracts.StreamContract
|
||||||
import com.aurora.gplayapi.helpers.web.WebStreamHelper
|
import com.aurora.gplayapi.helpers.web.WebStreamHelper
|
||||||
import com.aurora.store.data.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
import com.aurora.store.data.providers.AuthProvider
|
import 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 dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
@@ -41,13 +41,14 @@ import javax.inject.Inject
|
|||||||
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
||||||
class StreamBrowseViewModel @Inject constructor(
|
class StreamBrowseViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
@ApplicationContext private val context: Context,
|
||||||
private val authProvider: AuthProvider
|
private val authProvider: AuthProvider,
|
||||||
|
private val httpClient: IProxyHttpClient
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = StreamBrowseViewModel::class.java.simpleName
|
private val TAG = StreamBrowseViewModel::class.java.simpleName
|
||||||
|
|
||||||
private val streamHelper: StreamContract = WebStreamHelper()
|
private val streamHelper: StreamContract = WebStreamHelper()
|
||||||
.using(HttpClient.getPreferredClient(context))
|
.using(httpClient)
|
||||||
|
|
||||||
val liveData: MutableLiveData<StreamCluster> = MutableLiveData()
|
val liveData: MutableLiveData<StreamCluster> = MutableLiveData()
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import com.aurora.gplayapi.helpers.CategoryHelper
|
|||||||
import com.aurora.gplayapi.helpers.contracts.CategoryContract
|
import com.aurora.gplayapi.helpers.contracts.CategoryContract
|
||||||
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.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
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 dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
@@ -42,12 +42,13 @@ import javax.inject.Inject
|
|||||||
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
||||||
class CategoryViewModel @Inject constructor(
|
class CategoryViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
@ApplicationContext private val context: Context,
|
||||||
private val authProvider: AuthProvider
|
private val authProvider: AuthProvider,
|
||||||
|
private val httpClient: IProxyHttpClient
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
private val TAG = CategoryViewModel::class.java.simpleName
|
private val TAG = CategoryViewModel::class.java.simpleName
|
||||||
|
|
||||||
private val categoryHelper: CategoryHelper = CategoryHelper(authProvider.authData!!)
|
private val categoryHelper: CategoryHelper = CategoryHelper(authProvider.authData!!)
|
||||||
.using(HttpClient.getPreferredClient(context))
|
.using(httpClient)
|
||||||
|
|
||||||
private var stash: CategoryStash = mutableMapOf(
|
private var stash: CategoryStash = mutableMapOf(
|
||||||
Category.Type.APPLICATION to emptyList(),
|
Category.Type.APPLICATION to emptyList(),
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import com.aurora.gplayapi.helpers.ReviewsHelper
|
|||||||
import com.aurora.gplayapi.helpers.web.WebDataSafetyHelper
|
import com.aurora.gplayapi.helpers.web.WebDataSafetyHelper
|
||||||
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.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
import com.aurora.store.data.providers.AuthProvider
|
import com.aurora.store.data.providers.AuthProvider
|
||||||
import com.aurora.store.data.room.favourites.Favourite
|
import com.aurora.store.data.room.favourites.Favourite
|
||||||
import com.aurora.store.data.room.favourites.FavouriteDao
|
import com.aurora.store.data.room.favourites.FavouriteDao
|
||||||
@@ -36,7 +36,8 @@ class AppDetailsViewModel @Inject constructor(
|
|||||||
@ApplicationContext private val context: Context,
|
@ApplicationContext private val context: Context,
|
||||||
private val downloadWorkerUtil: DownloadWorkerUtil,
|
private val downloadWorkerUtil: DownloadWorkerUtil,
|
||||||
private val authProvider: AuthProvider,
|
private val authProvider: AuthProvider,
|
||||||
private val favouriteDao: FavouriteDao
|
private val favouriteDao: FavouriteDao,
|
||||||
|
private val httpClient: IProxyHttpClient
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = AppDetailsViewModel::class.java.simpleName
|
private val TAG = AppDetailsViewModel::class.java.simpleName
|
||||||
@@ -44,7 +45,6 @@ class AppDetailsViewModel @Inject constructor(
|
|||||||
private val exodusBaseUrl = "https://reports.exodus-privacy.eu.org/api/search/"
|
private val exodusBaseUrl = "https://reports.exodus-privacy.eu.org/api/search/"
|
||||||
private val exodusApiKey = "Token bbe6ebae4ad45a9cbacb17d69739799b8df2c7ae"
|
private val exodusApiKey = "Token bbe6ebae4ad45a9cbacb17d69739799b8df2c7ae"
|
||||||
|
|
||||||
private val httpClient = HttpClient.getPreferredClient(context)
|
|
||||||
private val appDetailsHelper = AppDetailsHelper(authProvider.authData!!).using(httpClient)
|
private val appDetailsHelper = AppDetailsHelper(authProvider.authData!!).using(httpClient)
|
||||||
private val reviewsHelper = ReviewsHelper(authProvider.authData!!).using(httpClient)
|
private val reviewsHelper = ReviewsHelper(authProvider.authData!!).using(httpClient)
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import com.aurora.gplayapi.helpers.StreamHelper
|
|||||||
import com.aurora.gplayapi.helpers.contracts.StreamContract
|
import com.aurora.gplayapi.helpers.contracts.StreamContract
|
||||||
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.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
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 dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
@@ -43,13 +43,14 @@ import javax.inject.Inject
|
|||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class DetailsClusterViewModel @Inject constructor(
|
class DetailsClusterViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
@ApplicationContext private val context: Context,
|
||||||
authProvider: AuthProvider
|
authProvider: AuthProvider,
|
||||||
|
private val httpClient: IProxyHttpClient
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = DetailsClusterViewModel::class.java.simpleName
|
private val TAG = DetailsClusterViewModel::class.java.simpleName
|
||||||
|
|
||||||
private var appDetailsHelper = AppDetailsHelper(authProvider.authData!!)
|
private var appDetailsHelper = AppDetailsHelper(authProvider.authData!!)
|
||||||
.using(HttpClient.getPreferredClient(context))
|
.using(httpClient)
|
||||||
private var streamHelper = StreamHelper(authProvider.authData!!)
|
private var streamHelper = StreamHelper(authProvider.authData!!)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ 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.store.data.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
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 dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
@@ -19,13 +19,14 @@ import javax.inject.Inject
|
|||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class DetailsMoreViewModel @Inject constructor(
|
class DetailsMoreViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
@ApplicationContext private val context: Context,
|
||||||
private val authProvider: AuthProvider
|
private val authProvider: AuthProvider,
|
||||||
|
private val httpClient: IProxyHttpClient
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = DetailsMoreViewModel::class.java.simpleName
|
private val TAG = DetailsMoreViewModel::class.java.simpleName
|
||||||
|
|
||||||
private val appDetailsHelper = AppDetailsHelper(authProvider.authData!!)
|
private val appDetailsHelper = AppDetailsHelper(authProvider.authData!!)
|
||||||
.using(HttpClient.getPreferredClient(context))
|
.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>>()
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ 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.store.data.model.ViewState
|
import com.aurora.store.data.model.ViewState
|
||||||
import com.aurora.store.data.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
import com.aurora.store.data.providers.AuthProvider
|
import 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 dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
@@ -45,13 +45,14 @@ import javax.inject.Inject
|
|||||||
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
||||||
class DevProfileViewModel @Inject constructor(
|
class DevProfileViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
@ApplicationContext private val context: Context,
|
||||||
private val authProvider: AuthProvider
|
private val authProvider: AuthProvider,
|
||||||
|
private val httpClient: IProxyHttpClient
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = DevProfileViewModel::class.java.simpleName
|
private val TAG = DevProfileViewModel::class.java.simpleName
|
||||||
|
|
||||||
private var appDetailsHelper = AppDetailsHelper(authProvider.authData!!)
|
private var appDetailsHelper = AppDetailsHelper(authProvider.authData!!)
|
||||||
.using(HttpClient.getPreferredClient(context))
|
.using(httpClient)
|
||||||
private var streamHelper = StreamHelper(authProvider.authData!!)
|
private var streamHelper = StreamHelper(authProvider.authData!!)
|
||||||
|
|
||||||
val liveData: MutableLiveData<ViewState> = MutableLiveData()
|
val liveData: MutableLiveData<ViewState> = MutableLiveData()
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import com.aurora.gplayapi.helpers.contracts.StreamContract
|
|||||||
import com.aurora.gplayapi.helpers.web.WebStreamHelper
|
import com.aurora.gplayapi.helpers.web.WebStreamHelper
|
||||||
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 com.aurora.store.data.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
@@ -42,13 +42,14 @@ import javax.inject.Inject
|
|||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
||||||
class StreamViewModel @Inject constructor(
|
class StreamViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context
|
@ApplicationContext private val context: Context,
|
||||||
|
private val httpClient: IProxyHttpClient
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = StreamViewModel::class.java.simpleName
|
private val TAG = StreamViewModel::class.java.simpleName
|
||||||
|
|
||||||
private var webStreamHelper = WebStreamHelper()
|
private var webStreamHelper = WebStreamHelper()
|
||||||
.using(HttpClient.getPreferredClient(context))
|
.using(httpClient)
|
||||||
|
|
||||||
val liveData: MutableLiveData<ViewState> = MutableLiveData()
|
val liveData: MutableLiveData<ViewState> = MutableLiveData()
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ 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.store.data.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
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 dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
@@ -40,11 +40,12 @@ import javax.inject.Inject
|
|||||||
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
||||||
class ReviewViewModel @Inject constructor(
|
class ReviewViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
@ApplicationContext private val context: Context,
|
||||||
private val authProvider: AuthProvider
|
private val authProvider: AuthProvider,
|
||||||
|
private val httpClient: IProxyHttpClient
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
var reviewsHelper: ReviewsHelper = ReviewsHelper(authProvider.authData!!)
|
var reviewsHelper: ReviewsHelper = ReviewsHelper(authProvider.authData!!)
|
||||||
.using(HttpClient.getPreferredClient(context))
|
.using(httpClient)
|
||||||
|
|
||||||
val liveData: MutableLiveData<ReviewCluster> = MutableLiveData()
|
val liveData: MutableLiveData<ReviewCluster> = MutableLiveData()
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ 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.store.data.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
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
|
||||||
@@ -45,14 +45,15 @@ import javax.inject.Inject
|
|||||||
class SearchResultViewModel @Inject constructor(
|
class SearchResultViewModel @Inject constructor(
|
||||||
val filterProvider: FilterProvider,
|
val filterProvider: FilterProvider,
|
||||||
@ApplicationContext private val context: Context,
|
@ApplicationContext private val context: Context,
|
||||||
private val authProvider: AuthProvider
|
private val authProvider: AuthProvider,
|
||||||
|
private val httpClient: IProxyHttpClient
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = SearchResultViewModel::class.java.simpleName
|
private val TAG = SearchResultViewModel::class.java.simpleName
|
||||||
|
|
||||||
private val webSearchHelper: WebSearchHelper = WebSearchHelper()
|
private val webSearchHelper: WebSearchHelper = WebSearchHelper()
|
||||||
private val searchHelper: SearchHelper = SearchHelper(authProvider.authData!!)
|
private val searchHelper: SearchHelper = SearchHelper(authProvider.authData!!)
|
||||||
.using(HttpClient.getPreferredClient(context))
|
.using(httpClient)
|
||||||
|
|
||||||
val liveData: MutableLiveData<SearchBundle> = MutableLiveData()
|
val liveData: MutableLiveData<SearchBundle> = MutableLiveData()
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ 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.store.data.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
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 dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
@@ -40,12 +40,13 @@ import javax.inject.Inject
|
|||||||
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
||||||
class SearchSuggestionViewModel @Inject constructor(
|
class SearchSuggestionViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
@ApplicationContext private val context: Context,
|
||||||
private val authProvider: AuthProvider
|
private val authProvider: AuthProvider,
|
||||||
|
private val httpClient: IProxyHttpClient
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val webSearchHelper: WebSearchHelper = WebSearchHelper()
|
private val webSearchHelper: WebSearchHelper = WebSearchHelper()
|
||||||
private val searchHelper: SearchHelper = SearchHelper(authProvider.authData!!)
|
private val searchHelper: SearchHelper = SearchHelper(authProvider.authData!!)
|
||||||
.using(HttpClient.getPreferredClient(context))
|
.using(httpClient)
|
||||||
|
|
||||||
val liveSearchSuggestions: MutableLiveData<List<SearchSuggestEntry>> = MutableLiveData()
|
val liveSearchSuggestions: MutableLiveData<List<SearchSuggestEntry>> = MutableLiveData()
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ 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.store.data.model.ViewState
|
import com.aurora.store.data.model.ViewState
|
||||||
import com.aurora.store.data.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
@@ -42,13 +42,14 @@ import javax.inject.Inject
|
|||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
||||||
class CategoryStreamViewModel @Inject constructor(
|
class CategoryStreamViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context
|
@ApplicationContext private val context: Context,
|
||||||
|
private val httpClient: IProxyHttpClient
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private val TAG = CategoryStreamViewModel::class.java.simpleName
|
private val TAG = CategoryStreamViewModel::class.java.simpleName
|
||||||
|
|
||||||
private var webCategoryStreamHelper = WebCategoryStreamHelper()
|
private var webCategoryStreamHelper = WebCategoryStreamHelper()
|
||||||
.using(HttpClient.getPreferredClient(context))
|
.using(httpClient)
|
||||||
|
|
||||||
val liveData: MutableLiveData<ViewState> = MutableLiveData()
|
val liveData: MutableLiveData<ViewState> = MutableLiveData()
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import com.aurora.gplayapi.helpers.contracts.TopChartsContract
|
|||||||
import com.aurora.gplayapi.helpers.web.WebTopChartsHelper
|
import com.aurora.gplayapi.helpers.web.WebTopChartsHelper
|
||||||
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 com.aurora.store.data.network.HttpClient
|
import com.aurora.store.data.network.IProxyHttpClient
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
@@ -39,11 +39,13 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
@SuppressLint("StaticFieldLeak") // false positive, see https://github.com/google/dagger/issues/3253
|
||||||
class TopChartViewModel @Inject constructor(@ApplicationContext private val context: Context) :
|
class TopChartViewModel @Inject constructor(
|
||||||
ViewModel() {
|
@ApplicationContext private val context: Context,
|
||||||
|
private val httpClient: IProxyHttpClient
|
||||||
|
): ViewModel() {
|
||||||
|
|
||||||
private val webTopChartsHelper: TopChartsContract = WebTopChartsHelper()
|
private val webTopChartsHelper: TopChartsContract = WebTopChartsHelper()
|
||||||
.using(HttpClient.getPreferredClient(context))
|
.using(httpClient)
|
||||||
|
|
||||||
private var stash: TopChartStash = mutableMapOf()
|
private var stash: TopChartStash = mutableMapOf()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user