Updated downloading magisk to pull the zip from cache if eligible
This commit is contained in:
parent
4c8f357978
commit
188ea2644a
@ -15,9 +15,11 @@ import com.topjohnwu.magisk.utils.Utils
|
||||
import com.topjohnwu.magisk.view.ProgressNotification
|
||||
import com.topjohnwu.magisk.view.SnackbarMaker
|
||||
import com.topjohnwu.net.Networking
|
||||
import com.topjohnwu.superuser.ShellUtils
|
||||
import java.io.File
|
||||
|
||||
internal class InstallMethodDialog(activity: MagiskActivity<*, *>, options: List<String>) : AlertDialog.Builder(activity) {
|
||||
internal class InstallMethodDialog(activity: MagiskActivity<*, *>, options: List<String>) :
|
||||
AlertDialog.Builder(activity) {
|
||||
|
||||
init {
|
||||
setTitle(R.string.select_method)
|
||||
@ -27,7 +29,7 @@ internal class InstallMethodDialog(activity: MagiskActivity<*, *>, options: List
|
||||
1 -> patchBoot(activity)
|
||||
2 -> {
|
||||
val intent = Intent(activity, ClassMap[FlashActivity::class.java])
|
||||
.putExtra(Const.Key.FLASH_ACTION, Const.Value.FLASH_MAGISK)
|
||||
.putExtra(Const.Key.FLASH_ACTION, Const.Value.FLASH_MAGISK)
|
||||
activity.startActivity(intent)
|
||||
}
|
||||
3 -> installInactiveSlot(activity)
|
||||
@ -40,13 +42,13 @@ internal class InstallMethodDialog(activity: MagiskActivity<*, *>, options: List
|
||||
onSuccess {
|
||||
Utils.toast(R.string.patch_file_msg, Toast.LENGTH_LONG)
|
||||
val intent = Intent(Intent.ACTION_GET_CONTENT)
|
||||
.setType("*/*")
|
||||
.addCategory(Intent.CATEGORY_OPENABLE)
|
||||
.setType("*/*")
|
||||
.addCategory(Intent.CATEGORY_OPENABLE)
|
||||
activity.startActivityForResult(intent, Const.ID.SELECT_BOOT) { resultCode, data ->
|
||||
if (resultCode == Activity.RESULT_OK && data != null) {
|
||||
val i = Intent(this, ClassMap[FlashActivity::class.java])
|
||||
.setData(data.data)
|
||||
.putExtra(Const.Key.FLASH_ACTION, Const.Value.PATCH_FILE)
|
||||
.setData(data.data)
|
||||
.putExtra(Const.Key.FLASH_ACTION, Const.Value.PATCH_FILE)
|
||||
startActivity(i)
|
||||
}
|
||||
}
|
||||
@ -60,31 +62,45 @@ internal class InstallMethodDialog(activity: MagiskActivity<*, *>, options: List
|
||||
val filename = "Magisk-v${Info.remote.magisk.version}" +
|
||||
"(${Info.remote.magisk.versionCode}).zip"
|
||||
val zip = File(Const.EXTERNAL_PATH, filename)
|
||||
val progress = ProgressNotification(filename)
|
||||
Networking.get(Info.remote.magisk.link)
|
||||
val cachedZip = File(activity.cacheDir, "magisk.zip")
|
||||
|
||||
fun onSuccess() {
|
||||
SnackbarMaker.make(
|
||||
activity,
|
||||
activity.getString(R.string.internal_storage, "/Download/$filename"),
|
||||
Snackbar.LENGTH_LONG
|
||||
).show()
|
||||
}
|
||||
|
||||
if (ShellUtils.checkSum("MD5", cachedZip, Info.remote.magisk.hash)) {
|
||||
cachedZip.copyTo(zip, true)
|
||||
onSuccess()
|
||||
} else {
|
||||
val progress = ProgressNotification(filename)
|
||||
Networking.get(Info.remote.magisk.link)
|
||||
.setDownloadProgressListener(progress)
|
||||
.setErrorHandler { _, _ -> progress.dlFail() }
|
||||
.getAsFile(zip) {
|
||||
progress.dlDone()
|
||||
SnackbarMaker.make(activity,
|
||||
activity.getString(R.string.internal_storage, "/Download/$filename"),
|
||||
Snackbar.LENGTH_LONG).show()
|
||||
onSuccess()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun installInactiveSlot(activity: MagiskActivity<*, *>) {
|
||||
CustomAlertDialog(activity)
|
||||
.setTitle(R.string.warning)
|
||||
.setMessage(R.string.install_inactive_slot_msg)
|
||||
.setCancelable(true)
|
||||
.setPositiveButton(R.string.yes) { _, _ ->
|
||||
val intent = Intent(activity, ClassMap[FlashActivity::class.java])
|
||||
.putExtra(Const.Key.FLASH_ACTION, Const.Value.FLASH_INACTIVE_SLOT)
|
||||
activity.startActivity(intent)
|
||||
}
|
||||
.setNegativeButton(R.string.no_thanks, null)
|
||||
.show()
|
||||
.setTitle(R.string.warning)
|
||||
.setMessage(R.string.install_inactive_slot_msg)
|
||||
.setCancelable(true)
|
||||
.setPositiveButton(R.string.yes) { _, _ ->
|
||||
val intent = Intent(activity, ClassMap[FlashActivity::class.java])
|
||||
.putExtra(Const.Key.FLASH_ACTION, Const.Value.FLASH_INACTIVE_SLOT)
|
||||
activity.startActivity(intent)
|
||||
}
|
||||
.setNegativeButton(R.string.no_thanks, null)
|
||||
.show()
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user