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.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
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.extensions.toast
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.data.providers.NativeDeviceInfoProvider
|
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.data.providers.SpoofProvider
|
||||||
import com.aurora.store.databinding.FragmentGenericRecyclerBinding
|
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.epoxy.views.preference.DeviceViewModel_
|
||||||
import com.aurora.store.view.ui.commons.BaseFragment
|
import com.aurora.store.view.ui.commons.BaseFragment
|
||||||
import nl.komponents.kovenant.task
|
import com.aurora.store.viewmodel.spoof.SpoofViewModel
|
||||||
import nl.komponents.kovenant.ui.failUi
|
|
||||||
import nl.komponents.kovenant.ui.successUi
|
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
|
|
||||||
class DeviceSpoofFragment : BaseFragment() {
|
class DeviceSpoofFragment : BaseFragment() {
|
||||||
@@ -45,6 +46,8 @@ class DeviceSpoofFragment : BaseFragment() {
|
|||||||
|
|
||||||
private var properties: Properties = Properties()
|
private var properties: Properties = Properties()
|
||||||
|
|
||||||
|
private val viewModel: SpoofViewModel by viewModels()
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun newInstance(): DeviceSpoofFragment {
|
fun newInstance(): DeviceSpoofFragment {
|
||||||
@@ -79,13 +82,12 @@ class DeviceSpoofFragment : BaseFragment() {
|
|||||||
if (spoofProvider.isDeviceSpoofEnabled())
|
if (spoofProvider.isDeviceSpoofEnabled())
|
||||||
properties = spoofProvider.getSpoofDeviceProperties()
|
properties = spoofProvider.getSpoofDeviceProperties()
|
||||||
|
|
||||||
task {
|
viewLifecycleOwner.lifecycleScope.launch {
|
||||||
fetchAvailableDevices()
|
repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||||
} successUi {
|
viewModel.availableDevices.collect { updateController(it) }
|
||||||
updateController(it)
|
}
|
||||||
} failUi {
|
|
||||||
Log.e("Could not get spoof device properties")
|
|
||||||
}
|
}
|
||||||
|
viewModel.fetchAvailableDevices(view.context)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateController(locales: List<Properties>) {
|
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) {
|
private fun saveSelection(properties: Properties) {
|
||||||
requireContext().toast(R.string.spoof_apply)
|
requireContext().toast(R.string.spoof_apply)
|
||||||
spoofProvider.setSpoofDeviceProperties(properties)
|
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