package Ġcom . dyn . base . binding _ adapter Ċ Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . databinding . Binding Adapter Ċ import Ġcom . dyn . base . ui . weight . Clear EditText Ċ import Ġcom . jak ew h art on . r xb ind ing 4 . widget . TextView After Text ChangeEvent Ċ import Ġcom . jak ew h art on . r xb ind ing 4 . widget . after Text Change Events Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ object ĠBinding Text Adapter Ġ{ ĊĠĠĠ Ġ@ Binding Adapter ( value Ġ= Ġ[" text Gravity "], Ġrequire All Ġ= Ġfalse ) ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġtext Gravity ( textView : ĠTextView , Ġgravity : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠtextView . gravity Ġ= Ġgravity ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Binding Adapter ( value Ġ= Ġ[" text Selection Index "], Ġrequire All Ġ= Ġfalse ) ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġtext Selection Index ( textView : ĠEditText , Ġindex : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setSelection ( index ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Binding Adapter ( value Ġ= Ġ[" text Selection ToEnd "], Ġrequire All Ġ= Ġfalse ) ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġtext Selection ToEnd ( textView : ĠEditText , Ġis Selection End : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Selection End ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setSelection ( textView . text ?. length Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Binding Adapter ( value Ġ= Ġ[" text Enable "], Ġrequire All Ġ= Ġfalse ) ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġtext Enable ( textView : ĠTextView , Ġenable : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( enable Ġ!= ĠtextView . isEnabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . isEnabled Ġ= Ġenable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Binding Adapter ( value Ġ= Ġ[" text Min Width "], Ġrequire All Ġ= Ġfalse ) ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġtext Min Width ( textView : ĠTextView , ĠminWidth : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ ĠtextView . min Width Ġ= ĠminWidth . toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Binding Adapter ( value Ġ= Ġ[" android : text Size "], Ġrequire All Ġ= Ġfalse ) ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġtext Size ( textView : ĠTextView , Ġtext Size : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ ĠtextView . setText Size ( Typed Value . COMPLEX _ UNIT _ PX , Ġtext Size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Binding Adapter ( value Ġ= Ġ[" icon Clear "], Ġrequire All Ġ= Ġfalse ) ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġicon Clear ( textView : ĠClear EditText , Ġdrawable : ĠDrawable ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġdrawable ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . drawable Clear Ġ= Ġdrawable ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Binding Adapter ( value Ġ= Ġ[" tv Focus able "], Ġrequire All Ġ= Ġfalse ) ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġtv Focus able ( textView : ĠClear EditText , Ġrequest Focus able : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Focus able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . request Focus () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . clear Focus () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Binding Adapter ( value Ġ= Ġ[" after Text ChangeListener "], Ġrequire All Ġ= Ġfalse ) ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġtext Watcher ( textView : ĠEditText , Ġlistener : ĠAfter Text ChangeListener ) Ġ{ ĊĠĠĠĠĠĠĠ ĠtextView . after Text Change Events (). skip ( 5 0 0 , ĠTimeUnit . MILLISECONDS ). subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Event ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠAfter Text ChangeListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Event ( event : ĠTextView After Text ChangeEvent ) ĊĠĠĠ Ġ} ĊĊ Ċ }