package Ġcz . eman . ka al . presentation . view Ċ Ċ /** Ċ Ġ* Ġ@ author Ġvs ou h rada Ġ( v acl av . s ou h rada @ eman . cz ) Ċ Ġ*/ Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . widget . TextView Ċ Ċ /** Ċ Ġ* Ġ@ since Ġ 0 . 3 . 0 Ċ Ġ*/ Ċ inline Ġfun ĠTextView . text Watcher ( init : ĠD sl Text Watcher . () Ġ-> ĠUnit ) Ġ= Ġadd TextChanged Listener ( Dsl Text Watcher (). apply ( init )) Ċ Ċ /** Ċ Ġ* ĠA ĠDSL Ġwrapper Ġaround Ġthe Ġ[ Text Watcher ]. ĠBy t Ġthis Ġuse Ġcan Ġavoid Ġto Ġusing Ġa Ġboilerplate Ġcode Ġwhen Ġyou Ġneed Ġto Ġbe Ġnotified Ċ Ġ* Ġif Ġtext Ġhas Ġbeen Ġchanged Ġor Ġbefore Ġchange Ġaction Ġand Ġso Ġon . Ċ Ġ* Ġ@ since Ġ 0 . 3 . 0 Ċ Ġ* Ġ@ see Ġ[ Text Watcher ] Ċ Ġ*/ Ċ class ĠD sl Text Watcher Ġ: ĠText Watcher Ġ{ ĊĊĠĠĠ Ġval ĠTextView . isEmpty ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtext . isEmpty () ĊĊĠĠĠ Ġval ĠTextView . isNotEmpty ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtext . isNotEmpty () ĊĊĠĠĠ Ġval ĠTextView . isBlank ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtext . isBlank () ĊĊĠĠĠ Ġval ĠTextView . isNotBlank ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtext . isNotBlank () ĊĊĠĠĠ Ġprivate Ġvar Ġbefore TextChanged : Ġ(( CharSequence ?, ĠInt , ĠInt , ĠInt ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġon TextChanged : Ġ(( CharSequence ?, ĠInt , ĠInt , ĠInt ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġafter TextChanged : Ġ(( Editable ?) Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbefore TextChanged ?. invoke ( s , Ġstart , Ġcount , Ġafter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon TextChanged ?. invoke ( s , Ġstart , Ġbefore , Ġcount ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġafter TextChanged ?. invoke ( s ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbefore TextChanged ( listener : Ġ( CharSequence ?, ĠInt , ĠInt , ĠInt ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbefore TextChanged Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon TextChanged ( listener : Ġ( CharSequence ?, ĠInt , ĠInt , ĠInt ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon TextChanged Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġafter TextChanged ( listener : Ġ( Editable ?) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġafter TextChanged Ġ= Ġlistener ĊĠĠĠ Ġ} Ċ } Ċ