mirror of
https://github.com/topjohnwu/Magisk.git
synced 2024-12-25 10:37:39 +00:00
parent
cb3f9b9740
commit
1f75e63c37
@ -39,7 +39,7 @@ android {
|
||||
exclude '/META-INF/*.kotlin_module'
|
||||
exclude '/META-INF/rxkotlin.properties'
|
||||
exclude '/androidsupportmultidexversion.txt'
|
||||
exclude '/org/**'
|
||||
exclude '/org/bouncycastle/**'
|
||||
exclude '/kotlin/**'
|
||||
exclude '/kotlinx/**'
|
||||
}
|
||||
|
@ -8,11 +8,13 @@ import com.skoumal.teanity.extensions.subscribeK
|
||||
import com.topjohnwu.magisk.R
|
||||
import com.topjohnwu.magisk.data.repository.StringRepository
|
||||
import com.topjohnwu.magisk.extensions.inject
|
||||
import io.reactivex.Completable
|
||||
import io.reactivex.Single
|
||||
import ru.noties.markwon.Markwon
|
||||
import ru.noties.markwon.html.HtmlPlugin
|
||||
import ru.noties.markwon.image.ImagesPlugin
|
||||
import ru.noties.markwon.image.svg.SvgPlugin
|
||||
import timber.log.Timber
|
||||
import java.io.InputStream
|
||||
import java.util.*
|
||||
|
||||
@ -33,26 +35,35 @@ object MarkDownWindow {
|
||||
}
|
||||
|
||||
fun show(activity: Context, title: String?, content: Single<String>) {
|
||||
content.subscribeK {
|
||||
val markwon = Markwon.builder(activity)
|
||||
.usePlugin(HtmlPlugin.create())
|
||||
.usePlugin(ImagesPlugin.create(activity))
|
||||
.usePlugin(SvgPlugin.create(activity.resources))
|
||||
.build()
|
||||
val alert = AlertDialog.Builder(activity)
|
||||
alert.setTitle(title)
|
||||
val mv = LayoutInflater.from(activity).inflate(R.layout.markdown_window, null)
|
||||
val tv = mv.findViewById<TextView>(R.id.md_txt)
|
||||
try {
|
||||
|
||||
content.map {
|
||||
runCatching {
|
||||
markwon.setMarkdown(tv, it)
|
||||
} catch (e: ExceptionInInitializerError) {
|
||||
//Nothing we can do about this error other than show error message
|
||||
}.onFailure {
|
||||
Timber.e(it)
|
||||
// Always wrap the actual exception as it could be ExceptionInInitializerError,
|
||||
// which is a fatal error and RxJava will send it to the global handler and crash
|
||||
throw MarkwonException(it)
|
||||
}
|
||||
}.ignoreElement().onErrorResumeNext {
|
||||
// Nothing we can actually do other than show error message
|
||||
tv.setText(R.string.download_file_error)
|
||||
Completable.complete()
|
||||
}.subscribeK {
|
||||
AlertDialog.Builder(activity)
|
||||
.setTitle(title)
|
||||
.setView(mv)
|
||||
.setNegativeButton(R.string.close) { dialog, _ -> dialog.dismiss() }
|
||||
.show()
|
||||
}
|
||||
}
|
||||
|
||||
alert.setView(mv)
|
||||
alert.setNegativeButton(R.string.close) { dialog, _ -> dialog.dismiss() }
|
||||
alert.show()
|
||||
}
|
||||
}
|
||||
class MarkwonException(e: Throwable): Exception(e)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user