SpoofDeviceProvider: Migrate to hilt
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>) {
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user