package Ġcom . sk dev . yt live video . ui . create Broadcast Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . google . api . client . googleapis . extensions . android . gms . auth . User Recover able Auth IOException Ċ import Ġcom . sk dev . yt live video . R Ċ import Ġcom . sk dev . yt live video . model . youtube Api . live Broadcast s . requests . Live Broadcast s Ċ import Ġcom . sk dev . yt live video . ui . live Stream . YouTube Stream Launcher Ċ import Ġcom . sk dev . yt live video . util . Progress Dialog Ċ import Ġcom . sk dev . yt live video . util . Utils Ċ import Ġkotlinx . android . synt hetic . main . activity _ create _ broadcast .* Ċ import Ġkotlinx . coroutines .* Ċ import Ġjava . io . IOException Ċ Ċ class ĠCreate New Broadcast : ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġjob : ĠJob ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġstream Launcher Ġ= ĠYouTube Stream Launcher () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ create _ broadcast ) ĊĊĠĠĠĠĠĠĠ Ġcreate _ broadcast . text Ġ= Ġ" Start ĠLive ĠStreaming " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠonCreate Broadcast ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstart YouTube Live () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate ĠLive ĠStream Ġwith Ġusing ĠYouTube ĠApp ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġstart YouTube Live () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdescription Ġ= Ġbroadcast _ description . text . toString (). trim () ĊĠĠĠĠĠĠĠ Ġif Ġ( description . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . show Error ( this , Ġ" Please Ġenter Ġnew Ġbroadcast ' Ġdescription ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstream Launcher . start ( description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate ĠBroadcast Ġwith Ġusing ĠYouTube ĠAPI ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcreate Broadcast On My Account () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġbroadcast _ name . text . toString (). trim () ĊĠĠĠĠĠĠĠ Ġval Ġdescription Ġ= Ġbroadcast _ description . text . toString (). trim () ĊĠĠĠĠĠĠĠ Ġif Ġ( name . isEmpty () Ġ|| Ġdescription . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . show Error ( this , Ġ" Please Ġenter Ġnew Ġbroadcast ' Ġname Ġand Ġdescription ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġprogress Dialog Ġ= ĠProgress Dialog . create ( this , ĠR . string . creating Event ) ĊĠĠĠĠĠĠĠ Ġprogress Dialog . show () ĊĠĠĠĠĠĠĠ ĠCor outine Scope ( Dispatch ers . IO ). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate New Broadcast ( name , Ġdescription ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġjob ?. cancel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġa Ġnew ĠBroadcast ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġcreate New Broadcast ( name : ĠString , Ġdescription : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" createNew Broadcast ") ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLive Broadcast s . createNew Broadcast Async ( name , Ġdescription ). await () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠUser Recover able Auth IOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIn Ġthis Ġcases Ġwe Ġare Ġusing Ġtransfer Ġto Ġthe Ġauth Ġscreen ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġapplication . application Context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . show Error ( context , Ġe . localized Message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġapplication . application Context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . show Error ( context , Ġe . localized Message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠCreate New Broadcast :: class . java . name ĊĠĠĠ Ġ} Ċ } Ċ