/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠPeter ĠKen ji ĠY aman aka Ċ Ġ* Ċ Ġ* Ġ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 . py am soft . f ridge . entry . create Ċ Ċ import Ġandroid . text . InputType Ċ import Ġandroid . view . KeyEvent Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . input method . Editor Info Ċ import Ġcom . py am soft . f ridge . entry . databinding . Create Entry Name Binding Ċ import Ġcom . py am soft . f ridge . ui . set Editable Ċ import Ġcom . py am soft . f ridge . ui . view . Ui EditText Delegate Ċ import Ġcom . py am soft . py d roid . arch . Base Ui View Ċ import Ġcom . py am soft . py d roid . arch . Ui Render Ċ import Ġjavax . inject . Inject Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠCreate Entry Name Ċ @ Inject Ċ internal Ġconstructor ( ĊĠĠĠ Ġparent : ĠViewGroup , Ċ ) Ġ: ĠBase Ui View < Create Entry ViewState , ĠCreate Entry View Event , ĠCreate Entry Name Binding >( parent ) Ġ{ ĊĊĠ Ġoverride Ġval Ġview Binding Ġ= ĠCreate Entry Name Binding :: inflate ĊĊĠ Ġoverride Ġval Ġlayout Root Ġby Ġbound View Ġ{ Ġcreate Entry Name Root Ġ} ĊĊĠ Ġprivate Ġval Ġdelegate Ġby Ġlazy ( Lazy Thread Safety Mode . NONE ) Ġ{ ĊĠĠĠ ĠUi EditText Delegate . create ( binding . create Entry Name Value ) Ġ{ Ġnew Text Ġ-> ĊĠĠĠĠĠ Ġpublish ( Create Entry View Event . Name Changed ( new Text )) ĊĠĠĠĠĠ Ġreturn @ create Ġtrue ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġdo On Inf late Ġ{ Ġdelegate . handle Create () Ġ} ĊĊĠĠĠ Ġdo On Te ardown Ġ{ Ġdelegate . handle Te ardown () Ġ} ĊĊĠĠĠ Ġdo On Inf late Ġ{ ĊĠĠĠĠĠ Ġbinding . create Entry Name Value . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġset Editable ( EDIT ABLE _ INPUT _ TYPE ) ĊĠĠĠĠĠĠĠ Ġ ime Options Ġ= ĠEditor Info . IME _ ACTION _ GO ĊĠĠĠĠĠĠĠ Ġset I me Action Label (" Create ", ĠEditor Info . IME _ ACTION _ GO ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdo On Inf late Ġ{ ĊĠĠĠĠĠ Ġbinding . create Entry Name Value . setOn Editor ActionListener Ġ{ Ġ_, Ġ_, Ġevent Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( event Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( event . action Ġ== ĠKeyEvent . ACTION _ DOWN Ġ&& Ġevent . keyCode Ġ== ĠKeyEvent . KEYCODE _ ENTER ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" Commit Ġon ĠI ME Ġaction ĠEnter ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublish ( Create Entry View Event . Commit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Editor ActionListener Ġtrue ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn @ setOn Editor ActionListener Ġfalse ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdo On Te ardown Ġ{ Ġbinding . create Entry Name Value . setOn Editor ActionListener ( null ) Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġhandle Name ( data : ĠUi EditText Delegate . Data ) Ġ{ ĊĠĠĠ Ġdelegate . handle TextChanged ( data ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Render ( state : ĠUi Render < Create Entry ViewState >) Ġ{ ĊĠĠĠ Ġstate . map Changed Ġ{ Ġit . entry Name Ġ}. render ( view Scope ) Ġ{ Ġhandle Name ( it ) Ġ} ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġprivate Ġconst Ġval ĠEDIT ABLE _ INPUT _ TYPE Ġ= ĊĠĠĠĠĠĠĠ ĠInput Type . TYPE _ TEXT _ FLAG _ AUTO _ CORRECT Ġor ĠInput Type . TYPE _ TEXT _ FLAG _ CAP _ WORDS ĊĠ Ġ} Ċ } Ċ