Set notes on main thread

This commit is contained in:
topjohnwu 2023-04-06 00:53:06 -07:00
parent 7be958e35d
commit 22e023b58d
2 changed files with 11 additions and 8 deletions

View File

@ -34,7 +34,8 @@ object VMFactory : ViewModelProvider.Factory {
HomeViewModel::class.java -> HomeViewModel(ServiceLocator.networkService) HomeViewModel::class.java -> HomeViewModel(ServiceLocator.networkService)
LogViewModel::class.java -> LogViewModel(ServiceLocator.logRepo) LogViewModel::class.java -> LogViewModel(ServiceLocator.logRepo)
SuperuserViewModel::class.java -> SuperuserViewModel(ServiceLocator.policyDB) SuperuserViewModel::class.java -> SuperuserViewModel(ServiceLocator.policyDB)
InstallViewModel::class.java -> InstallViewModel(ServiceLocator.networkService) InstallViewModel::class.java ->
InstallViewModel(ServiceLocator.networkService, ServiceLocator.markwon)
SuRequestViewModel::class.java -> SuRequestViewModel::class.java ->
SuRequestViewModel(ServiceLocator.policyDB, ServiceLocator.timeoutPrefs) SuRequestViewModel(ServiceLocator.policyDB, ServiceLocator.timeoutPrefs)
else -> modelClass.newInstance() else -> modelClass.newInstance()

View File

@ -3,8 +3,8 @@ package com.topjohnwu.magisk.ui.install
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.os.Parcelable import android.os.Parcelable
import android.text.SpannableStringBuilder
import android.text.Spanned import android.text.Spanned
import android.text.SpannedString
import android.widget.Toast import android.widget.Toast
import androidx.databinding.Bindable import androidx.databinding.Bindable
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
@ -19,23 +19,22 @@ import com.topjohnwu.magisk.core.Const
import com.topjohnwu.magisk.core.Info import com.topjohnwu.magisk.core.Info
import com.topjohnwu.magisk.core.base.ContentResultCallback import com.topjohnwu.magisk.core.base.ContentResultCallback
import com.topjohnwu.magisk.core.di.AppContext import com.topjohnwu.magisk.core.di.AppContext
import com.topjohnwu.magisk.core.di.ServiceLocator
import com.topjohnwu.magisk.core.ktx.toast import com.topjohnwu.magisk.core.ktx.toast
import com.topjohnwu.magisk.core.repository.NetworkService import com.topjohnwu.magisk.core.repository.NetworkService
import com.topjohnwu.magisk.databinding.set import com.topjohnwu.magisk.databinding.set
import com.topjohnwu.magisk.dialog.SecondSlotWarningDialog import com.topjohnwu.magisk.dialog.SecondSlotWarningDialog
import com.topjohnwu.magisk.events.GetContentEvent import com.topjohnwu.magisk.events.GetContentEvent
import com.topjohnwu.magisk.ui.flash.FlashFragment import com.topjohnwu.magisk.ui.flash.FlashFragment
import io.noties.markwon.Markwon
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import timber.log.Timber import timber.log.Timber
import java.io.File import java.io.File
import java.io.IOException import java.io.IOException
class InstallViewModel( class InstallViewModel(svc: NetworkService, markwon: Markwon) : BaseViewModel() {
svc: NetworkService
) : BaseViewModel() {
val isRooted get() = Info.isRooted val isRooted get() = Info.isRooted
val hideVbmeta = Info.vbmeta || Info.isSamsung || Info.isAB val hideVbmeta = Info.vbmeta || Info.isSamsung || Info.isAB
@ -65,7 +64,7 @@ class InstallViewModel(
val data: LiveData<Uri?> get() = uri val data: LiveData<Uri?> get() = uri
@get:Bindable @get:Bindable
var notes: Spanned = SpannableStringBuilder() var notes: Spanned = SpannedString("")
set(value) = set(value, field, { field = it }, BR.notes) set(value) = set(value, field, { field = it }, BR.notes)
init { init {
@ -81,7 +80,10 @@ class InstallViewModel(
str str
} }
} }
notes = ServiceLocator.markwon.toMarkdown(text) val spanned = markwon.toMarkdown(text)
withContext(Dispatchers.Main) {
notes = spanned
}
} catch (e: IOException) { } catch (e: IOException) {
Timber.e(e) Timber.e(e)
} }