package Ġcom . oc ak m ali . bre ww ay . view . widget Ċ Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . widget . EditText Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġandroidx . lifecycle . Lifecycle Observer Ċ import Ġandroidx . lifecycle . On Lifecycle Event Ċ Ċ class ĠLifecycle Text Watcher ( private Ġval Ġedit Text : ĠEditText , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġsend : Ġ( Editable ) Ġ-> ĠUnit ) ĊĠĠĠ Ġ: ĠText Watcher , ĠLifecycle Observer Ġ{ ĊĊĠĠĠ Ġ@ On Lifecycle Event ( Lifecycle . Event . ON _ START ) ĊĠĠĠ Ġfun Ġattach () Ġ{ ĊĠĠĠĠĠĠĠ Ġedit Text . add TextChanged Listener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ On Lifecycle Event ( Lifecycle . Event . ON _ STOP ) ĊĠĠĠ Ġfun Ġdetach () Ġ{ ĊĠĠĠĠĠĠĠ Ġedit Text . remove TextChanged Listener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġregister Lifecycle ( lifecycle : ĠLifecycle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlifecycle . add Observer ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġs ?. let Ġ{ Ġsend . invoke ( it ) Ġ} ĊĠĠĠ Ġ} Ċ }