package Ġorg . step ik . android . view . step _ content _ video . ui . fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġkotlinx . android . synt hetic . main . fragment _ step _ content _ video .* Ċ import Ġkotlinx . android . synt hetic . main . view _ course _ info _ video .* Ċ import Ġkotlinx . android . synt hetic . main . view _ length _ video _ thumbnail .* Ċ import Ġorg . step ic . d roid . R Ċ import Ġorg . step ic . d roid . an alytic . An alytic Ċ import Ġorg . step ic . d roid . base . App Ċ import Ġorg . step ic . d roid . core . Screen Manager Ċ import Ġorg . step ic . d roid . persistence . model . Step Persistent Wrapper Ċ import Ġorg . step ic . d roid . ui . util . sn ackbar Ċ import Ġorg . step ik . android . domain . lesson . model . Lesson Data Ċ import Ġorg . step ik . android . presentation . step _ content _ video . Video Step Content Presenter Ċ import Ġorg . step ik . android . presentation . step _ content _ video . Video Step ContentView Ċ import Ġorg . step ik . android . view . lesson . ui . interfaces . Play able Ċ import Ġorg . step ik . android . view . video _ player . model . Video Player Media Data Ċ import Ġru . nob ird . android . view . base . ui . extension . argument Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠVideo Step Content Fragment Ġ: ĠFragment (), ĠVideo Step ContentView , ĠPlay able Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( step Id : ĠLong ): ĠFragment Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVideo Step Content Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . step Id Ġ= Ġstep Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġan alytic : ĠAn alytic ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġscreen Manager : ĠScreen Manager ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġinternal Ġlateinit Ġvar ĠviewModel Factory : ĠViewModel Provider . Factory ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġstep Wrapper : ĠStep Persistent Wrapper ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġlesson Data : ĠLess on Data ĊĊĠĠĠ Ġprivate Ġval Ġpresenter : ĠVideo Step Content Presenter Ġby Ġview Models Ġ{ ĠviewModel Factory Ġ} ĊĠĠĠ Ġprivate Ġvar Ġstep Id : ĠLong Ġby Ġargument () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinject Component () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . fetch Video Length ( step Wrapper ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinject Component () Ġ{ ĊĠĠĠĠĠĠĠ ĠApp . component Manager () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. step Component ( step Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. video Step Content Component Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ= ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . layout . fragment _ step _ content _ video , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthumbnail Ġ= Ġstep Wrapper . cached Video ?. thumbnail ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġstep Wrapper . step . block ?. video ?. thumbnail ĊĊĠĠĠĠĠĠĠ ĠG lide . with ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( thumbnail ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . general _ placeholder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( video Thumbnail ) ĊĊĠĠĠĠĠĠĠ Ġvideo Container . setOnClickListener Ġ{ Ġopen Video Player () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Video Player () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( step Wrapper . cached Video Ġ== Ġnull Ġ&& Ġstep Wrapper . step . block ?. video Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġan alytic . report Event WithName ( An alytic . Error . IL LEG AL _ STATE _ VIDEO _ STEP _ PLAY , Ġstep Wrapper . step . id . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Step Content . sn ackbar ( message Res Ġ= ĠR . string . step _ content _ video _ no _ video ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthumbnail Ġ= Ġstep Wrapper . cached Video ?. thumbnail ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġstep Wrapper . step . block ?. video ?. thumbnail ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Manager . show Video ( this , ĠVideo Player Media Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthumbnail Ġ= Ġthumbnail , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġlesson Data . lesson . title . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcached Video Ġ= Ġstep Wrapper . cached Video , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexternal Video Ġ= Ġstep Wrapper . step . block ?. video ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġlesson Data . copy ( step Position Ġ= Ġlesson Data . lesson . steps . indexOf First Ġ{ Ġit Ġ== Ġstep Wrapper . step . id Ġ}. take If Ġ{ Ġit Ġ!= Ġ- 1 Ġ} Ġ?: Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġpresenter . attach View ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . detach View ( this ) ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetState ( state : ĠVideo Step ContentView . State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvideo Length Text Ġ= Ġ( state Ġas ? ĠVideo Step ContentView . State . Loaded ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . video Length ĊĊĠĠĠĠĠĠĠ Ġvideo Length . isVisible Ġ= Ġvideo Length Text Ġ!= Ġnull ĊĠĠĠĠĠĠĠ Ġvideo Length . text Ġ= Ġvideo Length Text ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġplay (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġopen Video Player () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ }