package Ġcom . coder z . creative . music . Fragment Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Array Adapter Ċ import Ġcom . coder z . creative . music . Custom Pager Adapter Ċ import Ġcom . coder z . creative . music . DB . Data Base Helper Ċ import Ġcom . coder z . creative . music . MainActivity Ċ Ċ import Ġcom . coder z . creative . music . R Ċ import Ġkotlinx . android . synt hetic . main . fragment _ c atag ory _ list .* Ċ import Ġkotlinx . android . synt hetic . main . fragment _ show _ expense .* Ċ import Ġkotlinx . android . synt hetic . main . fragment _ summary .* Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ* ĠActiv ities Ġthat Ġcontain Ġthis Ġfragment Ġmust Ġimplement Ġthe Ċ Ġ* Ġ[ Summary Fragment . On Fragment Interaction Listener ] Ġinterface Ċ Ġ* Ġto Ġhandle Ġinteraction Ġevents . Ċ Ġ* ĠUse Ġthe Ġ[ Summary Fragment . newInstance ] Ġfactory Ġmethod Ġto Ċ Ġ* Ġcreate Ġan Ġinstance Ġof Ġthis Ġfragment . Ċ Ġ*/ Ċ class ĠSummary Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġ// ĠTODO : ĠRename Ġand Ġchange Ġtypes Ġof Ġparameters ĊĠĠĠ Ġprivate Ġvar Ġm Param 1 : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Param 2 : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġm Listener : ĠOn Fragment Interaction Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġif Ġ( arguments Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Param 1 Ġ= Ġarguments . getString ( ARG _ PARAM 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Param 2 Ġ= Ġarguments . getString ( ARG _ PARAM 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater ?, Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater !!. inflate ( R . layout . fragment _ summary , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġvar Ġpager Adapter Ġ= ĠCustom Pager Adapter ( child FragmentManager ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġdb Ġ= ĠData Base Helper ( activity . application Context , ĠMainActivity . DATABASE _ NAME , Ġnull , ĠMainActivity . DATABASE _ VERSION ) ĊĠĠĠĠĠĠĠ Ġ/* var Ġspend List Ġ= ĠArrayList < String >() ĊĠĠĠĠĠĠĠ Ġfor ( sp end Ġin Ġdb . getAll S pend ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspend List . add ( sp end . title + Ġ" Ġ" Ġ+ sp end . amount . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprintln (" c atag ory Ġsize Ġ: "+ sp end List . size ) */ ĊĠĠĠĠĠĠĠ Ġvar Ġspend List Ġ= Ġdb . getAll S pend () ĊĊĠĠĠĠĠĠĠ Ġvar Ġlist = Ġspend List ĊĊĠĠĠĠĠĠĠ Ġvar Ġs fl 1 = ĠDay Fragment . newInstance (" Day "," Day ĠSummary ") ĊĠĠĠĠĠĠĠ Ġs fl 1 . set Filter List ( db . getAll S pend For Today ( 0 )) ĊĊĠĠĠĠĠĠĠ Ġvar Ġs fl 2 = ĠMonth Fragment . newInstance (" Month "," Month ĠSummary ") ĊĠĠĠĠĠĠĠ Ġs fl 2 . set Filter List ( db . getAll S pend For Today ( 3 0 )) ĊĊĠĠĠĠĠĠĠ Ġvar Ġs fl 3 = ĠSummary Fragment Layout . newInstance (" Week "," Week ĠSummary ") ĊĠĠĠĠĠĠĠ Ġs fl 3 . set Filter List ( db . getAll S pend For Today ( 7 )) ĊĊĠĠĠĠĠĠĠ Ġpager Adapter . add Fragment ( s fl 1 ," DAY ") ĊĠĠĠĠĠĠĠ Ġpager Adapter . add Fragment ( s fl 3 ," WEEK ") ĊĠĠĠĠĠĠĠ Ġpager Adapter . add Fragment ( s fl 2 ," MONTH ") ĊĠĠĠĠĠĠĠ Ġsummary _ view _ pager . adapter Ġ= Ġpager Adapter ĊĠĠĠĠĠĠ Ġ// Ġsummary _ view _ pager . currentItem = 1 ĊĠĠĠĠĠĠĠ Ġsummary _ tab _ layout . setup With ViewPager ( summary _ view _ pager ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO : ĠRename Ġmethod , Ġupdate Ġargument Ġand Ġhook Ġmethod Ġinto ĠUI Ġevent ĊĠĠĠ Ġfun Ġon Button Pressed ( uri : ĠUri ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Listener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener !!. on Fragment Interaction ( uri ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠ Ġ/* Ġ Ġif Ġ( context Ġis ĠOn Fragment Interaction Listener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException ( context !!. toString () Ġ+ Ġ" Ġmust Ġimplement ĠOn Fragment Interaction Listener ") ĊĠĠĠĠĠĠĠ Ġ}*/ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detach () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Detach () ĊĠĠĠĠĠĠĠ Ġm Listener Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġinterface Ġmust Ġbe Ġimplemented Ġby Ġactivities Ġthat Ġcontain Ġthis ĊĠĠĠĠ Ġ* Ġfragment Ġto Ġallow Ġan Ġinteraction Ġin Ġthis Ġfragment Ġto Ġbe Ġcommunic ated ĊĠĠĠĠ Ġ* Ġto Ġthe Ġactivity Ġand Ġpotentially Ġother Ġfragments Ġcontained Ġin Ġthat ĊĠĠĠĠ Ġ* Ġactivity . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSee Ġthe ĠAndroid ĠTraining Ġlesson Ġ[ Com munic ating Ġwith ĠOther ĠF rag ments ]( http :// developer . android . com / training / basics / fragments / com munic ating . html ) Ġfor Ġmore Ġinformation . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinterface ĠOn Fragment Interaction Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠUpdate Ġargument Ġtype Ġand Ġname ĊĠĠĠĠĠĠĠ Ġfun Ġon Fragment Interaction ( uri : ĠUri ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠRename Ġparameter Ġarguments , Ġchoose Ġnames Ġthat Ġmatch ĊĠĠĠĠĠĠĠ Ġ// Ġthe Ġfragment Ġinitialization Ġparameters , Ġe . g . ĠARG _ ITEM _ NUMBER ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠARG _ PARAM 1 Ġ= Ġ" param 1 " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠARG _ PARAM 2 Ġ= Ġ" param 2 " ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠUse Ġthis Ġfactory Ġmethod Ġto Ġcreate Ġa Ġnew Ġinstance Ġof ĊĠĠĠĠĠĠĠĠ Ġ* Ġthis Ġfragment Ġusing Ġthe Ġprovided Ġparameters . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġparam 1 ĠParameter Ġ 1 . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġparam 2 ĠParameter Ġ 2 . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠA Ġnew Ġinstance Ġof Ġfragment ĠSummary Fragment . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠRename Ġand Ġchange Ġtypes Ġand Ġnumber Ġof Ġparameters ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( param 1 : ĠString , Ġparam 2 : ĠString ): ĠSummary Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠSummary Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString ( ARG _ PARAM 1 , Ġparam 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString ( ARG _ PARAM 2 , Ġparam 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġargs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }// ĠRequired Ġempty Ġpublic Ġconstructor Ċ