From 85e9f14e2ade146d3fc5a3ab23411d5f2c9e3082 Mon Sep 17 00:00:00 2001 From: Antoine POPINEAU Date: Sun, 12 Jul 2020 19:05:51 +0200 Subject: [PATCH] Cleaned up DisableableFrameLayout. --- .../github/apognu/otter/activities/MainActivity.kt | 13 ++++++------- ...tedFrameLayout.kt => DisableableFrameLayout.kt} | 14 +++++++------- 2 files changed, 13 insertions(+), 14 deletions(-) rename app/src/main/java/com/github/apognu/otter/views/{InterceptedFrameLayout.kt => DisableableFrameLayout.kt} (66%) diff --git a/app/src/main/java/com/github/apognu/otter/activities/MainActivity.kt b/app/src/main/java/com/github/apognu/otter/activities/MainActivity.kt index 5ce1fe1..e6a0726 100644 --- a/app/src/main/java/com/github/apognu/otter/activities/MainActivity.kt +++ b/app/src/main/java/com/github/apognu/otter/activities/MainActivity.kt @@ -78,15 +78,14 @@ class MainActivity : AppCompatActivity() { override fun onResume() { super.onResume() - (container as? DisableableFrameLayout)?.callback = object : DisableableFrameLayout.Callback { - override fun shouldRegisterTouch(): Boolean { - if (now_playing.isOpened()) { - now_playing.close() - return false - } + (container as? DisableableFrameLayout)?.setShouldRegisterTouch { _ -> + if (now_playing.isOpened()) { + now_playing.close() - return true + return@setShouldRegisterTouch false } + + true } favoritedRepository.update(this, lifecycleScope) diff --git a/app/src/main/java/com/github/apognu/otter/views/InterceptedFrameLayout.kt b/app/src/main/java/com/github/apognu/otter/views/DisableableFrameLayout.kt similarity index 66% rename from app/src/main/java/com/github/apognu/otter/views/InterceptedFrameLayout.kt rename to app/src/main/java/com/github/apognu/otter/views/DisableableFrameLayout.kt index 79f9ba8..dbbf92c 100644 --- a/app/src/main/java/com/github/apognu/otter/views/InterceptedFrameLayout.kt +++ b/app/src/main/java/com/github/apognu/otter/views/DisableableFrameLayout.kt @@ -6,21 +6,21 @@ import android.view.MotionEvent import android.widget.FrameLayout class DisableableFrameLayout : FrameLayout { - interface Callback { - fun shouldRegisterTouch(): Boolean - } - - var callback: Callback? = null + var callback: ((MotionEvent?) -> Boolean)? = null constructor(context: Context) : super(context) constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) constructor(context: Context, attrs: AttributeSet?, style: Int) : super(context, attrs, style) - override fun onInterceptTouchEvent(ev: MotionEvent?): Boolean { + override fun onInterceptTouchEvent(event: MotionEvent?): Boolean { callback?.let { - return !it.shouldRegisterTouch() + return !it(event) } return false } + + fun setShouldRegisterTouch(callback: (event: MotionEvent?) -> Boolean) { + this.callback = callback + } } \ No newline at end of file