DeviceSpoofFragment: Drop dependency upon kovenant
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -23,19 +23,20 @@ import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import com.aurora.extensions.toast
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.data.providers.NativeDeviceInfoProvider
|
||||
import com.aurora.store.data.providers.SpoofDeviceProvider
|
||||
import com.aurora.store.data.providers.SpoofProvider
|
||||
import com.aurora.store.databinding.FragmentGenericRecyclerBinding
|
||||
import com.aurora.store.util.Log
|
||||
import com.aurora.store.view.epoxy.views.preference.DeviceViewModel_
|
||||
import com.aurora.store.view.ui.commons.BaseFragment
|
||||
import nl.komponents.kovenant.task
|
||||
import nl.komponents.kovenant.ui.failUi
|
||||
import nl.komponents.kovenant.ui.successUi
|
||||
import com.aurora.store.viewmodel.spoof.SpoofViewModel
|
||||
import java.util.*
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
|
||||
class DeviceSpoofFragment : BaseFragment() {
|
||||
@@ -45,6 +46,8 @@ class DeviceSpoofFragment : BaseFragment() {
|
||||
|
||||
private var properties: Properties = Properties()
|
||||
|
||||
private val viewModel: SpoofViewModel by viewModels()
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun newInstance(): DeviceSpoofFragment {
|
||||
@@ -79,13 +82,12 @@ class DeviceSpoofFragment : BaseFragment() {
|
||||
if (spoofProvider.isDeviceSpoofEnabled())
|
||||
properties = spoofProvider.getSpoofDeviceProperties()
|
||||
|
||||
task {
|
||||
fetchAvailableDevices()
|
||||
} successUi {
|
||||
updateController(it)
|
||||
} failUi {
|
||||
Log.e("Could not get spoof device properties")
|
||||
viewLifecycleOwner.lifecycleScope.launch {
|
||||
repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||
viewModel.availableDevices.collect { updateController(it) }
|
||||
}
|
||||
}
|
||||
viewModel.fetchAvailableDevices(view.context)
|
||||
}
|
||||
|
||||
private fun updateController(locales: List<Properties>) {
|
||||
@@ -115,12 +117,8 @@ class DeviceSpoofFragment : BaseFragment() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun fetchAvailableDevices(): List<Properties> {
|
||||
return SpoofDeviceProvider.with(requireContext()).availableDevice
|
||||
}
|
||||
|
||||
private fun saveSelection(properties: Properties) {
|
||||
requireContext().toast(R.string.spoof_apply)
|
||||
spoofProvider.setSpoofDeviceProperties(properties)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
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 java.util.Properties
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
class SpoofViewModel: ViewModel() {
|
||||
|
||||
private val _availableDevices: MutableStateFlow<List<Properties>> = MutableStateFlow(emptyList())
|
||||
val availableDevices = _availableDevices.asStateFlow()
|
||||
|
||||
fun fetchAvailableDevices(context: Context) {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
_availableDevices.value = SpoofDeviceProvider.with(context).availableDevice
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user