package Ġcom . em og oth . android . phone . m imi . span Ċ Ċ import Ġandroid . content . Clip Data Ċ import Ġandroid . content . Clipboard Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġandroid . text . Text Paint Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġcom . em og oth . android . phone . m imi . R Ċ import Ġcom . em og oth . android . phone . m imi . util . M imi Util Ċ import Ġcom . google . android . material . dialog . Material AlertDialog Builder Ċ Ċ class ĠY outube Link Span ( private Ġval Ġvideo Id : ĠString , Ġprivate Ġval Ġlink Color : ĠInt ) Ġ: ĠLong Clickable Span () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġupdate Draw State ( ds : ĠText Paint ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . update Draw State ( ds ) ĊĠĠĠĠĠĠĠ Ġds . is Underline Text Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġds . color Ġ= Ġlink Color ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( widget : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġopen Link ( widget . context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Choice Dialog ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠM imi Util . https () Ġ+ Ġ" youtube . com / watch ? v =" Ġ+ Ġvideo Id ĊĠĠĠĠĠĠĠ Ġval Ġhandler Ġ= ĠHandler ( Looper . get Main Looper ()) ĊĠĠĠĠĠĠĠ Ġhandler . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial AlertDialog Builder ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . youtube _ link ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Items ( R . array . youtube _ dialog _ list ) Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( which Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Link ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclipboard Manager Ġ= Ġcontext . getSystem Service ( Context . CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclipboard Manager . set Primary Clip ( Clip Data . new Plain Text (" youtube _ link ", Ġurl )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , ĠR . string . link _ copied _ to _ clipboard , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cancel able ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Canceled On Touch Outside ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Link ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠM imi Util . https () Ġ+ Ġ" youtube . com / watch ? v =" Ġ+ Ġvideo Id ĊĠĠĠĠĠĠĠ Ġval Ġopen Intent Ġ= ĠIntent ( Intent . ACTION _ VIEW ) ĊĠĠĠĠĠĠĠ Ġopen Intent . data Ġ= ĠUri . parse ( url ) ĊĠĠĠĠĠĠĠ Ġcontext . startActivity ( open Intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Long Click ( v : ĠView ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Choice Dialog ( v . context ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ Ċ }