Fixed magisk version

Added refreshing versions before and after the request to remote
This commit is contained in:
Viktor De Pasquale 2019-08-22 08:03:17 +02:00
parent 021994c9f3
commit 39e9622205
2 changed files with 17 additions and 11 deletions

View File

@ -14,7 +14,9 @@ import io.reactivex.Observable
import io.reactivex.subjects.PublishSubject import io.reactivex.subjects.PublishSubject
abstract class MagiskViewModel : LoadingViewModel() { abstract class MagiskViewModel(
initialState: State = State.LOADING
) : LoadingViewModel(initialState) {
val isConnected = KObservableField(true) val isConnected = KObservableField(true)

View File

@ -31,7 +31,7 @@ enum class MagiskItem {
class HomeViewModel( class HomeViewModel(
private val magiskRepo: MagiskRepository private val magiskRepo: MagiskRepository
) : MagiskViewModel() { ) : MagiskViewModel(State.LOADED) {
val hasGMS = runCatching { val hasGMS = runCatching {
get<PackageManager>().getPackageInfo("com.google.android.gms", 0); true get<PackageManager>().getPackageInfo("com.google.android.gms", 0); true
@ -177,14 +177,7 @@ class HomeViewModel(
} }
fun refresh() { fun refresh() {
magiskCurrentVersion.value = if (magiskState.value != MagiskState.NOT_INSTALLED) { refreshVersions()
version.format(Info.magiskVersionString, Info.magiskVersionCode)
} else {
""
}
managerCurrentVersion.value = version
.format(BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE)
magiskRepo.fetchUpdate() magiskRepo.fetchUpdate()
.applyViewModel(this) .applyViewModel(this)
@ -198,13 +191,24 @@ class HomeViewModel(
.subscribeK { .subscribeK {
updateSelf() updateSelf()
ensureEnv() ensureEnv()
refreshVersions()
} }
hasRoot.value = Shell.rootAccess() hasRoot.value = Shell.rootAccess()
} }
private fun refreshVersions() {
magiskCurrentVersion.value = if (magiskState.value != MagiskState.NOT_INSTALLED) {
version.format(Info.magiskVersionString, Info.magiskVersionCode)
} else {
""
}
managerCurrentVersion.value = version
.format(BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE)
}
private fun updateSelf() { private fun updateSelf() {
state = State.LOADED
_magiskState.value = when (Info.magiskVersionCode) { _magiskState.value = when (Info.magiskVersionCode) {
in Int.MIN_VALUE until 0 -> MagiskState.NOT_INSTALLED in Int.MIN_VALUE until 0 -> MagiskState.NOT_INSTALLED
!in Info.remote.magisk.versionCode..Int.MAX_VALUE -> MagiskState.OBSOLETE !in Info.remote.magisk.versionCode..Int.MAX_VALUE -> MagiskState.OBSOLETE