From 2be52d21ee887ce3c43cc5cb05751b5c3328c596 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=BE=E7=A5=A5=E4=BF=8A?= Date: Tue, 20 Aug 2024 14:02:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=82=AC=E6=B5=AE=E7=AA=97Detach?= =?UTF-8?q?=E6=97=B6=E6=9C=BA=E9=97=AE=E9=A2=98=E9=80=A0=E6=88=90=E7=9A=84?= =?UTF-8?q?=E5=B4=A9=E6=BA=832?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../suspendwindow/NDownloadSuspendWindowController.kt | 2 ++ .../suspendwindow/view/NDownloadSuspendIconView.kt | 2 +- .../suspendwindow/window/NDownloadSuspendIconWindow.kt | 9 +++++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/gh/ndownload/suspendwindow/NDownloadSuspendWindowController.kt b/app/src/main/java/com/gh/ndownload/suspendwindow/NDownloadSuspendWindowController.kt index 9b78c98171..dcbae212b3 100644 --- a/app/src/main/java/com/gh/ndownload/suspendwindow/NDownloadSuspendWindowController.kt +++ b/app/src/main/java/com/gh/ndownload/suspendwindow/NDownloadSuspendWindowController.kt @@ -93,6 +93,8 @@ class NDownloadSuspendWindowController(private val application: Application) : private fun onDetachFromUi() { closeWindow.detach() iconWindow.detach() + iconWindow.setOnDragListener(null) + iconWindow.setOnIconClickListener(null) } private fun initDownloadCount() { diff --git a/app/src/main/java/com/gh/ndownload/suspendwindow/view/NDownloadSuspendIconView.kt b/app/src/main/java/com/gh/ndownload/suspendwindow/view/NDownloadSuspendIconView.kt index 574d36f67d..7376695c52 100644 --- a/app/src/main/java/com/gh/ndownload/suspendwindow/view/NDownloadSuspendIconView.kt +++ b/app/src/main/java/com/gh/ndownload/suspendwindow/view/NDownloadSuspendIconView.kt @@ -109,7 +109,7 @@ class NDownloadSuspendIconView @JvmOverloads constructor( addView(it, layoutParams) } - fun setOnIconClickListener(listener: OnIconClickListener) { + fun setOnIconClickListener(listener: OnIconClickListener?) { this.onIconClickListener = listener } diff --git a/app/src/main/java/com/gh/ndownload/suspendwindow/window/NDownloadSuspendIconWindow.kt b/app/src/main/java/com/gh/ndownload/suspendwindow/window/NDownloadSuspendIconWindow.kt index deb50181f4..5374e0cece 100644 --- a/app/src/main/java/com/gh/ndownload/suspendwindow/window/NDownloadSuspendIconWindow.kt +++ b/app/src/main/java/com/gh/ndownload/suspendwindow/window/NDownloadSuspendIconWindow.kt @@ -71,8 +71,14 @@ class NDownloadSuspendIconWindow(context: Context, suspend: Boolean = true, priv this.onDragListener = onDragListener } + override fun onAttach() { + super.onAttach() + if (draggable) root.setOnDragListener(this) + } + override fun onDetach() { root.removeCallbacks(initRunnable) + if (draggable) root.setOnDragListener(null) edgeAnimator.removeAllUpdateListeners() edgeAnimator.removeAllListeners() edgeAnimator.cancel() @@ -81,7 +87,6 @@ class NDownloadSuspendIconWindow(context: Context, suspend: Boolean = true, priv @SuppressLint("InflateParams") override fun onCreateView(context: Context): NDownloadSuspendIconLayout = NDownloadSuspendIconLayout(context).also { - if (draggable) it.setOnDragListener(this) it.clipChildren = false it.clipToPadding = false } @@ -136,7 +141,7 @@ class NDownloadSuspendIconWindow(context: Context, suspend: Boolean = true, priv root.icon.setDownloadIconUrl(url) } - fun setOnIconClickListener(listener: NDownloadSuspendIconView.OnIconClickListener) { + fun setOnIconClickListener(listener: NDownloadSuspendIconView.OnIconClickListener?) { root.icon.setOnIconClickListener(listener) }