package Ġhu . cs ab ap ap . series reminder . ui . se asons Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . recyclerview . widget . Divider Item Decoration Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġdagger . android . support . D agger AppCompatActivity Ċ import Ġhu . cs ab ap ap . series reminder . R Ċ import Ġhu . cs ab ap ap . series reminder . data . db . entities . S RE p isode Ċ import Ġhu . cs ab ap ap . series reminder . extensions . exhaustive Ċ import Ġhu . cs ab ap ap . series reminder . utils . Activities Ċ import Ġhu . cs ab ap ap . series reminder . utils . Episode Ċ import Ġkotlinx . android . synt hetic . main . activity _ se asons .* Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Named Ċ Ċ class ĠSe ason Activity Ġ: ĠD agger AppCompatActivity () Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġ@ Named (" Se asons ViewModel Factory ") ĊĠĠĠ Ġlateinit Ġvar ĠviewModel Provider : ĠSe asons ViewModel Provider ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠSe asons ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ se asons ) ĊĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠviewModel Provider . create ( Se asons ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . details Ui State . observe ( this , ĠObserver < Se asons Ui State > Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( state Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Ui State ( state ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġintent Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġextras Ġ= Ġintent . extras Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġinit Params ( extras ) ĊĊĠĠĠĠĠĠĠ Ġtoolbar . set Navigation OnClickListener Ġ{ Ġfinish () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Params ( extras : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshow Id Ġ= Ġextras . getInt ( Activities . Season . SHOW _ ID ) ĊĠĠĠĠĠĠĠ Ġval Ġseason Number Ġ= Ġextras . getInt ( Activities . Season . SE ASON _ NUMBER ) ĊĠĠĠĠĠĠĠ ĠviewModel . get Show ( show Id ) ĊĠĠĠĠĠĠĠ ĠviewModel . get Season With Episode s ( show Id , Ġseason Number ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Ui State ( state : ĠSe asons Ui State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSe asons Ui State . Display Show Ġ-> Ġtoolbar . title Ġ= Ġstate . show . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSe asons Ui State . Display Episode s Ġ-> Ġdisplay Episode s ( state . episodes ) ĊĠĠĠĠĠĠĠ Ġ}. exhaustive ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdisplay Episode s ( episodes : ĠList < Episode Item >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠEp isode s Adapter ( episodes . to Mutable List ()) ĊĠĠĠĠĠĠĠ Ġadapter . listener Ġ= Ġobject Ġ: ĠEp isode s Adapter . Episode ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Click ( episode : ĠS RE p isode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEp isode . start ( this @ Season Activity , Ġepisode . show Id , Ġepisode . season , Ġepisode . number ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Episode As W atched ( episode : ĠS RE p isode , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . set Episode As W atched ( episode ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . update Item ( position , ĠEp isode Item ( episode , Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġremove Episode From W atched ( episode : ĠS RE p isode , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . remove Episode From W atched ( episode ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . update Item ( position , ĠEp isode Item ( episode , Ġfalse )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= Ġepisode s _ list . layout Manager Ġas ĠLinearLayoutManager ĊĠĠĠĠĠĠĠ Ġlayout Manager . orientation Ġ= ĠRecyclerView . VERTICAL ĊĠĠĠĠĠĠĠ Ġval Ġdivider Item Decoration Ġ= ĠDiv ider Item Decoration ( this , Ġlayout Manager . orientation ) ĊĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= Ġget Drawable ( R . drawable . separator _ vertical ) ĊĠĠĠĠĠĠĠ Ġif Ġ( drawable Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdivider Item Decoration . set Drawable ( drawable ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġepisode s _ list . addItem Decoration ( divider Item Decoration ) ĊĠĠĠĠĠĠĠ Ġepisode s _ list . adapter Ġ= Ġadapter ĊĠĠĠ Ġ} Ċ } Ċ