/* Ċ Ġ* ĠCopyright Ġ 2 0 2 2 ĠP era ĠWallet , ĠL DA Ċ Ġ* Ġ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 Ġcom . al gor and . android Ċ Ċ import Ġcom . al gor and . android . models . Account Ċ import Ġcom . al gor and . android . models . Account Deserializer Ċ import Ġcom . al gor and . android . utils . Account Icon Color Migration Helper Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġcom . google . gson . reflect . Type Token Ċ import Ġorg . intellij . lang . annotations . Language Ċ import Ġorg . junit . Test Ċ Ċ class ĠAccount Icon Color Migration Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġgson Ġ= ĠGson Builder (). register Type Adapter ( Account :: class . java , ĠAccount Deserializer ()). create () ĊĠĠĠ Ġprivate Ġval Ġaccount Icon Color Migration Helper Ġ= ĠAccount Icon Color Migration Helper () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcheck Migration Helper Need For Account Icon Color () Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Language (" JSON ") Ġval Ġstandard Json Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"[ \ n Ġ Ġ{\ n ĠĠĠ Ġ\" secret Key \": Ġ[\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 3 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 2 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 0 \ n ĠĠĠ Ġ], \ n ĠĠĠ Ġ\" publicKey \": Ġ\" X 2 ... \",\ n ĠĠĠ Ġ\" account Name \": Ġ\" test \"\ n Ġ Ġ} ]" ĊĠĠĠĠĠĠĠ Ġval Ġlist Type Ġ= Ġobject Ġ: ĠType Token < List < Account >>() Ġ{} . type ĊĠĠĠĠĠĠĠ Ġval Ġaccount List Ġ= Ġgson . fromJson < List < Account >>( standard Json , Ġlist Type ) ĊĊĠĠĠĠĠĠĠ Ġassert ( account Icon Color Migration Helper . is Migration Needed ( account List )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcheck Migration Helper Not Need For Account Icon Color () Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Language (" JSON ") Ġval Ġstandard Json Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"[ \ n Ġ Ġ{\ n ĠĠĠ Ġ\" secret Key \": Ġ[\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 3 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 2 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 0 \ n ĠĠĠ Ġ], \ n ĠĠĠ Ġ\" publicKey \": Ġ\" X 2 ... \",\ n ĠĠĠ Ġ\" account Name \": Ġ\" test \",\ n Ġ\" account Icon Color \": Ġ\" BL USH \" Ġ} ]" ĊĠĠĠĠĠĠĠ Ġval Ġlist Type Ġ= Ġobject Ġ: ĠType Token < List < Account >>() Ġ{} . type ĊĠĠĠĠĠĠĠ Ġval Ġaccount List Ġ= Ġgson . fromJson < List < Account >>( standard Json , Ġlist Type ) ĊĊĠĠĠĠĠĠĠ Ġassert (! account Icon Color Migration Helper . is Migration Needed ( account List )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcheck Adding Account Icon Color Migration () Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Language (" JSON ") Ġval Ġstandard Json Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"[ \ n Ġ Ġ{\ n ĠĠĠ Ġ\" secret Key \": Ġ[\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 3 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 2 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠ 0 \ n ĠĠĠ Ġ], \ n ĠĠĠ Ġ\" publicKey \": Ġ\" X 2 ... \",\ n ĠĠĠ Ġ\" account Name \": Ġ\" test \"\ n Ġ Ġ},\ n Ġ Ġ{\ n ĠĠĠ Ġ\" publicKey \": Ġ\" X 2 ... \",\ n ĠĠĠ Ġ\" account Name \": Ġ\" test \",\ n ĠĠĠ Ġ\" type \": Ġ\" STANDARD \",\ n ĠĠĠ Ġ\" detail \": Ġ{\ n ĠĠĠĠĠ Ġ\" secret Key \": Ġ[\ n ĠĠĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠĠĠ 1 ,\ n ĠĠĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠĠĠ 3 ,\ n ĠĠĠĠĠĠĠĠ 0 \ n ĠĠĠĠĠ Ġ] \ n ĠĠĠ Ġ}\ n Ġ Ġ},\ n Ġ Ġ{\ n ĠĠĠ Ġ\" publicKey \": Ġ\" X 2 ... \",\ n ĠĠĠ Ġ\" account Name \": Ġ\" test \",\ n ĠĠĠ Ġ\" type \": Ġ\" LED GER \",\ n ĠĠĠ Ġ\" detail \": Ġ{\ n ĠĠĠĠĠ Ġ\" bluetooth Address \": Ġ\" Test \"\ n ĠĠĠ Ġ}\ n Ġ Ġ},\ n Ġ Ġ{\ n ĠĠĠ Ġ\" publicKey \": Ġ\" X 2 ... \",\ n ĠĠĠ Ġ\" account Name \": Ġ\" test \",\ n ĠĠĠ Ġ\" type \": Ġ\" RE KEY ED \",\ n ĠĠĠ Ġ\" detail \": Ġ{}\ n Ġ Ġ},\ n Ġ Ġ{\ n ĠĠĠ Ġ\" publicKey \": Ġ\" X 2 ... \",\ n ĠĠĠ Ġ\" account Name \": Ġ\" test \",\ n ĠĠĠ Ġ\" type \": Ġ\" RE KEY ED _ AUTH \",\ n ĠĠĠ Ġ\" detail \": Ġ{\ n ĠĠĠĠĠ Ġ\" auth Detail \": Ġ{\ n ĠĠĠĠĠĠĠ Ġ\" bluetooth Address \": Ġ\" address X 2 \",\ n ĠĠĠĠĠĠĠ Ġ\" bluetooth Name \": Ġ\" bluetooth Name X 2 \"\ n ĠĠĠĠĠ Ġ},\ n ĠĠĠĠĠ Ġ\" auth Detail Type \": Ġ\" LED GER \",\ n ĠĠĠĠĠ Ġ\" re keyed Auth Detail \": Ġ{\ n ĠĠĠĠĠĠĠ Ġ\" X 2 \": Ġ{\ n ĠĠĠĠĠĠĠĠĠ Ġ\" bluetooth Address \": Ġ\" address X 2 \",\ n ĠĠĠĠĠĠĠĠĠ Ġ\" position In Ledger \": Ġ 0 \ n ĠĠĠĠĠĠĠ Ġ},\ n ĠĠĠĠĠĠĠ Ġ\" Y 3 \": Ġ{\ n ĠĠĠĠĠĠĠĠĠ Ġ\" bluetooth Address \": Ġ\" address Y 3 \",\ n ĠĠĠĠĠĠĠĠĠ Ġ\" position In Ledger \": Ġ 0 Ġ\ n ĠĠĠĠĠĠĠ Ġ}\ n ĠĠĠĠĠ Ġ}\ n ĠĠĠ Ġ}\ n Ġ Ġ},\ n Ġ Ġ{\ n ĠĠĠ Ġ\" publicKey \": Ġ\" X 2 ... \",\ n ĠĠĠ Ġ\" account Name \": Ġ\" test \",\ n ĠĠĠ Ġ\" type \": Ġ\" RE KEY ED _ AUTH \",\ n ĠĠĠ Ġ\" detail \": Ġ{\ n ĠĠĠĠĠ Ġ\" auth Detail \": Ġ{\ n ĠĠĠĠĠĠĠ Ġ\" secret Key \": Ġ[\ n ĠĠĠĠĠĠĠĠĠĠ 0 ,\ n ĠĠĠĠĠĠĠĠĠĠ 2 \ n ĠĠĠĠĠĠĠ Ġ] \ n ĠĠĠĠĠ Ġ},\ n ĠĠĠĠĠ Ġ\" auth Detail Type \": Ġ\" STANDARD \",\ n ĠĠĠĠĠ Ġ\" re keyed Auth Detail \": Ġ{\ n ĠĠĠĠĠĠĠ Ġ\" X 2 \": Ġ{\ n ĠĠĠĠĠĠĠĠĠ Ġ\" bluetooth Address \": Ġ\" address X 2 \",\ n ĠĠĠĠĠĠĠĠĠ Ġ\" position In Ledger \": Ġ 0 \ n ĠĠĠĠĠĠĠ Ġ},\ n ĠĠĠĠĠĠĠ Ġ\" Y 3 \": Ġ{\ n ĠĠĠĠĠĠĠĠĠ Ġ\" bluetooth Address \": Ġ\" address Y 3 \",\ n ĠĠĠĠĠĠĠĠĠ Ġ\" position In Ledger \": Ġ 0 \ n ĠĠĠĠĠĠĠ Ġ}\ n ĠĠĠĠĠ Ġ}\ n ĠĠĠ Ġ}\ n Ġ Ġ}\ n ]" ĊĠĠĠĠĠĠĠ Ġval Ġlist Type Ġ= Ġobject Ġ: ĠType Token < List < Account >>() Ġ{} . type ĊĠĠĠĠĠĠĠ Ġval Ġaccount List Ġ= Ġgson . fromJson < List < Account >>( standard Json , Ġlist Type ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmigrated Accounts Ġ= Ġaccount Icon Color Migration Helper . getM igr ated Values ( account List ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġis Everything The Same But Color Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġaccount List . forEach Indexed Ġ{ Ġindex , Ġaccount Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Everything The Same But Color Ġ= Ġis Everything The Same But Color Ġ&& Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount . type Ġ== Ġmigrated Accounts [ index ]. type Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount . address Ġ== Ġmigrated Accounts [ index ]. address Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount . detail Ġ== Ġmigrated Accounts [ index ]. detail Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount . name Ġ== Ġmigrated Accounts [ index ]. name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġis Migration Successful Ġ= Ġis Everything The Same But Color Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmigrated Accounts . all Ġ{ Ġit . account Icon Color Ġ!= ĠAccount . Account Icon Color . UNDEFINED Ġ} ĊĠĠĠĠĠĠĠ Ġassert ( is Migration Successful ) ĊĠĠĠ Ġ} Ċ } Ċ