package Ġcom . github . mo h amed wa el . login . password login Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . navigation . Navigation Ċ import Ġcom . github . mo h amed wa el . login . R Ċ import Ġcom . github . mo h amed wa el . login . base . Base Login Fragment Ċ import Ġcom . github . mo h amed wa el . login . config . BRO ADCAST _ ACTION _ SUCCESS Ċ import Ġcom . github . mo h amed wa el . login . databinding . Password Login Fragment Binding ĊĊ Ċ open Ġclass ĠPassword Login Fragment Ġ: ĠBase Login Fragment () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPassword Login Fragment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠPassword Login ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate ViewModel ( Password Login ViewModel :: class . java , ĠPassword Login ViewModel Factory ) ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠPassword Login Fragment Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġbinding . viewModel Ġ= ĠviewModel ĊĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġview Lifecycle Owner ĊĠĠĠĠĠĠĠ Ġobserve Hide Keyboard Event ( viewModel ) ĊĠĠĠĠĠĠĠ Ġreturn Ġattach To Root View ( binding . root ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ ĠviewModel . on Login Success LiveData . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġit . getContent IfNot Handled () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle ?. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. send Broadcast ( Intent ( BRO ADCAST _ ACTION _ SUCCESS ). put Extras ( bundle )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġbind Navigation Actions ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġbind Navigation Actions ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . on Verification Login Click Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNavigation . find Nav Controller ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. navigate ( R . id . action _ password Login Fragment _ to _ username Validation Fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . on SignUp Click Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNavigation . find Nav Controller ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. navigate ( R . id . action _ password Login Fragment _ to _ sign Up Fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . on For getPassword Click Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNavigation . find Nav Controller ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. navigate ( R . id . action _ password Login Fragment _ to _ forget Password Fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ