/* Ċ Ġ* ĠCopyright Ġ 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 . ro omp ro file . settings Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . core . view . isVisible Ċ import Ġcom . air bnb . mv rx . args Ċ import Ġcom . air bnb . mv rx . fragment 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 . extensions . cleanup Ċ import Ġim . vector . ri ot x . core . extensions . configure With Ċ import Ġim . vector . ri ot x . core . extensions . exhaustive Ċ import Ġim . vector . ri ot x . core . platform . Vector Base Fragment Ċ import Ġim . vector . ri ot x . features . home . Avatar Renderer Ċ import Ġim . vector . ri ot x . features . ro omp ro file . Room Profile Args Ċ import Ġkotlinx . android . synt hetic . main . fragment _ room _ setting _ generic .* Ċ import Ġkotlinx . android . synt hetic . main . merge _ overlay _ waiting _ view .* Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠRoom Settings Fragment Ġ@ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġval ĠviewModel Factory : ĠRoom Settings ViewModel . Factory , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcontroller : ĠRoom Settings Controller , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġavatar Renderer : ĠAvatar Renderer Ċ ) Ġ: ĠVector Base Fragment (), ĠRoom Settings Controller . Callback Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠRoom Settings ViewModel Ġby Ġfragment ViewModel () ĊĠĠĠ Ġprivate Ġval Ġroom Profile Args : ĠRoom Profile Args Ġby Ġargs () ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Res Id () Ġ= ĠR . layout . fragment _ room _ setting _ generic ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġcontroller . callback Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġsetup Toolbar ( room Settings Toolbar ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . configure With ( controller , Ġhas Fixed Size Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġwaiting _ view _ status _ text . setText ( R . string . please _ wait ) ĊĠĠĠĠĠĠĠ Ġwaiting _ view _ status _ text . isVisible Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ ĠviewModel . observe View Events Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠRoom Settings View Events . Failure Ġ-> Ġshow Failure ( it . throwable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. exhaustive ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġre cyclerView . cleanup () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinvalidate () Ġ= Ġwith State ( viewModel ) Ġ{ Ġview State Ġ-> ĊĠĠĠĠĠĠĠ Ġcontroller . setData ( view State ) ĊĠĠĠĠĠĠĠ Ġrender Room Summary ( view State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Enable Encryption Clicked () Ġ{ ĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( require Activity ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . room _ settings _ enable _ encryption _ dialog _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( R . string . room _ settings _ enable _ encryption _ dialog _ content ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( R . string . cancel , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . room _ settings _ enable _ encryption _ dialog _ submit ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . handle ( Room Settings Action . Enable Encryption ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrender Room Summary ( state : ĠRoom Settings ViewState ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwaiting _ view . isVisible Ġ= Ġstate . isLoading ĊĊĠĠĠĠĠĠĠ Ġstate . room Summary ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroom Settings Toolbar Title View . text Ġ= Ġit . displayName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġavatar Renderer . render ( it . to Matrix Item (), Ġroom Settings Toolbar Avatar ImageView ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ