// ĠCopyright Ġ( c ) Ġ 2 0 2 0 - 2 0 2 2 Ġg in lo . net ĠGmbH Ċ package Ġeu . gin lo _ apps . gin lo . fragment . emo j ip icker Ċ Ċ import Ġandroid . util . L ru Cache Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . view pager . widget . Pager Adapter Ċ import Ġeu . gin lo _ apps . gin lo . R Ċ import Ġeu . gin lo _ apps . gin lo . model . Emoji Ċ Ċ class ĠEmoji Pager Adapter ( ĊĠĠĠ Ġprivate Ġval Ġcontent List : ĠList < String >, ĊĠĠĠ Ġprivate Ġval Ġemoji List : ĠList < Emoji >, ĊĠĠĠ Ġprivate Ġvar Ġrecently Used : ĠL ru Cache < Int , ĠString >, ĊĠĠĠ Ġprivate Ġval Ġemoji Columns : ĠInt , ĊĠĠĠ Ġprivate Ġval ĠonClick : Ġ( String ) Ġ-> ĠUnit Ċ ): ĠP ager Adapter () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġis View From Object ( view : ĠView , Ġ` object `: ĠAny ): ĠBoolean Ġ= Ġview Ġ== Ġ` object ` ĊĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ= Ġcontent List . size Ġ+ Ġ 1 ĊĊĠĠĠ Ġoverride Ġfun Ġinstantiate Item ( container : ĠViewGroup , Ġposition : ĠInt ): ĠAny Ġ= ĊĠĠĠĠĠĠĠ Ġwith ( LayoutInflater . from ( container . context ). inflate ( R . layout . emoji _ picker _ page , Ġcontainer , Ġfalse )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Adapter ( this , Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . addView ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdestroy Item ( container : ĠViewGroup , Ġposition : ĠInt , Ġ` object `: ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontainer . remove View (` object ` Ġas ĠView ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Adapter ( view : ĠView , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġ Ġ( view . findViewById ( R . id . emoji _ picker _ content ) Ġas ĠRecyclerView ) ĊĠĠĠĠĠĠĠ Ġcontent . layout Manager Ġ= ĠGrid LayoutManager ( view . context , Ġemoji Columns ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent . adapter Ġ= ĠEmoji Picker Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecently Used . snapshot (). values . to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠEmoji ("", Ġit , Ġ"", Ġfalse ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent . adapter Ġ= ĠEmoji Picker Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemoji List . filter Ġ{ Ġit . category Ġ== Ġcontent List [ position Ġ- Ġ 1 ] Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecently Used . put ( recent ly Used . put Count (), Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ