package Ġcom . br ins . video . fragment Ċ Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . view pager 2 . adapter . Fragment State Adapter Ċ import Ġandroidx . view pager 2 . widget . ViewPager 2 Ċ import Ġcom . br ins . base lib . config .* Ċ import Ġcom . br ins . base lib . fragment . Base Fragment Ċ import Ġcom . br ins . base lib . utils . UI Utils Ċ import Ġcom . br ins . video . R Ċ import Ġcom . google . android . material . tabs . Tab Layout Mediator Ċ import Ġkotlinx . android . synt hetic . main . fragment _ video .* ĊĊ Ċ class ĠVideo Fragment Ġ: ĠBase Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġchange Callback Ġ= Ġobject Ġ: ĠView Pager 2 . On Page Change Callback () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġtab _ layout . tab Count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġcount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġtab _ layout . get Tab At ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġtab ?. custom View Ġas ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab . getPosition () Ġ== Ġposition ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setText Size ( 1 3 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setType face ( Type face . DEFAULT _ BOLD ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setText Size ( 1 3 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setType face ( Type face . DEFAULT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġmedi ator : ĠTab Layout Mediator ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġlist Ġ= Ġmutable ListOf < Fragment >( ĊĠĠĠĠĠĠĠ ĠVideo Category Fragment . getInstance ( MAIN LAND ), ĊĠĠĠĠĠĠĠ ĠVideo Category Fragment . getInstance ( H ONG K ONG _ TA IW AN ), ĊĠĠĠĠĠĠĠ ĠVideo Category Fragment . getInstance ( EU RO PE _ AM ER ICA ), ĊĠĠĠĠĠĠĠ ĠVideo Category Fragment . getInstance ( J AP AN ), ĊĠĠĠĠĠĠĠ ĠVideo Category Fragment . getInstance ( K ORE A ) ĊĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġvar Ġtitle List Ġ= Ġmutable ListOf < String >( ĊĠĠĠĠĠĠĠ ĠMAIN LAND , ĊĠĠĠĠĠĠĠ ĠH ONG K ONG _ TA IW AN , ĊĠĠĠĠĠĠĠ ĠEU RO PE _ AM ER ICA , ĊĠĠĠĠĠĠĠ ĠJ AP AN , ĊĠĠĠĠĠĠĠ ĠK ORE A ĊĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Res ID (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . fragment _ video ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġre Load () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġvp _ video . off screen Page Limit Ġ= ĠView Pager 2 . OFF SCREEN _ PAGE _ LIMIT _ DEFAULT ĊĠĠĠĠĠĠĠ Ġvp _ video . adapter Ġ= Ġobject Ġ: ĠFragment State Adapter ( child FragmentManager , Ġget Lifecycle ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlist . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Fragment ( position : ĠInt ): ĠFragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlist [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvp _ video . register On Page Change Callback ( change Callback ) ĊĠĠĠĠĠĠĠ Ġmedi ator Ġ= ĠTab Layout Mediator ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab _ layout , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvp _ video , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTab Layout Mediator . Tab Configuration Strategy Ġ{ Ġtab , Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= ĠTextView ( get My Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstates Ġ= ĠarrayOf Null s < IntArray >( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstates [ 0 ] Ġ= Ġint ArrayOf ( android . R . attr . state _ selected ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstates [ 1 ] Ġ= Ġint ArrayOf () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolors Ġ= Ġint ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUI Utils . getColor ( R . color . black ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUI Utils . getColor ( R . color . default _ btn _ text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor State List Ġ= ĠColor State List ( states , Ġcolors ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setText ( title List [ position ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setText Size ( 1 3 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setTextColor ( color State List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab . set Custom View ( textView ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġmedi ator ?. attach () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance (): ĠVideo Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠVideo Fragment () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġmedi ator ?. detach () ĊĠĠĠĠĠĠĠ Ġvp _ video ?. unregister On Page Change Callback ( change Callback ) ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} Ċ }