/* Ċ Ġ* ĠLicensed Ġto Ġthe ĠLight ĠTeam ĠSoftware Ġ( Light ĠTeam ) Ġunder Ġone Ġor Ġmore Ċ Ġ* Ġcontributor Ġlicense Ġagreements . Ġ ĠSee Ġthe ĠNOTICE Ġfile Ġdistributed Ġwith Ċ Ġ* Ġthis Ġwork Ġfor Ġadditional Ġinformation Ġregarding Ġcopyright Ġownership . Ċ Ġ* ĠThe ĠLight ĠTeam Ġlicenses Ġthis Ġfile Ġto ĠYou Ġ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 . light team . mod pe ide . presentation . main . custom view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . light team . mod pe ide . R Ċ Ċ class ĠExtended Keyboard ( context : ĠContext , Ġattribute Set : ĠAttributeSet ) Ġ: ĠRecyclerView ( context , Ġattribute Set ) Ġ{ ĊĊĠĠĠ Ġinterface ĠOn Key Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Key ( char : ĠString ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġkey Adapter : ĠKey Adapter ĊĊĠĠĠ Ġfun Ġset Key Listener ( key Listener : ĠOn Key Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġkey Adapter Ġ= ĠKey Adapter ( key Listener ) ĊĠĠĠĠĠĠĠ Ġkey Adapter . keys Ġ= ĠarrayOf (" ĠĠ Ġ", Ġ"-- Ġ", Ġ" (", Ġ" )", Ġ"=", Ġ"[", Ġ" ]", Ġ"+", Ġ",", Ġ". "," & ", Ġ" !", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"-", Ġ"/", Ġ"*", Ġ" ?", Ġ" :", Ġ"_ ", Ġ"\\ ", Ġ"| ", Ġ"< ", Ġ"> ", Ġ Ġ"{ ", Ġ" }", Ġ"; ") ĊĠĠĠĠĠĠĠ Ġadapter Ġ= Ġkey Adapter ĊĠĠĠĠĠĠĠ Ġadapter ?. notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠKey Adapter ( private Ġval Ġkey Listener : ĠOn Key Listener ) Ġ: ĠRecyclerView . Adapter < Key Adapter . ViewHolder >() Ġ{ ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġvar Ġkeys : ĠArray < String > Ġ= ĠarrayOf () ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . item _ key , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ= Ġholder . bind ( keys [ position ]) ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġkeys . size ĊĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval ĠtextView : ĠTextView Ġ= ĠitemView . findViewById ( R . id . item _ title ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġbind ( char : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . text Ġ= Ġchar ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Listener . on Key ( char ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }