package Ġcom . iv an ov sky . pass notes . presentation . core . binding Ċ Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . InputType Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . text . method . Hide Returns Transformation Method Ċ import Ġandroid . text . method . Link Movement Method Ċ import Ġandroid . text . method . Password Transformation Method Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . databinding . Binding Adapter Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . google . android . material . text field . TextInput EditText Ċ import Ġcom . google . android . material . text field . TextInput Layout Ċ import Ġcom . iv an ov sky . pass notes . R Ċ import Ġcom . iv an ov sky . pass notes . presentation . core . widget . Secure TextView Ċ import Ġcom . iv an ov sky . pass notes . presentation . core . Base Cell ViewModel Ċ import Ġcom . iv an ov sky . pass notes . presentation . core . Screen State Ċ import Ġcom . iv an ov sky . pass notes . presentation . core . Screen State Handler Ċ import Ġcom . iv an ov sky . pass notes . presentation . core . ViewModel Types Ċ import Ġcom . iv an ov sky . pass notes . presentation . core . adapter . ViewModels Adapter Ċ import Ġcom . iv an ov sky . pass notes . presentation . core . widget . Cell LinearLayout Ċ import Ġcom . iv an ov sky . pass notes . presentation . core . widget . Error Panel View Ċ import Ġcom . iv an ov sky . pass notes . presentation . core . widget . Expand able Floating ActionButton Ċ import Ġcom . iv an ov sky . pass notes . presentation . core . widget . Expand able Floating ActionButton . On ItemClickListener Ċ import Ġcom . iv an ov sky . pass notes . presentation . core . widget . Text Movement Method Ċ import Ġcom . iv an ov sky . pass notes . presentation . note _ editor . view . Text Transformation Method Ċ import Ġcom . iv an ov sky . pass notes . presentation . note _ editor . view . Text Transformation Method . PASSWORD Ċ import Ġcom . iv an ov sky . pass notes . presentation . note _ editor . view . Text Transformation Method . PL ANE _ TEXT Ċ import Ġcom . iv an ov sky . pass notes . presentation . note _ editor . view . Secret InputType Ċ import Ġcom . iv an ov sky . pass notes . presentation . note _ editor . view . Secret InputType . DIG ITS Ċ import Ġcom . iv an ov sky . pass notes . presentation . note _ editor . view . Secret InputType . TEXT Ċ import Ġcom . iv an ov sky . pass notes . presentation . note _ editor . view . TextInput Lines Ċ import Ġcom . iv an ov sky . pass notes . presentation . note _ editor . view . TextInput Type Ċ import Ġcom . iv an ov sky . pass notes . util . get Lifecycle Owner Ċ Ċ @ Binding Adapter (" screen State ", Ġ" screen State Handler ") Ċ fun Ġset Screen State ( ĊĠĠĠ Ġview : ĠView , ĊĠĠĠ Ġscreen State Data : ĠLive Data < Screen State >, ĊĠĠĠ Ġscreen State Handler : ĠScreen State Handler Ċ ) Ġ{ ĊĠĠĠ Ġval Ġscreen State Ġ= Ġscreen State Data . value Ġ?: Ġreturn ĊĊĠĠĠ Ġscreen State Handler . apply Screen State ( view , Ġscreen State ) Ċ } Ċ Ċ @ Binding Adapter (" view Models ", Ġ" view Types ") Ċ fun Ġset ViewModel ( ĊĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠ Ġview Models Data : ĠList < Base Cell ViewModel > ?, ĊĠĠĠ Ġview Types : ĠViewModel Types Ċ ) Ġ{ ĊĠĠĠ Ġval Ġlifecycle Owner Ġ= Ġre cyclerView . context . get Lifecycle Owner () ĊĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException (" context Ġdoesn 't Ġhave ĠLifecycle Owner ") ĊĊĠĠĠ Ġval Ġadapter Ġ= Ġ( re cyclerView . adapter Ġas ? ĠView Models Adapter ) ĊĠĠĠĠĠĠĠ Ġ?: ĠView Models Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Owner , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Types ĊĠĠĠĠĠĠĠ Ġ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġview Models Data ?. let Ġ{ Ġview Models Ġ-> ĊĠĠĠĠĠĠĠ Ġadapter . update Items ( view Models ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" view Models ", Ġ" view Types ") Ċ fun Ġset ViewModels ( ĊĠĠĠ Ġview : ĠCell LinearLayout , ĊĠĠĠ Ġview Models : ĠList < Base Cell ViewModel > ?, ĊĠĠĠ Ġview Types : ĠViewModel Types Ċ ) Ġ{ ĊĠĠĠ Ġview . setView Types ( view Types ) ĊĠĠĠ Ġview . set ViewModels ( view Models Ġ?: Ġempty List ()) Ċ } Ċ Ċ @ Binding Adapter (" error Text ") Ċ fun ĠsetError ( textInput Layout : ĠText Input Layout , Ġerror Data : ĠLive Data < String ?> ?) Ġ{ ĊĠĠĠ Ġtext Input Layout . error Ġ= Ġerror Data ?. value Ċ } Ċ Ċ @ Binding Adapter (" visible ") Ċ fun Ġset Visible ( view : ĠView , Ġis Visible : ĠBoolean ) Ġ{ ĊĠĠĠ Ġview . isVisible Ġ= Ġis Visible Ċ } Ċ Ċ @ Binding Adapter (" on TextChanged ") Ċ fun Ġset On TextChanged Listener ( edit Text : ĠText Input EditText , Ġon Text ChangeListener : ĠOn Text ChangeListener ?) Ġ{ ĊĠĠĠ Ġval Ġexisting Listener Ġ= Ġedit Text . getTag ( R . id . tag Text Watcher ) Ġas ? ĠText Watcher ĊĠĠĠ Ġexisting Listener ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġedit Text . remove TextChanged Listener ( it ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( on Text ChangeListener Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġlistener Ġ= Ġobject Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Text ChangeListener . on TextChanged ( s . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġedit Text . setTag ( R . id . tag Text Watcher , Ġlistener ) ĊĠĠĠ Ġedit Text . add TextChanged Listener ( listener ) Ċ } Ċ Ċ @ Binding Adapter (" image ResourceId ") Ċ fun Ġset Image Resource ( imageView : ĠImageView , Ġ@ Drawable Res Ġimage ResourceId : ĠInt ) Ġ{ ĊĠĠĠ ĠimageView . setImage Resource ( image ResourceId ) Ċ } Ċ Ċ @ Binding Adapter (" is Text Hidden ") Ċ fun Ġset Text Hidden ( textView : ĠSecure TextView , Ġis Hidden : ĠLive Data < Boolean > ?) Ġ{ ĊĠĠĠ Ġval Ġis Text Hidden Ġ= Ġis Hidden ?. value Ġ?: Ġfalse ĊĠĠĠ Ġif Ġ( is Text Hidden ) Ġ{ ĊĠĠĠĠĠĠĠ ĠtextView . hide Text () ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠtextView . show Text () ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" on Long Click ") Ċ fun Ġset On Long ClickListener ( ĊĠĠĠ Ġview : ĠView , ĊĠĠĠ Ġon Long Clicked : Ġ() Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġview . setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġon Long Clicked . invoke () ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" textInput Lines ") Ċ fun Ġset Input Lines ( edit Text : ĠEditText , Ġinput Lines : ĠText Input Lines ?) Ġ{ ĊĠĠĠ Ġwhen Ġ( input Lines ) Ġ{ ĊĠĠĠĠĠĠĠ ĠText Input Lines . SINGLE _ LINE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . min Lines Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . max Lines Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠText Input Lines . MULTIPLE _ LINES Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . min Lines Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . max Lines Ġ= Ġ 5 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" text InputType ") Ċ fun Ġset InputType ( edit Text : ĠEditText , Ġtext InputType : ĠText InputType ?) Ġ{ ĊĠĠĠ Ġif Ġ( text InputType Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġinput Type Ġ= Ġwhen Ġ( text InputType ) Ġ{ ĊĠĠĠĠĠĠĠ ĠText InputType . URL Ġ-> ĠInput Type . TYPE _ CLASS _ TEXT Ġ+ ĠInput Type . TYPE _ TEXT _ VARI ATION _ URI ĊĠĠĠĠĠĠĠ ĠText InputType . TEXT Ġ-> ĠInput Type . TYPE _ CLASS _ TEXT ĊĠĠĠĠĠĠĠ ĠText InputType . EMAIL Ġ-> ĠInput Type . TYPE _ CLASS _ TEXT Ġ+ ĠInput Type . TYPE _ TEXT _ VARI ATION _ WEB _ EMAIL _ ADDRESS ĊĠĠĠĠĠĠĠ ĠText InputType . TEXT _ CAP _ SENT ENCES Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput Type . TYPE _ CLASS _ TEXT Ġ+ ĠInput Type . TYPE _ TEXT _ FLAG _ CAP _ SENT ENCES ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġedit Text . set Raw InputType ( input Type ) Ċ } Ċ Ċ @ Binding Adapter (" text Transformation Method ") Ċ fun Ġset Transformation Method ( ĊĠĠĠ ĠtextView : ĠTextView , ĊĠĠĠ Ġtransformation Method : ĠText Transformation Method ? Ċ ) Ġ{ ĊĠĠĠ Ġtransformation Method ?. let Ġ{ ĊĠĠĠĠĠĠĠ ĠtextView . transformation Method Ġ= Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPASSWORD Ġ-> ĠPassword Transformation Method . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPL ANE _ TEXT Ġ-> ĠHide Returns Transformation Method . getInstance () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" text Movement Method ") Ċ fun Ġset Movement Method ( ĊĠĠĠ ĠtextView : ĠTextView , ĊĠĠĠ Ġmovement Method : ĠText Movement Method ? Ċ ) Ġ{ ĊĠĠĠ Ġwhen Ġ( movement Method ) Ġ{ ĊĠĠĠĠĠĠĠ ĠText Movement Method . LINK _ MOVE MENT _ METHOD Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . movement Method Ġ= ĠLink Movement Method . getInstance () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" secret InputType ") Ċ fun Ġset Secret InputType ( ĊĠĠĠ Ġedit Text : ĠEditText , ĊĠĠĠ Ġinput Type : ĠSecret InputType ? Ċ ) Ġ{ ĊĠĠĠ Ġif Ġ( input Type Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĠĠĠ Ġedit Text . set Raw InputType ( ĊĠĠĠĠĠĠĠ Ġwhen Ġ( input Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTEXT Ġ-> ĠInput Type . TYPE _ CLASS _ TEXT Ġ+ ĠInput Type . TYPE _ TEXT _ VARI ATION _ PASSWORD ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDIG ITS Ġ-> ĠInput Type . TYPE _ CLASS _ NUMBER Ġ+ ĠInput Type . TYPE _ NUMBER _ VARI ATION _ PASSWORD ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ Binding Adapter (" on Button Clicked ") Ċ fun Ġset On Button ClickListener ( ĊĠĠĠ Ġerror Panel View : ĠError Panel View , ĊĠĠĠ Ġlistener : ĠError Panel View . On Button ClickListener ? Ċ ) Ġ{ ĊĠĠĠ Ġerror Panel View . button ClickListener Ġ= Ġlistener Ċ } Ċ Ċ @ Binding Adapter (" fab Items ") Ċ fun Ġset Fab Items ( ĊĠĠĠ Ġfab : ĠExpand able Floating ActionButton , ĊĠĠĠ Ġitems : ĠList < String >? Ċ ) Ġ{ ĊĠĠĠ Ġfab . inflate ( items Ġ?: Ġempty List ()) Ċ } Ċ Ċ @ Binding Adapter (" on Fab Item Clicked ") Ċ fun Ġset Fab ClickListener ( ĊĠĠĠ Ġfab : ĠExpand able Floating ActionButton , ĊĠĠĠ Ġon ItemClickListener : ĠOn ItemClickListener ? Ċ ) Ġ{ ĊĠĠĠ Ġfab . on ItemClickListener Ġ= Ġon ItemClickListener Ċ }