package Ġcom . ra q un . android . ui . main Ċ Ċ import Ġandroid . app . Intent Service Ċ import Ġandroid . app . Service Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . annotation . Layout Res Ċ import Ġandroid . support . design . widget . Bottom Navigation View Ċ import Ġandroid . support . design . widget . Floating ActionButton Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . view . MenuItem Ċ import Ġcom . ra q un . android . R Ċ import Ġcom . ra q un . android . ui . Base Activity Ċ import Ġcom . ra q un . android . ui . add . Add Product Activity Ċ import Ġcom . ra q un . android . ui . main . favorites . F avorites Fragment Ċ import Ġcom . ra q un . android . ui . main . home . Home Fragment Ċ import Ġcom . ra q un . android . ui . main . more . More Fragment Ċ import Ġcom . ra q un . android . ui . main . notifications . Notifications Fragment Ċ import Ġcom . ra q un . android . extensions . disable Sh ifting Mode Ċ import Ġcom . ra q un . android . extensions . init Ċ import Ġcom . ra q un . android . extensions . open Fragment Ċ import Ġcom . ra q un . android . fc m . Register Token Service Ċ import Ġcom . ra q un . android . ui . Navigation Controller Ċ import Ġdagger . android . Android Injector Ċ import Ġdagger . android . Dispatch ing Android Injector Ċ import Ġdagger . android . Has Service Injector Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠMainActivity Ġ: ĠBase Activity (), ĠF ab Provider Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġfab : ĠFloating ActionButton ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Layout Res Ġoverride Ġfun Ġget Layout Res (): ĠInt Ġ= ĠR . layout . activity _ main ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġinit ( savedInstanceState , ĠHome Fragment . newInstance ()) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Service ( Register Token Service . new Intent ( this )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfab Ġ= ĠfindViewById < Floating ActionButton >( R . id . fab _ add )?. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Add Product Activity . new Intent ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠfindViewById < Bottom Navigation View >( R . id . bottom _ navigation ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On Navigation ItemSelected Listener Ġ{ Ġitem : ĠMenuItem ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( item ?. itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ home Ġ-> Ġopen Fragment ( Home Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ fav s Ġ-> Ġopen Fragment ( F avorites Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ notifications Ġ-> Ġopen Fragment ( Notifications Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ more Ġ-> Ġopen Fragment ( More Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . disable Sh ifting Mode () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Navigation Type () Ġ= ĠNavigation Controller . Navigation Type . ROOT ĊĊĠĠĠ Ġprivate Ġfun Ġopen Fragment ( fragment : ĠFragment ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . open Fragment ( R . id . frame layout _ main , Ġfragment ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Fab () Ġ{ ĊĠĠĠĠĠĠĠ Ġfab ?. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide Fab () Ġ{ ĊĠĠĠĠĠĠĠ Ġfab ?. hide () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Intent ( context : ĠContext ) Ġ= ĠIntent ( context , ĠMainActivity :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ