/* Ċ Ġ* Ġlib j ingle Ċ Ġ* ĠCopyright Ġ 2 0 1 5 ĠGoogle ĠInc . Ċ Ġ* Ċ Ġ* ĠRedistribution Ġand Ġuse Ġin Ġsource Ġand Ġbinary Ġforms , Ġwith Ġor Ġwithout Ċ Ġ* Ġmodification , Ġare Ġpermitted Ġprovided Ġthat Ġthe Ġfollowing Ġconditions Ġare Ġmet : Ċ Ġ* Ċ Ġ* ĠĠ 1 . ĠRedistributions Ġof Ġsource Ġcode Ġmust Ġretain Ġthe Ġabove Ġcopyright Ġnotice , Ċ Ġ* ĠĠĠĠ Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer . Ċ Ġ* ĠĠ 2 . ĠRedistributions Ġin Ġbinary Ġform Ġmust Ġreproduce Ġthe Ġabove Ġcopyright Ġnotice , Ċ Ġ* ĠĠĠĠ Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer Ġin Ġthe Ġdocumentation Ċ Ġ* ĠĠĠĠ Ġand / or Ġother Ġmaterials Ġprovided Ġwith Ġthe Ġdistribution . Ċ Ġ* ĠĠ 3 . ĠThe Ġname Ġof Ġthe Ġauthor Ġmay Ġnot Ġbe Ġused Ġto Ġendorse Ġor Ġpromote Ġproducts Ċ Ġ* ĠĠĠĠ Ġderived Ġfrom Ġthis Ġsoftware Ġwithout Ġspecific Ġprior Ġwritten Ġpermission . Ċ Ġ* Ċ Ġ* ĠTHIS ĠSOFTWARE ĠIS ĠPROVIDED ĠBY ĠTHE ĠAUTHOR Ġ`` AS ĠIS '' ĠAND ĠANY ĠEXPRESS ĠOR ĠIMPLIED Ċ Ġ* ĠWARRANTIES , ĠINCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠTHE ĠIMPLIED ĠWARRANTIES ĠOF Ċ Ġ* ĠMERCHANTABILITY ĠAND ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠARE ĠDISCLAIMED . ĠIN ĠNO Ċ Ġ* ĠEVENT ĠSHALL ĠTHE ĠAUTHOR ĠBE ĠLIABLE ĠFOR ĠANY ĠDIRECT , ĠINDIRECT , ĠINCIDENTAL , Ċ Ġ* ĠSPECIAL , ĠEXEMPLARY , ĠOR ĠCONSEQUENTIAL ĠDAMAGES Ġ( INCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , Ċ Ġ* ĠPROCUREMENT ĠOF ĠSUBSTITUTE ĠGOODS ĠOR ĠSERVICES ; ĠLOSS ĠOF ĠUSE , ĠDATA , ĠOR ĠPROFITS ; Ċ Ġ* ĠOR ĠBUSINESS ĠINTERRUPTION ) ĠHOWEVER ĠCAUSED ĠAND ĠON ĠANY ĠTHEORY ĠOF ĠLIABILITY , Ċ Ġ* ĠWHETHER ĠIN ĠCONTRACT , ĠSTRICT ĠLIABILITY , ĠOR ĠTORT Ġ( INCLUDING ĠNEGLIGENCE ĠOR Ċ Ġ* ĠOTHERWISE ) ĠARISING ĠIN ĠANY ĠWAY ĠOUT ĠOF ĠTHE ĠUSE ĠOF ĠTHIS ĠSOFTWARE , ĠEVEN ĠIF Ċ Ġ* ĠADVISED ĠOF ĠTHE ĠPOSSIBILITY ĠOF ĠSUCH ĠDAMAGE . Ċ Ġ*/ Ċ Ċ package Ġcom . alex mas l ak ov . webrtc _ android _ client Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Fragment Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Image Button Ċ import Ġandroid . widget . TextView Ċ Ċ import Ġorg . webrtc . Video Renderer Gui . Scaling Type Ċ Ċ /** Ċ Ġ* ĠFragment Ġfor Ġcall Ġcontrol . Ċ Ġ*/ Ċ public Ġclass ĠCall Fragment Ġ: ĠFragment () Ġ{ ĊĠ Ġprivate Ġvar Ġcontrol View : ĠView ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġcontact View : ĠTextView ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġdisconnect Button : ĠImage Button ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġcamera Switch Button : ĠImage Button ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġvideo Scaling Button : ĠImage Button ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġcall Events : ĠOn Call Events ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġscaling Type : ĠScaling Type ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġvideo Call Enabled Ġ= Ġtrue ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠCall Ġcontrol Ġinterface Ġfor Ġcontainer Ġactivity . ĊĠĠ Ġ*/ ĊĠ Ġpublic Ġtrait ĠOn Call Events Ġ{ ĊĠĠĠ Ġpublic Ġfun Ġon Call Hang Up () ĊĠĠĠ Ġpublic Ġfun Ġon Camera Switch () ĊĠĠĠ Ġpublic Ġfun Ġon Video Scaling Switch ( scaling Type : ĠScaling Type ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ): ĠView ? Ġ{ ĊĠĠĠ Ġcontrol View Ġ= Ġinflater . inflate ( R . layout . fragment _ call , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġ// ĠCreate ĠUI Ġcontrols . ĊĠĠĠ Ġcontact View Ġ= Ġcontrol View !!. findViewById ( R . id . contact _ name _ call ) Ġas ĠTextView ĊĠĠĠ Ġdisconnect Button Ġ= Ġcontrol View !!. findViewById ( R . id . button _ call _ disconnect ) Ġas ĠImage Button ĊĠĠĠ Ġcamera Switch Button Ġ= Ġcontrol View !!. findViewById ( R . id . button _ call _ switch _ camera ) Ġas ĠImage Button ĊĠĠĠ Ġvideo Scaling Button Ġ= Ġcontrol View !!. findViewById ( R . id . button _ call _ scaling _ mode ) Ġas ĠImage Button ĊĊĠĠĠ Ġ// ĠAdd Ġbuttons Ġclick Ġevents . ĊĠĠĠ Ġdisconnect Button !!. setOnClickListener Ġ{ ĊĠĠĠĠĠ Ġcall Events !!. on Call Hang Up () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcamera Switch Button !!. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġcall Events !!. on Camera Switch () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġvideo Scaling Button !!. setOnClickListener Ġ{ ĊĠĠĠĠĠ Ġif Ġ( scaling Type Ġ== ĠScaling Type . SCALE _ AS PECT _ FILL ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvideo Scaling Button !!. setBackground Resource ( R . drawable . ic _ action _ full _ screen ) ĊĠĠĠĠĠĠĠ Ġscaling Type Ġ= ĠScaling Type . SCALE _ AS PECT _ FIT ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġvideo Scaling Button !!. setBackground Resource ( R . drawable . ic _ action _ return _ from _ full _ screen ) ĊĠĠĠĠĠĠĠ Ġscaling Type Ġ= ĠScaling Type . SCALE _ AS PECT _ FILL ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġcall Events !!. on Video Scaling Switch ( scaling Type !! ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġscaling Type Ġ= ĠScaling Type . SCALE _ AS PECT _ FILL ĊĠĠĠ Ġreturn Ġcontrol View ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠ Ġsuper . onStart () ĊĊĠĠĠ Ġval Ġargs Ġ= Ġget Arguments () ĊĠĠĠ Ġif Ġ( args Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġval Ġcontact Name Ġ= Ġargs . getString ( Call Activity . EXTRA _ ROOM ID ) ĊĠĠĠĠĠ Ġcontact View !!. setText ( contact Name ) ĊĠĠĠĠĠ Ġvideo Call Enabled Ġ= Ġargs . getBoolean ( Call Activity . EXTRA _ VIDEO _ CALL , Ġtrue ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ(! video Call Enabled ) Ġ{ ĊĠĠĠĠĠ Ġcamera Switch Button !!. setVisibility ( View . IN VISIBLE ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Attach ( activity : ĠActivity ) Ġ{ ĊĠĠĠ Ġsuper . on Attach ( activity ) ĊĠĠĠ Ġcall Events Ġ= Ġactivity Ġas ĠOn Call Events ĊĠ Ġ} Ċ Ċ } Ċ