From 12a9792c7dffbc7ead0e109d9d863fa8121169a3 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Wed, 22 Jan 2020 14:49:46 +0800 Subject: [PATCH] Remove old install dialog --- .../events/dialog/MagiskInstallDialog.kt | 131 ------------------ 1 file changed, 131 deletions(-) delete mode 100644 app/src/main/java/com/topjohnwu/magisk/model/events/dialog/MagiskInstallDialog.kt diff --git a/app/src/main/java/com/topjohnwu/magisk/model/events/dialog/MagiskInstallDialog.kt b/app/src/main/java/com/topjohnwu/magisk/model/events/dialog/MagiskInstallDialog.kt deleted file mode 100644 index 25d29ab9b..000000000 --- a/app/src/main/java/com/topjohnwu/magisk/model/events/dialog/MagiskInstallDialog.kt +++ /dev/null @@ -1,131 +0,0 @@ -package com.topjohnwu.magisk.model.events.dialog - -import android.Manifest -import android.net.Uri -import android.view.LayoutInflater -import android.widget.Toast -import com.topjohnwu.magisk.core.Info -import com.topjohnwu.magisk.R -import com.topjohnwu.magisk.core.download.DownloadService -import com.topjohnwu.magisk.databinding.IncludeInstallOptionsBinding -import com.topjohnwu.magisk.extensions.hasPermissions -import com.topjohnwu.magisk.extensions.res -import com.topjohnwu.magisk.model.entity.internal.Configuration -import com.topjohnwu.magisk.model.entity.internal.DownloadSubject -import com.topjohnwu.magisk.model.events.OpenInappLinkEvent -import com.topjohnwu.magisk.core.utils.Utils -import com.topjohnwu.magisk.view.MagiskDialog -import com.topjohnwu.magisk.view.MarkDownWindow -import com.topjohnwu.superuser.Shell -import com.topjohnwu.superuser.ShellUtils - -class MagiskInstallDialog : DialogEvent() { - - override fun build(dialog: MagiskDialog) { - with(dialog) { - val filename = "Magisk v%s (%d)".format( - Info.remote.magisk.version, - Info.remote.magisk.versionCode - ) - applyTitle(R.string.repo_install_title.res(R.string.magisk.res())) - applyMessage(R.string.repo_install_msg.res(filename)) - setCancelable(true) - applyButton(MagiskDialog.ButtonType.POSITIVE) { - titleRes = R.string.install - preventDismiss = true - onClick { - updateForInstallMethod(dialog.reset()) - } - } - - if (Info.remote.magisk.note.isEmpty()) return - applyButton(MagiskDialog.ButtonType.NEGATIVE) { - titleRes = R.string.release_notes - onClick { - if (Info.remote.magisk.note.contains("forum.xda-developers")) { - OpenInappLinkEvent(Info.remote.magisk.note).invoke(context) - } else { - MarkDownWindow.show(context, null, Info.remote.magisk.note) - } - } - } - } - } - - private fun updateForInstallMethod(dialog: MagiskDialog) { - with(dialog) { - applyTitle(R.string.select_method) - applyView(IncludeInstallOptionsBinding.inflate(LayoutInflater.from(dialog.context))) - applyButton(MagiskDialog.ButtonType.POSITIVE) { - titleRes = R.string.download_zip_only - onClick { - preventDismiss = false - download() - } - } - applyButton(MagiskDialog.ButtonType.NEUTRAL) { - isEnabled = false - titleRes = R.string.select_patch_file - // todo maybe leverage rxbus for this? - onClick { Utils.toast("This is not currently possible", Toast.LENGTH_LONG) } - } - - if (!Shell.rootAccess()) return - applyButton(MagiskDialog.ButtonType.NEGATIVE) { - titleRes = R.string.direct_install - onClick { flash() } - } - - if (!isABDevice()) return - applyButton(MagiskDialog.ButtonType.IDGAF) { - titleRes = R.string.install_inactive_slot - preventDismiss = true - onClick { inactiveSlotDialog(dialog.reset()) } - } - } - } - - private fun inactiveSlotDialog(dialog: MagiskDialog) { - dialog.applyTitle(R.string.warning) - .applyMessage(R.string.install_inactive_slot_msg) - .applyButton(MagiskDialog.ButtonType.POSITIVE) { - titleRes = R.string.yes - onClick { - flash(Configuration.Flash.Secondary) - } - } - .applyButton(MagiskDialog.ButtonType.NEGATIVE) { - titleRes = android.R.string.no - } - } - - // --- - - private fun hasPermissions() = dialog.context.hasPermissions( - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE - ) - - private fun patch(data: Uri) = download(DownloadSubject.Magisk(Configuration.Patch(data))) - - private fun flash( - type: Configuration.Flash = Configuration.Flash.Primary - ) = download(DownloadSubject.Magisk(type)) - - private fun download( - type: DownloadSubject.Magisk = DownloadSubject.Magisk(Configuration.Download) - ) { - if (!hasPermissions()) { - Utils.toast("Storage permissions are required for this action", Toast.LENGTH_LONG) - return - } - DownloadService(dialog.context) { subject = type } - } - - // --- - - private fun isABDevice() = ShellUtils - .fastCmd("grep_prop ro.build.ab_update") - .let { it.isNotEmpty() && it.toBoolean() } - -}