package Ġtech . sk ot . libraries . video Ċ Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . google . android . ex op layer 2 . Exo Player Ċ import Ġcom . google . android . ex op layer 2 . Media Item Ċ import Ġcom . google . android . ex op layer 2 . Player Ċ import Ġcom . google . android . ex op layer 2 . ui . Player View Ċ import Ġtech . sk ot . core . SK Log Ċ import Ġtech . sk ot . core . components . SK Activity Ċ import Ġtech . sk ot . core . components . SK Component View Proxy Ċ import Ġtech . sk ot . core . di . get Ċ Ċ class ĠSK Video View Proxy ( ĊĠĠĠ Ġoverride Ġval Ġurl : ĠString , ĊĠĠĠ Ġplaying Initial : ĠBoolean , ĊĠĠĠ Ġsound Initial : ĠBoolean Ċ ) Ġ: ĠSK Component View Proxy < Player View >(), ĠSK Video VC Ġ{ ĊĊĊĠĠĠ Ġvar Ġplayer : ĠEx o Player ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Player ( play Now : ĠBoolean , Ġposition Ms : ĠLong , Ġwith Sound : ĠBoolean ) Ġ= ĊĠĠĠĠĠĠĠ ĠEx o Player . Builder ( get ()). build (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġseek To ( current Media Item Index , Ġposition Ms ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplay When Ready Ġ= Ġplay Now ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat Mode Ġ= ĠPlayer . REPEAT _ MODE _ ALL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Media Item ( Media Item . from Uri ( url )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprepare () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvolume Ġ= Ġif Ġ( with Sound ) Ġ 1 f Ġelse Ġ 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġvar Ġsound : ĠBoolean Ġ= Ġsound Initial ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer ?. volume Ġ= Ġif Ġ( value ) Ġ 1 f Ġelse Ġ 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġvar Ġplaying : ĠBoolean Ġ= Ġplaying Initial ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Playing () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġsaved Position : ĠLong Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġvar Ġres umed : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġres umed Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġsaved Position Ġ= Ġplayer ?. current Position Ġ?: Ġ 1 ĊĠĠĠĠĠĠĠ Ġupdate Playing () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġres umed Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġupdate Playing () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Playing () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( res umed Ġ&& Ġplaying ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer ?. play () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer ?. pause () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Remove () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Remove () ĊĠĠĠĠĠĠĠ Ġplayer ?. release () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġbind To ( ĊĠĠĠĠĠĠĠ Ġactivity : ĠSK Activity , ĊĠĠĠĠĠĠĠ Ġfragment : ĠFragment ?, ĊĠĠĠĠĠĠĠ Ġbinding : ĠPlayer View ĊĠĠĠ Ġ): ĠSK Video View Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( player Ġ?: Ġbuild Player ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplay Now Ġ= Ġplaying , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition Ms Ġ= Ġsaved Position , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Sound Ġ= Ġsound ĊĠĠĠĠĠĠĠ Ġ). also Ġ{ Ġplayer Ġ= Ġit Ġ}). let Ġ{ Ġthe Player Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSK Video View ( this , Ġactivity , Ġfragment , Ġbinding , Ġthe Player ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊ Ċ }