Added direct fetch from network and fixed build issues

This commit is contained in:
Viktor De Pasquale
2019-05-06 20:12:31 +02:00
parent b018124226
commit 10e903c9fc
17 changed files with 139 additions and 84 deletions
@@ -14,7 +14,10 @@ import timber.log.Timber
abstract class MagiskViewModel : LoadingViewModel(), Event.AutoListener {
@Deprecated("")
override fun onEvent(event: Int) = Timber.i("Event of $event was not handled")
@Deprecated("")
override fun getListeningEvents(): IntArray = intArrayOf()
fun withView(action: Activity.() -> Unit) {
@@ -2,22 +2,24 @@ package com.topjohnwu.magisk.ui.home
import android.content.res.Resources
import com.skoumal.teanity.extensions.addOnPropertyChangedCallback
import com.skoumal.teanity.extensions.doOnSubscribeUi
import com.skoumal.teanity.extensions.subscribeK
import com.skoumal.teanity.util.KObservableField
import com.topjohnwu.magisk.*
import com.topjohnwu.magisk.data.repository.MagiskRepository
import com.topjohnwu.magisk.model.events.*
import com.topjohnwu.magisk.model.observer.Observer
import com.topjohnwu.magisk.tasks.CheckUpdates
import com.topjohnwu.magisk.ui.base.MagiskViewModel
import com.topjohnwu.magisk.utils.Event
import com.topjohnwu.magisk.utils.ISafetyNetHelper
import com.topjohnwu.magisk.utils.toggle
import com.topjohnwu.net.Networking
import com.topjohnwu.superuser.Shell
class HomeViewModel(
private val resources: Resources,
private val app: App
private val app: App,
private val magiskRepo: MagiskRepository
) : MagiskViewModel() {
val isAdvancedExpanded = KObservableField(false)
@@ -163,20 +165,26 @@ class HomeViewModel(
}
fun refresh() {
state = State.LOADING
magiskState.value = MagiskState.LOADING
managerState.value = MagiskState.LOADING
Event.reset(this)
Config.remoteMagiskVersionString = null
Config.remoteMagiskVersionCode = -1
magiskRepo.fetchConfig()
.applyViewModel(this)
.doOnSubscribeUi {
magiskState.value = MagiskState.LOADING
managerState.value = MagiskState.LOADING
}
.subscribeK {
it.app.let {
Config.remoteManagerVersionCode = it.versionCode.toIntOrNull() ?: -1
Config.remoteManagerVersionString = it.version
}
it.magisk.let {
Config.remoteMagiskVersionCode = it.versionCode.toIntOrNull() ?: -1
Config.remoteMagiskVersionString = it.version
}
updateSelf()
ensureEnv()
}
hasRoot.value = Shell.rootAccess()
if (Networking.checkNetworkStatus(app)) {
CheckUpdates.check()
} else {
state = State.LOADING_FAILED
}
}
private fun updateSelf() {
@@ -11,7 +11,7 @@ import com.skoumal.teanity.util.KObservableField
import com.topjohnwu.magisk.BR
import com.topjohnwu.magisk.R
import com.topjohnwu.magisk.data.database.RepoDatabaseHelper
import com.topjohnwu.magisk.model.entity.Module
import com.topjohnwu.magisk.model.entity.OldModule
import com.topjohnwu.magisk.model.entity.Repo
import com.topjohnwu.magisk.model.entity.recycler.ModuleRvItem
import com.topjohnwu.magisk.model.entity.recycler.RepoRvItem
@@ -76,7 +76,7 @@ class ModuleViewModel(
UpdateRepos().exec(true)
}
private fun updateModules(result: Map<String, Module>) = result.values
private fun updateModules(result: Map<String, OldModule>) = result.values
.map { ModuleRvItem(it) }
.let { itemsInstalled.update(it) }