package Ġcom . web add ict ed . kotlin project . view . fc m kit Ċ Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . google . firebase . Firebase Exception Ċ import Ġcom . google . firebase . Firebase Too Many Requests Exception Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ import Ġcom . google . firebase . auth . Firebase Auth Invalid Credentials Exception Ċ import Ġcom . google . firebase . auth . Phone Auth Credential Ċ import Ġcom . google . firebase . auth . Phone Auth Provider Ċ import Ġcom . google . firebase . auth . Phone Auth Provider . Force Res ending Token Ċ import Ġcom . google . firebase . auth . Phone Auth Provider . On Verification StateChanged Callbacks Ċ import Ġcom . google . firebase . database . Database Reference Ċ import Ġcom . google . firebase . storage . Storage Reference Ċ import Ġcom . web add ict ed . kotlin project . R Ċ import Ġcom . web add ict ed . kotlin project . api utils . Api Constant Ċ import Ġcom . web add ict ed . kotlin project . api utils . Api Constant . Companion . F CM _ STORAGE _ PROFILE Ċ import Ġcom . web add ict ed . kotlin project . api utils . Api Constant . Companion . PHONE _ AUTH _ TIMEOUT Ċ import Ġcom . web add ict ed . kotlin project . databinding . Frm F cm O tp Binding Ċ import Ġcom . web add ict ed . kotlin project . global . common .* Ċ import Ġcom . web add ict ed . kotlin project . global . social login . Social Login Ċ import Ġcom . web add ict ed . kotlin project . model . fc m kit . F cm Social Login Res po Bean Ċ import Ġcom . web add ict ed . kotlin project . view . base . Base Fragment Ċ import Ġjava . util . concurrent . TimeUnit ĊĊ Ċ class ĠF cm O tp Frm Ġ: ĠBase Fragment ( R . layout . frm _ fc m _ otp ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġuser Verified : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġopen From : ĠString ? Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġmobile No : ĠString ? Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġm Res end Token : ĠForce Res ending Token ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Auth : ĠFirebase Auth ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Callbacks : ĠOn Verification StateChanged Callbacks ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsocial Login Res po : ĠF cm Social Login Res po Bean ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Binding : ĠF rm F cm O tp Binding ĊĠĠĠ Ġprivate Ġvar Ġcheck O tp Verify First Time Ġ= Ġtrue ĊĠĠĠ Ġprivate Ġvar Ġm Verification Id : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠTAG Ġ= ĠF cm O tp Frm :: class . qualified Name ĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( bundle : ĠBundle ): ĠF cm O tp Frm Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠF cm O tp Frm () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind To ( binding : ĠView Data Binding ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Binding Ġ= Ġbinding Ġas ĠF rm F cm O tp Binding ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠĠĠĠĠ Ġclick Listener () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ ĠSocial Login . logout ( activity ) ĊĠĠĠĠĠĠĠ Ġm Auth Ġ= ĠFirebase Auth . getInstance () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( arguments Ġ!= Ġnull Ġ&& Ġarguments ?. containsKey ( F cm Signup Frm . SO CIAL _ RES PO ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsocial Login Res po Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments ?. get Serializable ( F cm Signup Frm . SO CIAL _ RES PO ) Ġas ĠF cm Social Login Res po Bean ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . wrapper Pwd . g one () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmobile No Ġ= Ġ"+ 9 1 " Ġ+ Ġsocial Login Res po ?. user Mob il eno ĊĠĠĠĠĠĠĠĠĠĠĠ Ġphone Auth () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart PhoneNumber Verification ( mobile No !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( arguments Ġ!= Ġnull Ġ&& Ġarguments ?. containsKey ( F cm Signup Frm . OPEN _ FROM ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen From Ġ= Ġarguments ?. getString ( F cm Signup Frm . OPEN _ FROM ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( open From . equals ( F cm Forgot Pass Frm . TAG )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . wrapper Pwd . visible () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclick Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Binding . include Back . linear Back . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm Binding . btn Verify . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm Binding . txt Res end O tp . setOnClickListener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onClick ( v ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . include _ back Ġ-> Ġactivity ?. on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . txt _ res end _ otp Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( check O tp Verify First Time ) Ġstart PhoneNumber Verification ( mobile No !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġres end Verification Code ( mobile No !! , Ġm Res end Token !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ verify Ġ-> Ġvalidate () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġphone Auth () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Callbacks Ġ= Ġobject Ġ: ĠOn Verification StateChanged Callbacks () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Verification Completed ( credential : ĠPhone Auth Credential ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Verification Completed Ġ: Ġ$ credential ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . ed t O tp . setText ( credential . sms Code ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . txt Res end O tp . is Clickable Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Verified Ġ= Ġtrue Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGlobal Utility . set Enable View ( m Binding . ed t O tp , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( open From . equals ( F cm Forgot Pass Frm . TAG )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . wrapper O tp . g one () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsign In With Phone Auth Credential ( credential ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Verification Failed ( e : ĠFirebase Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( TAG , Ġ" on Verification Failed Ġ$ e ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e Ġis ĠFirebase Auth Invalid Credentials Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGlobal Utility . show Toast (" Invalid Ġphone Ġnumber .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( e Ġis ĠFirebase Too Many Requests Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGlobal Utility . show Toast (" Quota Ġexceeded .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Code Sent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverification Id : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken : ĠForce Res ending Token ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" on Code Sent Ġ: Ġ$ verification Id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Verification Id Ġ= Ġverification Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Res end Token Ġ= Ġtoken ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart PhoneNumber Verification ( phoneNumber : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPhone Auth Provider . getInstance (). verify PhoneNumber ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠphoneNumber , Ġ Ġ// ĠPhone Ġnumber Ġto Ġverify ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPH ONE _ AUTH _ TIMEOUT , Ġ Ġ// ĠTimeout Ġduration ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTimeUnit . SECONDS , Ġ Ġ// ĠUnit Ġof Ġtimeout ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity , Ġ Ġ// ĠActivity Ġ( for Ġcallback Ġbinding ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Callbacks !! ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġcheck O tp Verify First Time Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġres end Verification Code ( ĊĠĠĠĠĠĠĠ ĠphoneNumber : ĠString , ĊĠĠĠĠĠĠĠ Ġtoken : ĠForce Res ending Token ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPhone Auth Provider . getInstance (). verify PhoneNumber ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠphoneNumber , Ġ Ġ// ĠPhone Ġnumber Ġto Ġverify ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPH ONE _ AUTH _ TIMEOUT , Ġ Ġ// ĠTimeout Ġduration ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTimeUnit . SECONDS , Ġ Ġ// ĠUnit Ġof Ġtimeout ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity , Ġ Ġ// ĠActivity Ġ( for Ġcallback Ġbinding ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Callbacks !! , Ġ Ġ// ĠOn Verification StateChanged Callbacks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoken ĊĠĠĠĠĠĠĠ Ġ) Ġ// ĠForce Res ending Token Ġfrom Ġcallbacks ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvalidate () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Binding . wrapper O tp . visibility Ġ== ĠView . VISIBLE Ġ&& Ġ! Validation Helper . validate OTP Code ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . ed t O tp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . wrapper O tp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Binding . wrapper Pwd . visibility Ġ== ĠView . VISIBLE Ġ&& Ġ! Validation Helper . validate Pwd ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . ed t Pwd , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . wrapper Pwd ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ) Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( user Verified ) Ġverify User () ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify PhoneNumber With Code ( m Verification Id !! , Ġm Binding . ed t O tp . text . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġverify PhoneNumber With Code ( ĊĠĠĠĠĠĠĠ Ġverification Id : ĠString , ĊĠĠĠĠĠĠĠ Ġcode : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcredential Ġ= ĠPhone Auth Provider . getC redential ( verification Id , Ġcode ) ĊĠĠĠĠĠĠĠ Ġsign In With Phone Auth Credential ( credential ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsign In With Phone Auth Credential ( credential : ĠPhone Auth Credential ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Auth ?. signIn With Credential ( credential )?. add On Complete Listener ( m Activity ) Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( task . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġtask . result . user ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( open From . equals ( F cm Forgot Pass Frm . TAG )) Ġvalidate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġverify User () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify User () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTAG ?. let Ġ{ ĠL g . e ( it , Ġ" signIn With Credential : failure Ġ: Ġ${ task . exception }") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( task . exception Ġis ĠFirebase Auth Invalid Credentials Exception ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGlobal Utility . show Toast (" Invalid Ġcode .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠGlobal Utility . show Toast ( task . exception ?. message !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġverify User () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdb Ref Ġ= Ġget F cm DB Ref ( Api Constant . F CM _ DB _ USERS ) ĊĠĠĠĠĠĠĠ Ġif Ġ( open From . equals ( F cm Forgot Pass Frm . TAG )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb Ref . child ( social Login Res po ?. user Mob il eno !! ). child ( Api Constant . F CM _ USERS _ PASSWORD ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setValue ( m Binding . ed t Pwd . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF cm Food Activity . new Intent ( m Activity ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( social Login Res po ?. profile Img File Ġ!= Ġnull Ġ&& Ġsocial Login Res po ?. profile Img File ?. exists () !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupload Image ( db Ref ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinsert User ( db Ref ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinsert User ( db Ref : ĠDatabase Reference ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdb Ref . child ( social Login Res po ?. user Mob il eno !! ). setValue ( social Login Res po ) Ċ // ĠĠĠĠĠĠĠ Ġdatabase Reference . push () ĊĠĠĠĠĠĠĠ ĠGlobal Utility . show Toast ( getString ( R . string . account _ successfully _ created )) ĊĠĠĠĠĠĠĠ ĠF cm Food Activity . new Intent ( m Activity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupload Image ( db Ref : ĠDatabase Reference ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstore Image : ĠStorage Reference Ġ= Ġget F cm Storage Ref ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF CM _ STORAGE _ PROFILE Ġ+ Ġ"${ social Login Res po ?. user Mob il eno }_${ System . currentTimeMillis () }" Ġ+ Ġ". jpg " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġstore Image . put File ( Uri . from File ( social Login Res po ?. profile Img File )). add On Success Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore Image . download Url . add On Success Listener Ġ{ Ġuri Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsocial Login Res po ?. user Image Ġ= Ġuri . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsocial Login Res po ?. profile Img File Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinsert User ( db Ref ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. add On Failure Listener Ġ{ Ġe Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGlobal Utility . show Toast (" Up loading Ġfailed Ġ" Ġ+ Ġe . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTAG ?. let Ġ{ ĠL g . d ( it , Ġ" on Failure : ĠUp loading Ġfailed Ġ: Ġ${ e . message }") Ġ} ĊĠĠĠĠĠĠĠ Ġ}. add On Progress Listener Ġ{ Ġtask Snapshot Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdoub b Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 0 . 0 Ġ* Ġtask Snapshot . bytes Transfer red Ġ/ Ġtask Snapshot . total Byte Count ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTAG ?. let Ġ{ ĠL g . d ( it , Ġ" Up loading Ġ Ġ: Ġ$ doub b % ") Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠGlobal Utility . show Toast (" Upload Ġ: Ġ$ doub b % ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnavigate Screen ( tag : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġfrm : ĠFragment ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġwhen Ġ( tag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF cm Login Frm . TAG Ġ-> Ġfrm Ġ= ĠF cm Login Frm . getInstance ( Bundle ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( frm Ġ!= Ġnull ) Ġnavigate Add Fragment ( R . id . container , Ġfrm , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġadd Blank Space ( m Binding . bottom Space ) ĊĠĠĠ Ġ} Ċ } ĊĊ