SpoofDeviceProvider: Migrate to hilt

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-08-05 10:12:42 +08:00
parent 7d083e3749
commit 825b160a65
3 changed files with 18 additions and 14 deletions

View File

@@ -21,9 +21,9 @@ package com.aurora.store.data.providers
import android.content.Context import android.content.Context
import com.aurora.store.BuildConfig import com.aurora.store.BuildConfig
import com.aurora.store.data.SingletonHolder
import com.aurora.store.util.Log import com.aurora.store.util.Log
import com.aurora.store.util.PathUtil import com.aurora.store.util.PathUtil
import dagger.hilt.android.qualifiers.ApplicationContext
import java.io.BufferedInputStream import java.io.BufferedInputStream
import java.io.File import java.io.File
import java.io.FileInputStream import java.io.FileInputStream
@@ -31,16 +31,13 @@ import java.io.IOException
import java.util.Properties import java.util.Properties
import java.util.jar.JarEntry import java.util.jar.JarEntry
import java.util.jar.JarFile 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, Context>(::SpoofDeviceProvider) { private val SUFFIX = ".properties"
private const val SUFFIX = ".properties"
fun filenameValid(filename: String): Boolean {
return filename.endsWith(SUFFIX)
}
}
val availableDevice: List<Properties> val availableDevice: List<Properties>
get() { get() {
@@ -139,4 +136,7 @@ class SpoofDeviceProvider private constructor(var context: Context) {
return null return null
} }
private fun filenameValid(filename: String): Boolean {
return filename.endsWith(SUFFIX)
}
} }

View File

@@ -68,7 +68,7 @@ class DeviceSpoofFragment : BaseFragment<FragmentGenericRecyclerBinding>() {
viewModel.availableDevices.collect { updateController(it) } viewModel.availableDevices.collect { updateController(it) }
} }
} }
viewModel.fetchAvailableDevices(view.context) viewModel.fetchAvailableDevices()
} }
private fun updateController(locales: List<Properties>) { private fun updateController(locales: List<Properties>) {

View File

@@ -1,23 +1,27 @@
package com.aurora.store.viewmodel.spoof package com.aurora.store.viewmodel.spoof
import android.content.Context
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import com.aurora.store.data.providers.SpoofDeviceProvider import com.aurora.store.data.providers.SpoofDeviceProvider
import dagger.hilt.android.lifecycle.HiltViewModel
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
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import java.util.Properties 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<List<Properties>> = MutableStateFlow(emptyList()) private val _availableDevices: MutableStateFlow<List<Properties>> = MutableStateFlow(emptyList())
val availableDevices = _availableDevices.asStateFlow() val availableDevices = _availableDevices.asStateFlow()
fun fetchAvailableDevices(context: Context) { fun fetchAvailableDevices() {
viewModelScope.launch(Dispatchers.IO) { viewModelScope.launch(Dispatchers.IO) {
_availableDevices.value = SpoofDeviceProvider.with(context).availableDevice _availableDevices.value = spoofDeviceProvider.availableDevice
} }
} }
} }