/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠNew ĠVector ĠLtd Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġim . vector . extensions Ċ Ċ import Ġorg . matrix . android sdk . MX Session Ċ import Ġorg . matrix . android sdk . crypto . data . MX DeviceInfo Ċ import Ġorg . matrix . android sdk . data . Room Ċ import Ġorg . matrix . android sdk . rest . model . Event Ċ import Ġkotlin . math . max Ċ Ċ /* Ġ================================================================= ================ ========= Ċ Ġ* ĠMX DeviceInfo Ċ Ġ* Ġ================================================================= ================ ========= Ġ*/ Ċ Ċ fun ĠMX DeviceInfo . getF ingerprint Human Readable () Ġ= Ġfingerprint () ĊĠĠĠĠĠĠĠ Ġ? . chunk ed ( 4 ) ĊĠĠĠĠĠĠĠ Ġ? . join ToString ( separator Ġ= Ġ" Ġ") ĊĊ Ċ /* Ġ================================================================= ================ ========= Ċ Ġ* ĠRoom Ċ Ġ* Ġ================================================================= ================ ========= Ġ*/ Ċ Ċ /** Ċ Ġ* ĠHelper Ġmethod Ġto Ġretrieve Ġthe Ġmax Ġpower Ġlevel Ġcontained Ġin Ġthe Ġroom . Ċ Ġ* ĠThis Ġvalue Ġis Ġused Ġto Ġindicate Ġwhat Ġis Ġthe Ġpower Ġlevel Ġvalue Ġrequired Ċ Ġ* Ġto Ġbe Ġadmin Ġof Ġthe Ġroom . Ċ Ġ* Ċ Ġ* Ġ@ return Ġmax Ġpower Ġlevel Ġof Ġthe Ġcurrent Ġroom Ċ Ġ*/ Ċ fun ĠRoom ?. get Room Max Power Level (): ĠInt Ġ{ ĊĠĠĠ Ġif Ġ( this Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġmax Power Level Ġ= Ġ 0 ĊĊĠĠĠ Ġstate ?. power Levels ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġmax Power Level Ġ= Ġmax ( it . users _ default , Ġit . users ?. values ?. max () Ġ?: Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġmax Power Level Ċ } Ċ Ċ /** Ċ Ġ* ĠCheck Ġif Ġthe Ġuser Ġpower Ġlevel Ġallows Ġto Ġupdate Ġthe Ġroom Ġavatar . ĠThis Ġis Ġmainly Ġused Ġto Ċ Ġ* Ġdetermine Ġif Ġcamera Ġpermission Ġmust Ġbe Ġchecked Ġor Ġnot . Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Session Ġthe Ġsession Ċ Ġ* Ġ@ return Ġtrue Ġif Ġthe Ġuser Ġpower Ġlevel Ġallows Ġto Ġupdate Ġthe Ġavatar , Ġfalse Ġotherwise . Ċ Ġ*/ Ċ fun ĠRoom . is Power Level En ough For Avatar Update ( a Session : ĠMX Session ?): ĠBoolean Ġ{ ĊĠĠĠ Ġvar Ġcan Update Avatar With Camera Ġ= Ġfalse ĊĊĠĠĠ Ġif Ġ( null Ġ!= Ġa Session ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstate . power Levels ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpower Level Ġ= Ġit . getUser Power Level ( a Session . my UserId ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcheck Ġthe Ġpower Ġlevel Ġagainst Ġavatar Ġlevel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcan Update Avatar With Camera Ġ= Ġpower Level Ġ>= Ġit . minimum Power Level For Sending Event As State Event ( Event . EVENT _ TYPE _ STATE _ ROOM _ AV AT AR ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġcan Update Avatar With Camera Ċ } Ċ Ċ /* Ġ================================================================= ================ ========= Ċ Ġ* ĠEvent Ċ Ġ* Ġ================================================================= ================ ========= Ġ*/ Ċ Ċ fun ĠEvent . getSession Id () Ġ= Ġwire Content ĊĠĠĠĠĠĠĠ Ġ? . take If Ġ{ Ġit . is JsonObject Ġ} ĊĠĠĠĠĠĠĠ Ġ? . as JsonObject ĊĠĠĠĠĠĠĠ Ġ? . get (" session _ id ") ĊĠĠĠĠĠĠĠ Ġ? . asString