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) }