package Ġcom . example . poly care er . utils Ċ Ċ import Ġandroid . widget . EditText Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . core . widget . do On TextChanged Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . fragment . Nav Host Fragment Ċ Ċ fun Ġ< T Ġ: ĠViewModel > ĠEditText . set Validate Rule ( viewModel : ĠT , Ġvalidator : ĠT . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġthis . do On TextChanged Ġ{ Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> ĠviewModel . validator () Ġ} Ċ } Ċ Ċ fun ĠEditText . remove Validate Rule () Ġ{ ĊĠĠĠ Ġthis . do On TextChanged Ġ{ Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> Ġ} Ċ } Ċ Ċ fun Ġ< T > ĠsetValue By Condition ( condition : ĠBoolean , Ġmessage : ĠT ): ĠT ? Ġ= Ġif Ġ( condition ) Ġmessage Ġelse Ġnull Ċ Ċ val ĠEditText . value : ĠString ĊĠĠĠ Ġget () Ġ= Ġthis . text . toString () Ċ Ċ fun ĠFragment . open Screen (@ Id Res Ġdestination : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġnav Controller Ġ= ĠNav Host Fragment . find Nav Controller ( this ) ĊĠĠĠ Ġnav Controller . navigate Safe ( destination ) Ċ } Ċ Ċ fun ĠNav Controller . navigate Safe ( ĊĠĠĠ Ġ@ Id Res Ġres Id : ĠInt Ċ ) Ġ{ ĊĠĠĠ Ġval Ġaction Ġ= Ġcurrent Destination ?. getAction ( res Id ) Ġ?: Ġgraph . getAction ( res Id ) ĊĠĠĠ Ġif Ġ( action Ġ!= Ġnull Ġ&& Ġcurrent Destination ?. id Ġ!= Ġaction . destination Id ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigate ( res Id ) ĊĠĠĠ Ġ} Ċ }