/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 Ġ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 . ri ot x . features . widgets . permissions Ċ Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . os . Build Ċ import Ġandroid . text . Sp ann able Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . text . style . Bullet Span Ċ import Ġbutter knife . OnClick Ċ import Ġcom . air bnb . mv rx . Mv Rx Ċ import Ġcom . air bnb . mv rx . activity ViewModel Ċ import Ġcom . air bnb . mv rx . with State Ċ import Ġim . vector . matrix . android . api . util . to Matrix Item Ċ import Ġim . vector . ri ot x . R Ċ import Ġim . vector . ri ot x . core . di . Screen Component Ċ import Ġim . vector . ri ot x . core . extensions . with Args Ċ import Ġim . vector . ri ot x . core . platform . Vector Base Bottom Sheet Dialog Fragment Ċ import Ġim . vector . ri ot x . features . home . Avatar Renderer Ċ import Ġim . vector . ri ot x . features . widgets . Widget Args Ċ import Ġkotlinx . android . synt hetic . main . bottom _ sheet _ room _ widget _ permission .* Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠRoom Widget Permission Bottom Sheet Ġ: ĠVector Base Bottom Sheet Dialog Fragment () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Res Id (): ĠInt Ġ= ĠR . layout . bottom _ sheet _ room _ widget _ permission ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠRoom Widget Permission ViewModel Ġby Ġactivity ViewModel () ĊĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġavatar Renderer : ĠAvatar Renderer ĊĊĠĠĠ Ġoverride Ġval Ġshow Expanded Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġinject With ( injector : ĠScreen Component ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinjector . inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinvalidate () Ġ= Ġwith State ( viewModel ) Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠ Ġsuper . invalidate () ĊĠĠĠĠĠĠĠ Ġval Ġpermission Data Ġ= Ġstate . permission Data () Ġ?: Ġreturn @ with State ĊĠĠĠĠĠĠĠ Ġwidget Permission OwnerId . text Ġ= Ġpermission Data . widget . sender Info ?. userId Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġwidget Permission Owner DisplayName . text Ġ= Ġpermission Data . widget . sender Info ?. dis amb igu ated DisplayName ĊĠĠĠĠĠĠĠ Ġpermission Data . widget . sender Info ?. to Matrix Item ()?. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġavatar Renderer . render ( it , Ġwidget Permission Owner Avatar ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdomain Ġ= Ġpermission Data . widget Domain Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġinfo Builder Ġ= ĠSp ann able StringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . room _ widget _ permission _ webview _ shared _ info _ title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. take If Ġ{ Ġpermission Data . is Web view Widget Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠR . string . room _ widget _ permission _ shared _ info _ title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"' $ domain ' ")) ĊĠĠĠĠĠĠĠ Ġinfo Builder . append ("\ n ") ĊĠĠĠĠĠĠĠ Ġpermission Data . permissions List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Builder . append ("\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbullet Point Ġ= ĠgetString ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Builder . append ( bullet Point , ĠBullet Span ( resources . get Dimension ( R . dim en . quote _ gap ). toInt ()), ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġinfo Builder . length ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Builder . append ( bullet Point ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Builder . set Span ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBullet Span ( resources . get Dimension ( R . dim en . quote _ gap ). toInt ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbullet Point . length , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinfo Builder . append ("\ n ") ĊĠĠĠĠĠĠĠ Ġwidget Permission Shared Info . text Ġ= Ġinfo Builder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ OnClick ( R . id . widget Permission Decl ine ) ĊĠĠĠ Ġfun Ġdo Decl ine () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . handle ( Room Widget Permission Actions . Block Widget ) ĊĠĠĠĠĠĠĠ Ġ// Ġoptim istic Ġdismiss ĊĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ OnClick ( R . id . widget Permission Continue ) ĊĠĠĠ Ġfun Ġdo Accept () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . handle ( Room Widget Permission Actions . Allow Widget ) ĊĠĠĠĠĠĠĠ Ġ// Ġoptim istic Ġdismiss ĊĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cancel ( dialog : ĠDialog Interface ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cancel ( dialog ) ĊĠĠĠĠĠĠĠ ĠviewModel . handle ( Room Widget Permission Actions . Do Close ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( widget Args : ĠWidget Args ) Ġ= ĠRoom Widget Permission Bottom Sheet (). with Args Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Parcelable ( Mv Rx . KEY _ ARG , Ġwidget Args ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ