You've already forked Magisk
mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-09-06 06:36:58 +00:00
50 lines
1.7 KiB
Kotlin
50 lines
1.7 KiB
Kotlin
package com.topjohnwu.magisk.dialog
|
|
|
|
import com.topjohnwu.magisk.R
|
|
import com.topjohnwu.magisk.core.di.ServiceLocator
|
|
import com.topjohnwu.magisk.core.download.Action
|
|
import com.topjohnwu.magisk.core.download.DownloadService
|
|
import com.topjohnwu.magisk.core.download.Subject
|
|
import com.topjohnwu.magisk.core.model.module.OnlineModule
|
|
import com.topjohnwu.magisk.view.MagiskDialog
|
|
|
|
class OnlineModuleInstallDialog(private val item: OnlineModule) : MarkDownDialog() {
|
|
|
|
private val svc get() = ServiceLocator.networkService
|
|
|
|
override suspend fun getMarkdownText(): String {
|
|
val str = svc.fetchString(item.changelog)
|
|
return if (str.length > 1000) str.substring(0, 1000) else str
|
|
}
|
|
|
|
override fun build(dialog: MagiskDialog) {
|
|
super.build(dialog)
|
|
dialog.apply {
|
|
|
|
fun download(install: Boolean) {
|
|
val action = if (install) Action.Flash else Action.Download
|
|
val subject = Subject.Module(item, action)
|
|
DownloadService.start(activity, subject)
|
|
}
|
|
|
|
val title = context.getString(R.string.repo_install_title,
|
|
item.name, item.version, item.versionCode)
|
|
|
|
setTitle(title)
|
|
setCancelable(true)
|
|
setButton(MagiskDialog.ButtonType.NEGATIVE) {
|
|
text = R.string.download
|
|
onClick { download(false) }
|
|
}
|
|
setButton(MagiskDialog.ButtonType.POSITIVE) {
|
|
text = R.string.install
|
|
onClick { download(true) }
|
|
}
|
|
setButton(MagiskDialog.ButtonType.NEUTRAL) {
|
|
text = android.R.string.cancel
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|