package Ġcom . android y ug . mars ro ver . ui . main Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app .* Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent Filter Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . net . Connectivity Manager Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . design . widget . Snackbar Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . support . v 7 . widget . Toolbar Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . Menu Inflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . animation . Animation Utils Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . DatePicker Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ Ċ import Ġbutter knife . BindView Ċ import Ġcom . android y ug . mars ro ver . Network Conn Ċ import Ġcom . android y ug . mars ro ver . R Ċ import Ġcom . android y ug . mars ro ver . common . Constant Ċ import Ġcom . android y ug . mars ro ver . common . Fonts Factory Ċ import Ġcom . android y ug . mars ro ver . common . Utils Ċ import Ġcom . android y ug . mars ro ver . common . Vertical Space Ċ import Ġcom . android y ug . mars ro ver . data . model . Dataset Ċ import Ġcom . android y ug . mars ro ver . data . model . Photo Ċ import Ġcom . android y ug . mars ro ver . data . model . R over Ċ import Ġcom . android y ug . mars ro ver . data . rest . M ars DataSource Imp le Ċ import Ġcom . android y ug . mars ro ver . ui . intro . Intro Activity Ċ import Ġcom . android y ug . mars ro ver . ui . select ro ver . Select R over Activity Ċ import Ġcom . squareup . otto . Bus Ċ import Ġcom . squareup . otto . Subscribe Ċ import Ġcom . squareup . otto . Thread En for cer Ċ Ċ import Ġjava . util . Calendar Ċ import Ġjava . util . Date Ċ Ċ import Ġbutter knife . B utter Kn ife Ċ Ċ /** Ċ Ġ* Ġ@ author ĠN it in ĠAn and Ġ( nit inn atural @ gmail . com ) Ċ Ġ*/ Ċ class ĠHome Fragment Ġ: ĠFragment (), ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbus : ĠBus ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Network Conn : ĠNetwork Conn ĊĠĠĠ Ġ// Ġrequ ird Ġby Ġdate Ġpicker ĊĠĠĠ Ġprivate Ġvar Ġm Landing Date Ġ= ĠUtils . string ToDate ( Constant . CUR IOS ITY _ LAND ING _ DATE ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Max Date : ĠDate ĊĠĠĠ Ġprivate Ġvar Ġm Query Date : ĠString Ġ= ĠConstant . CUR IOS ITY _ LAND ING _ DATE ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm ars DataSource Imp le : ĠM ars DataSource Imp le ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġll m : ĠLinearLayoutManager ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Photo Adapter : ĠPhoto Adapter ĊĠĠĠ Ġprivate Ġvar Ġm DataList : ĠMutable List < Photo >? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġm R over Id Ġ= ĠConstant . RO VER _ CUR IOUS ITY ĊĠĠĠ Ġprivate Ġvar Ġm Page Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġvar Ġm More Page Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġm Loading Ġ= Ġtrue ĊĠĠĠ Ġprivate Ġvar Ġpast Visible s Items : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġvisible ItemCount : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġtotal ItemCount : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġ@ BindView ( R . id . ll _ root _ home _ fragment ) ĊĠĠĠ Ġlateinit Ġvar Ġll Root : ĠLinearLayout ĊĊĠĠĠ Ġ@ BindView ( R . id . rv _ home ) ĊĠĠĠ Ġlateinit Ġvar Ġrv Home : ĠRecyclerView ĊĊĠĠĠ Ġ@ BindView ( R . id . main _ toolbar ) ĊĠĠĠ Ġlateinit Ġvar Ġtoolbar : ĠToolbar ĊĊĠĠĠ Ġ@ BindView ( R . id . btn _ date ) ĊĠĠĠ Ġlateinit Ġvar Ġbtn Date : ĠButton ĊĊĠĠĠ Ġ@ BindView ( R . id . tv _ title ) ĊĠĠĠ Ġlateinit Ġvar Ġtv Title : ĠTextView ĊĊĠĠĠ Ġ@ BindView ( R . id . progress _ bar ) ĊĠĠĠ Ġlateinit Ġvar ĠprogressBar : ĠProgress Bar ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġbus Ġ= ĠBus ( Thread En for cer . ANY ) ĊĠĠĠĠĠĠĠ Ġll m Ġ= ĠLinearLayoutManager ( activity ) ĊĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġinflater . inflate ( R . layout . fragment _ home , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ ĠB utter Kn ife . bind ( this , Ġv ) ĊĊĠĠĠĠĠĠĠ Ġinitialize Action Toolbar () ĊĊĠĠĠĠĠĠĠ Ġbtn Date . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġtv Title . type face Ġ= ĠFonts Factory . robot o Con dense d Bold ( activity ) ĊĠĠĠĠĠĠĠ Ġtv Title . text Ġ= Ġ" CUR IOS ITY " ĊĠĠĠĠĠĠĠ Ġm ars DataSource Imp le Ġ= ĠM ars DataSource Imp le ( context , Ġbus ) ĊĠĠĠĠĠĠĠ Ġval Ġpref Ġ= Ġactivity . get Preferences ( Context . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġm Query Date Ġ= Ġpref . getString ( Constant . PRE F KEY _ Q DATE , ĠConstant . CUR IOS ITY _ LAND ING _ DATE ) ĊĠĠĠĠĠĠĠ Ġm R over Id Ġ= Ġpref . getInt ( Constant . PRE F KEY _ RO VER _ ID , ĠConstant . RO VER _ CUR IOUS ITY ) ĊĠĠĠĠĠĠĠ ĠLog . d ( LOG _ TAG , Ġ" from Ġon Ġstart $ m Query Date $ m R over Id ") ĊĠĠĠĠĠĠĠ Ġquery Api ( m R over Id , Ġm Query Date , Ġm Page ) ĊĠĠĠĠĠĠĠ ĠsetTitle ( m R over Id ) ĊĠĠĠĠĠĠĠ Ġbtn Date . text Ġ= Ġm Query Date ĊĊĠĠĠĠĠĠĠ Ġrv Home . setOn Scroll Listener ( object Ġ: ĠRecyclerView . On Scroll Listener () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġflag : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Sc rolled ( re cyclerView : ĠRecyclerView ?, Ġdx : ĠInt , Ġdy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Sc rolled ( re cyclerView , Ġdx , Ġdy ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIs Ġscrolling Ġup ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dy Ġ> Ġ 1 0 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! flag ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toolbar () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflag Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIs Ġscrolling Ġdown ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( dy Ġ< Ġ- 1 0 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( flag ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Toolbar () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrv Home . set Padding ( 0 , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflag Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dy Ġ> Ġ 0 ) Ġ{ Ġ// Ġscrolling Ġvert ically ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisible ItemCount Ġ= Ġll m . child Count ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal ItemCount Ġ= Ġll m . getItem Count (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal ItemCount Ġ= Ġm Photo Adapter !!. item Count ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpast Visible s Items Ġ= Ġll m . findFirst Visible Item Position () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Loading ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( visible ItemCount Ġ+ Ġpast Visible s Items Ġ>= Ġtotal ItemCount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Loading Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Home Fragment ", Ġ" Last ĠItem ĠW ow Ġ! ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m More Page ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmake Ġa Ġquery Ġto Ġload Ġmore ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm ars DataSource Imp le . make Call To Service ( m R over Id , Ġm Page , Ġm Query Date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsn ackbar Ġ= ĠSn ackbar . make ( ll Root !! , Ġ" LOADING ĠMO RE ĠPH OT OS ", ĠSn ackbar . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAction (" CANCEL ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( getActivity (), Ġ" sn ack Ġaction Ġclicked ", ĠToast . LENGTH _ SHORT ). show (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAction TextColor ( Color . CY AN ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsn ackbar View Ġ= Ġsn ackbar . view ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar View . set BackgroundColor ( Color . DK GRAY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġsn ackbar View . findViewById < View >( android . support . design . R . id . sn ackbar _ text ) Ġas ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setTextColor ( Color . GREEN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Do Ġpagination .. Ġi . e . Ġfetch Ġnew Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġv ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġshow Toolbar () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġtoolbar . start Animation ( Animation Utils . load Animation ( activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim . translate _ up _ off )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Toolbar () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġtoolbar . start Animation ( Animation Utils . load Animation ( activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim . translate _ up _ on )) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĊĠĠĠĠĠĠĠ Ġbus . register ( this ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġbus . unregister ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĊĠĠĠĠĠĠĠ Ġsave To Shared Pref ( m R over Id , Ġm Query Date ) ĊĠĠĠĠĠĠĠ Ġactivity . unregister Receiver ( m Network Conn ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġm Network Conn Ġ= ĠNetwork Conn ( ll Root !! ) ĊĠĠĠĠĠĠĠ Ġactivity . register Receiver ( m Network Conn , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent Filter ( Connectivity Manager . CONNECT IVITY _ ACTION )) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġinit il ize RecyclerView ( dataset : ĠList < Photo >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Photo Adapter Ġ= ĠPhoto Adapter ( activity , Ġdataset ) ĊĠĠĠĠĠĠĠ Ġrv Home . layout Manager Ġ= Ġll m ĊĠĠĠĠĠĠĠ Ġrv Home . addItem Decoration ( Vertical Space ( 2 0 )) ĊĠĠĠĠĠĠĠ Ġrv Home . adapter Ġ= Ġm Photo Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize Action Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar . title Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġhome Activity Ġ= Ġactivity Ġas ĠHome Activity ĊĠĠĠĠĠĠĠ Ġhome Activity . set Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġtoolbar . overflow Icon Ġ= Ġresources . get Drawable ( R . drawable . ic _ action _ overflow ) ĊĠĠĠĠĠĠĠ Ġtoolbar . set Navigation Icon ( R . drawable . ic _ menu _ main ) ĊĠĠĠĠĠĠĠ Ġtoolbar . popup Theme Ġ= Ġandroid . R . style . Widget _ Material _ Light _ Popup Window ĊĊĠĠĠĠĠĠĠ Ġtoolbar . set Navigation OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi Ġ= ĠIntent ( activity , ĠSelect R over Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( i , ĠSELECT _ RO VER _ RQ ST _ CODE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġhome Activity . support ActionBar !!. title Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġhome Activity . support ActionBar !!. set Home As Up Indicator ( R . drawable . ic _ action _ menu ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ĊĠĠĠ Ġinternal Ġfun Ġon Response ( dataset : ĠDataset ) Ġ{ ĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġbtn Date . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġval Ġphotos Ġ= Ġmutable ListOf < Photo >() ĊĠĠĠĠĠĠĠ Ġphotos . addAll ( dataset . photos ) ĊĠĠĠĠĠĠĠ ĠLog . d (" Home Fragment ", Ġ"" Ġ+ Ġphotos . size ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m DataList Ġ== Ġnull ) Ġ{ Ġ// Ġm Photo Adapter Ġ== Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm DataList Ġ= Ġphotos ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit il ize RecyclerView ( m DataList !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( photos . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġro ver Ġ= Ġphotos [ 0 ]. getR over () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Max Date Ġ= ĠUtils . string ToDate ( ro ver !!. getMax Date ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( LOG _ TAG , Ġ" m Landing Date Ġ$ m Landing Date ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( LOG _ TAG , Ġ" m Max Date Ġ$ m Max Date ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( photos . size Ġ== Ġ 2 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm More Page Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ġ// Ġif Ġm D atal ist Ġ!= null Ġappend Ġphoto Ġinto Ġthis ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( photos . size Ġ== Ġ 2 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm More Page Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Loading Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm More Page Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Loading Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm DataList !!. addAll ( photos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Photo Adapter !!. notify Item Range Inserted ( m DataList !!. size , Ġphotos . size ) Ġ// Ġcheck Ġhere ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( getActivity (), Ġ"" + photos . size (), ĠToast . LENGTH _ SHORT ). show (); ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġsave To Shared Pref ( ro ver Id : ĠInt , Ġq Date : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshared Pref Ġ= Ġactivity . get Preferences ( Context . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġval Ġedit Ġ= Ġshared Pref . edit () ĊĠĠĠĠĠĠĠ Ġedit . put Int ( Constant . PRE F KEY _ RO VER _ ID , Ġro ver Id ) ĊĠĠĠĠĠĠĠ Ġedit . putString ( Constant . PRE F KEY _ Q DATE , Ġq Date ) ĊĠĠĠĠĠĠĠ Ġedit . commit () ĊĠĠĠĠĠĠĠ ĠLog . d ( LOG _ TAG , Ġ" ================================ ========== =") ĊĠĠĠĠĠĠĠ ĠLog . d ( LOG _ TAG , Ġ" saved Ġto Ġpref :$ ro ver Id Ġ$ q Date ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Suppress Lint (" ResourceType ") ĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġv . id ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ date Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= ĠCalendar . getInstance () Ġ// Ġdefault Ġtime Ġto Ġshow Ġin Ġdialog Ġdate picker ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc . time Ġ= ĠUtils . string ToDate ( m Query Date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġyear Ġ= Ġc . get ( Calendar . YEAR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmonth Ġ= Ġc . get ( Calendar . MONTH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġday Ġ= Ġc . get ( Calendar . DAY _ OF _ MONTH ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġpassed Ġ 2 Ġfor Ġold Ġdevice Ġlike Ġdate picker Ġon Ġlo l lip op ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠDate Picker Dialog ( activity , Ġ 2 , ĠDate Picker Dialog . On Date Set Listener Ġ{ Ġ_, Ġyear , Ġmonth OfYear , Ġday OfMonth Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm DataList !!. clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Photo Adapter !!. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm More Page Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġ 1 / 5 / 2 0 1 6 Ġrefactor Ġcode Ġa / t Ġbelow Ġtwo Ġline Ġcode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm DataList . clear (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Photo Adapter . notify DataSet Changed (); ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġupdate Ġthe Ġm Query Date Ġvariable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcal Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcal . set ( year , Ġmonth OfYear , Ġday OfMonth ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Query Date Ġ= ĠUtils . readable Date ( cal . time ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( LOG _ TAG , Ġ" m Query Date :" Ġ+ Ġm Query Date ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Date . text Ġ= Ġm Query Date ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Api ( m R over Id , Ġm Query Date , Ġm Page ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( getActivity (), Ġ" date SE t ", ĠToast . LENGTH _ SHORT ). show (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġyear , Ġmonth , Ġday ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdp Ġ= Ġdialog . date Picker ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdp . spin ners Shown Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdp . calendar View Shown Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdp . min Date Ġ= Ġm Landing Date . time ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdp . max Date Ġ= Ġm Max Date . time ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠToast . makeText ( getActivity (), Ġ" from Ġon Act it ivy ĠResult ", ĠToast . LENGTH _ SHORT ). show (); ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠSELECT _ RO VER _ RQ ST _ CODE Ġ&& ĠresultCode Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm R over Id Ġ= Ġdata !!. getInt Extra ( INT ENT _ RO VER _ ID , Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Query Date Ġ= Ġdata . getString Extra ( INT ENT _ RO VER _ DEFAULT _ DATE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Landing Date Ġ= ĠUtils . string ToDate ( m Query Date ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle ( m R over Id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm More Page Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m DataList Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġch ances Ġis Ġm DataList Ġis Ġnot Ġinit il ize Ġfrom Ġon Ġresponse Ġand Ġyou Ġselect Ġdifferent Ġro ver Ġcausing Ġnull Ġpointer Ġexception ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm DataList !!. clear () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Photo Adapter Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Photo Adapter !!. notify DataSet Changed () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Date . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Date . text Ġ= Ġm Query Date ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġquery Api ( m R over Id , Ġm Query Date , Ġm Page ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetTitle ( ro ver Id : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġro ver Id Ġ== ĠConstant . RO VER _ CUR IOUS ITY Ġ-> Ġtv Title . text Ġ= Ġ" CUR IOS ITY " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm R over Id Ġ== ĠConstant . RO VER _ OP PORT UN ITY Ġ-> Ġtv Title . text Ġ= Ġ" OP PORT UN ITY " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm R over Id Ġ== ĠConstant . RO VER _ SPI R IT Ġ-> Ġtv Title . text Ġ= Ġ" SPI R IT " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġquery Api ( ro ver Id : ĠInt , Ġq date : ĠString , Ġpage : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġm ars DataSource Imp le . make Call To Service ( ro ver Id , Ġpage , Ġq date ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?, Ġinflater : ĠMenu Inflater ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate Options Menu ( menu , Ġinflater ) ĊĠĠĠĠĠĠĠ Ġinflater !!. inflate ( R . menu . main _ menu , Ġmenu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ about Ġ-> ĠstartActivity ( Intent ( activity , ĠIntro Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ}// ĠĠĠĠĠĠĠĠĠĠĠ Ġcase ĠR . id . action _ about _ dev : ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( getActivity (), Ġ" about _ dev ", ĠToast . LENGTH _ SHORT ). show (); ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ; ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġcase ĠR . id . action _ opensource : ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( getActivity (), Ġ" opensource ", ĠToast . LENGTH _ SHORT ). show (); ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ; ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġcase ĠR . id . action _ rate _ us : ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( getActivity (), Ġ" rate us ", ĠToast . LENGTH _ SHORT ). show (); ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ; ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLOG _ TAG Ġ= Ġ" Home Fragment " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSELECT _ RO VER _ RQ ST _ CODE Ġ= Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠINTENT _ RO VER _ ID Ġ= Ġ" intent _ ro ver _ id " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠINTENT _ RO VER _ DEFAULT _ DATE Ġ= Ġ" ro ver _ landing _ date " ĊĠĠĠ Ġ} Ċ Ċ } Ċ