package Ġcom . example . jet pack demo . ui . fragment . module . cin ema Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcn . jz vd . Jz vd Std Ċ import Ġcom . example . jet pack demo . R Ċ import Ġcom . example . jet pack demo . base . Base Fragment Ċ import Ġcom . example . jet pack demo . data . model . bean . Video Preview Ċ import Ġcom . example . jet pack demo . databinding . Fragment Movie Video Binding Ċ import Ġcom . example . jet pack demo . ui . adapter . My ViewPager Ċ import Ġcom . example . jet pack demo . util . show ErrorMessage Ċ import Ġcom . example . jet pack demo . view model . fragment . Movie Video ViewModel Ċ import Ġme . hg j . jet pack mv vm . ext . parse State Ċ import Ġme . hg j . jet pack mv vm . ext . util . lo ge Ċ Ċ class ĠMovie Video Fragment Ġ: ĠBase Fragment < Movie Video ViewModel , ĠFragment Movie Video Binding >() Ġ{ ĊĠĠĠ Ġprivate Ġval Ġarray List Ġ= ĠArrayList < Fragment >() ĊĠĠĠ Ġprivate Ġval Ġtitle Ġ= ĠarrayOf (" ç®Ģ ä»ĭ ", Ġ" è¯Ħè®º ") ĊĠĠĠ Ġprivate Ġval Ġj z vd Player Ġby Ġlazy Ġ{ Ġm D atab ind . jz vd Player Ġ} ĊĠĠĠ Ġoverride Ġfun Ġcreate Observer () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ Ġ çĽĳåĲ¬ Bundle ä¼łéĢĴ æķ°æį® åıĺåĮĸ ĊĠĠĠĠĠĠĠĠ Ġ* Ġ Ġ@ see ĊĠĠĠĠĠĠĠĠ Ġ* Ġ Ġ@ see Ġm ViewModel . movie Id ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġmonitor Bundle Param Movie Id () ĊĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ Ġ çĽĳ æµĭ ç½ĳç»ľ è¯·æ±Ĥ æķ°æį® åıĺåĮĸ ĊĠĠĠĠĠĠĠĠ Ġ* Ġ Ġ@ see ĠMutable LiveData < Result State < Video Preview >> ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġmonitor Network Video Preview () ĊĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ çĽĳåĲ¬ Intent ä¼łéĢĴ æķ°æį® åıĺåĮĸ ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ see ĠV IDE OP RE VIEW BE AN _ DATA ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġm ViewModel . video Preview _ Data ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġmonitor Bundle Param Video Preview Data () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmonitor Bundle Param Video Preview Data () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġif Ġ( m ViewModel . video Preview _ Data . value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĪĿå§ĭåĮĸ Ġmovie Id ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . movie Id . value Ġ= Ġm ViewModel . movie Id . value ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ Ġ åĬłè½½ è§Ĩé¢ĳ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġload Video By Url ( m ViewModel . video Preview _ Data . value !!. detail Url ) ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . movie Id . value . toString () ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. lo ge ( java Class . simple Name Ġ+ Ġ". bundle . params . VID E OP RE VIEW BE AN _ DATA ") ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm ViewModel . video Preview _ Data . observe ( this ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĪĿå§ĭåĮĸ Ġmovie Id ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . movie Id . value Ġ= Ġit . movie Id ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ åĬłè½½ è§Ĩé¢ĳ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Video By Url ( it . detail Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . toString (). lo ge ( java Class . simple Name Ġ+ Ġ". bundle . params . video Preview _ Data ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmonitor Network Video Preview () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġm ViewModel . video Preview . observe ( this ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġparse State ( it , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Preview Video List ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow ErrorMessage ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Preview Video List ( video Preview : ĠVideo Preview ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġvideo Preview . data [ 0 ] ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġdata . url ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠĠĠ Ġ åĬłè½½ è§Ĩé¢ĳ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġload Video By Url ( url ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ ĠåĪĿå§ĭåĮĸ Fragment ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġinit Fragment By Data ( data ) ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Fragment By Data ( data : ĠVideo Preview . Data ) Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġarray List . clear () ĊĊĊĠĠĠĠĠĠĠ Ġval Ġmovie Video Desc Fragment Ġ= ĠMovie Video Desc Fragment . newInstance ( data ) ĊĠĠĠĠĠĠĠ Ġval Ġmovie Video Comment Fragment Ġ= ĠMovie Video Comment Fragment . newInstance () ĊĊĠĠĠĠĠĠĠ Ġ// å°Ĩ Fragment æ·»åĬł åĪ° éĽĨåĲĪ ĊĠĠĠĠĠĠĠ Ġarray List . add ( movie Video Desc Fragment ) ĊĠĠĠĠĠĠĠ Ġarray List . add ( movie Video Comment Fragment ) ĊĊĠĠĠĠĠĠĠ Ġval Ġview Pager Adapter Ġ= ĠMy ViewPager ( array List , Ġchild FragmentManager ) ĠĠ Ġ// éĢĤ éħį åĻ¨ ĊĠĠĠĠĠĠĠ Ġm D atab ind . view Pager . adapter Ġ= Ġview Pager Adapter ĠĠĠ Ġ// ç»Ļ ViewPager æ·»åĬł éĢĤ éħį åĻ¨ ĊĠĠĠĠĠĠĠ Ġm D atab ind . tab Layout . set ViewPager ( m D atab ind . view Pager , Ġtitle ) ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġurl ĠString ĊĠĠĠĠ Ġ*/ Ċ // TODO ĊĠĠĠ Ġfun Ġload Video By Url ( url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġj z vd Player . setUp ( url , Ġ"", ĠJ z vd Std . SCREEN _ NORMAL ) ĊĠĠĠĠĠĠĠ Ġj z vd Player . start Video () ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmonitor Bundle Param Movie Id () Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġm ViewModel . movie Id . observe ( this ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġ 0 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Video Url By Move Id ( it ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . toString (). lo ge ( java Class . simple Name Ġ+ Ġ". bundle . params . movie Id ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Video Url By Move Id ( movie Id : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġm ViewModel . get Preview Video List ( movie Id , Ġm ViewModel . limit , Ġm ViewModel . offset ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlayout Id (): ĠInt Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . fragment _ movie _ video ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View ( savedInstanceState : ĠBundle ?) Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ Ġ æİ¥æĶ¶ Bundle åıĤæķ° ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġreceiver Bundle Param () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreceiver Bundle Param () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġarguments ?. let Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . movie Id . value Ġ= ĠMovie Video Fragment Args . from Bundle ( it ). movie Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . video Preview _ Data . value Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMovie Video Fragment Args . from Bundle ( it ). video Preview Data ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }