package Ġchat . rocket . android . widget . emoji Ċ Ċ import Ġandroid . text . Sp ann able String Ċ import Ġandroid . text . Sp anned Ċ Ċ class ĠEmoji Parser Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠParses Ġa Ġtext Ġstring Ġcontaining Ġunicode Ġcharacters Ġand / or Ġshort names Ġto Ġa Ġrendered ĊĠĠĠĠĠĠĠĠ Ġ* ĠSp ann able . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġtext ĠThe Ġtext Ġto Ġparse ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠA Ġrendered ĠSp ann able Ġcontaining Ġany Ġsupported Ġemoji . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġparse ( text : ĠCharSequence ): ĠCharSequence Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġunicode d Text Ġ= ĠEmoji Repository . short name To Unicode ( text , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp ann able String Ġ= ĠSp ann able String . valueOf ( unicode d Text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLook Ġfor Ġgroups Ġof Ġemo jis , Ġset Ġa ĠCustom Type face Span Ġwith Ġthe Ġemo j ione Ġfont ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlength Ġ= Ġsp ann able String . length ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġin Emoji Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġemoji Start Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġoffset Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( offset Ġ< Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode point Ġ= Ġunicode d Text . code Point At ( offset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= ĠCharacter . char Count ( code point ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( code point Ġ>= Ġ 0 x 2 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! in Emoji ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemoji Start Ġ= Ġoffset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin Emoji Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( in Emoji ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ann able String . set Span ( Emoji Type face Span (" sans - serif ", ĠEmoji Repository . cached Type face ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemoji Start , Ġoffset , ĠSp anned . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin Emoji Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Ġ+= Ġcount ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( offset Ġ>= Ġlength Ġ&& Ġin Emoji ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ann able String . set Span ( Emoji Type face Span (" sans - serif ", ĠEmoji Repository . cached Type face ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemoji Start , Ġoffset , ĠSp anned . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsp ann able String ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }