From ff828116bcc42a8992f9fea4b6e5cbd12bac0f91 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Thu, 5 Sep 2019 11:26:35 -0400 Subject: [PATCH] Only cache magisk zips --- .../main/java/com/topjohnwu/magisk/Config.kt | 2 -- .../model/download/RemoteFileService.kt | 31 ++++--------------- app/src/main/res/xml/app_settings.xml | 12 ------- 3 files changed, 6 insertions(+), 39 deletions(-) diff --git a/app/src/main/java/com/topjohnwu/magisk/Config.kt b/app/src/main/java/com/topjohnwu/magisk/Config.kt index 03db9c268..e6dddcbf9 100644 --- a/app/src/main/java/com/topjohnwu/magisk/Config.kt +++ b/app/src/main/java/com/topjohnwu/magisk/Config.kt @@ -47,7 +47,6 @@ object Config : PreferenceModel, DBConfig { const val DARK_THEME = "dark_theme" const val REPO_ORDER = "repo_order" const val SHOW_SYSTEM_APP = "show_system" - const val DOWNLOAD_CACHE = "download_cache" const val DOWNLOAD_PATH = "download_path" // system state @@ -101,7 +100,6 @@ object Config : PreferenceModel, DBConfig { if (Utils.isCanary) Value.CANARY_DEBUG_CHANNEL else Value.DEFAULT_CHANNEL - var isDownloadCacheEnabled by preference(Key.DOWNLOAD_CACHE, true) var downloadPath by preference(Key.DOWNLOAD_PATH, Environment.DIRECTORY_DOWNLOADS) var repoOrder by preference(Key.REPO_ORDER, Value.ORDER_DATE) diff --git a/app/src/main/java/com/topjohnwu/magisk/model/download/RemoteFileService.kt b/app/src/main/java/com/topjohnwu/magisk/model/download/RemoteFileService.kt index ab087f49c..84b5a6742 100644 --- a/app/src/main/java/com/topjohnwu/magisk/model/download/RemoteFileService.kt +++ b/app/src/main/java/com/topjohnwu/magisk/model/download/RemoteFileService.kt @@ -4,11 +4,9 @@ import android.app.Activity import android.content.Intent import androidx.core.app.NotificationCompat import com.skoumal.teanity.extensions.subscribeK -import com.topjohnwu.magisk.Config import com.topjohnwu.magisk.R import com.topjohnwu.magisk.data.network.GithubRawServices import com.topjohnwu.magisk.di.NullActivity -import com.topjohnwu.magisk.extensions.firstMap import com.topjohnwu.magisk.extensions.get import com.topjohnwu.magisk.extensions.writeTo import com.topjohnwu.magisk.model.entity.internal.DownloadSubject @@ -20,19 +18,12 @@ import io.reactivex.Completable import okhttp3.ResponseBody import org.koin.android.ext.android.inject import timber.log.Timber -import java.io.File import java.io.InputStream abstract class RemoteFileService : NotificationService() { private val service: GithubRawServices by inject() - private val supportedFolders - get() = listOf( - cacheDir, - Config.downloadDirectory - ) - override val defaultNotification: NotificationCompat.Builder get() = Notifications.progress(this, "") @@ -43,7 +34,7 @@ abstract class RemoteFileService : NotificationService() { // --- - private fun start(subject: DownloadSubject) = search(subject) + private fun start(subject: DownloadSubject) = checkExisting(subject) .onErrorResumeNext { download(subject) } .doOnSubscribe { update(subject.hashCode()) { it.setContentTitle(subject.title) } } .subscribeK(onError = { @@ -60,16 +51,12 @@ abstract class RemoteFileService : NotificationService() { } } - private fun search(subject: DownloadSubject) = Completable.fromAction { - if (!Config.isDownloadCacheEnabled || subject is Manager) { - throw IllegalStateException("The download cache is disabled") - } + private fun checkExisting(subject: DownloadSubject) = Completable.fromAction { + check(subject is Magisk) { "Download cache is disabled" } - supportedFolders.firstMap { it.find(subject.file.name) }.also { - if (subject is Magisk) { - if (!ShellUtils.checkSum("MD5", it, subject.magisk.md5)) { - throw IllegalStateException("The given file doesn't match the md5") - } + subject.file.also { + check(it.exists() && ShellUtils.checkSum("MD5", it, subject.magisk.md5)) { + "The given file does not match checksum" } } } @@ -88,12 +75,6 @@ abstract class RemoteFileService : NotificationService() { handleAPK(subject) } - // --- - - private fun File.find(name: String) = list() - ?.firstOrNull { it == name } - ?.let { File(this, it) } - private fun ResponseBody.toStream(id: Int): InputStream { val maxRaw = contentLength() val max = maxRaw / 1_000_000f diff --git a/app/src/main/res/xml/app_settings.xml b/app/src/main/res/xml/app_settings.xml index ad8004b03..27345d2d8 100644 --- a/app/src/main/res/xml/app_settings.xml +++ b/app/src/main/res/xml/app_settings.xml @@ -29,18 +29,6 @@ android:summary="@string/settings_restore_manager_summary" android:title="@string/settings_restore_manager_title" /> - - - - - -