package Ġcom . developer space . vo ip calling . utils Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . tele com . Call Audio State Ċ import Ġandroid . tele com . Connection Ċ import Ġandroid . tele com . Disconnect Cause Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġcom . co met chat . pro . constants . Come t Chat Constants Ċ import Ġcom . co met chat . pro . core . Call Ċ import Ġcom . co met chat . pro . core . Come t Chat Ċ import Ġcom . co met chat . pro . core . Come t Chat . Callback Listener Ċ import Ġcom . co met chat . pro . exceptions . Come t Chat Exception Ċ import Ġcom . co met chat . pro . u ikit . ui _ components . calls . call _ manager . Come t Chat Start Call Activity Ċ import Ġcom . co met chat . pro . u ikit . ui _ resources . constants . UIKit Constants Ċ Ċ @ Requires Api ( Build . VERSION _ CODES . M ) Ċ class ĠCall Connection ( context : ĠContext , Ġcall : ĠCall ) Ġ: ĠConnection () Ġ{ ĊĊĠĠĠ Ġval ĠTAG Ġ= Ġ" Call Connection " ĊĠĠĠ Ġprivate Ġvar Ġcome t chat Call Ġ: ĠCall Ġ= Ġcall ĊĠĠĠ Ġprivate Ġvar Ġconnection Context Ġ: ĠContext Ġ= Ġcontext ĊĊĠĠĠ Ġoverride Ġfun Ġon Call Audio StateChanged ( state : ĠCall Audio State ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" on Call Audio StateChange :" Ġ+ Ġstate . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon StateChanged ( state : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on StateChanged ( state ) ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" on StateChanged : Ġ$ state " Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Disconnect () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Disconnect () ĊĠĠĠĠĠĠĠ Ġdestroy Connection () ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG ," on Disconnect ") ĊĠĠĠĠĠĠĠ Ġset Disconnected ( Disconnect Cause ( Disconnect Cause . LOCAL , Ġ" Mis sed ")) ĊĠĠĠĠĠĠĠ Ġif Ġ( Come t Chat . getActive Call ()!= null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Disconnect ( Come t Chat . getActive Call ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Disconnect ( call Ġ: ĠCall ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG ," on Disconnect ĠCall : Ġ$ call ") ĊĠĠĠĠĠĠĠ ĠCome t Chat . reject Call ( call . sessionId , Come t Chat Constants . CALL _ STATUS _ CANCEL LED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠCome t Chat . Callback Listener < Call >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( p 0 : ĠCall ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" on Success : Ġreject ") ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( p 0 : ĠCome t Chat Exception ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( connection Context ," Unable Ġto Ġend Ġcall Ġdue Ġto Ġ${ p 0 ?. code }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġon Hold () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Hold () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Answer ( video State : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Answer ( video State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop D tm f Tone () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop D tm f Tone () ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" on Stop D tm f Tone : Ġ" Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Call Event ( event : ĠString ?, Ġextras : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Call Event ( event , Ġextras ) ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" on Call Event : Ġ$ event " Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Show Incoming Call Ui () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Show Incoming Call Ui () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Answer () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( co met chat Call . sessionId Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCome t Chat . accept Call ( co met chat Call . sessionId , Ġobject Ġ: ĠCallback Listener < Call >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( call : ĠCall ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdestroy Connection () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccept Intent Ġ= ĠIntent ( connection Context , ĠCome t Chat Start Call Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccept Intent . putExtra ( UIKit Constants . Intent Strings . SESSION _ ID , Ġcall . sessionId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccept Intent . add Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnection Context . startActivity ( accept Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠCome t Chat Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdestroy Connection () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( connection Context , Ġ" Call Ġcannot Ġbe Ġanswered Ġdue Ġto Ġ" Ġ+ Ġe . code , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdestroy Connection () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Disconnected ( Disconnect Cause ( Disconnect Cause . REMOTE , Ġ" Rejected ")) ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" destroy Connection " Ġ) ĊĠĠĠĠĠĠĠ Ġsuper . destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Reject () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" on Reject : Ġ" Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ( co met chat Call . sessionId Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCome t Chat . reject Call ( co met chat Call . sessionId , ĠCome t Chat Constants . CALL _ STATUS _ RE JECT ED , Ġobject Ġ: ĠCallback Listener < Call ?> () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( call : ĠCall ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" on Success : Ġreject ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdestroy Connection () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠCome t Chat Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdestroy Connection () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" onError Reject : Ġ" Ġ+ Ġe . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( connection Context , Ġ" Call Ġcannot Ġbe Ġrejected Ġdue Ġto " Ġ+ Ġe . code , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Abort () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Abort () ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG ," On Abort ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Outgoing Reject () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG ," on Disconnect ") ĊĠĠĠĠĠĠĠ Ġdestroy Connection () ĊĠĠĠĠĠĠĠ Ġset Disconnected ( Disconnect Cause ( Disconnect Cause . REMOTE , Ġ" RE JECT ED ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Reject ( reject Reason : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" on Reject : Ġ$ reject Reason ") ĊĠĠĠĠĠĠĠ Ġsuper . on Reject ( reject Reason ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Reject ( reply Message : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" on Reject : Ġ$ reply Message " Ġ) ĊĠĠĠĠĠĠĠ Ġsuper . on Reject ( reply Message ) ĊĠĠĠ Ġ} Ċ }