package Ġcom . sk f . bing ef lix . Activity Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . view . WindowManager Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . CheckBox Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . google . android . gms . common . internal . SignIn Button Impl Ċ import Ġcom . google . android . material . bottomnavigation . Bottom Navigation View Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ import Ġcom . google . firebase . database . Database Reference Ċ import Ġcom . google . firebase . database . Firebase Database Ċ import Ġcom . google . firebase . firestore . Firebase Fire store Ċ import Ġcom . google . firebase . firestore . Set Options Ċ import Ġcom . sk f . bing ef lix . R Ċ import Ġcom . sk f . bing ef lix . fragment . Account Ċ import Ġcom . sk f . bing ef lix . fragment . Explore Ċ import Ġjava . util .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdb Ġ= ĠFirebase Fire store . getInstance () ĊĠĠĠ Ġprivate Ġvar Ġh indi : ĠCheckBox ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġenglish : ĠCheckBox ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġother : ĠCheckBox ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġh Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġe Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġo Ġ= Ġfalse ĊĊĠĠĠ Ġvar Ġselected fragment : ĠFragment ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġval Ġprefs Ġ= Ġget SharedPreferences (" prefs ", ĠMODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġval Ġfirst Start Ġ= Ġprefs . getBoolean (" first Start ", Ġtrue ) ĊĠĠĠĠĠĠĠ Ġif Ġ( first Start ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Dialog () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . window . set Flags ( WindowManager . LayoutParams . FLAG _ FULL SCREEN , ĠWindow Manager . LayoutParams . FLAG _ FULL SCREEN ) ĊĠĠĠĠĠĠĠ Ġval Ġbottom Navigation View Ġ= ĠfindViewById < Bottom Navigation View >( R . id . bottom _ navigation ) ĊĊĊĠĠĠĠĠĠĠ Ġbottom Navigation View . setOn Navigation ItemSelected Listener ( navigation ItemSelected Listener ) ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction (). replace ( R . id . fragment _ container , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExplo re ()). commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Checkbox Clicked ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchecked Ġ= Ġ( view Ġas ĠCheckBox ). isChecked ĊĠĠĠĠĠĠĠ Ġwhen Ġ( view . getId ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . language _ 1 Ġ-> Ġh Ġ= Ġchecked ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . language _ 2 Ġ-> Ġe Ġ= Ġchecked ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . language _ 3 Ġ-> Ġo Ġ= Ġchecked ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠDialog ( this @ MainActivity ) ĊĠĠĠĠĠĠĠ Ġbuilder . set Cancel able ( false ) ĊĠĠĠĠĠĠĠ Ġbuilder . set ContentView ( R . layout . dialog _ choose _ language ) ĊĠĠĠĠĠĠĠ Ġbuilder . show () ĊĠĠĠĠĠĠĠ Ġh indi Ġ= Ġbuilder . findViewById ( R . id . language _ 1 ) ĊĠĠĠĠĠĠĠ Ġenglish Ġ= Ġbuilder . findViewById ( R . id . language _ 2 ) ĊĠĠĠĠĠĠĠ Ġother Ġ= Ġbuilder . findViewById ( R . id . language _ 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġdone Ġ= Ġbuilder . findViewById < Button >( R . id . button _ done ) ĊĠĠĠĠĠĠĠ Ġdone . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Start Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setMessage (" Are Ġyou Ġsure Ġyou Ġwant Ġto ĠExit ?") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button (" No ", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button (" Yes ") Ġ{ Ġdialog Interface , Ġi Ġ-> Ġfinish Affinity () Ġ}. show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Start Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirebase Auth Ġ= ĠFirebase Auth . getInstance () ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġfirebase Auth . currentUser ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġif Ġ( user Ġ!= Ġnull ) Ġuser . displayName Ġelse Ġ" User " ĊĠĠĠĠĠĠĠ Ġval Ġemail Ġ= Ġif Ġ( user Ġ!= Ġnull ) Ġuser . email Ġelse Ġ" user @ gmail . com " ĊĠĠĠĠĠĠĠ Ġassert ( user Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġuid Ġ= Ġuser !!. uid ĊĠĠĠĠĠĠĠ Ġval Ġuri Ġ= Ġuser . photoUrl ĊĠĠĠĠĠĠĠ Ġval Ġlink Ġ= Ġuri ?. toString () Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġinfo : ĠMutable Map < String , ĠAny > Ġ= ĠHashMap () ĊĠĠĠĠĠĠĠ Ġinfo [" Name "] Ġ= Ġname Ġ?: Ġ" User " ĊĠĠĠĠĠĠĠ Ġinfo [" Email "] Ġ= Ġemail Ġ?: Ġ" user @ email . com " ĊĠĠĠĠĠĠĠ Ġinfo [" Uid "] Ġ= Ġuid ĊĠĠĠĠĠĠĠ Ġinfo [" Profile "] Ġ= Ġlink ĊĠĠĠĠĠĠĠ Ġinfo [" Gender "] Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġinfo [" Date Ġof ĠB irth "] Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġinfo [" Phone Ġno Ġ"] Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġinfo [" id "] Ġ= Ġuid ĊĠĠĠĠĠĠĠ Ġinfo [" username "] Ġ= Ġname Ġ?: Ġ" User " ĊĠĠĠĠĠĠĠ Ġinfo [" image URL "] Ġ= Ġlink ĊĠĠĠĠĠĠĠ Ġinfo [" status "] Ġ= Ġ" offline " ĊĠĠĠĠĠĠĠ Ġinfo [" H indi "] Ġ= Ġh ĊĠĠĠĠĠĠĠ Ġinfo [" English "] Ġ= Ġe ĊĠĠĠĠĠĠĠ Ġinfo [" Others "] Ġ= Ġo ĊĠĠĠĠĠĠĠ Ġval Ġuserid Ġ= Ġuser . uid ĊĠĠĠĠĠĠĠ Ġval Ġref : ĠDatabase Reference ĊĠĠĠĠĠĠĠ Ġref Ġ= ĠFirebase Database . getInstance (). getReference (" Users "). child ( userid ) ĊĠĠĠĠĠĠĠ Ġref . setValue ( info ) ĊĠĠĠĠĠĠĠ Ġdb . collection (" Users "). document ("$ name Ġ$ uid ")[ info ] Ġ= ĠSet Options . merge () ĊĠĠĠĠĠĠĠ Ġval Ġprefs Ġ= Ġget SharedPreferences (" prefs ", ĠMODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġprefs . edit () ĊĠĠĠĠĠĠĠ Ġeditor . put Boolean (" first Start ", Ġfalse ) ĊĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġnavigation ItemSelected Listener Ġ= ĠBottom Navigation View . On Navigation ItemSelected Listener Ġ{ Ġmenu Item Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ( menuItem . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . account Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Commit Pref Ed its ") Ġval Ġeditor Ġ= Ġget SharedPreferences (" PRE PS ", ĠMODE _ PRIVATE ). edit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString (" User id ", ĠObjects . requireNonNull ( Firebase Auth . getInstance (). currentUser )?. uid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected fragment Ġ= ĠAccount () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . explore Ġ-> Ġselected fragment Ġ= ĠExplo re () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( selected fragment Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction (). replace ( R . id . fragment _ container , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected fragment !! ). commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} Ċ }