package com.pitchedapps.frost.views import android.annotation.SuppressLint import android.content.Context import android.util.AttributeSet import android.view.MotionEvent import android.widget.FrameLayout import androidx.core.view.ViewCompat import androidx.customview.widget.ViewDragHelper class DragFrame @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : FrameLayout(context, attrs, defStyleAttr) { var dragHelper: ViewDragHelper? = null override fun onInterceptTouchEvent(event: MotionEvent): Boolean { return try { dragHelper?.shouldInterceptTouchEvent(event) ?: false } catch (e: Exception) { false } } @SuppressLint("ClickableViewAccessibility") override fun onTouchEvent(event: MotionEvent): Boolean { try { dragHelper?.processTouchEvent(event) ?: return false } catch (e: Exception) { return false } return true } override fun computeScroll() { super.computeScroll() if (dragHelper?.continueSettling(true) == true) { ViewCompat.postInvalidateOnAnimation(this) } } }