From 6ef6e818146a536eb581405d19399551ddb2461a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Sat, 12 Sep 2026 13:23:14 +0100 Subject: [PATCH] Update dependency com.google.android.material:material to v1.14.0 (#3226) Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com> --- .../extension/installer/Installer.kt | 29 ++++++------------- .../extension/util/ExtensionInstaller.kt | 2 +- gradle/libs.versions.toml | 2 +- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/installer/Installer.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/installer/Installer.kt index 3a2200632..7a22871e2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/installer/Installer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/installer/Installer.kt @@ -1,17 +1,13 @@ package eu.kanade.tachiyomi.extension.installer import android.app.Service -import android.content.BroadcastReceiver -import android.content.Context -import android.content.Intent -import android.content.IntentFilter import android.net.Uri import androidx.annotation.CallSuper -import androidx.localbroadcastmanager.content.LocalBroadcastManager import eu.kanade.tachiyomi.extension.ExtensionManager import eu.kanade.tachiyomi.extension.model.InstallStep import uy.kohesive.injekt.injectLazy import java.util.Collections +import java.util.concurrent.CopyOnWriteArraySet import kotlin.concurrent.atomics.AtomicReference import kotlin.concurrent.atomics.ExperimentalAtomicApi @@ -26,12 +22,7 @@ abstract class Installer(private val service: Service) { private var waitingInstall = AtomicReference(null) private val queue = Collections.synchronizedList(mutableListOf()) - private val cancelReceiver = object : BroadcastReceiver() { - override fun onReceive(context: Context, intent: Intent) { - val downloadId = intent.getLongExtra(EXTRA_DOWNLOAD_ID, -1).takeIf { it >= 0 } ?: return - cancelQueue(downloadId) - } - } + private val cancelListener: (Long) -> Unit = { downloadId -> cancelQueue(downloadId) } /** * Installer readiness. If false, queue check will not run. @@ -114,7 +105,7 @@ abstract class Installer(private val service: Service) { */ @CallSuper open fun onDestroy() { - LocalBroadcastManager.getInstance(service).unregisterReceiver(cancelReceiver) + cancelListeners -= cancelListener queue.forEach { extensionManager.updateInstallStep(it.downloadId, InstallStep.Error) } queue.clear() waitingInstall.store(null) @@ -150,23 +141,21 @@ abstract class Installer(private val service: Service) { data class Entry(val downloadId: Long, val uri: Uri) init { - val filter = IntentFilter(ACTION_CANCEL_QUEUE) - LocalBroadcastManager.getInstance(service).registerReceiver(cancelReceiver, filter) + cancelListeners += cancelListener } companion object { - private const val ACTION_CANCEL_QUEUE = "Installer.action.CANCEL_QUEUE" - private const val EXTRA_DOWNLOAD_ID = "Installer.extra.DOWNLOAD_ID" + private val cancelListeners = CopyOnWriteArraySet<(Long) -> Unit>() /** * Attempts to cancel the installation entry for the provided download ID. * + * Runs on the calling thread, so the cancellation is done by the time this returns. + * * @param downloadId Download ID as known by [ExtensionManager] */ - fun cancelInstallQueue(context: Context, downloadId: Long) { - val intent = Intent(ACTION_CANCEL_QUEUE) - intent.putExtra(EXTRA_DOWNLOAD_ID, downloadId) - LocalBroadcastManager.getInstance(context).sendBroadcast(intent) + fun cancelInstallQueue(downloadId: Long) { + cancelListeners.forEach { it(downloadId) } } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstaller.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstaller.kt index 49a8f008a..8b7a59ab0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstaller.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstaller.kt @@ -160,7 +160,7 @@ class ExtensionInstaller( */ fun cancelInstall(pkgName: String) { activeJobs.remove(pkgName)?.cancel() - Installer.cancelInstallQueue(context, pkgName.hashCode().toLong()) + Installer.cancelInstallQueue(pkgName.hashCode().toLong()) } /** diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0f03b1ed0..ffd146c71 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -53,7 +53,7 @@ ktlint = "1.8.0" leakCanary = "2.14" logcat = "0.4" markdown = "0.45.0" -material = "1.12.0" +material = "1.14.0" materialKolor = "5.0.1" metro = "1.4.3" mockk = "1.14.11"