From d5046ab431b1a1a532572d6caf0584be257d82f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=BE=E7=A5=A5=E4=BF=8A?= Date: Fri, 16 Aug 2024 14:04:09 +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=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../suspendwindow/window/NDownloadSuspendIconWindow.kt | 5 +++-- .../suspendwindow/window/NDownloadSuspendWindow.kt | 10 ++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) 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 77717dde4e..deb50181f4 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,9 +71,10 @@ class NDownloadSuspendIconWindow(context: Context, suspend: Boolean = true, priv this.onDragListener = onDragListener } - override fun detach() { - super.detach() + override fun onDetach() { root.removeCallbacks(initRunnable) + edgeAnimator.removeAllUpdateListeners() + edgeAnimator.removeAllListeners() edgeAnimator.cancel() } diff --git a/app/src/main/java/com/gh/ndownload/suspendwindow/window/NDownloadSuspendWindow.kt b/app/src/main/java/com/gh/ndownload/suspendwindow/window/NDownloadSuspendWindow.kt index 5285bd6cf8..7bd8fe77f7 100644 --- a/app/src/main/java/com/gh/ndownload/suspendwindow/window/NDownloadSuspendWindow.kt +++ b/app/src/main/java/com/gh/ndownload/suspendwindow/window/NDownloadSuspendWindow.kt @@ -46,22 +46,28 @@ abstract class NDownloadSuspendWindow( onViewCreated(it) } - open fun attach() { + fun attach() { if (!isAttached) { _isAttached = true windowManager.addView(root, layoutParams) context.registerComponentCallbacks(this) + onAttach() } } - open fun detach() { + fun detach() { if (isAttached) { _isAttached = false + onDetach() context.unregisterComponentCallbacks(this) windowManager.removeView(root) } } + protected open fun onAttach() = Unit + + protected open fun onDetach() = Unit + protected open fun onViewCreated(view: T) = Unit override fun onConfigurationChanged(configuration: Configuration) = Unit