package Ġru . surf studio . standard . ui . view . keyboard Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . content . with Styled Attributes Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġru . surf studio . android . easy adapter . Easy Adapter Ċ import Ġru . surf studio . android . easy adapter . ItemList Ċ import Ġru . surf studio . android . template . base _ feature . R Ċ import Ġru . surf studio . android . util k tx . util . View Util Ċ import Ġru . surf studio . standard . ui . view . keyboard . Custom Keyboard Utils . get Keys List Ċ import Ġru . surf studio . standard . ui . view . keyboard . controller . Empty Key Controller Ċ import Ġru . surf studio . standard . ui . view . keyboard . controller . Icon Controller Ċ import Ġru . surf studio . standard . ui . view . keyboard . controller . Key Controller Ċ Ċ /** Ċ Ġ* ĠÐĴ ÑĮÑİ ĠÐº Ð» Ð°Ð² Ð¸ Ð°ÑĤ Ñĥ ÑĢÑĭ Ċ Ġ* Ġtodo ĠÑĥ Ð´Ð°Ð» Ð¸ÑĤÑĮ , ĠÐµÑģÐ»Ð¸ ĠÐ½Ðµ ĠÑĤÑĢ ÐµÐ± Ñĥ ÐµÑĤÑģÑı ĠÐ½Ð° ĠÐ¿ÑĢÐ¾ ÐµÐºÑĤ Ðµ Ċ Ġ*/ Ċ class ĠKeyboard View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġdef Style Attrs : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠRecyclerView ( context , Ġattrs , Ġdef Style Attrs ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÐļ Ð½ Ð¾Ð¿ ÐºÐ° ĠÑģÐ» ÐµÐ² Ð° ĠÐ¾ÑĤ ĠÐº Ð½ Ð¾Ð¿ ÐºÐ¸ ĠÐ½ Ð¾Ð» Ñı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġbutton Left : ĠKey Ġ= ĠEmpty Key () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÐļ Ð½ Ð¾Ð¿ ÐºÐ° ĠÑģÐ¿ ÑĢÐ°Ð² Ð° ĠÐ¾ÑĤ ĠÐº Ð½ Ð¾Ð¿ ÐºÐ¸ ĠÐ½ Ð¾Ð» Ñı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġbutton Right : ĠKey Ġ= ĠEmpty Key () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÐ ¤ Ð» Ð°Ð³ ĠÐ¿Ð¾Ðº Ð°Ð· ÑĭÐ² Ð°ÐµÑĤ ĠÐ½ ÑĥÐ¶ Ð½Ð¾ ĠÐ» Ð¸ ĠÐ¾ÑĤ Ð¾Ð±ÑĢÐ°Ð¶ Ð°ÑĤÑĮ ĠÐ½Ð° ĠÐº Ð½ Ð¾Ð¿ ÐºÐ° Ñħ ĠÐ± Ñĥ Ðº Ð² Ñĭ ĠÐ¿Ð¾Ð´ ĠÑĨ Ð¸ÑĦ ÑĢÐ°Ð¼ Ð¸ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġare Letters Visible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Controller . is Subtitle Visible Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÐŀ Ð± ÑĢÐ°Ð±Ð¾ÑĤ Ñĩ Ð¸Ðº ĠÐ½ Ð°Ð¶ Ð°ÑĤ Ð¸Ñı ĠÑĨ Ð¸ÑĦ ÑĢÑĭ ĠÐ½Ð° ĠÐº Ð» Ð°Ð² Ð¸ Ð°ÑĤ ÑĥÑĢ Ðµ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġon Number Key Click : Ġ( code : ĠString ) Ġ-> ĠUnit Ġ= Ġ{} ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġeasy Adapter Ġ= ĠEasy Adapter (). apply Ġ{ Ġis First In visible Item Enabled Ġ= Ġtrue Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġkey Controller : ĠKey Controller ĊĠĠĠ Ġprivate Ġval Ġicon Controller Ġ= ĠIcon Controller () ĊĠĠĠ Ġprivate Ġval Ġempty Controller Ġ= ĠEmpty Key Controller () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Attrs ( attrs ) ĊĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠGrid LayoutManager ( context , ĠKEY BOARD _ COLUMNS _ COUNT ) ĊĠĠĠĠĠĠĠ Ġover Scroll Mode Ġ= ĠView . OVER _ SCROLL _ NE VER ĊĠĠĠĠĠĠĠ Ġadapter Ġ= Ġeasy Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrender () Ġ{ ĊĠĠĠĠĠĠĠ Ġeasy Adapter . set Items ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠItem List . create (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Keys List ( on Number Key Click , Ġbutton Left , Ġbutton Right ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠText Key Ġ-> Ġadd ( it , Ġkey Controller ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠIcon Key Ġ-> Ġadd ( it , Ġicon Controller ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠEmpty Key Ġ-> Ġadd ( it , Ġempty Controller ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Attrs ( attrs : ĠAttributeSet ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . with Styled Attributes ( attrs , ĠR . style able . Keyboard View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Controller Ġ= ĠKey Controller ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle TextColor Ġ= Ġget Color ( R . style able . Keyboard View _ title TextColor , ĠKey View . DEFAULT _ TITLE _ COLOR ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubtitle TextColor Ġ= Ġget Color ( R . style able . Keyboard View _ subtitle TextColor , ĠKey View . DEFAULT _ SUB TITLE _ COLOR ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Text Size Ġ= Ġget Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Keyboard View _ title Text Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Util . convert Sp To Px ( context , ĠKey View . DEFAULT _ TITLE _ SIZE _ SP ). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubtitle Text Size Ġ= Ġget Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Keyboard View _ subtitle Text Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Util . convert Sp To Px ( context , ĠKey View . DEFAULT _ SUB TITLE _ SIZE _ SP ). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Font Ġ= Ġget ResourceId ( R . style able . Keyboard View _ title Font , ĠKey View . UN DEFINE _ ATTR ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubtitle Font Ġ= Ġget ResourceId ( R . style able . Keyboard View _ subtitle Font , ĠKey View . UN DEFINE _ ATTR ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubtitle Margin Ġ= Ġget Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Keyboard View _ subtitle _ margin , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Util . convert Dp To Px ( context , ĠKey View . DEFAULT _ SUB TITLE _ M ARGIN _ DP ). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġare Letters Visible Ġ= Ġget Boolean ( R . style able . Keyboard View _ are Letters Visible , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY BOARD _ COLUMNS _ COUNT Ġ= Ġ 3 ĊĠĠĠ Ġ} Ċ } Ċ