package Ġcom . hol lab rowser . me force . view . webrtc Ċ Ċ import Ġandroid . webkit . Permission Request Ċ import Ġcom . hol lab rowser . me force . extensions . required Permissions Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* ĠThe Ġmodel Ġthat Ġmanages Ġpermission Ġrequests Ġorigin ating Ġfrom Ġa Ġweb Ġpage . Ċ Ġ*/ Ċ @ Singleton Ċ class ĠWeb Rtc Permissions Model Ġ@ Inject Ġconstructor () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġresource Grant Map Ġ= Ġmutable Map Of < String , ĠHashSet < String >>() ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRequest Ġa Ġpermission Ġfrom Ġthe Ġuser Ġto Ġuse Ġcertain Ġdevice Ġresources . ĠWill Ġcall Ġeither ĊĠĠĠĠ Ġ* Ġ[ Permission Request . grant ] Ġor Ġ[ Permission Request . deny ] Ġbased Ġon Ġthe Ġresponse Ġreceived Ġfrom Ġthe ĊĠĠĠĠ Ġ* Ġuser . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġpermission Request Ġthe Ġrequest Ġbeing Ġmade . ĊĠĠĠĠ Ġ* Ġ@ param Ġview Ġthe Ġview Ġthat Ġwill Ġdelegate Ġrequesting Ġpermissions Ġor Ġresources Ġfrom Ġthe Ġuser . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġrequest Permission ( permission Request : ĠPermission Request , Ġview : ĠWeb Rtc Permissions View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= Ġpermission Request . origin . host Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġrequired Resources Ġ= Ġpermission Request . resources ĊĠĠĠĠĠĠĠ Ġval Ġrequired Permissions Ġ= Ġpermission Request . required Permissions () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( resource Grant Map [ host ]?. contains All ( required Resources . asList ()) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . request Permissions ( required Permissions ) Ġ{ Ġpermissions Granted Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( permissions Granted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpermission Request . grant ( required Resources ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpermission Request . deny () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . request Resources ( host , Ġrequired Resources ) Ġ{ Ġresource Granted Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( resource Granted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . request Permissions ( required Permissions ) Ġ{ Ġpermissions Granted Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( permissions Granted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresource Grant Map [ host ]?. addAll ( required Resources ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġresource Grant Map . put ( host , Ġrequired Resources . to HashSet ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpermission Request . grant ( required Resources ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpermission Request . deny () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpermission Request . deny () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ