package Ġcom . example . ch uc ulture . fragment Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . view pager 2 . widget . ViewPager 2 Ċ import Ġcom . example . ch uc ulture . view model . Image Text ViewModel Ċ import Ġcom . example . ch uc ulture . R Ċ import Ġcom . example . ch uc ulture . Utils . setCurrent Item Low Speed Ċ import Ġcom . example . ch uc ulture . activity . Hero Activity Ċ import Ġcom . example . ch uc ulture . activity . M use um Activity Ċ import Ġcom . example . ch uc ulture . activity . Rel ic Activity Ċ import Ġcom . example . ch uc ulture . adapter . Banner Adapter Ċ import Ġcom . example . ch uc ulture . adapter . Hero Main Adapter Ċ import Ġcom . example . ch uc ulture . adapter . M use um Adapter Ċ import Ġcom . example . ch uc ulture . adapter . Rel ic Main Adapter Ċ import Ġcom . example . ch uc ulture . model . Theme Collection Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠImage Text Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġview Models < Image Text ViewModel >() ĊĠĠĠ Ġprivate Ġval Ġhero Main Adapter = Hero Main Adapter () ĊĠĠĠ Ġprivate Ġval Ġre lic Adapter = Rel ic Main Adapter () ĊĠĠĠ Ġprivate Ġval Ġm use um Adapter = M use um Adapter () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . image _ text _ fragment , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠĠĠĠĠ Ġinit View ( view ) ĊĠĠĠĠĠĠĠ Ġinit Ob serve () ĊĠĠĠ Ġ} ĊĊĊĊĊĠĠĠ Ġprivate Ġfun Ġinit View ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġry Hero = view . findViewById < RecyclerView >( R . id . ry _ hero ) ĊĠĠĠĠĠĠĠ Ġval Ġry M use um = view . findViewById < RecyclerView >( R . id . ry _ m use um ) ĊĠĠĠĠĠĠĠ Ġval Ġlinear LayoutManager M use um = Linear LayoutManager ( activity ) ĊĠĠĠĠĠĠĠ Ġval Ġvp Rel ic = view . findViewById < ViewPager 2 >( R . id . vp _ relic ) ĊĠĠĠĠĠĠĠ Ġval Ġtv Rel ic More = view . findViewById < TextView >( R . id . tv _ relic _ more ) ĊĠĠĠĠĠĠĠ Ġval Ġtv M use um More = view . findViewById < TextView >( R . id . tv _ m use um _ more ) ĊĠĠĠĠĠĠĠ Ġval Ġtv Hero More = view . findViewById < TextView >( R . id . tv _ hero _ more ) ĊĊĠĠĠĠĠĠĠ Ġry Hero . adapter = hero Main Adapter ĊĠĠĠĠĠĠĠ Ġval Ġlinear LayoutManager Hero = Linear LayoutManager ( activity ) ĊĠĠĠĠĠĠĠ Ġlinear LayoutManager Hero . orientation = Linear LayoutManager . HORIZONTAL ĊĠĠĠĠĠĠĠ Ġry Hero . layout Manager = linear LayoutManager Hero ĊĊĊĠĠĠĠĠĠĠ Ġvp Rel ic . adapter = relic Adapter ĊĠĠĠĠĠĠĠ Ġvp Rel ic . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoff screen Page Limit = 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġre cyclerView = Ġget Child At ( 0 ) Ġas ĠRecyclerView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpadding Ġ= Ġresources . get Dimension Pixel Offset ( R . dim en . dp _ 1 0 ) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Dimension Pixel Offset ( R . dim en . dp _ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Padding ( padding , Ġ 0 , Ġ 8 * padding , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclip To Padding Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġlinear LayoutManager M use um . orientation = Linear LayoutManager . HORIZONTAL ĊĠĠĠĠĠĠĠ Ġry M use um . adapter = m use um Adapter ĊĠĠĠĠĠĠĠ Ġry M use um . layout Manager = linear LayoutManager M use um ĊĊĊĠĠĠĠĠĠĠ Ġtv Rel ic More . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent = ĠIntent ( activity , Rel ic Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtv M use um More . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent = Intent ( activity , M use um Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtv Hero More . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent = Intent ( activity , Hero Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . getIndex () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Ob serve () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . response . observe ( view Lifecycle Owner ,{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . code == 1 && it . data != null ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Banner ( it . data . theme Collection List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhero Main Adapter . submit List ( it . data . hero List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm use um Adapter . submit List ( it . data . m use um List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre lic Adapter . submit List ( it . data . relic List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġset Banner ( theme Collection List : ĠList < Theme Collection >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( view != null ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvp Banner = Ġrequire View (). findViewById < ViewPager 2 >( R . id . vp _ banner ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvp Banner . adapter = Banner Adapter ( theme Collection List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvp Banner . off screen Page Limit = 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( true ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġi = vp Banner . currentItem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvp Banner . setCurrent Item Low Speed ( ++ i , 5 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 2 5 0 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }