package Ġcom . i ams dt . sh ok h ers ch ool . ui . activity Ċ Ċ import Ġam . app wise . components . ni . No Internet Dialog Ċ import Ġandroid . app . Activity Ċ import Ġandroid . arch . lifecycle . Observer Ċ import Ġandroid . arch . lifecycle . ViewModel Providers Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . design . widget . Navigation View Ċ import Ġandroid . support . design . widget . Snackbar Ċ import Ġandroid . support . v 4 . view . Gravity Compat Ċ import Ġandroid . support . v 7 . app . ActionBar Drawer Toggle Ċ import Ġandroid . support . v 7 . widget . Default Item Animator Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġcom . i ams dt . sh ok h ers ch ool . R Ċ import Ġcom . i ams dt . sh ok h ers ch ool . data . database . dao . Author Table Dao Ċ import Ġcom . i ams dt . sh ok h ers ch ool . data . database . dao . Post Table Dao Ċ import Ġcom . i ams dt . sh ok h ers ch ool . data . model . Event Message Ċ import Ġcom . i ams dt . sh ok h ers ch ool . data . model . Post Model Ċ import Ġcom . i ams dt . sh ok h ers ch ool . data . ret rofit . WP Rest Interface Ċ import Ġcom . i ams dt . sh ok h ers ch ool . data . utilities . Constant Util . Companion . NEW _ POST _ FOUND Ċ import Ġcom . i ams dt . sh ok h ers ch ool . data . utilities . Constant Util . Companion . POST _ DATA _ SERVICE Ċ import Ġcom . i ams dt . sh ok h ers ch ool . data . utilities . My Date Util Ċ import Ġcom . i ams dt . sh ok h ers ch ool . data . utilities . Sp Utils Ċ import Ġcom . i ams dt . sh ok h ers ch ool . data . utilities . Theme Utils Ċ import Ġcom . i ams dt . sh ok h ers ch ool . data . utilities . Utility Ċ import Ġcom . i ams dt . sh ok h ers ch ool . ui . adapter . Main Adapter Ċ import Ġcom . i ams dt . sh ok h ers ch ool . ui . base . Base Activity Ċ import Ġcom . i ams dt . sh ok h ers ch ool . ui . services . Post DataService Ċ import Ġcom . i ams dt . sh ok h ers ch ool . ui . viewModel . Main VM Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . app _ bar _ main .* Ċ import Ġkotlinx . android . synt hetic . main . content _ main .* Ċ import Ġorg . green robot . event bus . EventBus Ċ import Ġorg . green robot . event bus . Subscribe Ċ import Ġorg . green robot . event bus . Thread Mode Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠMainActivity Ġ: ĠBase Activity (), ĊĠĠĠĠĠĠĠ ĠNavigation View . On Navigation ItemSelected Listener Ġ{ ĊĊĠĠĠ Ġ// main Ġadapter Ġfor Ġre cyclerView ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġadapter : ĠMain Adapter ĊĊĠĠĠ Ġ// dao Ġto Ġaccess Ġdatabase ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġpost Table Dao : ĠPost Table Dao ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġauthor Table Dao : ĠAuthor Table Dao ĊĊĠĠĠ Ġ// rest Ġinterface Ġto Ġget Ġdata Ġfrom Ġserver ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġwp Rest Interface : ĠWP Rest Interface ĊĊĠĠĠ Ġ// event Ġbus ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġevent Bus : ĠEvent Bus ĊĊĠĠĠ Ġ// theme Ġrequest For New Post Ġcode ĊĠĠĠ Ġprivate Ġval Ġtheme Request Code Ġ= Ġ 1 2 1 ĊĊĠĠĠ Ġ// array Ġlist ĊĠĠĠ Ġprivate Ġvar Ġdate Checked List Ġ= ĠArrayList < String >() ĊĊĠĠĠ Ġ// view Ġmodel ĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠViewModel Providers . of ( this ). get ( Main VM :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// d agger Ġinject ĊĠĠĠĠĠĠĠ Ġget Component (). inject ( this ) ĊĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ// set Ġtheme ĊĠĠĠĠĠĠĠ ĠTheme Utils . initialize ( this ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĊĠĠĠĠĠĠĠ Ġ// check Ġfor Ġinternet Avail Ab le ĊĠĠĠĠĠĠĠ Ġshow No Internet () ĊĊĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= ĠLinearLayoutManager ( this , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayoutManager . VERTICAL , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġmain R cv . layout Manager Ġ= Ġmanager ĊĠĠĠĠĠĠĠ Ġmain R cv . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġmain R cv . item Animator Ġ= ĠDefault Item Animator () ĊĊĠĠĠĠĠĠĠ Ġadapter . change Context ( this @ MainActivity ) ĊĊĊĠĠĠĠĠĠĠ Ġ// debug Ġonly Ġ 2 / 2 3 / 2 0 1 8 Ġremove Ġlater ĊĠĠĠĠĠĠĠ ĠTim ber . i (" ***** WP Ġinterface Ġfrom Ġmain Activity Ġ$ wp Rest Interface ") ĊĊĠĠĠĠĠĠĠ ĠviewModel . setup ( post Table Dao , Ġauthor Table Dao , Ġwp Rest Interface ) ĊĠĠĠĠĠĠĠ ĠviewModel . getAll Post List ()?. observe ( this , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠObserver < List < Post Model >> Ġ{ Ġall Post Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( all Post Ġ!= Ġnull Ġ&& Ġ! all Post . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . replace List ( all Post ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain ProgressBar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i (" Item ĠSize Ġof Ġadapter :${ all Post . size }") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// if Ġinternet Ġis Ġnot Ġpresent Ġshow Ġa Ġmessage ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Utility . is Network Available ( this @ MainActivity )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( main Layout , Ġ" No ĠInternet Ġavailable ", ĠSn ackbar . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// save Ġdate Ġto Ġsp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( all Post . size Ġ>= Ġ 1 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Date ( all Post ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest For New Post Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest For New Post Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// scroll Ġlistener Ġto Ġlo de Ġmore Ġdata Ġon Ġscroll ĊĠĠĠĠĠĠĠ Ġmain R cv . add On Scroll Listener ( object Ġ: ĠRecyclerView . On Scroll Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Sc rolled ( re cyclerView : ĠRecyclerView ?, Ġdx : ĠInt , Ġdy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Sc rolled ( re cyclerView , Ġdx , Ġdy ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtotal ItemCount Ġ= Ġmanager . item Count ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Visible Ġ= Ġmanager . find Last Visible Item Position () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend HasBeen Reached Ġ= Ġlast Visible Ġ+ Ġ 7 Ġ>= Ġtotal ItemCount ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( total ItemCount Ġ>= Ġ 1 0 Ġ&& Ġend HasBeen Reached ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// completed Ġ 1 / 1 / 2 0 1 8 Ġprevent Ġmultiple Ġrequest For New Post ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! request For New Post Ġ&& ĠUtility . is Network Available ( this @ MainActivity )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . request New Post ( wp Rest Interface , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp Utils . getPost Date From Sp ( this @ MainActivity ), Ġevent Bus ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest For New Post Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i (" New Ġrequest For New Post Ġstart ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġtoggle Ġ= ĠAction Bar Drawer Toggle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġdrawer _ layout , Ġtoolbar , ĠR . string . navigation _ drawer _ open , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . navigation _ drawer _ close ) ĊĠĠĠĠĠĠĠ Ġdrawer _ layout . add Drawer Listener ( toggle ) ĊĠĠĠĠĠĠĠ Ġtoggle . sync State () ĊĊĠĠĠĠĠĠĠ Ġnav _ view . set Navigation ItemSelected Listener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow No Internet () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Utility . is Network Available ( this )){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠNo Internet Dialog . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// not Ġcancel able ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . set Cancel able ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show Dialog () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġthis Ġmethod Ġfor Ġsave Ġdate ĊĠĠĠ Ġprivate Ġfun Ġsave Date ( all Post : ĠList < Post Model >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpattern Ġ= Ġ" yyyy - MM - dd ' T ' HH : mm : ss " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd tf Ġ= ĠSimpleDateFormat ( pattern , ĠLocale . getDefault ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// current Ġdate Ġand Ġtime ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsave Date Str Ġ= ĠSp Utils . getPost Date From Sp ( this ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġsave Date : ĠDate Ġ= Ġif Ġ( save Date Str . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd tf . parse ( dt f . format ( Date ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd tf . parse ( save Date Str ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( n Ġin Ġall Post ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġn . date Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( date . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( date Checked List . contains ( date )) Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate 2 Ġ= Ġd tf . parse ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Date Ġ= ĠMy Date Util . compare Two Date ( save Date , Ġdate 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// added Ġto Ġcheck Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Checked List . add ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp Save Ġ= Ġd tf . format ( save Date ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp Utils . set Post Date On Sp ( this , Ġsp Save ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i (" date Ġsaved : Ġ$ sp Save ") ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( e , Ġ" Save Ġdate Ġerror ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( drawer _ layout . is Drawer Open ( Gravity Compat . START )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer _ layout . close Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġmenu ; Ġthis Ġadds Ġitems Ġto Ġthe Ġaction Ġbar Ġif Ġit Ġis Ġpresent . ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠHandle Ġaction Ġbar Ġitem Ġclicks Ġhere . ĠThe Ġaction Ġbar Ġwill ĊĠĠĠĠĠĠĠ Ġ// Ġautomatically Ġhandle Ġclicks Ġon Ġthe ĠHome / Up Ġbutton , Ġso Ġlong ĊĠĠĠĠĠĠĠ Ġ// Ġas Ġyou Ġspecify Ġa Ġparent Ġactivity Ġin ĠAndroid Manifest . xml . ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ settings Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( base Context , ĠSettings Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Navigation ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠHandle Ġnavigation Ġview Ġitem Ġclicks Ġhere . ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ bookmark Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ MainActivity , ĠBook mark Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ categories Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ page Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ setting Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ MainActivity , ĠSettings Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ cho se Color Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( Color Activity . create Intent ( this ), Ġtheme Request Code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ about Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ copyright Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ t ms Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdrawer _ layout . close Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== Ġtheme Request Code Ġ&& ĠresultCode Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// re create Ġthis Ġactivity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecreate () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// subscriber ĊĠĠĠ Ġ@ Subscribe ( thread Mode Ġ= ĠThread Mode . MAIN ) ĊĠĠĠ Ġfun Ġon Rec ive Event ( even Message : ĠEvent Message ) Ġ{ ĊĊĠĠĠĠĠĠĠ ĠTim ber . w (" ******** ** Event Ġbus Ġreceived ******** ") ĊĊĠĠĠĠĠĠĠ Ġif Ġ( even Message . key Ġ== ĠNEW _ POST _ FOUND ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( main Layout , Ġ" New Ġpost Ġfound ", ĠSn ackbar . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest For New Post Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i (" ******* Ġopen Ġfor Ġnew Ġrequest For New Post ******** * ") ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( even Message . key Ġ== ĠPOST _ DATA _ SERVICE ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( even Message . errorMessage . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// start Ġdata Ġinsert Ġservices ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// start Service ( Intent ( this , ĠData Insert Service :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp Utils . save Post Service Complete ( this ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Post DataService . isRunning ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// stop Ġpost Ġdata Services ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstop Service ( Intent ( this , ĠPost DataService :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Service ( Intent ( this , ĠPost DataService :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġrequest For New Post Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// register Ġand Ġunregister Ġevent Ġbus ĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! event Bus . is Registered ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Bus . register ( this @ MainActivity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġif Ġ( event Bus . is Registered ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Bus . unregister ( this @ MainActivity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ