package Ġcn . ned ay . she ep . activity Ċ Ċ import Ġandroid . view . KeyEvent Ċ import Ġcn . ned ay . base . activity . Base V MA ct ivity Ċ import Ġcn . ned ay . base . config . Bug ly Config Ċ import Ġcn . ned ay . she ep . R Ċ import Ġcn . ned ay . she ep . fragment . Index Fragment Ċ import Ġcn . ned ay . she ep . fragment . Me Fragment Ċ import Ġcn . ned ay . she ep . fragment . N ine Goods Fragment Ċ import Ġcn . ned ay . she ep . fragment . Ranking Goods Fragment Ċ import Ġcn . ned ay . she ep . view model . Main ViewModel Ċ import Ġcom . blank j . util code . util . Activity Utils Ċ import Ġcom . blank j . util code . util . Toast Utils Ċ import Ġcom . fly co . dialog . widget . Action Sheet Dialog Ċ import Ġcom . google . android . material . bottomnavigation . Bottom Navigation View Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ /** Ċ Ġ* Ġ ä¸» é¡µ Ċ Ġ* Ċ Ġ* Ġ@ author Ġn Ed Ay Ċ Ġ*/ Ċ class ĠMainActivity Ġ: ĠBase V MA ct ivity < Main ViewModel >( R . layout . activity _ main ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Pressed Back Time Ġ= Ġ 0 L ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġnav _ main . setOn Navigation ItemSelected Listener ( on Navigation ItemSelected Listener ) ĊĠĠĠĠĠĠĠ Ġnav _ main . selected ItemId Ġ= ĠR . id . navigation _ index ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġon Navigation ItemSelected Listener Ġ= ĠBottom Navigation View . On Navigation ItemSelected Listener Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠ Ġload Fragment ( item . itemId ) ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Fragment ( itemId : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtag Ġ= ĠitemId . toString () ĊĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġsupport FragmentManager . find Fragment By Tag ( tag ) Ġ?: Ġwhen Ġ( itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . navigation _ index Ġ-> ĠIndex Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . navigation _ ranking Ġ-> ĠRank ing Goods Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . navigation _ n ine Ġ-> ĠN ine Goods Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . navigation _ me Ġ-> ĠMe Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( fragment Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m ViewModel . m Last Active Fragment Tag Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Fragment Ġ= Ġsupport FragmentManager . find Fragment By Tag ( m ViewModel . m Last Active Fragment Tag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( last Fragment Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . hide ( last Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! fragment . is Added ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . add ( R . id . fl _ main , Ġfragment , Ġtag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . show ( fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . m Last Active Fragment Tag Ġ= Ġtag ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĪª èİ· Back éĶ® åĬ¨ ä½ľ Ġ è¿ŀ ç»Ń è§¦åıĳ ä¸¤ æ¬¡ Back éĶ® åĪĻ éĢĢåĩº ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Pressed Back Time Ġ+ ĠSA FE _ PRES SED _ BACK _ TIME Ġ> ĠSystem . currentTimeMillis ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . show Short ( getString ( R . string . tx _ pressed _ back _ hint )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Pressed Back Time Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĪª èİ· Menu éĶ® åĬ¨ ä½ľ Ġ å¼¹ åĩº Menu èıľåįķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon KeyDown ( keyCode : ĠInt , Ġevent : ĠKeyEvent ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( keyCode Ġ== ĠKeyEvent . KEYCODE _ MENU ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Action Sheet () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on KeyDown ( keyCode , Ġevent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Action Sheet () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmenu Item Array Ġ= Ġresources . getString Array ( R . array . menu _ items _ array ) ĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠAction Sheet Dialog ( this , Ġmenu Item Array , Ġnull ) ĊĠĠĠĠĠĠĠ Ġdialog . is Title Show ( false ). layout Animation ( null ). show () ĊĠĠĠĠĠĠĠ Ġdialog . setOn Oper Item Click L Ġ{ Ġ_, Ġ_, Ġposition , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> ĠBug ly Config . check Upgrade () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠActivity Utils . startActivity ( About Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> ĠActivity Utils . finish All Activities () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSA FE _ PRES SED _ BACK _ TIME Ġ= Ġ 2 0 0 0 ĊĠĠĠ Ġ} Ċ }