@@ -46,6 +46,7 @@ import android.text.style.SuggestionSpan
4646import android.util.AttributeSet
4747import android.util.DisplayMetrics
4848import android.util.TypedValue
49+ import android.view.DragEvent
4950import android.view.KeyEvent
5051import android.view.LayoutInflater
5152import android.view.MotionEvent
@@ -254,6 +255,7 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
254255 private var onVideoInfoRequestedListener: OnVideoInfoRequestedListener ? = null
255256 private var onAztecKeyListener: OnAztecKeyListener ? = null
256257 private var onVisibilityChangeListener: OnVisibilityChangeListener ? = null
258+ private var dragEventManager: DragEventManager ? = null
257259 var externalLogger: AztecLog .ExternalLogger ? = null
258260
259261 private var isViewInitialized = false
@@ -356,6 +358,19 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
356358 fun beforeMediaDeleted (attrs : AztecAttributes ) {}
357359 }
358360
361+ interface DragEventManager {
362+ fun shouldProcessDragEvent (event : DragEvent ? ): Boolean
363+ }
364+
365+ override fun onDragEvent (event : DragEvent ? ): Boolean {
366+ val shouldProcessDragEvent = dragEventManager?.shouldProcessDragEvent(event)
367+ if (shouldProcessDragEvent == true ) {
368+ return super .onDragEvent(event)
369+ } else {
370+ return false
371+ }
372+ }
373+
359374 /* *
360375 * Listens to keyboard events and calls the `shouldOverrideBackSpace` before each backspace event.
361376 */
@@ -1209,6 +1224,10 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
12091224 this .onVisibilityChangeListener = listener
12101225 }
12111226
1227+ fun setDragEventManager (listener : DragEventManager ) {
1228+ this .dragEventManager = listener
1229+ }
1230+
12121231 override fun onKeyPreIme (keyCode : Int , event : KeyEvent ): Boolean {
12131232 if (event.keyCode == KeyEvent .KEYCODE_BACK && event.action == KeyEvent .ACTION_UP ) {
12141233 onImeBackListener?.onImeBack()
0 commit comments