package Ġcom . tun gn ui . abc computer . activity Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . support . v 4 . view . ViewPager Ċ import Ġandroid . support . v 7 . widget . Grid LayoutManager Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroid . view . input method . Editor Info Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroid . widget . TextView Ċ Ċ import Ġcom . tun gn ui . abc computer . R Ċ import Ġcom . tun gn ui . abc computer . adapter . Category ListAdapter Ċ import Ġcom . tun gn ui . abc computer . adapter . Home Prod ListAdapter Ċ import Ġcom . tun gn ui . abc computer . adapter . Image Slider Adapter Ċ import Ġcom . tun gn ui . abc computer . api . Category Service Ċ import Ġcom . tun gn ui . abc computer . api . Product Service Ċ import Ġcom . tun gn ui . abc computer . api . Service Generator Ċ import Ġcom . tun gn ui . abc computer . data . constant . App Constants Ċ import Ġcom . tun gn ui . abc computer . data . sqlite .* Ċ import Ġcom . tun gn ui . abc computer . models . Category Ċ import Ġcom . tun gn ui . abc computer . models . Product Ċ import Ġcom . tun gn ui . abc computer . utils . Activity Utils Ċ import Ġcom . tun gn ui . abc computer . utils . Ad Utils Ċ import Ġcom . tun gn ui . abc computer . utils . Analytics Utils Ċ import Ġcom . tun gn ui . abc computer . utils . App Utility Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġkotlinx . android . synt hetic . main . content _ main .* Ċ import Ġkotlinx . android . synt hetic . main . content _ search _ view .* Ċ import Ġkotlinx . android . synt hetic . main . toolbar _ main .* Ċ Ċ import Ġjava . util . ArrayList Ċ import Ġjava . util . Timer Ċ import Ġjava . util . Timer Task Ċ Ċ import Ġme . re lex . circle indicator . Circle Indicator Ċ Ċ class ĠMainActivity Ġ: ĠBase Activity () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm Composite Disposable : ĠComposite Disposable ĊĠĠĠ Ġval Ġproduct Service : ĠProduct Service ĊĠĠĠ Ġval Ġcategory Service : ĠCategory Service ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġm Composite Disposable Ġ= ĠComposite Disposable () ĊĠĠĠĠĠĠĠ Ġproduct Service Ġ= ĠService Generator . create Service ( Product Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġcategory Service Ġ= ĠService Generator . create Service ( Category Service :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġvariables ĊĠĠĠ Ġprivate Ġvar ĠmContext : ĠContext ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Activity : ĠActivity ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġ Ġcategory List : ĠArrayList < Category > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfeatured Prod List : ĠArrayList < Product > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrecent Prod List : ĠArrayList < Product > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpopular Prod List : ĠArrayList < Product > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsample Category Products : ĠArrayList < Product > ĊĠĠĠ Ġprivate Ġvar Ġcategory ListAdapter : ĠCategory ListAdapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfeatured Prod ListAdapter : ĠHome Prod ListAdapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġrecent Prod ListAdapter : ĠHome Prod ListAdapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġpopular Prod ListAdapter : ĠHome Prod ListAdapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsample Category Adapter : ĠHome Prod ListAdapter ? Ġ= Ġnull ĊĊĠĠĠ Ġ// Ġui Ġdeclaration ĊĠĠĠ Ġprivate Ġvar Ġrv Category : ĠRecyclerView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcategory Parent : ĠRelative Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfeature Parent : ĠRelative Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġrecent Parent : ĠRelative Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġpopular Parent : ĠRelative Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsample Cat Parent : ĠRelative Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfeature Progress : ĠProgress Bar ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġrecent Progress : ĠProgress Bar ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġpopular Progress : ĠProgress Bar ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsample Progress : ĠProgress Bar ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtv Feature d List Title : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtv Feature d List All : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtv Recent List Title : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtv Recent List All : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtv Pop ular List Title : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtv Pop ular List All : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtv Sample Category Title : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtv Sample Category All : ĠTextView ? Ġ= Ġnull ĊĊĠĠĠ Ġ// Ġview Ġpager Ġimage Ġslider ĊĠĠĠ Ġprivate Ġvar Ġm Pager : ĠView Pager ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit Variable () ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠĠĠĠĠ Ġinit Listener () ĊĠĠĠĠĠĠĠ Ġload Data () ĊĠĠĠĠĠĠĠ Ġinstance Ġ= Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġload Cart Counter () ĊĠĠĠĠĠĠĠ Ġload Notification Counter () ĊĊĊĠĠĠĠĠĠĠ Ġ// Ġload Ġfull Ġscreen Ġad ĊĠĠĠĠĠĠĠ ĠAd Utils . getInstance ( mContext ). load FullScreen Ad ( m Activity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Variable () Ġ{ ĊĠĠĠĠĠĠĠ ĠmContext Ġ= Ġapplication Context ĊĠĠĠĠĠĠĠ Ġm Activity Ġ= Ġthis @ MainActivity ĊĠĠĠĠĠĠĠ Ġcategory List Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfeatured Prod List Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġrecent Prod List Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġpopular Prod List Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġsample Category Products Ġ= ĠArrayList () ĊĊĠĠĠĠĠĠĠ Ġ// Ġanalytics Ġevent Ġtrigger ĊĠĠĠĠĠĠĠ ĠAnalytics Utils . get Analytics Utils ( mContext ). track Event (" Main ĠActivity ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Ġset Ġparent Ġview ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinitiate Ġdrawer Ġand Ġtoolbar ĊĠĠĠĠĠĠĠ Ġinit Toolbar () ĊĠĠĠĠĠĠĠ Ġinit Drawer (); ĊĠĠĠĠĠĠĠ Ġinit Loader () ĊĊĠĠĠĠĠĠĠ Ġ// Ġcart Ġcounter ĊĊĊĠĠĠĠĠĠĠ Ġ// Ġcategory Ġlist Ġui ĊĠĠĠĠĠĠĠ Ġrv Category Ġ= Ġl yt Category List . findViewById < View >( R . id . home RecyclerView ) Ġas ĠRecyclerView ĊĠĠĠĠĠĠĠ Ġcategory Parent Ġ= Ġl yt Category List . findViewById < View >( R . id . parent Panel ) Ġas ĠRelative Layout ĊĠĠĠĠĠĠĠ Ġl yt Category List . findViewById < View >( R . id . ly t List Header ). visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġl yt Category List . findViewById < View >( R . id . section Progress ). visibility Ġ= ĠView . GONE ĊĊĊĠĠĠĠĠĠĠ Ġ// Ġfeatured Ġlist Ġui ĊĠĠĠĠĠĠĠ Ġval Ġrv Feature d List Ġ= Ġl yt Feature d List . findViewById < View >( R . id . home RecyclerView ) Ġas ĠRecyclerView ĊĠĠĠĠĠĠĠ Ġtv Feature d List Title Ġ= Ġl yt Feature d List . findViewById < View >( R . id . tv List Title ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġtv Feature d List All Ġ= Ġl yt Feature d List . findViewById < View >( R . id . tv See All ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġfeature Parent Ġ= Ġl yt Feature d List . findViewById < View >( R . id . parent Panel ) Ġas ĠRelative Layout ĊĠĠĠĠĠĠĠ Ġfeature Progress Ġ= Ġl yt Feature d List . findViewById < View >( R . id . section Progress ) Ġas ĠProgress Bar ĊĠĠĠĠĠĠĠ Ġ// rv Feature d List . addItem Decoration ( new ĠGrid Spacing Item Decoration ( 2 , Ġ( int ) Ġget Resources (). get Dimension ( R . dim en . pad _ margin _ 2 dp ), Ġfalse )); ĊĊĠĠĠĠĠĠĠ Ġ// Ġrecent Ġlist Ġui ĊĠĠĠĠĠĠĠ Ġval Ġrv Recent List Ġ= Ġl yt Recent List . findViewById < View >( R . id . home RecyclerView ) Ġas ĠRecyclerView ĊĠĠĠĠĠĠĠ Ġtv Recent List Title Ġ= Ġl yt Recent List . findViewById < View >( R . id . tv List Title ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġtv Recent List All Ġ= Ġl yt Recent List . findViewById < View >( R . id . tv See All ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġrecent Parent Ġ= Ġl yt Recent List . findViewById < View >( R . id . parent Panel ) Ġas ĠRelative Layout ĊĠĠĠĠĠĠĠ Ġrecent Progress Ġ= Ġl yt Recent List . findViewById < View >( R . id . section Progress ) Ġas ĠProgress Bar ĊĊĠĠĠĠĠĠĠ Ġ// Ġpopular Ġlist Ġui ĊĠĠĠĠĠĠĠ Ġval Ġrv Pop ular List Ġ= Ġl yt Pop ular List . findViewById < View >( R . id . home RecyclerView ) Ġas ĠRecyclerView ĊĠĠĠĠĠĠĠ Ġtv Pop ular List Title Ġ= Ġl yt Pop ular List . findViewById < View >( R . id . tv List Title ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġtv Pop ular List All Ġ= Ġl yt Pop ular List . findViewById < View >( R . id . tv See All ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġpopular Parent Ġ= Ġl yt Pop ular List . findViewById < View >( R . id . parent Panel ) Ġas ĠRelative Layout ĊĠĠĠĠĠĠĠ Ġpopular Progress Ġ= Ġl yt Pop ular List . findViewById < View >( R . id . section Progress ) Ġas ĠProgress Bar ĊĊĊĠĠĠĠĠĠĠ Ġ// Ġinit Ġcategory ĠRecyclerView ĊĠĠĠĠĠĠĠ Ġrv Category ?. set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġrv Category ?. layout Manager Ġ= ĠLinearLayoutManager ( m Activity , ĠLinearLayoutManager . HORIZONTAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġcategory ListAdapter Ġ= ĠCategory ListAdapter ( category List ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Ġ-> ĠActivity Utils . instance . invoke Products ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Ġ= Ġthis @ MainActivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Id Ġ= Ġcategory . id !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġcategory . name !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrv Category ?. adapter Ġ= Ġcategory ListAdapter ĊĊĠĠĠĠĠĠĠ Ġ// Ġinit Ġfeatured Ġproduct ĠRecyclerView ĊĠĠĠĠĠĠĠ Ġrv Feature d List . layout Manager Ġ= ĠGrid LayoutManager ( m Activity , ĠCOLUMN _ SPAN _ COUNT ) ĊĠĠĠĠĠĠĠ Ġfeatured Prod ListAdapter Ġ= ĠHome Prod ListAdapter ( featured Prod List ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct -> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠproductId Ġ= Ġproduct . id Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( productId Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( m Activity , ĠProduct Details Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( App Constants . PRODUCT _ ID , ĠproductId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrv Feature d List . adapter Ġ= Ġfeatured Prod ListAdapter ĊĊĠĠĠĠĠĠĠ Ġ// Ġinit Ġrecent Ġproduct ĠRecyclerView ĊĠĠĠĠĠĠĠ Ġrv Recent List . layout Manager Ġ= ĠGrid LayoutManager ( m Activity , ĠCOLUMN _ SPAN _ COUNT ) ĊĠĠĠĠĠĠĠ Ġrecent Prod ListAdapter Ġ= ĠHome Prod ListAdapter ( recent Prod List ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct . id ?. let { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( m Activity , ĠProduct Details Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( App Constants . PRODUCT _ ID , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrv Recent List . adapter Ġ= Ġrecent Prod ListAdapter ĊĊĠĠĠĠĠĠĠ Ġ// Ġinit Ġpopular Ġproduct ĠRecyclerView ĊĠĠĠĠĠĠĠ Ġrv Pop ular List . layout Manager Ġ= ĠGrid LayoutManager ( m Activity , ĠCOLUMN _ SPAN _ COUNT ) ĊĠĠĠĠĠĠĠ Ġpopular Prod ListAdapter Ġ= ĠHome Prod ListAdapter ( popular Prod List ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct . id ?. let { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( m Activity , ĠProduct Details Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( App Constants . PRODUCT _ ID , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrv Pop ular List . adapter Ġ= Ġpopular Prod ListAdapter ĊĊĊĊĠĠĠĠĠĠĠ ĠApp Utility . no Internet Warning ( findViewById ( R . id . parent Panel ), ĠmContext ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! App Utility . is Network Available ( mContext )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Empty View () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġdis posable Ġ= Ġcategory Service . get Category () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On (( Schedulers . io ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" main ", response . join ToString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! category List . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory List . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory List . addAll ( response Ġas ĠArrayList < Category >) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! category List . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġload Ġslider Ġimages ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Parent ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory ListAdapter ?. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Category Slider () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Loader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" main ", error . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġm Composite Disposable . add ( dis posable ) ĊĊĊĠĠĠĠĠĠĠ Ġ// ĠLoad Ġfeatured Ġproducts ĊĠĠĠĠĠĠĠ Ġdis posable Ġ= Ġproduct Service . get Feature d ( App Constants . INITIAL _ PAGE _ NUMBER , ĠApp Constants . MAX _ PER _ PAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On (( Schedulers . io ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeatured Prod List . addAll ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! featured Prod List . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeature Parent ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Feature d List Title ?. text Ġ= Ġ" S áº ¢ N ĠPH áº ¨ M ĠN á» Ķ I ĠB áº ¬ T Ġ(" Ġ+ Ġfeatured Prod List !!. size Ġ+ Ġ")" ĠĠ Ġ// Ġset Ġlist Ġtitle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeatured Prod ListAdapter ?. set Display Count ( App Constants . HOME _ ITEM _ MAX ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġset Ġdisplay Ġitem Ġlimit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeatured Prod ListAdapter ?. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeature Progress !!. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Loader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġerror Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġm Composite Disposable . add ( dis posable ) ĊĊĊĠĠĠĠĠĠĠ Ġ// ĠLoad Ġrecent Ġproducts ĊĠĠĠĠĠĠĠ Ġdis posable Ġ= Ġproduct Service . getNew est ( App Constants . INITIAL _ PAGE _ NUMBER , ĠApp Constants . MAX _ PER _ PAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On (( Schedulers . io ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecent Prod List . addAll ( response ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! recent Prod List . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecent Parent !!. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Recent List Title !!. text Ġ= Ġ" S áº ¢ N ĠPH áº ¨ M ĠM á» ļ I ĠN H áº ¤ T " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecent Prod ListAdapter !!. set Display Count ( App Constants . HOME _ ITEM _ MAX ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecent Prod ListAdapter !!. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecent Progress !!. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Loader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġerror Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġm Composite Disposable . add ( dis posable ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠLoad Ġpopular Ġproduct ĊĠĠĠĠĠĠĠ Ġdis posable Ġ= Ġproduct Service . getS ale ( App Constants . INITIAL _ PAGE _ NUMBER , ĠApp Constants . MAX _ PER _ PAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On (( Schedulers . io ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopular Prod List . addAll ( response ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! popular Prod List . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopular Parent ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Pop ular List Title ?. text Ġ= Ġ" K HU Y áº ¾ N ĠM Ãĥ I ĠH OT ĠN H áº ¤ T " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopular Prod ListAdapter ?. set Display Count ( App Constants . HOME _ ITEM _ MAX ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopular Prod ListAdapter ?. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopular Progress ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Loader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġerror Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġm Composite Disposable . add ( dis posable ) ĊĊĊ Ċ /* ĊĠĠĠĠĠĠĠ Ġ// ĠLoad Ġtech Ġcategories Ġproducts Ġas Ġsample Ġcategory ĊĠĠĠĠĠĠĠ Ġval Ġrequest Cat Product Ġ= ĠRequest Products ( m Activity , ĠApp Constants . INITIAL _ PAGE _ NUMBER , ĠApp Constants . MAX _ PER _ PAGE , ĠApp Constants . CATEGORY _ TEC _ PRODUCT S _ ID , ĠApp Constants . TYPE _ CATEGORY ) ĊĠĠĠĠĠĠĠ Ġrequest Cat Product . set Response Listener Ġ{ Ġdata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsample Category Products !!. addAll ( data Ġas ĠArrayList < Product Detail >) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! sample Category Products !!. isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsample Cat Parent !!. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Sample Category Title !!. text Ġ= Ġ" TE CH ĠDIS COVERY Ġ(" Ġ+ Ġsample Category Products !!. size Ġ+ Ġ")" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsample Category Adapter !!. set Display Count ( App Constants . HOME _ ITEM _ MAX ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsample Category Adapter !!. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample Progress !!. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Loader () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrequest Cat Product . execute () */ ĊĠĠĠĠĠĠĠ Ġ// Ġset Ġcart Ġcounter ĊĠĠĠĠĠĠĠ Ġload Cart Counter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Listener () Ġ{ ĊĊĠĠĠĠĠĠ Ġ/* Ġrecent Prod ListAdapter !!. setItem ClickListener Ġ{ Ġview , Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠproductId Ġ= Ġrecent Prod List ! ![ position ]. id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( productId Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( m Activity , ĠProduct Details Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( App Constants . PRODUCT _ ID , ĠproductId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpopular Prod ListAdapter !!. setItem ClickListener Ġ{ Ġview , Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠproductId Ġ= Ġpopular Prod List ! ![ position ]. id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( productId Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( m Activity , ĠProduct Details Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( App Constants . PRODUCT _ ID , ĠproductId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsample Category Adapter !!. setItem ClickListener Ġ{ Ġview , Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠproductId Ġ= Ġsample Category Products ! ![ position ]. id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( productId Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( m Activity , ĠProduct Details Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( App Constants . PRODUCT _ ID , ĠproductId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}*/ ĊĠĠĠĠĠĠĠ Ġ// Ġtoolbar Ġcart Ġaction Ġlistener ĊĠĠĠĠĠĠĠ Ġimg Toolbar Cart . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Utils . instance . invoke Activity ( this @ MainActivity , ĠCart List Activity :: class . java , Ġfalse ); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġtoolbar Ġnotification Ġaction Ġlistener ĊĠĠĠĠĠĠĠ Ġimg Notification . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Utils . instance . invoke Activity ( this @ MainActivity , ĠNotification Activity :: class . java , Ġfalse ); ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġsearch Ġicon Ġat Ġhome Ġaction Ġlistener ĊĠĠĠĠĠĠĠ Ġiv Search Icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ed t Search Product . text . toString (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Utility . show Toast ( mContext , ĠgetString ( R . string . type _ something )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Utils . instance . invoke Search Activity ( this @ MainActivity , Ġed t Search Product . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġed t Search Product . setOn Editor ActionListener ( TextView . On Editor ActionListener Ġ{ Ġv , Ġaction Id , Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Id Ġ== ĠEditor Info . IME _ ACTION _ SEARCH ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ed t Search Product . text . toString (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Utility . show Toast ( mContext , ĠgetString ( R . string . type _ something )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Utils . instance . invoke Search Activity ( this @ MainActivity , Ġed t Search Product . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ On Editor ActionListener Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSee Ġall Ġlistener ĊĠĠĠĠĠĠĠ Ġtv Feature d List All ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Utils . instance . invoke Products ( this @ MainActivity , title Ġ= Ġ ĠgetString ( R . string . featured _ items ), type =" featured ") Ġ} ĊĊĠĠĠĠĠĠĠ Ġtv Recent List All ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Utils . instance . invoke Products ( this @ MainActivity , title = getString ( R . string . recent _ items ), Ġtype =" new est ") Ġ} ĊĊĠĠĠĠĠĠĠ Ġtv Pop ular List All ?. setOnClickListener Ġ{ ĠActivity Utils . instance . invoke Products ( this @ MainActivity , Ġtitle = getString ( R . string . popular _ items ), Ġtype =" sale ") Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Category Slider () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimage List Ġ= ĠArrayList < String >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġcategory List . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage List . add ( category List [ i ]. image ?. src !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġimage Slider Adapter Ġ= ĠImage Slider Adapter ( mContext , Ġimage List ) ĊĠĠĠĠĠĠĠ Ġm Pager Ġ= ĠfindViewById < View >( R . id . vp Image Slider ) Ġas ĠView Pager ĊĠĠĠĠĠĠĠ Ġm Pager !!. adapter Ġ= Ġimage Slider Adapter ĊĠĠĠĠĠĠĠ Ġval Ġindicator Ġ= ĠfindViewById < View >( R . id . slider Indicator ) Ġas ĠCircle Indicator ĊĠĠĠĠĠĠĠ Ġindicator . set ViewPager ( m Pager ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAuto Ġstart Ġof Ġview pager ĊĠĠĠĠĠĠĠ Ġval Ġhandler Ġ= ĠHandler () ĊĠĠĠĠĠĠĠ Ġval ĠUpdate Ġ= ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġset Position Ġ= Ġm Pager !!. currentItem Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( setPosition Ġ== Ġimage List . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Position Ġ= ĠApp Constants . VALUE _ ZERO ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Pager !!. setCurrent Item ( setPosition , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrv Category !!. smooth Scroll To Position ( setPosition ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ĠAuto Ġanimated Ġtimer ĊĠĠĠĠĠĠĠ Ġval Ġswipe Timer Ġ= ĠTimer () ĊĠĠĠĠĠĠĠ Ġswipe Timer . schedule ( object Ġ: ĠTimer Task () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . post ( Update ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, Ġ 3 0 0 0 , Ġ 3 0 0 0 ) ĊĊĊĠĠĠĠĠĠĠ Ġ// Ġview Ġpage Ġon Ġitem Ġclick Ġlistener ĊĠĠĠĠĠĠĠ Ġimage Slider Adapter . setItem ClickListener Ġ{ Ġview , Ġposition Ġ-> ĠActivity Utils . instance . invoke Products ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ MainActivity , category List [ position ]. id !! , Ġcategory List [ position ]. name !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Pager ?. add On Page ChangeListener ( object Ġ: ĠView Pager . On Page ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( position : ĠInt , Ġposition Offset : ĠFloat , Ġposition Offset Pixels : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Category Item Selection ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( state : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġload Cart Counter () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtotal Ġ= Ġapplication Context . Db Helper . total Cart Item () ĊĠĠĠĠĠĠĠ Ġif ( total Ġ== Ġ 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Cart Counter . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Cart Counter . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Cart Counter . text Ġ= Ġtotal . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Notification Counter () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotify Controller Ġ= ĠNotification DB Controller ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Controller . open () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotify List Ġ= Ġnotify Controller . unread Notification ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Controller . close () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( notify List . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Notification Counter . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Notification Counter . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Notification Counter . text Ġ= Ġnotify List . size . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Notification Counter . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Category Item Selection ( selectedIndex : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrv Category ?. smooth Scroll To Position ( selectedIndex ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( page Model Ġin Ġcategory List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage Model . isSelected Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcategory List [ selectedIndex ]. isSelected Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġcategory ListAdapter ?. notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠCOLUMN _ SPAN _ COUNT Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ get : Synchron ized ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġinstance : ĠMainActivity ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġinvalidate Drawer Menu Header () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinstance Ġ= ĠMainActivity . instance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( instance Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance . invalidate Header () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ