package Ġcom . ind ram ah kota . foot ball app . ui . fragment Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . ind ram ah kota . foot ball app . R Ċ import Ġcom . ind ram ah kota . foot ball app . data . source . locale . entity . Match Entity Ċ import Ġcom . ind ram ah kota . foot ball app . ui . activity . Details Match Activity Ċ import Ġcom . ind ram ah kota . foot ball app . ui . activity . Details Match Activity . Companion . PAR CEL ABLE _ MATCH _ DATA Ċ import Ġcom . ind ram ah kota . foot ball app . ui . adapter . Match Vertical Adapter Ċ import Ġcom . ind ram ah kota . foot ball app . utilities . Utilities . compare Date After Ċ import Ġcom . ind ram ah kota . foot ball app . utilities . Utilities . compare Date Before And Equal Ċ import Ġcom . ind ram ah kota . foot ball app . view model . Favorite ViewModel Ċ import Ġdagger . android . support . D agger Fragment Ċ import Ġkotlinx . android . synt hetic . main . fragment _ favorite .* Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠF avorite Fragment Ġ: ĠD agger Fragment () Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠARG _ SECTION _ FRAGMENT Ġ= Ġ" section _ fragment " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠARG _ SAVE _ DATA Ġ= Ġ" save _ data " ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( fragment : ĠString ): ĠF avorite Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠF avorite Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( ARG _ SECTION _ FRAGMENT , Ġfragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġstate : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmatch s Data : ĠArrayList < Match Entity >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlinear LayoutManager : ĠLinearLayoutManager ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmatch Adapter : ĠMatch Vertical Adapter ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar ĠviewModel Factory : ĠViewModel Provider . Factory ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġmatch s Data Ġ= ĠsavedInstanceState ?. get Parcelable ArrayList ( ARG _ SAVE _ DATA ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ favorite , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġarguments ?. getString ( ARG _ SECTION _ FRAGMENT ) ĊĊĠĠĠĠĠĠĠ Ġlinear LayoutManager Ġ= ĠLinearLayoutManager ( view . context ) ĊĠĠĠĠĠĠĠ Ġrv _ match . layout Manager Ġ= Ġlinear LayoutManager ĊĠĠĠĠĠĠĠ Ġrv _ match . set Has Fixed Size ( true ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Data Ġ= Ġmutable ListOf < Match Entity >() ĊĠĠĠĠĠĠĠ Ġmatch Adapter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatch Vertical Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġmatch Model Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( activity , ĠDetails Match Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( PAR CEL ABLE _ MATCH _ DATA , Ġmatch Model ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrv _ match . adapter Ġ= Ġmatch Adapter ĊĊĠĠĠĠĠĠĠ Ġif Ġ( match s Data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitialize Ui ( match s Data ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . prev _ favorite _ match _ fragment ) Ġ-> Ġget Favorite Prev List Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . next _ favorite _ match _ fragment ) Ġ-> Ġget Favorite Next List Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Favorite Prev List Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠviewModel Ġ= ĠViewModel Provider ( this , ĠviewModel Factory ). get ( Favorite ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ ĠviewModel . getAll Favorite Match (). observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew List Ġ= ĠArrayList < Match Entity >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( compare Date Before And Equal ( item . date Event )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew List . add ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitialize Ui ( new List ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Favorite Next List Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠviewModel Ġ= ĠViewModel Provider ( this , ĠviewModel Factory ). get ( Favorite ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ ĠviewModel . getAll Favorite Match (). observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew List Ġ= ĠArrayList < Match Entity >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( compare Date After ( item . date Event )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew List . add ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitialize Ui ( new List ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize Ui ( it : ĠList < Match Entity > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno _ data . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno _ data . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmatch s Data Ġ= Ġit ?. let Ġ{ ĠArrayList ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġit ?. let Ġ{ Ġmatch Adapter . replace ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġshim mer _ view _ container . visibility Ġ= ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ Ġout State . put Parcelable ArrayList ( ARG _ SAVE _ DATA , Ġmatch s Data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . prev _ favorite _ match _ fragment ) Ġ-> Ġget Favorite Prev List Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . next _ favorite _ match _ fragment ) Ġ-> Ġget Favorite Next List Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }