package Ġcom . web i anks . ex pensive . ui . main . profile Ċ Ċ import Ġandroid . app . Progress Dialog Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . google . android . gms . auth . api . signin . Google SignIn Ċ import Ġcom . google . android . gms . auth . api . signin . Google SignIn Client Ċ import Ġcom . google . android . material . dialog . Material AlertDialog Builder Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ import Ġcom . web i anks . ex pensive . Ex pensive Application Ċ import Ġcom . web i anks . ex pensive . R Ċ import Ġcom . web i anks . ex pensive . ui . login . Login Activity Ċ import Ġcom . web i anks . ex pensive . util . Theme Helper Ċ import Ġcom . web i anks . ex pensive . util . Util Ċ import Ġkotlinx . android . synt hetic . main . fragment _ menu .* Ċ Ċ class ĠMenu Fragment Ġ: ĠFragment ( R . layout . fragment _ menu ){ ĊĊĠĠĠ Ġprivate Ġvar ĠimageUrl : ĠString ? Ġ= Ġ"-- " ĊĠĠĠ Ġprivate Ġvar Ġemail : ĠString ? Ġ= Ġ"-- " ĊĠĠĠ Ġprivate Ġvar Ġname : ĠString ? Ġ= Ġ"-- " ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Google SignIn Client : ĠGoogle SignIn Client ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġauth : ĠFirebase Auth ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( userName : ĠString , Ġuser Email : ĠString , Ġuser Image : ĠString ): ĠMenu Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmenu Fragment Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMenu Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Fragment . arguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String (" user _ name ", userName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String (" user _ email ", user Email ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String (" user _ image ", user Image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmenu Fragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġname Ġ= Ġarguments ?. getString (" user _ name ") ĊĠĠĠĠĠĠĠ Ġemail Ġ= Ġarguments ?. getString (" user _ email ") ĊĠĠĠĠĠĠĠ ĠimageUrl Ġ= Ġarguments ?. getString (" user _ image ") ĊĊĠĠĠĠĠĠĠ Ġm Google SignIn Client Ġ= ĠGoogle SignIn . getClient ( context !! , Ġ( context ?. application Context Ġas ĠEx pensive Application ). g so ) ĊĠĠĠĠĠĠĠ Ġauth Ġ= Ġ( context ?. application Context Ġ Ġas ĠEx pensive Application ). auth ĊĊĠĠĠĠĠĠĠ Ġlogout Bt . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm And Logout () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtv _ pp . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtil . open Privacy Tab ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtv _ theme . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTheme Helper . apply Theme (" light ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġuser _ name . text Ġ= Ġname ĊĠĠĠĠĠĠĠ Ġuser _ email . text Ġ= Ġemail ĊĊĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( imageUrl ). into ( user Image Sheet ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġre voke Access () Ġ{ ĊĊĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠProgress Dialog ( Ġcontext ) ĊĠĠĠĠĠĠĠĠ Ġdialog . setMessage (" Logging Ġout ... Please Ġwait .") ĊĠĠĠĠĠĠĠĠ Ġdialog . set Cancel able ( false ) ĊĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĊĠĠĠĠĠĠĠĠ Ġauth . sign Out () ĊĠĠĠĠĠĠĠĠ Ġm Google SignIn Client . revoke Access (). add On Complete Listener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( context , ĠLogin Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. finish () ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfirm And Logout () Ġ{ ĊĊĠĠĠĠĠĠĠ ĠMaterial AlertDialog Builder ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage (" Are Ġyou Ġsure Ġyou Ġwant Ġto Ġlogout ?") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button (" Logout ") Ġ{ Ġ_, Ġ_ Ġ-> Ġre voke Access () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button (" Cancel ") Ġ{ Ġit , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠ Ġ} Ċ } Ċ