package Ġcom . opent ok . accel erator . sample . ui Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Image Button Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . vect ord raw able . graphics . drawable . Vector Drawable Compat Ċ import Ġcom . opent ok . accel erator . core . utils . MediaType Ċ import Ġcom . opent ok . accel erator . sample . MainActivity Ċ import Ġcom . opent ok . accel erator . sample . R Ċ import Ġcom . opent ok . accel erator . sample . extension . hide Ċ import Ġcom . opent ok . accel erator . sample . extension . show Ċ Ċ // Ċ class ĠAction Bar Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmain Activity : ĠMainActivity ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġaudio Button : ĠImage Button ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcamera Button : ĠImage Button ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcall Button : ĠImage Button ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġscreen Sharing Button : ĠImage Button ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġannotations Button : ĠImage Button ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtext Chat Button : ĠImage Button ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġunread Messages Button : ĠImage Button ĊĊĠĠĠ Ġprivate Ġvar Ġdrawable Start Call : ĠVector Drawable Compat ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdrawable End Call : ĠVector Drawable Compat ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdrawable B ck Button : ĠVector Drawable Compat ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġpreview Control Callbacks : ĠPreview Control Callbacks ? Ġ= Ġnull ĊĊĊĠĠĠ Ġinterface ĠPreview Control Callbacks Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Disable Local Audio ( audio : ĠBoolean ) ĊĠĠĠĠĠĠĠ Ġfun Ġon Disable Local Video ( video : ĠBoolean ) ĊĠĠĠĠĠĠĠ Ġfun Ġon Call () ĊĠĠĠĠĠĠĠ Ġfun Ġon Screen Sharing () ĊĠĠĠĠĠĠĠ Ġfun Ġon Annotations () ĊĠĠĠĠĠĠĠ Ġfun Ġon Text Chat () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġbutton ClickListener Ġ= ĠView . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( it . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . local Audio Ġ-> Ġlocal Audio OnClickListener () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . local Video Ġ-> Ġlocal Video OnClickListener () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . call Ġ-> Ġcall OnClickListener () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . screen Sharing Ġ-> Ġscreen Sharing OnClickListener () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . annotations Ġ-> Ġannotations OnClickListener () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . text Chat Ġ-> Ġtext Chat OnClickListener () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġmain Activity Ġ= Ġcontext Ġas ĠMainActivity ĊĠĠĠĠĠĠĠ Ġpreview Control Callbacks Ġ= Ġcontext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( activity ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Activity Ġ= Ġactivity Ġas ĠMainActivity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreview Control Callbacks Ġ= Ġactivity ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġinflater . inflate ( R . layout . action bar _ fragment , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġaudio Button Ġ= Ġroot View . findViewById ( R . id . local Audio ) Ġas ĠImage Button ĊĠĠĠĠĠĠĠ Ġcamera Button Ġ= Ġroot View . findViewById ( R . id . local Video ) Ġas ĠImage Button ĊĠĠĠĠĠĠĠ Ġcall Button Ġ= Ġroot View . findViewById ( R . id . call ) Ġas ĠImage Button ĊĠĠĠĠĠĠĠ Ġscreen Sharing Button Ġ= Ġroot View . findViewById ( R . id . screen Sharing ) Ġas ĠImage Button ĊĠĠĠĠĠĠĠ Ġannotations Button Ġ= Ġroot View . findViewById ( R . id . annotations ) Ġas ĠImage Button ĊĠĠĠĠĠĠĠ Ġtext Chat Button Ġ= Ġroot View . findViewById ( R . id . text Chat ) Ġas ĠImage Button ĊĠĠĠĠĠĠĠ Ġunread Messages Button Ġ= Ġroot View . findViewById ( R . id . unread _ messages ) Ġas ĠImage Button ĊĠĠĠĠĠĠĠ Ġdrawable Start Call Ġ= ĠVector Drawable Compat . create ( resources , ĠR . drawable . init iate _ call _ button , Ġnull ) ĊĠĠĠĠĠĠĠ Ġdrawable End Call Ġ= ĠVector Drawable Compat . create ( resources , ĠR . drawable . end _ call _ button , Ġnull ) ĊĠĠĠĠĠĠĠ Ġdrawable B ck Button Ġ= ĠVector Drawable Compat . create ( resources , ĠR . drawable . background _ icon , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġupdate Micro phone Button () ĊĠĠĠĠĠĠĠ Ġupdate Camera Button () ĊĊĠĠĠĠĠĠĠ Ġaudio Button . background Ġ= Ġdrawable B ck Button ĊĊĠĠĠĠĠĠĠ Ġcamera Button . background Ġ= Ġdrawable B ck Button ĊĠĠĠĠĠĠĠ Ġcall Button . setImage Resource ( if Ġ( main Activity . is Call InProgress ) ĠR . drawable . hang _ up Ġelse ĠR . drawable . start _ call ) ĊĠĠĠĠĠĠĠ Ġcall Button . background Ġ= Ġif Ġ( main Activity . is Call InProgress ) Ġdrawable End Call Ġelse Ġdrawable Start Call ĊĠĠĠĠĠĠĠ Ġcall Button . setOnClickListener ( button ClickListener ) ĊĠĠĠĠĠĠĠ Ġset Enabled ( main Activity . is Call InProgress ) ĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Camera Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= Ġif Ġ( main Activity . ot Wrapper . is Local Media Enabled ( MediaType . VIDEO )) ĠR . drawable . video _ icon Ġelse ĠR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. drawable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. no _ video _ icon ĊĠĠĠĠĠĠĠ Ġcamera Button . setImage Resource ( icon ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Micro phone Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= Ġif Ġ( main Activity . ot Wrapper . is Local Media Enabled ( MediaType . AUDIO )) ĠR . drawable . mic _ icon Ġelse ĠR . drawable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. muted _ mic _ icon ĊĠĠĠĠĠĠĠ Ġaudio Button . setImage Resource ( icon ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġlocal Audio OnClickListener () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! main Activity . ot Wrapper . is Local Media Enabled ( MediaType . AUDIO )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreview Control Callbacks ?. on Disable Local Audio ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaudio Button . setImage Resource ( R . drawable . mic _ icon ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreview Control Callbacks ?. on Disable Local Audio ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaudio Button . setImage Resource ( R . drawable . muted _ mic _ icon ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlocal Video OnClickListener () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! main Activity . ot Wrapper . is Local Media Enabled ( MediaType . VIDEO )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreview Control Callbacks ?. on Disable Local Video ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcamera Button . setImage Resource ( R . drawable . video _ icon ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreview Control Callbacks ?. on Disable Local Video ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcamera Button . setImage Resource ( R . drawable . no _ video _ icon ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcall OnClickListener () Ġ{ ĊĠĠĠĠĠĠĠ Ġcall Button . setImage Resource ( if Ġ(! main Activity . is Call InProgress ) ĠR . drawable . hang _ up Ġelse ĠR . drawable . start _ call ) ĊĠĠĠĠĠĠĠ Ġcall Button . background Ġ= Ġif Ġ(! main Activity . is Call InProgress ) Ġdrawable End Call Ġelse Ġdrawable Start Call ĊĠĠĠĠĠĠĠ Ġpreview Control Callbacks ?. on Call () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġscreen Sharing OnClickListener () Ġ{ ĊĠĠĠĠĠĠĠ Ġcamera Button . setOnClickListener ( if Ġ(! main Activity . is Screen Sharing ) Ġnull Ġelse Ġbutton ClickListener ) ĊĠĠĠĠĠĠĠ Ġannotations Button . setOnClickListener ( if Ġ(! main Activity . is Screen Sharing ) Ġbutton ClickListener Ġelse Ġnull ) ĊĠĠĠĠĠĠĠ Ġscreen Sharing Button . setBackground Resource ( if Ġ(! main Activity . is Screen Sharing ) ĠR . drawable . b ck g _ icon _ selected ĊĠĠĠĠĠĠĠ Ġelse ĠR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. drawable . background _ icon ) ĊĠĠĠĠĠĠĠ Ġpreview Control Callbacks ?. on Screen Sharing () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġannotations OnClickListener () Ġ{ ĊĠĠĠĠĠĠĠ Ġrestart Annotations () ĊĠĠĠĠĠĠĠ Ġpreview Control Callbacks ?. on Annotations () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtext Chat OnClickListener () Ġ{ ĊĠĠĠĠĠĠĠ Ġpreview Control Callbacks ?. on Text Chat () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġunread Messages ( unread : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity ?. run On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( unread ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunread Messages Button . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunread Messages Button . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Enabled ( enabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaudio Button . setOnClickListener ( button ClickListener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcamera Button . setOnClickListener ( button ClickListener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Sharing Button . setOnClickListener ( button ClickListener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Chat Button . setOnClickListener ( button ClickListener ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaudio Button . setOnClickListener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcamera Button . setOnClickListener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaudio Button . setImage Resource ( R . drawable . mic _ icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcamera Button . setImage Resource ( R . drawable . video _ icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Sharing Button . setOnClickListener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotations Button . setOnClickListener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Chat Button . setOnClickListener ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Call Button Enabled ( enabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcall Button . isEnabled Ġ= Ġenabled ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrestart () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Enabled ( false ) ĊĠĠĠĠĠĠĠ Ġcall Button . setBackground Resource ( R . drawable . init iate _ call _ button ) ĊĠĠĠĠĠĠĠ Ġcall Button . setImage Resource ( R . drawable . start _ call ) ĊĠĠĠĠĠĠĠ Ġscreen Sharing Button . setBackground Resource ( R . drawable . background _ icon ) ĊĠĠĠĠĠĠĠ Ġannotations Button . setBackground Resource ( R . drawable . background _ icon ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrestart Annotations () Ġ{ ĊĠĠĠĠĠĠĠ Ġannotations Button . setBackground Resource ( R . drawable . background _ icon ) ĊĠĠĠĠĠĠĠ Ġenable Annotations ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġenable Annotations ( enable : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġannotations Button . setOnClickListener ( if Ġ( enable ) Ġbutton ClickListener Ġelse Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrestart Screen Sharing () Ġ{ ĊĠĠĠĠĠĠĠ Ġscreen Sharing Button . setBackground Resource ( R . drawable . background _ icon ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Annotations ( show : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġscreen Sharing Button . layout Params Ġas ĠRelative Layout . LayoutParams ĊĊĠĠĠĠĠĠĠ Ġif Ġ( show ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Chat Button . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotations Button . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams . add Rule ( Relative Layout . RIGHT _ OF , Ġannotations Button . id ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotations Button . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Chat Button . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams . add Rule ( Relative Layout . RIGHT _ OF , Ġtext Chat Button . id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġscreen Sharing Button . layout Params Ġ= Ġparams ĊĠĠĠ Ġ} Ċ }