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