package Ġcom . mat termost . paste input Ċ Ċ import Ġandroid . content . Clipboard Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . util . Patterns Ċ import Ġandroid . webkit . MimeType Map Ċ import Ġandroid . webkit . URL Util Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġcom . facebook . react . bridge . Arguments Ċ import Ġcom . facebook . react . bridge . React Context Ċ import Ġcom . facebook . react . bridge . Writable Array Ċ import Ġcom . facebook . react . bridge . Writable Map Ċ import Ġcom . facebook . react . u im an ager . events . RCT EventEmitter Ċ import Ġjava . io . FileNotFoundException Ċ Ċ class ĠP aste Input Listener ( edit Text : ĠP aste Input EditText ) Ġ: ĠIP aste Input Listener Ġ{ ĊĠ Ġval Ġm EditText Ġ= Ġedit Text ĊĊĠ Ġ@ Requires Api ( Build . VERSION _ CODES . KIT K AT ) ĊĠ Ġoverride Ġfun Ġon Paste ( item Uri : ĠUri ) Ġ{ ĊĠĠĠ Ġval Ġreact Context Ġ= Ġm EditText . context Ġas ĠReact Context ĊĠĠĠ Ġval Ġuri MimeType Ġ= Ġreact Context . content Resolver . getType ( item Uri ) Ġ?: Ġreturn ĊĊĠĠĠ Ġvar Ġuri String : ĠString Ġ= Ġitem Uri . toString () ĊĠĠĠ Ġvar Ġextension : ĠString ĊĠĠĠ Ġvar ĠmimeType : ĠString ĊĠĠĠ Ġvar ĠfileName : ĠString ĊĠĠĠ Ġvar ĠfileSize : ĠLong ĊĠĠĠ Ġvar Ġfiles : ĠWrit able Array ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġerror : ĠWrit able Map ? Ġ= Ġnull ĊĊĠĠĠ Ġ// ĠSpecial Ġhandle Ġfor ĠGoogle Ġdocs ĊĠĠĠ Ġif Ġ( uri String . equals (" content :// com . google . android . apps . docs . editor s . k ix . editor s . clipboard ")) Ġ{ ĊĠĠĠĠĠ Ġval Ġclipboard Manager Ġ= Ġreact Context . getSystem Service ( Context . CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager ĊĠĠĠĠĠ Ġval Ġclip Data Ġ= Ġclipboard Manager . primary Clip Ġ?: Ġreturn ĊĠĠĠĠĠ Ġval Ġitem Ġ= Ġclip Data . getItem At ( 0 ) Ġ?: Ġreturn ĊĠĠĠĠĠ Ġval Ġhtml Text Ġ= Ġitem . html Text ĊĊĠĠĠĠĠ Ġ// ĠFind Ġuri Ġfrom Ġhtml ĊĠĠĠĠĠ Ġval Ġmatcher Ġ= ĠPattern s . WEB _ URL . matcher ( html Text ) ĊĠĠĠĠĠ Ġif Ġ( matcher . find ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġuri String Ġ= Ġhtml Text . substring ( matcher . start ( 1 ), Ġmatcher . end ()) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġif Ġ( uri String . startsWith (" http ")) Ġ{ ĊĠĠĠĠĠ Ġval Ġpast Image From Url Thread Ġ= ĠThread ( Paste Input File From Url ( react Context , Ġm EditText , Ġuri String )) ĊĠĠĠĠĠ Ġpast Image From Url Thread . start () ĊĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġuri String Ġ= ĠReal Path Util . get Real Path From URI ( react Context , Ġitem Uri ) Ġ?: Ġreturn ĊĠĠĠ Ġextension Ġ= ĠMime TypeMap . getFile Extension From Url ( uri String ) Ġ?: Ġreturn ĊĠĠĠ ĠmimeType Ġ= ĠMime TypeMap . get Singleton (). get MimeType From Extension ( extension ) Ġ?: Ġreturn ĊĠĠĠ ĠfileName Ġ= ĠURL Util . guess FileName ( uri String , Ġnull , ĠmimeType ) ĊĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġval Ġcontent Resolver Ġ= Ġreact Context . content Resolver ĊĠĠĠĠĠ Ġval Ġasset FileDescriptor Ġ= Ġcontent Resolver . open Asset FileDescriptor ( item Uri , Ġ" r ") Ġ?: Ġreturn ĊĠĠĠĠĠ Ġval Ġfile Ġ= ĠArguments . create Map () ĊĊĠĠĠĠĠ Ġfiles Ġ= ĠArguments . create Array () ĊĠĠĠĠĠ ĠfileSize Ġ= Ġasset FileDescriptor . length ĊĠĠĠĠĠ Ġfile . putString (" type ", ĠmimeType ) ĊĠĠĠĠĠ Ġfile . put Double (" file Size ", ĠfileSize . toDouble ()) ĊĠĠĠĠĠ Ġfile . putString (" fileName ", ĠfileName ) ĊĠĠĠĠĠ Ġfile . putString (" uri ", Ġ" file :// $ uri String ") ĊĊĠĠĠĠĠ Ġfiles . push Map ( file ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠFileNotFoundException ) Ġ{ ĊĠĠĠĠĠ Ġerror Ġ= ĠArguments . create Map () ĊĠĠĠĠĠ Ġerror . putString (" message ", Ġe . localized Message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġevent Ġ= ĠArguments . create Map () ĊĠĠĠ Ġevent . put Array (" data ", Ġfiles ) ĊĠĠĠ Ġevent . put Map (" error ", Ġerror ) ĊĊĠĠĠ Ġreact Context . get JS Module ( RCT EventEmitter :: class . java ) ĊĠĠĠĠĠ Ġ. receive Event ( m EditText . id , Ġ" on Paste ", Ġevent ) ĊĠ Ġ} Ċ } Ċ