package Ġcom . pb j . sdk . live . live Player Ċ Ċ import Ġandroid . app . Picture In Picture Params Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . Activity Info Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . WindowManager Ċ import Ġandroidx . activity . compose . setContent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . compose . runtime . La unched Effect Ċ import Ġcom . pb j . sdk . analytics . Analytics Tracker Ċ import Ġcom . pb j . sdk . domain . live . model . Episode Ċ import Ġcom . pb j . sdk . domain . product . model . Product Ċ import Ġcom . pb j . sdk . live . live Player . ui . Live Player Screen Ċ import Ġorg . k oin . android . ext . android . inject Ċ Ċ class ĠLive Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġanalytics : ĠAnalytics Tracker Ġby Ġinject () ĊĊĠĠĠ Ġvar Ġepisode : ĠEp isode ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġvm : ĠLive Player ViewModel ĊĊĠĠĠ Ġprivate Ġvar Ġis Chat Enable : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġenable Screen Rotation ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġepisode Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġvar Ġnext Episode : ĠEp isode ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġintent . extras ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode Ġ= Ġget Parcelable ( LI VE _ STREAM ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Episode Ġ= Ġget Parcelable ( NEXT _ LI VE _ STREAM ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Chat Enable Ġ= Ġget Boolean ( IS _ CHAT _ ENABLED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġepisode ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanalytics . log Live Class Starts ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvm Ġ= ĠLive Player ViewModel () ĊĊĠĠĠĠĠĠĠ Ġvm . init ( episode , Ġnext Episode ) ĊĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLa unched Effect ( vm . is Playing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġenable Rotation Ġ= Ġvm . is Playing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable Screen Rotation ( enable Rotation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLive Player Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm Ġ= Ġvm , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Chat Enabled Ġ= Ġis Chat Enable , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Product Ġ= Ġ:: onClick Product , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Player StateChange Ġ= Ġvm :: on Player StateChange , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Join Ġ= Ġ:: start Live Room , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Back Ġ= Ġ:: on Back Pressed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonClick Product ( product : ĠProduct ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvm . log OnClick Product ( product ) ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= ĠPicture In Picture Params . Builder (). build () ĊĠĠĠĠĠĠĠ Ġenter Picture In Picture Mode ( params ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbrowser Intent Ġ= ĠIntent ( Intent . ACTION _ VIEW , ĠUri . parse ( product . link )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Flags ( Intent . FLAG _ ACTIVITY _ CLEAR _ TOP ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠstartActivity ( browser Intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Live Room ( episode : ĠEp isode ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠLive Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( LI VE _ STREAM , Ġepisode ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( IS _ CHAT _ ENABLED , Ġis Chat Enable ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġenable Screen Rotation ( enable : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrequested Orientation Ġ= Ġif Ġ( enable ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Info . SCREEN _ OR IENTATION _ SENSOR ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Info . SCREEN _ OR IENTATION _ NO SENSOR ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Configuration Changed ( new Config : ĠConfiguration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Configuration Changed ( new Config ) ĊĠĠĠĠĠĠĠ Ġvm . listen To Episode () ĊĠĠĠĠĠĠĠ Ġif Ġ( new Config . orientation Ġ== ĠConfiguration . OR IENTATION _ LAND SC APE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . set Flags ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ FULL SCREEN , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ FULL SCREEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm . on Screen Rotation ( true ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . set Flags ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ DR AWS _ SYSTEM _ BAR _ BACK GRO UN DS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ FULL SCREEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm . on Screen Rotation ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġepisode ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanalytics . log Live Class Exit ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLI VE _ STREAM Ġ= Ġ" LI VE _ STREAM " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNEXT _ LI VE _ STREAM Ġ= Ġ" NEXT _ LI VE _ STREAM " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠIS _ CHAT _ ENABLED Ġ= Ġ" IS _ CHAT _ ENABLED " ĊĠĠĠ Ġ} Ċ }