package Ġcom . con cord ium . wallet . ui . common . identity Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content .* Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . util . Base 6 4 Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . con cord ium . wallet . App Ċ import Ġcom . con cord ium . wallet . Build Config Ċ import Ġcom . con cord ium . wallet . R Ċ import Ġcom . con cord ium . wallet . ui . Request Codes Ċ import Ġcom . con cord ium . wallet . ui . identity . identity confirmed . Identity Error Data Ċ import Ġcom . con cord ium . wallet . u ic ore . dialog . Custom Dialog Fragment Ċ import Ġcom . con cord ium . wallet . u ic ore . dialog . Dialog s Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġjava . security . Message Digest Ċ Ċ object ĠIdentity Error Dialog Helper Ġ{ ĊĊĠĠĠ Ġfun Ġhash ( txt : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= Ġtxt . toString (). toByteArray () ĊĠĠĠĠĠĠĠ Ġval Ġmd Ġ= ĠMessage Digest . getInstance (" SHA - 2 5 6 ") ĊĠĠĠĠĠĠĠ Ġval Ġdigest Ġ= Ġmd . digest ( bytes ) ĊĠĠĠĠĠĠĠ Ġreturn Ġdigest . fold ("", Ġ{ Ġstr , Ġit Ġ-> Ġstr Ġ+ Ġ"% 0 2 x ". format ( it ) Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Identity Error ( activity : ĠAppCompatActivity , Ġdialog s : ĠDialog s , Ġidentity Error Data : ĠIdentity Error Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= ĠR . string . dialog _ initial _ account _ error _ title ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( identity Error Data . is First Identity ) ĠR . string . dialog _ initial _ account _ error _ text _ first Ġelse ĠR . string . dialog _ initial _ account _ error _ text ĊĠĠĠĠĠĠĠ Ġval Ġpositive Ġ= ĠR . string . dialog _ initial _ account _ error _ positive ĊĊĊĠĠĠĠĠĠĠ Ġif (! TextUtils . isEmpty ( identity Error Data . identity . code Uri )){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( Identity Error Dialog Helper . can Open Support Email ( activity )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog s . show Positive Support Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Codes . REQUEST _ IDENTITY _ ERROR _ DIALOG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . dialog _ popup _ support _ with _ email _ client _ text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . dialog _ support , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . dialog _ cancel , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhash ( identity Error Data . identity . code Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog s . show Positive Support Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Codes . REQUEST _ IDENTITY _ ERROR _ DIALOG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . dialog _ popup _ support _ without _ email _ client _ text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . dialog _ copy , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . dialog _ cancel , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhash ( identity Error Data . identity . code Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( identity Error Data . is First Identity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog s . show Ok Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Codes . REQUEST _ IDENTITY _ ERROR _ DIALOG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog s . show Positive Negative Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Codes . REQUEST _ IDENTITY _ ERROR _ DIALOG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . dialog _ cancel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġtrue Ġif Ġintent Ġcan Ġbe Ġresolved ĊĠĠĠĠ Ġ* Ġ@ param Ġtest Only Ġif Ġset Ġto Ġtrue Ġwe Ġto Ġnot Ġresolve Ġand Ġstart Ġactivity , Ġwe Ġonly Ġtest ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue Ġif Ġintent Ġcan Ġbe Ġresolved ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġopen Support Email ( context : ĠContext , Ġresources : ĠResources , Ġuri Session : ĠString , Ġtest Only : ĠBoolean Ġ= Ġfalse ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuri Text Ġ= Ġ" mailto : con cord ium - id iss @ not ab ene . id " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"? cc =" Ġ+ Ġ" id iss @ con cord ium . software " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& subject =" Ġ+ ĠUri . encode ( resources . getString ( R . string . dialog _ support _ subject _ reference , Ġuri Session )) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& body =" Ġ+ ĠUri . encode ( resources . getString ( R . string . dialog _ support _ text , Ġuri Session , ĠBuild Config . VERSION _ NAME , ĠBuild . VERSION . RELEASE )) ĊĠĠĠĠĠĠĠ Ġval Ġuri Ġ= ĠUri . parse ( uri Text ) ĊĠĠĠĠĠĠĠ Ġval Ġsend Intent Ġ= ĠIntent ( Intent . ACTION _ SEND TO ) ĊĠĠĠĠĠĠĠ Ġsend Intent . data Ġ= Ġuri ĊĠĠĠĠĠĠĠ Ġif Ġ( send Intent . resolve Activity ( context . package Manager ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! test Only ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( Intent . create Chooser ( send Intent , Ġresources . getString ( R . string . dialog _ send _ email ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConvenience Ġmethod ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcan Open Support Email ( context : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġopen Support Email ( context , Ġcontext . resources , Ġ"", Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcopy To Clipboard ( context : ĠContext , Ġtitle : ĠString , Ġcontent : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclipboard : ĠClip board Manager Ġ= Ġcontext . getSystem Service ( AppCompatActivity . CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager ĊĠĠĠĠĠĠĠ Ġval Ġclip Ġ= ĠClip Data . new Plain Text ( title , Ġcontent ) ĊĠĠĠĠĠĠĠ Ġclipboard . set Primary Clip ( clip ) ĊĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġcontext . resources . getString ( R . string . contact _ iss u ance _ hash _ value _ copied ), ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊ Ċ }