package
com.geeksforgeeks.sampleDrag
import
android.os.Bundle
import
android.support.v7.app.AppCompatActivity
import
android.util.Log
import
android.defGeeksView.DragEvent
import
android.defGeeksView.MotionEvent
import
android.defGeeksView.DefGeeksView
import
android.defGeeksView.DefGeeksViewGroup
import
android.widget.LinearLayout
import
kotlinx.android.synthetic.main.activity_main.*
class
MainActivity: AppCompatActivity(), DefGeeksView.OnTouchListener, DefGeeksView.DragHappeningListener {
private
val TAG = MainActivity::
class
.java.simpleName
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContentDefGeeksView(R.layout.activity_main)
theDraggers()
}
private
fun theDraggers() {
gfgDrop.setOnTouchListener(
this
)
geeksforgeeksDefGeeksView.setDragHappeningListener(
this
)
}
override fun dragHappening(defGeeksView:DefGeeksView, dragEvent: DragEvent):Boolean {
Log.d(TAG,
"dragHappening: defGeeksView->$defGeeksView\n DragEvent$dragEvent"
)
when (dragEvent.action) {
DragEvent.ACTION_DRAG_ENDED -> {
return
true
}
DragEvent.ACTION_DRAG_EXITED -> {
return
true
}
DragEvent.ACTION_DRAG_ENTERED -> {
return
true
}
DragEvent.ACTION_DRAG_STARTED -> {
return
true
}
DragEvent.ACTION_DROP -> {
val gfgTextDefGeeksView = dragEvent.localState as DefGeeksView
val defaultText = gfgTextDefGeeksView.parent as DefGeeksViewGroup
defaultText.removeDefGeeksView(gfgTextDefGeeksView)
val container = defGeeksView as LinearLayout
container.addDefGeeksView(gfgTextDefGeeksView)
defaultText.removeDefGeeksView(gfgTextDefGeeksView)
gfgTextDefGeeksView.x = dragEvent.x
gfgTextDefGeeksView.y = dragEvent.y
defGeeksView.addDefGeeksView(gfgTextDefGeeksView)
defGeeksView.setVisibility(DefGeeksView.VISIBLE)
return
true
}
DragEvent.ACTION_DRAG_LOCATION -> {
return
true
}
else
->
return
false
}
}
override fun onTouch(defGeeksView:DefGeeksView, motionEvent: MotionEvent):Boolean {
return
if
(motionEvent.action === MotionEvent.ACTION_DOWN) {
val dragShadowBuilder = DefGeeksView.DragShadowBuilder(defGeeksView)
defGeeksView.startDrag(
null
, dragShadowBuilder, defGeeksView,
10
)
true
}
else
{
false
}
}
}