package Ġcom . ber te od os io . serie mes mo . presentation . show Details . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . activity . view Models Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . transition . Transition Manager Ċ import Ġcom . ber te od os io . serie mes mo . R Ċ import Ġcom . ber te od os io . serie mes mo . domain . model . Show Ċ import Ġcom . ber te od os io . serie mes mo . presentation . base . view . Base AppCompatActivity Ċ import Ġcom . ber te od os io . serie mes mo . presentation . custom . view . hide Ċ import Ġcom . ber te od os io . serie mes mo . presentation . custom . view . load Center Crop Cross Fade Ċ import Ġcom . ber te od os io . serie mes mo . presentation . custom . view . show Ċ import Ġcom . ber te od os io . serie mes mo . presentation . show Details . viewModel . Show Details ViewModel Ċ import Ġcom . ber te od os io . serie mes mo . presentation . show Details . viewModel . Show Details ViewModel Factory Ċ import Ġcom . ber te od os io . serie mes mo . presentation . show Details . viewModel . Show Details ViewState Ċ import Ġkotlinx . android . synt hetic . main . activity _ show _ details .* Ċ Ċ class ĠShow Details Activity Ġ: ĠBase AppCompatActivity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ show _ details ) ĊĠĠĠĠĠĠĠ Ġconfigure Toolbar () ĊĊĠĠĠĠĠĠĠ Ġval Ġshow Id Ġ= Ġintent ?. getLong Extra ( EXTRA _ SHOW _ ID , ĠINVALID _ SHOW _ ID ) Ġ?: ĠINVALID _ SHOW _ ID ĊĊĠĠĠĠĠĠĠ Ġval ĠviewModel : ĠShow Details ViewModel Ġby Ġview Models Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠShow Details ViewModel Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠviewModel . view State . observe ( this , ĠObserver Ġ{ Ġon View StateChanged ( it ) Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( show _ details _ toolbar ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon View StateChanged ( view State : ĠShow Details ViewState ) Ġ= Ġwhen Ġ( view State ) Ġ{ ĊĠĠĠĠĠĠĠ ĠShow Details ViewState . Loading Ġ-> Ġshow Loading () ĊĠĠĠĠĠĠĠ Ġis ĠShow Details ViewState . Show Details Loaded Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Error Layout () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Show Details ( view State . show ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Loading () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġis ĠShow Details ViewState . Error Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Loading () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error Layout () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Error Layout () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow _ details _ error _ text ?. hide () ĊĠĠĠĠĠĠĠ Ġshow _ details _ view pager ?. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Error Layout () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow _ details _ view pager ?. hide () ĊĠĠĠĠĠĠĠ Ġshow _ details _ error _ text ?. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Tab Layout Custom Fonts () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. show _ details _ tab layout . tab Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfl ated TextView Ġ= ĠLayoutInflater . from ( this ). inflate ( R . layout . custom _ text view _ font , Ġnull ) Ġas ? ĠTextView ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow _ details _ tab layout . get Tab At ( i )?. custom View Ġ= Ġinfl ated TextView ; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Loading () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow _ details _ view pager ?. hide () ĊĠĠĠĠĠĠĠ Ġshow _ details _ loading ?. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Loading () Ġ{ ĊĠĠĠĠĠĠĠ ĠTransition Manager . begin Delayed Transition ( show _ details _ frame ) ĊĠĠĠĠĠĠĠ Ġshow _ details _ loading ?. hide () ĊĠĠĠĠĠĠĠ Ġshow _ details _ view pager ?. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdisplay Show Details ( show : ĠShow ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Title ( show ) ĊĠĠĠĠĠĠĠ Ġsetup Tabs ( show ) ĊĠĠĠĠĠĠĠ Ġsetup Tab Layout Custom Fonts () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Title ( show : ĠShow ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow _ details _ toolbar ?. title Ġ= Ġshow . name ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġshow . name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Tabs ( show : ĠShow ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠShow Details Adapter ( show , Ġsupport FragmentManager , Ġresources ) ĊĠĠĠĠĠĠĠ Ġshow _ details _ view pager ?. adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġshow _ details _ tab layout ?. setup With ViewPager ( show _ details _ view pager ) ĊĠĠĠĠĠĠĠ Ġon Page Selected ( show ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Page Selected ( show : ĠShow ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Title ( show ) ĊĠĠĠĠĠĠĠ Ġcover _ image ?. load Center Crop Cross Fade ( show . backdrop Url ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEX TRA _ SHOW _ ID Ġ= Ġ" EXTRA _ SHOW _ ID " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINVALID _ SHOW _ ID Ġ= Ġ- 1 L ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Intent ( context : ĠContext , Ġshow Id : ĠLong ): ĠIntent Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( context , ĠShow Details Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. putExtra ( EXTRA _ SHOW _ ID , Ġshow Id ) ĊĠĠĠ Ġ} Ċ Ċ }