/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 Ġ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 Ġfr . g ou v . t chap . activity Ċ Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . core . view . isVisible Ċ import Ġbutter knife . BindView Ċ import Ġbutter knife . OnClick Ċ import Ġcom . google . android . material . text field . TextInput EditText Ċ import Ġim . vector . Matrix Ċ import Ġim . vector . R Ċ import Ġim . vector . activity . Common Activity Utils Ċ import Ġim . vector . activity . Vector AppCompatActivity Ċ import Ġorg . matrix . android sdk . MX Session Ċ import Ġorg . matrix . android sdk . core . callback . Simple Api Callback Ċ Ċ class ĠT chap Unsupported Android Version Activity Ġ: ĠVector AppCompatActivity () Ġ{ ĊĊĠĠĠ Ġ/* Ġ================================================================= ================ ========= ĊĠĠĠĠ Ġ* ĠUI ĊĠĠĠĠ Ġ* Ġ================================================================= ================ ========= Ġ*/ ĊĊĠĠĠ Ġ@ BindView ( R . id . tv _ message ) ĊĠĠĠ Ġlateinit Ġvar Ġmessage : ĠTextView ĊĊĠĠĠ Ġ@ BindView ( R . id . sign _ out _ button ) ĊĠĠĠ Ġlateinit Ġvar Ġsign Out Button : ĠButton ĊĊĠĠĠ Ġ@ BindView ( R . id . export _ button ) ĊĠĠĠ Ġlateinit Ġvar Ġexport Button : ĠButton ĊĊĠĠĠ Ġ/* Ġ================================================================= ================ ========= ĊĠĠĠĠ Ġ* ĠDATA ĊĠĠĠĠ Ġ* Ġ================================================================= ================ ========= Ġ*/ ĊĊĠĠĠ Ġprivate Ġvar Ġsession : ĠMX Session ? Ġ= Ġnull ĊĊĠĠĠ Ġ/* Ġ================================================================= ================ ========= ĊĠĠĠĠ Ġ* ĠLife Ġcycle ĊĠĠĠĠ Ġ* Ġ================================================================= ================ ========= Ġ*/ ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Res () Ġ= ĠR . layout . activity _ unsupported _ android _ version ĊĊĠĠĠ Ġoverride Ġfun Ġinit Ui And Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init Ui And Data () ĊĊĠĠĠĠĠĠĠ Ġwaiting View Ġ= ĠfindViewById ( R . id . waiting _ view ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe Ġsession ĊĠĠĠĠĠĠĠ Ġsession Ġ= ĠMatrix . getInstance ( this ). default Session ĊĊĠĠĠĠĠĠĠ Ġif Ġ( session Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . text Ġ= ĠgetString ( R . string . t chap _ unsupported _ android _ version _ default _ msg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsign Out Button . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexport Button . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ġ================================================================= ================ ========= ĊĠĠĠĠ Ġ* ĠUI ĠEvent ĊĠĠĠĠ Ġ* Ġ================================================================= ================ ========= Ġ*/ ĊĊĠĠĠ Ġ@ OnClick ( R . id . sign _ out _ button ) ĊĠĠĠ Ġinternal Ġfun Ġsign Out () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Waiting View () ĊĠĠĠĠĠĠĠ ĠCommon Activity Utils . logout ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ OnClick ( R . id . export _ button ) ĊĠĠĠ Ġinternal Ġfun Ġexport Keys And Sign Out () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Layout Ġ= Ġlayout Inflater . inflate ( R . layout . dialog _ export _ e 2 e _ keys , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . encryption _ export _ room _ keys ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setView ( dialog Layout ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpass Phrase 1 EditText Ġ= Ġdialog Layout . findViewById < TextInput EditText >( R . id . dialog _ e 2 e _ keys _ pass phrase _ edit _ text ) ĊĠĠĠĠĠĠĠ Ġval Ġpass Phrase 2 EditText Ġ= Ġdialog Layout . findViewById < TextInput EditText >( R . id . dialog _ e 2 e _ keys _ confirm _ pass phrase _ edit _ text ) ĊĠĠĠĠĠĠĠ Ġval Ġexport Button Ġ= Ġdialog Layout . findViewById < Button >( R . id . dialog _ e 2 e _ keys _ export _ button ) ĊĠĠĠĠĠĠĠ Ġval Ġtext Watcher Ġ= Ġobject Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence , Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence , Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexport Button . isEnabled Ġ= Ġ! TextUtils . isEmpty ( pass Phrase 1 EditText . text ) Ġ&& ĠText Utils . equals ( pass Phrase 1 EditText . text , Ġpass Phrase 2 EditText . text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpass Phrase 1 EditText . add TextChanged Listener ( text Watcher ) ĊĠĠĠĠĠĠĠ Ġpass Phrase 2 EditText . add TextChanged Listener ( text Watcher ) ĊĊĠĠĠĠĠĠĠ Ġexport Button . isEnabled Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġexport Dialog Ġ= Ġbuilder . show () ĊĊĠĠĠĠĠĠĠ Ġexport Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Waiting View () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Activity Utils . export Keys ( session , Ġpass Phrase 1 EditText . text . toString (), Ġobject Ġ: ĠSimple Api Callback < String >( this ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( filename : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Waiting View () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this @ T chap Unsupported Android Version Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( getString ( R . string . encryption _ export _ saved _ as , Ġfilename )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . action _ sign _ out ) Ġ{ Ġdialog , Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Waiting View () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Activity Utils . logout ( this @ T chap Unsupported Android Version Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġexport Dialog . dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }