package Ġcom . example . drag remote control Ċ Ċ import Ġandroid . content . Clip Data Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . H aptic Feedback Constants Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġdb _ button ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= ĠDrag gable Info ( R . mip map . offer ed _ cursor , Ġ- 1 f , Ġ- 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġinfo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On Drag Listener ( dr ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Drag ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Drag ( view : ĠView ) Ġ: Boolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtag g : ĠDrag gable Info ? Ġ= Ġview . tag Ġas ĠDrag gable Info ĊĠĠĠĠĠĠĠ ĠLog . i (" BLUE ", Ġtag g . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" data ", Ġtag g ); ĊĠĠĠĠĠĠĠ Ġval Ġdrag Data Ġ= ĠClip Data . new Intent (" value ", Ġintent ) ĊĠĠĠĠĠĠĠ Ġval Ġmy Shadow Ġ= ĠView . Drag Shadow Builder ( view ) ĊĠĠĠĠĠĠĠ Ġ// Ġ éľ ĩ åĬ¨ åıį é¦ Ī ï¼Į ä¸įéľĢè¦ģ éľ ĩ åĬ¨ æĿĥéĻĲ ĊĠĠĠĠĠĠĠ Ġview . perform H aptic Feedback ( H aptic Feedback Constants . LONG _ PRESS , ĠH aptic Feedback Constants . FLAG _ IGNORE _ GLOBAL _ SETTING ); ĊĠĠĠĠĠĠĠ Ġreturn Ġview . start Drag And Drop ( drag Data , Ġmy Shadow , Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . DR AG _ FLAG _ GLOBAL Ġor ĠView . DR AG _ FLAG _ GLOBAL _ URI _ READ Ġor ĠView . DR AG _ FLAG _ GLOBAL _ URI _ WRITE ); ĊĠĠĠ Ġ} Ċ }