package Ġcom . mt g . counters . modules . fr _ main Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View .* Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . core . widget . do On TextChanged Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . mt g . counters . Application Ċ import Ġcom . mt g . counters . R Ċ import Ġcom . mt g . counters . databinding . Fragment Main Binding Ċ import Ġcom . mt g . counters . db . entities . Counters Ċ import Ġcom . mt g . counters . extensions . hide Keyboard Ċ import Ġcom . mt g . counters . extensions . is Network Enable Ċ import Ġcom . mt g . counters . extensions . show Keyboard Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ* ĠUse Ġthe Ġ[ Main Fragment . newInstance ] Ġfactory Ġmethod Ġto Ċ Ġ* Ġcreate Ġan Ġinstance Ġof Ġthis Ġfragment . Ċ Ġ*/ Ċ class ĠMain Fragment Ġ: ĠFragment (), ĠMain Presenter , ĠOn ClickListener , ĠCounter ClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Main Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġiterator : ĠMain Iterator ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadapter : ĠCounter Adapter ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . inflate ( in flater , ĠR . layout . fragment _ main , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġiterator Ġ= ĠViewModel Provider ( this ). get ( Main Iterator :: class . java ) ĊĠĠĠĠĠĠĠ Ġiterator . set Listener ( this ) ĊĠĠĠĠĠĠĠ Ġinit Views () ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . rcv Counters . layout Manager Ġ= ĠLinearLayoutManager ( Application . getContext (), ĠRecyclerView . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Back . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Close . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . btn Add Counter . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġ/* ĠDownload ĠAll ĠCounter s ĠFrom ĠServer Ġ*/ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Application . getContext (). is Network Enable ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalert Ġ= ĠAlertDialog . Builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert . setTitle ( getString ( R . string . wt _ internet _ problem )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert . setMessage ( getString ( R . string . ws _ offline _ device )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert . set Positive Button ( getString ( R . string . t _ btn _ dismiss ), Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert . set Negative Button ( getString ( R . string . t _ btn _ retry )) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ly t Loading . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiterator . download All Counters () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert . show () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ly t Loading . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiterator . download All Counters () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . sw p Counters . setColor Scheme Resources ( R . color . app _ tint ) ĊĠĠĠĠĠĠĠ Ġbinding . sw p Counters . set Progress BackgroundColor Scheme Resource ( R . color . white ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġif Ġ( binding . toolbar Main . img Search Bar . isVisible ) Ġbinding . view Shadow Search . visibility Ġ= ĠG ONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonError ( counter : ĠCounter s ?, Ġmsg : ĠString , Ġoption : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġalert Ġ= ĠAlertDialog . Builder ( activity ) ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġwhen Ġ( option ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOPTION _ INCREMENT Ġ-> ĠString . format ( getString ( R . string . wt _ cant _ update ), Ġcounter !!. title , Ġ( counter . count Ġ+ Ġ 1 ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOPTION _ DECRE MENT Ġ-> ĠString . format ( getString ( R . string . wt _ cant _ update ), Ġcounter !!. title , Ġ( counter . count Ġ- Ġ 1 ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOPTION _ DELETE Ġ-> ĠString . format ( getString ( R . string . wt _ cant _ delete ), Ġcounter !!. title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠgetString ( R . string . wt _ cant _ download ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġalert . setTitle ( title ) ĊĠĠĠĠĠĠĠ Ġalert . setMessage ( msg ) ĊĠĠĠĠĠĠĠ Ġalert . set Positive Button ( getString ( R . string . t _ btn _ dismiss )) Ġ{ Ġ_, Ġ_ Ġ-> Ġif Ġ( option Ġ!= ĠOPTION _ GET _ ALL ) Ġbinding . ly t Loading . visibility Ġ= ĠG ONE Ġ} ĊĠĠĠĠĠĠĠ Ġalert . set Negative Button ( getString ( R . string . t _ btn _ retry )) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ly t Loading . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( option ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOPTION _ INCREMENT Ġ-> Ġiterator . increment Counter ( counter !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOPTION _ DECRE MENT Ġ-> Ġiterator . decrement Count ( counter !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOPTION _ DELETE Ġ-> Ġiterator . delete Counters ( mutable ListOf ( counter !! )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOPTION _ GET _ ALL Ġ-> Ġiterator . download All Counters () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġalert . set Cancel able ( false ) ĊĠĠĠĠĠĠĠ Ġalert . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v ?. id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Search Bar . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . ly t Search Bar . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . view Shadow . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Search Bar . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . ed t Search . is Focus able In Touch Mode Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . ed t Search . is Focus able Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . ed t Search . request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . ed t Search . show Keyboard () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . ed t Search . setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Close . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . ed t Search . setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . ed t Search . show Keyboard () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Back . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . ly t Search Bar . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . view Shadow . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . view Shadow Search . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Search Bar . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . filter . filter ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . ed t Search . hide Keyboard () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Close Share . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . ly t Share Bar . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . view Shadow . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Search Bar . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . reset Editing () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Delete . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtitle Ġ= Ġ" Delete Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist ToDelete Ġ= Ġmutable ListOf < Counters >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . get Filter edList (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isSelected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist ToDelete . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ+= Ġ"\" ${ it . title }\ "" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalert Ġ= ĠAlertDialog . Builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert . setTitle ("$ title ?") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert . set Positive Button ( getString ( R . string . t _ btn _ delete )) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ly t Loading . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiterator . delete Counters ( list ToDelete ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert . set Negative Button ( getString ( R . string . t _ btn _ cancel ), Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalert . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Share . id Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtext To Share Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . get Filter edList (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isSelected ) Ġtext To Share Ġ+= Ġ"${ it . count } ĠÃĹ Ġ${ it . title } Ġ- Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent : ĠIntent Ġ= ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= ĠIntent . ACTION _ SEND ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Intent . EXTRA _ TEXT , Ġtext To Share . substring ( 0 , Ġtext To Share . length - 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" text / plain " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshare Intent Ġ= ĠIntent . create Chooser ( intent , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( share Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . btn Add Counter . id Ġ-> Ġfind Nav Controller (). navigate ( R . id . present _ create _ item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠCallback ĠTo ĠManage ĠThe ĠVisibility ĠAnd ĠRefresh ĠOf ĠCounter s ĠList ĠTo ĠThe ĠUI Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġshow Live Counters () Ġ{ ĊĠĠĠĠĠĠĠ Ġiterator . getLast Counters (). observe ( view Lifecycle Owner , Ġ{ Ġcounters Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . sw p Counters . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠCounter Adapter ( counters , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rcv Counters . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( counters . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ly t Loading . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . pg b Search Counters . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt No Counters . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt Phrase . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt Total Items . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt Total Items . text Ġ= Ġif Ġ( counters . size Ġ> Ġ 1 ) Ġ"${ counters . size } Ġitems " Ġelse Ġ"${ counters . size } Ġitem " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtimes Ġ= Ġ 0 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcounters . forEach Ġ{ Ġtimes Ġ+= Ġit . count Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt Total Count . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt Total Count . text Ġ= Ġif Ġ( times Ġ> Ġ 1 L ) Ġ"$ times Ġtimes " Ġelse Ġ"$ times Ġtime " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Search Bar . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . sw p Counters . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . sw p Counters . setOn Refresh Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . sw p Counters . is Refresh ing Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiterator . download All Counters () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . pg b Search Counters . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt No Counters . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt Phrase . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt Total Items . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt Total Count . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Search Bar . setOnClickListener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . sw p Counters . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġbinding . toolbar Main . ed t Search . do On TextChanged Ġ{ Ġtext , Ġ_, Ġ_, Ġcount Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . filter . filter ( text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( count Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Close . visibility Ġ= ĠIN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . view Shadow Search . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Close . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . view Shadow Search . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠCallback ĠTo ĠManage ĠWhen ĠUser ĠClick ĠThe ĠAdd ĠButton ĠOf ĠThe ĠList Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Add Counter ( counter : ĠCounter s ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Application . getContext (). is Network Enable ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalert Ġ= ĠAlertDialog . Builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert . setTitle ( getString ( R . string . wt _ internet _ problem )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert . setMessage ( getString ( R . string . ws _ offline _ device )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert . set Positive Button ( getString ( R . string . t _ btn _ ok ), Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert . show () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ly t Loading . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiterator . increment Counter ( counter ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠCallback ĠTo ĠManage ĠWhen ĠUser ĠClick ĠThe ĠSub traction ĠButton ĠOf ĠThe ĠList Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Subtract Counter ( counter : ĠCounter s ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Application . getContext (). is Network Enable ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalert Ġ= ĠAlertDialog . Builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert . setTitle ( getString ( R . string . wt _ internet _ problem )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert . setMessage ( getString ( R . string . ws _ offline _ device )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert . set Positive Button ( getString ( R . string . t _ btn _ ok ), Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert . show () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ly t Loading . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiterator . decrement Count ( counter ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠCallback ĠTo ĠManage ĠWhen ĠUser ĠLong ĠP ressed ĠA ĠCounter ĠItem ĠFor ĠThe ĠFirst ĠTime Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Editing Counters () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Search Bar . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠ Ġbinding . toolbar Main . ly t Share Bar . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠ Ġbinding . view Shadow . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Close Share . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Delete . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Share . setOnClickListener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠCallback ĠTo ĠManage ĠWhen ĠUser ĠSelect ĠA ĠCounter ĠOf ĠEdit ing ĠList Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonSelect Counter () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtotal Items Selected Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġadapter . get Filter edList (). forEach Ġ{ Ġif Ġ( it . isSelected ) Ġtotal Items Selected ++ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( total Items Selected Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . txt Selected . text Ġ= Ġ"$ total Items Selected Ġselected " ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Close Share . perform Click () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠCallback ĠTo ĠManage ĠThe ĠPublish ĠResults ĠOf ĠThe ĠFiltering ĠAction Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Filter Complete () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( adapter . item Count Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt Total Items . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt Total Count . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt Empty Search . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfilter edList Ġ= Ġadapter . get Filter edList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt Total Items . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt Total Count . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt Empty Search . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt Total Items . text Ġ= Ġif Ġ( filter edList . size Ġ> Ġ 1 ) Ġ"${ filter edList . size } Ġitems " Ġelse Ġ"${ filter edList . size } Ġitem " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtimes Ġ= Ġ 0 L ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilter edList . forEach Ġ{ Ġtimes Ġ+= Ġit . count Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . txt Total Count . text Ġ= Ġif Ġ( times Ġ> Ġ 1 L ) Ġ"$ times Ġtimes " Ġelse Ġ"$ times Ġtime " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠCallback ĠWhen ĠDelete ĠCounter s ĠOf ĠServer ĠAre ĠFinished Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonDelete Counter Complete () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . toolbar Main . img Close Share . perform Click () ĊĠĠĠĠĠĠĠ Ġshow Live Counters () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠOPTION _ INCREMENT Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠOPTION _ DECRE MENT Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠOPTION _ DELETE Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠOPTION _ GET _ ALL Ġ= Ġ 4 ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠUse Ġthis Ġfactory Ġmethod Ġto Ġcreate Ġa Ġnew Ġinstance Ġof ĊĠĠĠĠĠĠĠĠ Ġ* Ġthis Ġfragment Ġusing Ġthe Ġprovided Ġparameters . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠA Ġnew Ġinstance Ġof Ġfragment ĠMain Fragment . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMain Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠMain Presenter Ġ{ ĊĠĠĠ Ġfun ĠonError ( counter : ĠCounter s ?, Ġmsg : ĠString , Ġoption : ĠInt ) ĊĠĠĠ Ġfun Ġshow Live Counters () ĊĠĠĠ Ġfun ĠonDelete Counter Complete () Ċ } Ċ Ċ interface ĠCounter ClickListener Ġ{ ĊĠĠĠ Ġfun Ġon Add Counter ( counter : ĠCounter s ) ĊĠĠĠ Ġfun Ġon Subtract Counter ( counter : ĠCounter s ) ĊĠĠĠ Ġfun Ġon Editing Counters () ĊĠĠĠ Ġfun ĠonSelect Counter () ĊĠĠĠ Ġfun Ġon Filter Complete () Ċ }