/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . example . android . people . ui . chat Ċ Ċ // Ġimport Ġandroidx . core . widget . TextView Rich Content Receiver Compat Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . appcompat . widget . AppCompat EditText Ċ import Ġcom . example . android . people . R Ċ Ċ type alias ĠOn Image Added Listener Ġ= Ġ( content Uri : ĠUri , ĠmimeType : ĠString , Ġlabel : ĠString ) Ġ-> ĠUnit Ċ Ċ @ Suppress (" unused ") Ċ private Ġval ĠSUPPORT ED _ MIME _ TYPES Ġ= Ġset Of ( ĊĠĠĠ Ġ" image / jpeg ", ĊĠĠĠ Ġ" image / jpg ", ĊĠĠĠ Ġ" image / png ", ĊĠĠĠ Ġ" image / gif " Ċ ) Ċ Ċ /** Ċ Ġ* ĠA Ġcustom ĠEditText Ġwith Ġthe Ġability Ġto Ġhandle Ġcopy Ġ& Ġpaste Ġof Ġtexts Ġand Ġimages . ĠThis Ġalso Ġworks Ċ Ġ* Ġwith Ġa Ġsoftware Ġkeyboard Ġthat Ġcan Ġinsert Ġimages . Ċ Ġ*/ Ċ class ĠChat EditText Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= ĠR . attr . edit TextStyle Ċ ) Ġ: ĠAppCompat EditText ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġon Image Added Listener : ĠOn Image Added Listener ? Ġ= Ġnull Ċ Ċ // Ġ Ġinit Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġrich Content Receiver Compat Ġ= Ġobject Ġ: ĠTextView Rich Content Receiver Compat () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Receive ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView : ĠTextView , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclip : ĠClip Data , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource : ĠInt , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflags : ĠInt Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠmimeType Ġ= ĠSUPPORT ED _ MIME _ TYPES . find Ġ{ Ġclip . description . has MimeType ( it ) Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( mime Type Ġ!= Ġnull Ġ&& Ġclip . item Count Ġ> Ġ 0 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Image Added Listener ?. invoke ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclip . getItem At ( 0 ). uri , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmimeType , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclip . description . label . toString () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Receive ( textView , Ġclip , Ġsource , Ġflags ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Supported Mime Types (): ĠSet < String > Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSUPPORT ED _ MIME _ TYPES Ġ+ Ġsuper . get Supported Mime Types () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ġ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġa Ġlistener Ġto Ġbe Ġcalled Ġwhen Ġa Ġnew Ġimage Ġis Ġadded . ĠThis Ġmight Ġbe Ġcoming Ġfrom Ġcopy Ġ& ĊĠĠĠĠ Ġ* Ġpaste Ġor Ġa Ġsoftware Ġkeyboard Ġinserting Ġan Ġimage . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset On Image Added Listener ( listener : ĠOn Image Added Listener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Image Added Listener Ġ= Ġlistener ĊĠĠĠ Ġ} Ċ } Ċ