From 825b160a65267f6c27b59d5c6f5c8b12ddf0b6c8 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Mon, 5 Aug 2024 10:12:42 +0800 Subject: [PATCH] SpoofDeviceProvider: Migrate to hilt Signed-off-by: Aayush Gupta --- .../data/providers/SpoofDeviceProvider.kt | 18 +++++++++--------- .../store/view/ui/spoof/DeviceSpoofFragment.kt | 2 +- .../store/viewmodel/spoof/SpoofViewModel.kt | 12 ++++++++---- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/aurora/store/data/providers/SpoofDeviceProvider.kt b/app/src/main/java/com/aurora/store/data/providers/SpoofDeviceProvider.kt index 83d22bcbe..02b6a9855 100644 --- a/app/src/main/java/com/aurora/store/data/providers/SpoofDeviceProvider.kt +++ b/app/src/main/java/com/aurora/store/data/providers/SpoofDeviceProvider.kt @@ -21,9 +21,9 @@ package com.aurora.store.data.providers import android.content.Context import com.aurora.store.BuildConfig -import com.aurora.store.data.SingletonHolder import com.aurora.store.util.Log import com.aurora.store.util.PathUtil +import dagger.hilt.android.qualifiers.ApplicationContext import java.io.BufferedInputStream import java.io.File import java.io.FileInputStream @@ -31,16 +31,13 @@ import java.io.IOException import java.util.Properties import java.util.jar.JarEntry import java.util.jar.JarFile +import javax.inject.Inject +import javax.inject.Singleton -class SpoofDeviceProvider private constructor(var context: Context) { +@Singleton +class SpoofDeviceProvider @Inject constructor(@ApplicationContext val context: Context) { - companion object : SingletonHolder(::SpoofDeviceProvider) { - private const val SUFFIX = ".properties" - - fun filenameValid(filename: String): Boolean { - return filename.endsWith(SUFFIX) - } - } + private val SUFFIX = ".properties" val availableDevice: List get() { @@ -139,4 +136,7 @@ class SpoofDeviceProvider private constructor(var context: Context) { return null } + private fun filenameValid(filename: String): Boolean { + return filename.endsWith(SUFFIX) + } } diff --git a/app/src/main/java/com/aurora/store/view/ui/spoof/DeviceSpoofFragment.kt b/app/src/main/java/com/aurora/store/view/ui/spoof/DeviceSpoofFragment.kt index 0dc1e625b..f9bd6ba01 100644 --- a/app/src/main/java/com/aurora/store/view/ui/spoof/DeviceSpoofFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/spoof/DeviceSpoofFragment.kt @@ -68,7 +68,7 @@ class DeviceSpoofFragment : BaseFragment() { viewModel.availableDevices.collect { updateController(it) } } } - viewModel.fetchAvailableDevices(view.context) + viewModel.fetchAvailableDevices() } private fun updateController(locales: List) { diff --git a/app/src/main/java/com/aurora/store/viewmodel/spoof/SpoofViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/spoof/SpoofViewModel.kt index 4dd1c8d96..f04089a30 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/spoof/SpoofViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/spoof/SpoofViewModel.kt @@ -1,23 +1,27 @@ package com.aurora.store.viewmodel.spoof -import android.content.Context import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.aurora.store.data.providers.SpoofDeviceProvider +import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.launch import java.util.Properties +import javax.inject.Inject -class SpoofViewModel: ViewModel() { +@HiltViewModel +class SpoofViewModel @Inject constructor( + private val spoofDeviceProvider: SpoofDeviceProvider +): ViewModel() { private val _availableDevices: MutableStateFlow> = MutableStateFlow(emptyList()) val availableDevices = _availableDevices.asStateFlow() - fun fetchAvailableDevices(context: Context) { + fun fetchAvailableDevices() { viewModelScope.launch(Dispatchers.IO) { - _availableDevices.value = SpoofDeviceProvider.with(context).availableDevice + _availableDevices.value = spoofDeviceProvider.availableDevice } } }