Mercurial > public > simoleon
changeset 173:ad8c6567539d
restart project
author | Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com> |
---|---|
date | Tue, 26 Oct 2021 13:09:17 +0200 |
parents | 9b0486301fbf |
children | f55b6cde1759 |
files | .github/ISSUE_TEMPLATE/bug_report.md .github/ISSUE_TEMPLATE/feature_request.md .github/workflows/ios.yml .gitignore Gemfile Gemfile.lock README.md Simoleon.xcodeproj/project.pbxproj Simoleon.xcodeproj/xcshareddata/xcschemes/AppPreview.xcscheme Simoleon.xcodeproj/xcshareddata/xcschemes/Screenshots.xcscheme Simoleon.xcodeproj/xcshareddata/xcschemes/Simoleon.xcscheme Simoleon/AboutView.swift Simoleon/Assets.xcassets/AccentColor.colorset/Contents.json Simoleon/Assets.xcassets/AppIcon.appiconset/Contents.json Simoleon/Assets.xcassets/AppIcon.appiconset/appstore1024.png Simoleon/Assets.xcassets/AppIcon.appiconset/ipad152.png Simoleon/Assets.xcassets/AppIcon.appiconset/ipad76.png Simoleon/Assets.xcassets/AppIcon.appiconset/ipadNotification20.png Simoleon/Assets.xcassets/AppIcon.appiconset/ipadNotification40.png Simoleon/Assets.xcassets/AppIcon.appiconset/ipadPro167.png Simoleon/Assets.xcassets/AppIcon.appiconset/ipadSettings29.png Simoleon/Assets.xcassets/AppIcon.appiconset/ipadSettings58.png Simoleon/Assets.xcassets/AppIcon.appiconset/ipadSpotlight40.png Simoleon/Assets.xcassets/AppIcon.appiconset/ipadSpotlight80.png Simoleon/Assets.xcassets/AppIcon.appiconset/iphone120.png Simoleon/Assets.xcassets/AppIcon.appiconset/iphone180.png Simoleon/Assets.xcassets/AppIcon.appiconset/mac1024.png Simoleon/Assets.xcassets/AppIcon.appiconset/mac128.png Simoleon/Assets.xcassets/AppIcon.appiconset/mac16.png Simoleon/Assets.xcassets/AppIcon.appiconset/mac256.png Simoleon/Assets.xcassets/AppIcon.appiconset/mac32.png Simoleon/Assets.xcassets/AppIcon.appiconset/mac512.png Simoleon/Assets.xcassets/AppIcon.appiconset/mac64.png Simoleon/Assets.xcassets/AppIcon.appiconset/notification40.png Simoleon/Assets.xcassets/AppIcon.appiconset/notification60.png Simoleon/Assets.xcassets/AppIcon.appiconset/settings58.png Simoleon/Assets.xcassets/AppIcon.appiconset/settings87.png Simoleon/Assets.xcassets/AppIcon.appiconset/spotlight120.png Simoleon/Assets.xcassets/AppIcon.appiconset/spotlight80.png Simoleon/Assets.xcassets/Flags/AAVE.imageset/AAVE.png Simoleon/Assets.xcassets/Flags/AAVE.imageset/Contents.json Simoleon/Assets.xcassets/Flags/ADA.imageset/ADA.png Simoleon/Assets.xcassets/Flags/ADA.imageset/Contents.json Simoleon/Assets.xcassets/Flags/AE.imageset/AE.png Simoleon/Assets.xcassets/Flags/AE.imageset/Contents.json Simoleon/Assets.xcassets/Flags/AF.imageset/AF.png Simoleon/Assets.xcassets/Flags/AF.imageset/Contents.json Simoleon/Assets.xcassets/Flags/AI.imageset/AI.png Simoleon/Assets.xcassets/Flags/AI.imageset/Contents.json Simoleon/Assets.xcassets/Flags/AL.imageset/AL.png Simoleon/Assets.xcassets/Flags/AL.imageset/Contents.json Simoleon/Assets.xcassets/Flags/AM.imageset/AM.png Simoleon/Assets.xcassets/Flags/AM.imageset/Contents.json Simoleon/Assets.xcassets/Flags/AO.imageset/AO.png Simoleon/Assets.xcassets/Flags/AO.imageset/Contents.json Simoleon/Assets.xcassets/Flags/AR.imageset/AR.png Simoleon/Assets.xcassets/Flags/AR.imageset/Contents.json Simoleon/Assets.xcassets/Flags/AU.imageset/AU.png Simoleon/Assets.xcassets/Flags/AU.imageset/Contents.json Simoleon/Assets.xcassets/Flags/AW.imageset/AW.png Simoleon/Assets.xcassets/Flags/AW.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BA.imageset/BA.png Simoleon/Assets.xcassets/Flags/BA.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BB.imageset/BB.png Simoleon/Assets.xcassets/Flags/BB.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BD.imageset/BD.png Simoleon/Assets.xcassets/Flags/BD.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BG.imageset/BG.png Simoleon/Assets.xcassets/Flags/BG.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BH.imageset/BH.png Simoleon/Assets.xcassets/Flags/BH.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BI.imageset/BI.png Simoleon/Assets.xcassets/Flags/BI.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BM.imageset/BM.png Simoleon/Assets.xcassets/Flags/BM.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BN.imageset/BN.png Simoleon/Assets.xcassets/Flags/BN.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BNB.imageset/BNB.png Simoleon/Assets.xcassets/Flags/BNB.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BO.imageset/BO.png Simoleon/Assets.xcassets/Flags/BO.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BR.imageset/BR.png Simoleon/Assets.xcassets/Flags/BR.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BS.imageset/BS.png Simoleon/Assets.xcassets/Flags/BS.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BT.imageset/BT.png Simoleon/Assets.xcassets/Flags/BT.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BTC.imageset/BTC.png Simoleon/Assets.xcassets/Flags/BTC.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BW.imageset/BW.png Simoleon/Assets.xcassets/Flags/BW.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BY.imageset/BY.png Simoleon/Assets.xcassets/Flags/BY.imageset/Contents.json Simoleon/Assets.xcassets/Flags/BZ.imageset/BZ.png Simoleon/Assets.xcassets/Flags/BZ.imageset/Contents.json Simoleon/Assets.xcassets/Flags/CA.imageset/CA.png Simoleon/Assets.xcassets/Flags/CA.imageset/Contents.json Simoleon/Assets.xcassets/Flags/CD.imageset/CD.png Simoleon/Assets.xcassets/Flags/CD.imageset/Contents.json Simoleon/Assets.xcassets/Flags/CH.imageset/CH.png Simoleon/Assets.xcassets/Flags/CH.imageset/Contents.json Simoleon/Assets.xcassets/Flags/CL.imageset/CL.png Simoleon/Assets.xcassets/Flags/CL.imageset/Contents.json Simoleon/Assets.xcassets/Flags/CN.imageset/CN.png Simoleon/Assets.xcassets/Flags/CN.imageset/Contents.json Simoleon/Assets.xcassets/Flags/CO.imageset/CO.png Simoleon/Assets.xcassets/Flags/CO.imageset/Contents.json Simoleon/Assets.xcassets/Flags/CR.imageset/CR.png Simoleon/Assets.xcassets/Flags/CR.imageset/Contents.json Simoleon/Assets.xcassets/Flags/CU.imageset/CU.png Simoleon/Assets.xcassets/Flags/CU.imageset/Contents.json Simoleon/Assets.xcassets/Flags/CV.imageset/CV.png Simoleon/Assets.xcassets/Flags/CV.imageset/Contents.json Simoleon/Assets.xcassets/Flags/CW.imageset/CW.png Simoleon/Assets.xcassets/Flags/CW.imageset/Contents.json Simoleon/Assets.xcassets/Flags/CY.imageset/CY.png Simoleon/Assets.xcassets/Flags/CY.imageset/Contents.json Simoleon/Assets.xcassets/Flags/CZ.imageset/CZ.png Simoleon/Assets.xcassets/Flags/CZ.imageset/Contents.json Simoleon/Assets.xcassets/Flags/Contents.json Simoleon/Assets.xcassets/Flags/DASH.imageset/Contents.json Simoleon/Assets.xcassets/Flags/DASH.imageset/DASH.png Simoleon/Assets.xcassets/Flags/DJ.imageset/Contents.json Simoleon/Assets.xcassets/Flags/DJ.imageset/DJ.png Simoleon/Assets.xcassets/Flags/DK.imageset/Contents.json Simoleon/Assets.xcassets/Flags/DK.imageset/DK.png Simoleon/Assets.xcassets/Flags/DO.imageset/Contents.json Simoleon/Assets.xcassets/Flags/DO.imageset/DO.png Simoleon/Assets.xcassets/Flags/DOGE.imageset/Contents.json Simoleon/Assets.xcassets/Flags/DOGE.imageset/DOGE.png Simoleon/Assets.xcassets/Flags/DOT.imageset/Contents.json Simoleon/Assets.xcassets/Flags/DOT.imageset/DOT.png Simoleon/Assets.xcassets/Flags/DZ.imageset/Contents.json Simoleon/Assets.xcassets/Flags/DZ.imageset/DZ.png Simoleon/Assets.xcassets/Flags/EG.imageset/Contents.json Simoleon/Assets.xcassets/Flags/EG.imageset/EG.png Simoleon/Assets.xcassets/Flags/ET.imageset/Contents.json Simoleon/Assets.xcassets/Flags/ET.imageset/ET.png Simoleon/Assets.xcassets/Flags/ETH.imageset/Contents.json Simoleon/Assets.xcassets/Flags/ETH.imageset/ETH.png Simoleon/Assets.xcassets/Flags/EU.imageset/Contents.json Simoleon/Assets.xcassets/Flags/EU.imageset/EU.png Simoleon/Assets.xcassets/Flags/FIL.imageset/Contents.json Simoleon/Assets.xcassets/Flags/FIL.imageset/FIL.png Simoleon/Assets.xcassets/Flags/FJ.imageset/Contents.json Simoleon/Assets.xcassets/Flags/FJ.imageset/FJ.png Simoleon/Assets.xcassets/Flags/FR.imageset/Contents.json Simoleon/Assets.xcassets/Flags/FR.imageset/FR.png Simoleon/Assets.xcassets/Flags/GB.imageset/Contents.json Simoleon/Assets.xcassets/Flags/GB.imageset/GB.png Simoleon/Assets.xcassets/Flags/GE.imageset/Contents.json Simoleon/Assets.xcassets/Flags/GE.imageset/GE.png Simoleon/Assets.xcassets/Flags/GH.imageset/Contents.json Simoleon/Assets.xcassets/Flags/GH.imageset/GH.png Simoleon/Assets.xcassets/Flags/GM.imageset/Contents.json Simoleon/Assets.xcassets/Flags/GM.imageset/GM.png Simoleon/Assets.xcassets/Flags/GN.imageset/Contents.json Simoleon/Assets.xcassets/Flags/GN.imageset/GN.png Simoleon/Assets.xcassets/Flags/GT.imageset/Contents.json Simoleon/Assets.xcassets/Flags/GT.imageset/GT.png Simoleon/Assets.xcassets/Flags/GY.imageset/Contents.json Simoleon/Assets.xcassets/Flags/GY.imageset/GY.png Simoleon/Assets.xcassets/Flags/HK.imageset/Contents.json Simoleon/Assets.xcassets/Flags/HK.imageset/HK.png Simoleon/Assets.xcassets/Flags/HN.imageset/Contents.json Simoleon/Assets.xcassets/Flags/HN.imageset/HN.png Simoleon/Assets.xcassets/Flags/HR.imageset/Contents.json Simoleon/Assets.xcassets/Flags/HR.imageset/HR.png Simoleon/Assets.xcassets/Flags/HT.imageset/Contents.json Simoleon/Assets.xcassets/Flags/HT.imageset/HT.png Simoleon/Assets.xcassets/Flags/HU.imageset/Contents.json Simoleon/Assets.xcassets/Flags/HU.imageset/HU.png Simoleon/Assets.xcassets/Flags/ID.imageset/Contents.json Simoleon/Assets.xcassets/Flags/ID.imageset/ID.png Simoleon/Assets.xcassets/Flags/IL.imageset/Contents.json Simoleon/Assets.xcassets/Flags/IL.imageset/IL.png Simoleon/Assets.xcassets/Flags/IM.imageset/Contents.json Simoleon/Assets.xcassets/Flags/IM.imageset/IM.png Simoleon/Assets.xcassets/Flags/IN.imageset/Contents.json Simoleon/Assets.xcassets/Flags/IN.imageset/IN.png Simoleon/Assets.xcassets/Flags/IQ.imageset/Contents.json Simoleon/Assets.xcassets/Flags/IQ.imageset/IQ.png Simoleon/Assets.xcassets/Flags/IR.imageset/Contents.json Simoleon/Assets.xcassets/Flags/IR.imageset/IR.png Simoleon/Assets.xcassets/Flags/IS.imageset/Contents.json Simoleon/Assets.xcassets/Flags/IS.imageset/IS.png Simoleon/Assets.xcassets/Flags/JM.imageset/Contents.json Simoleon/Assets.xcassets/Flags/JM.imageset/JM.png Simoleon/Assets.xcassets/Flags/JO.imageset/Contents.json Simoleon/Assets.xcassets/Flags/JO.imageset/JO.png Simoleon/Assets.xcassets/Flags/JP.imageset/Contents.json Simoleon/Assets.xcassets/Flags/JP.imageset/JP.png Simoleon/Assets.xcassets/Flags/KE.imageset/Contents.json Simoleon/Assets.xcassets/Flags/KE.imageset/KE.png Simoleon/Assets.xcassets/Flags/KH.imageset/Contents.json Simoleon/Assets.xcassets/Flags/KH.imageset/KH.png Simoleon/Assets.xcassets/Flags/KM.imageset/Contents.json Simoleon/Assets.xcassets/Flags/KM.imageset/KM.png Simoleon/Assets.xcassets/Flags/KR.imageset/Contents.json Simoleon/Assets.xcassets/Flags/KR.imageset/KR.png Simoleon/Assets.xcassets/Flags/KW.imageset/Contents.json Simoleon/Assets.xcassets/Flags/KW.imageset/KW.png Simoleon/Assets.xcassets/Flags/KY.imageset/Contents.json Simoleon/Assets.xcassets/Flags/KY.imageset/KY.png Simoleon/Assets.xcassets/Flags/KZ.imageset/Contents.json Simoleon/Assets.xcassets/Flags/KZ.imageset/KZ.png Simoleon/Assets.xcassets/Flags/LA.imageset/Contents.json Simoleon/Assets.xcassets/Flags/LA.imageset/LA.png Simoleon/Assets.xcassets/Flags/LB.imageset/Contents.json Simoleon/Assets.xcassets/Flags/LB.imageset/LB.png Simoleon/Assets.xcassets/Flags/LINK.imageset/Contents.json Simoleon/Assets.xcassets/Flags/LINK.imageset/LINK.png Simoleon/Assets.xcassets/Flags/LK.imageset/Contents.json Simoleon/Assets.xcassets/Flags/LK.imageset/LK.png Simoleon/Assets.xcassets/Flags/LR.imageset/Contents.json Simoleon/Assets.xcassets/Flags/LR.imageset/LR.png Simoleon/Assets.xcassets/Flags/LS.imageset/Contents.json Simoleon/Assets.xcassets/Flags/LS.imageset/LS.png Simoleon/Assets.xcassets/Flags/LT.imageset/Contents.json Simoleon/Assets.xcassets/Flags/LT.imageset/LT.png Simoleon/Assets.xcassets/Flags/LTC.imageset/Contents.json Simoleon/Assets.xcassets/Flags/LTC.imageset/LTC.png Simoleon/Assets.xcassets/Flags/LUNA.imageset/Contents.json Simoleon/Assets.xcassets/Flags/LUNA.imageset/LUNA.png Simoleon/Assets.xcassets/Flags/LY.imageset/Contents.json Simoleon/Assets.xcassets/Flags/LY.imageset/LY.png Simoleon/Assets.xcassets/Flags/MA.imageset/Contents.json Simoleon/Assets.xcassets/Flags/MA.imageset/MA.png Simoleon/Assets.xcassets/Flags/MATIC.imageset/Contents.json Simoleon/Assets.xcassets/Flags/MATIC.imageset/MATIC.png Simoleon/Assets.xcassets/Flags/MD.imageset/Contents.json Simoleon/Assets.xcassets/Flags/MD.imageset/MD.png Simoleon/Assets.xcassets/Flags/MG.imageset/Contents.json Simoleon/Assets.xcassets/Flags/MG.imageset/MG.png Simoleon/Assets.xcassets/Flags/MK.imageset/Contents.json Simoleon/Assets.xcassets/Flags/MK.imageset/MK.png Simoleon/Assets.xcassets/Flags/MM.imageset/Contents.json Simoleon/Assets.xcassets/Flags/MM.imageset/MM.png Simoleon/Assets.xcassets/Flags/MO.imageset/Contents.json Simoleon/Assets.xcassets/Flags/MO.imageset/MO.png Simoleon/Assets.xcassets/Flags/MR.imageset/Contents.json Simoleon/Assets.xcassets/Flags/MR.imageset/MR.png Simoleon/Assets.xcassets/Flags/MT.imageset/Contents.json Simoleon/Assets.xcassets/Flags/MT.imageset/MT.png Simoleon/Assets.xcassets/Flags/MU.imageset/Contents.json Simoleon/Assets.xcassets/Flags/MU.imageset/MU.png Simoleon/Assets.xcassets/Flags/MV.imageset/Contents.json Simoleon/Assets.xcassets/Flags/MV.imageset/MV.png Simoleon/Assets.xcassets/Flags/MW.imageset/Contents.json Simoleon/Assets.xcassets/Flags/MW.imageset/MW.png Simoleon/Assets.xcassets/Flags/MX.imageset/Contents.json Simoleon/Assets.xcassets/Flags/MX.imageset/MX.png Simoleon/Assets.xcassets/Flags/MY.imageset/Contents.json Simoleon/Assets.xcassets/Flags/MY.imageset/MY.png Simoleon/Assets.xcassets/Flags/MZ.imageset/Contents.json Simoleon/Assets.xcassets/Flags/MZ.imageset/MZ.png Simoleon/Assets.xcassets/Flags/NA.imageset/Contents.json Simoleon/Assets.xcassets/Flags/NA.imageset/NA.png Simoleon/Assets.xcassets/Flags/NG.imageset/Contents.json Simoleon/Assets.xcassets/Flags/NG.imageset/NG.png Simoleon/Assets.xcassets/Flags/NI.imageset/Contents.json Simoleon/Assets.xcassets/Flags/NI.imageset/NI.png Simoleon/Assets.xcassets/Flags/NO.imageset/Contents.json Simoleon/Assets.xcassets/Flags/NO.imageset/NO.png Simoleon/Assets.xcassets/Flags/NP.imageset/Contents.json Simoleon/Assets.xcassets/Flags/NP.imageset/NP.png Simoleon/Assets.xcassets/Flags/NZ.imageset/Contents.json Simoleon/Assets.xcassets/Flags/NZ.imageset/NZ.png Simoleon/Assets.xcassets/Flags/OM.imageset/Contents.json Simoleon/Assets.xcassets/Flags/OM.imageset/OM.png Simoleon/Assets.xcassets/Flags/PA.imageset/Contents.json Simoleon/Assets.xcassets/Flags/PA.imageset/PA.png Simoleon/Assets.xcassets/Flags/PE.imageset/Contents.json Simoleon/Assets.xcassets/Flags/PE.imageset/PE.png Simoleon/Assets.xcassets/Flags/PF.imageset/Contents.json Simoleon/Assets.xcassets/Flags/PF.imageset/PF.png Simoleon/Assets.xcassets/Flags/PG.imageset/Contents.json Simoleon/Assets.xcassets/Flags/PG.imageset/PG.png Simoleon/Assets.xcassets/Flags/PH.imageset/Contents.json Simoleon/Assets.xcassets/Flags/PH.imageset/PH.png Simoleon/Assets.xcassets/Flags/PK.imageset/Contents.json Simoleon/Assets.xcassets/Flags/PK.imageset/PK.png Simoleon/Assets.xcassets/Flags/PL.imageset/Contents.json Simoleon/Assets.xcassets/Flags/PL.imageset/PL.png Simoleon/Assets.xcassets/Flags/PY.imageset/Contents.json Simoleon/Assets.xcassets/Flags/PY.imageset/PY.png Simoleon/Assets.xcassets/Flags/QA.imageset/Contents.json Simoleon/Assets.xcassets/Flags/QA.imageset/QA.png Simoleon/Assets.xcassets/Flags/RO.imageset/Contents.json Simoleon/Assets.xcassets/Flags/RO.imageset/RO.png Simoleon/Assets.xcassets/Flags/RS.imageset/Contents.json Simoleon/Assets.xcassets/Flags/RS.imageset/RS.png Simoleon/Assets.xcassets/Flags/RU.imageset/Contents.json Simoleon/Assets.xcassets/Flags/RU.imageset/RU.png Simoleon/Assets.xcassets/Flags/RW.imageset/Contents.json Simoleon/Assets.xcassets/Flags/RW.imageset/RW.png Simoleon/Assets.xcassets/Flags/SA.imageset/Contents.json Simoleon/Assets.xcassets/Flags/SA.imageset/SA.png Simoleon/Assets.xcassets/Flags/SB.imageset/Contents.json Simoleon/Assets.xcassets/Flags/SB.imageset/SB.png Simoleon/Assets.xcassets/Flags/SC.imageset/Contents.json Simoleon/Assets.xcassets/Flags/SC.imageset/SC.png Simoleon/Assets.xcassets/Flags/SD.imageset/Contents.json Simoleon/Assets.xcassets/Flags/SD.imageset/SD.png Simoleon/Assets.xcassets/Flags/SE.imageset/Contents.json Simoleon/Assets.xcassets/Flags/SE.imageset/SE.png Simoleon/Assets.xcassets/Flags/SG.imageset/Contents.json Simoleon/Assets.xcassets/Flags/SG.imageset/SG.png Simoleon/Assets.xcassets/Flags/SH.imageset/Contents.json Simoleon/Assets.xcassets/Flags/SH.imageset/SH.png Simoleon/Assets.xcassets/Flags/SL.imageset/Contents.json Simoleon/Assets.xcassets/Flags/SL.imageset/SL.png Simoleon/Assets.xcassets/Flags/SN.imageset/Contents.json Simoleon/Assets.xcassets/Flags/SN.imageset/SN.png Simoleon/Assets.xcassets/Flags/SO.imageset/Contents.json Simoleon/Assets.xcassets/Flags/SO.imageset/SO.png Simoleon/Assets.xcassets/Flags/SOL.imageset/Contents.json Simoleon/Assets.xcassets/Flags/SOL.imageset/SOL.png Simoleon/Assets.xcassets/Flags/SR.imageset/Contents.json Simoleon/Assets.xcassets/Flags/SR.imageset/SR.png Simoleon/Assets.xcassets/Flags/ST.imageset/Contents.json Simoleon/Assets.xcassets/Flags/ST.imageset/ST.png Simoleon/Assets.xcassets/Flags/SV.imageset/Contents.json Simoleon/Assets.xcassets/Flags/SV.imageset/SV.png Simoleon/Assets.xcassets/Flags/SZ.imageset/Contents.json Simoleon/Assets.xcassets/Flags/SZ.imageset/SZ.png Simoleon/Assets.xcassets/Flags/TH.imageset/Contents.json Simoleon/Assets.xcassets/Flags/TH.imageset/TH.png Simoleon/Assets.xcassets/Flags/THETA.imageset/Contents.json Simoleon/Assets.xcassets/Flags/THETA.imageset/THETA.png Simoleon/Assets.xcassets/Flags/TJ.imageset/Contents.json Simoleon/Assets.xcassets/Flags/TJ.imageset/TJ.png Simoleon/Assets.xcassets/Flags/TM.imageset/Contents.json Simoleon/Assets.xcassets/Flags/TM.imageset/TM.png Simoleon/Assets.xcassets/Flags/TN.imageset/Contents.json Simoleon/Assets.xcassets/Flags/TN.imageset/TN.png Simoleon/Assets.xcassets/Flags/TO.imageset/Contents.json Simoleon/Assets.xcassets/Flags/TO.imageset/TO.png Simoleon/Assets.xcassets/Flags/TR.imageset/Contents.json Simoleon/Assets.xcassets/Flags/TR.imageset/TR.png Simoleon/Assets.xcassets/Flags/TT.imageset/Contents.json Simoleon/Assets.xcassets/Flags/TT.imageset/TT.png Simoleon/Assets.xcassets/Flags/TW.imageset/Contents.json Simoleon/Assets.xcassets/Flags/TW.imageset/TW.png Simoleon/Assets.xcassets/Flags/TZ.imageset/Contents.json Simoleon/Assets.xcassets/Flags/TZ.imageset/TZ.png Simoleon/Assets.xcassets/Flags/UA.imageset/Contents.json Simoleon/Assets.xcassets/Flags/UA.imageset/UA.png Simoleon/Assets.xcassets/Flags/UG.imageset/Contents.json Simoleon/Assets.xcassets/Flags/UG.imageset/UG.png Simoleon/Assets.xcassets/Flags/UKO.imageset/Contents.json Simoleon/Assets.xcassets/Flags/UKO.imageset/UKO.png Simoleon/Assets.xcassets/Flags/UNI.imageset/Contents.json Simoleon/Assets.xcassets/Flags/UNI.imageset/UNI.png Simoleon/Assets.xcassets/Flags/US.imageset/Contents.json Simoleon/Assets.xcassets/Flags/US.imageset/US.png Simoleon/Assets.xcassets/Flags/USDC.imageset/Contents.json Simoleon/Assets.xcassets/Flags/USDC.imageset/USDC.png Simoleon/Assets.xcassets/Flags/UY.imageset/Contents.json Simoleon/Assets.xcassets/Flags/UY.imageset/UY.png Simoleon/Assets.xcassets/Flags/UZ.imageset/Contents.json Simoleon/Assets.xcassets/Flags/UZ.imageset/UZ.png Simoleon/Assets.xcassets/Flags/VE.imageset/Contents.json Simoleon/Assets.xcassets/Flags/VE.imageset/VE.png Simoleon/Assets.xcassets/Flags/VET.imageset/Contents.json Simoleon/Assets.xcassets/Flags/VET.imageset/VET.png Simoleon/Assets.xcassets/Flags/VN.imageset/Contents.json Simoleon/Assets.xcassets/Flags/VN.imageset/VN.png Simoleon/Assets.xcassets/Flags/XAG.imageset/Contents.json Simoleon/Assets.xcassets/Flags/XAG.imageset/XAG.png Simoleon/Assets.xcassets/Flags/XAU.imageset/Contents.json Simoleon/Assets.xcassets/Flags/XAU.imageset/XAU.png Simoleon/Assets.xcassets/Flags/XDR.imageset/Contents.json Simoleon/Assets.xcassets/Flags/XDR.imageset/XDR.png Simoleon/Assets.xcassets/Flags/XLM.imageset/Contents.json Simoleon/Assets.xcassets/Flags/XLM.imageset/XLM.png Simoleon/Assets.xcassets/Flags/XMR.imageset/Contents.json Simoleon/Assets.xcassets/Flags/XMR.imageset/XMR.png Simoleon/Assets.xcassets/Flags/XPD.imageset/Contents.json Simoleon/Assets.xcassets/Flags/XPD.imageset/XPD.png Simoleon/Assets.xcassets/Flags/XPT.imageset/Contents.json Simoleon/Assets.xcassets/Flags/XPT.imageset/XPT.png Simoleon/Assets.xcassets/Flags/XRP.imageset/Contents.json Simoleon/Assets.xcassets/Flags/XRP.imageset/XRP.png Simoleon/Assets.xcassets/Flags/YE.imageset/Contents.json Simoleon/Assets.xcassets/Flags/YE.imageset/YE.png Simoleon/Assets.xcassets/Flags/ZA.imageset/Contents.json Simoleon/Assets.xcassets/Flags/ZA.imageset/ZA.png Simoleon/Assets.xcassets/Flags/ZM.imageset/Contents.json Simoleon/Assets.xcassets/Flags/ZM.imageset/ZM.png Simoleon/Assets.xcassets/Flags/ZW.imageset/Contents.json Simoleon/Assets.xcassets/Flags/ZW.imageset/ZW.png Simoleon/Assets.xcassets/LaunchLogo.imageset/Contents.json Simoleon/Assets.xcassets/LaunchLogo.imageset/Simoleon.png Simoleon/Assets.xcassets/PlainButton.colorset/Contents.json Simoleon/Assets.xcassets/Subscription.imageset/Contents.json Simoleon/Assets.xcassets/Subscription.imageset/SimoleonSubscription.png Simoleon/Assets.xcassets/TwitterLogo.imageset/Contents.json Simoleon/Assets.xcassets/TwitterLogo.imageset/TwitterLogo@x1.png Simoleon/Assets.xcassets/TwitterLogo.imageset/TwitterLogo@x2.png Simoleon/Assets.xcassets/TwitterLogo.imageset/TwitterLogo@x3.png Simoleon/ContentView.swift Simoleon/ConversionView.swift Simoleon/FavoritesView.swift Simoleon/Helpers/ConditionalWrapper.swift Simoleon/Helpers/ErrorHandling.swift Simoleon/Helpers/FileHelper.swift Simoleon/Helpers/HapticsHelper.swift Simoleon/Helpers/ListModifier.swift Simoleon/Helpers/NetworkHelper.swift Simoleon/Helpers/Persistence.swift Simoleon/Helpers/ResignKeyboard.swift Simoleon/Helpers/SnapshotHelper.swift Simoleon/Info.plist Simoleon/LaunchScreen.storyboard Simoleon/Localization/en.xcloc/Localized Contents/en.xliff Simoleon/Localization/en.xcloc/Source Contents/Simoleon/de.lproj/InfoPlist.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/de.lproj/Localizable.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/en-GB.lproj/InfoPlist.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/en-GB.lproj/Localizable.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/en.lproj/InfoPlist.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/en.lproj/Localizable.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/es.lproj/InfoPlist.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/es.lproj/Localizable.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/fr.lproj/InfoPlist.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/fr.lproj/Localizable.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/it.lproj/InfoPlist.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/it.lproj/Localizable.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/ja.lproj/InfoPlist.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/ja.lproj/Localizable.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/ko.lproj/InfoPlist.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/ko.lproj/Localizable.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/nl.lproj/InfoPlist.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/nl.lproj/Localizable.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/pt-PT.lproj/InfoPlist.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/pt-PT.lproj/Localizable.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/ru.lproj/InfoPlist.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/ru.lproj/Localizable.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/zh-Hans.lproj/InfoPlist.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/zh-Hans.lproj/Localizable.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/zh-Hant.lproj/InfoPlist.strings Simoleon/Localization/en.xcloc/Source Contents/Simoleon/zh-Hant.lproj/Localizable.strings Simoleon/Localization/en.xcloc/contents.json Simoleon/Models/CurrencyConversion.swift Simoleon/Models/CurrencyModel.swift Simoleon/Models/CurrencyQuoteModel.swift Simoleon/Models/FavoritePair+CoreDataClass.swift Simoleon/Models/FavoritePair+CoreDataProperties.swift Simoleon/Persistence.swift Simoleon/Resources/Currencies.json Simoleon/Resources/CurrencyPairsSupported.json Simoleon/Resources/ja.lproj/CurrencyMetadata.json Simoleon/Resources/ko.lproj/CurrencyMetadata.json Simoleon/Resources/zh-Hans.lproj/CurrencyMetadata.json Simoleon/Resources/zh-Hant.lproj/CurrencyMetadata.json Simoleon/Simoleon.entitlements Simoleon/Simoleon.xcdatamodeld/Simoleon.xcdatamodel/contents Simoleon/SimoleonApp.swift Simoleon/Tests/ButtonAnimation.swift Simoleon/Tests/ChildListResets.swift Simoleon/UI/ConversionBox.swift Simoleon/UI/ConversionTextfield.swift Simoleon/UI/CurrencyButton.swift Simoleon/UI/CurrencyList.swift Simoleon/UI/CurrencyRow.swift Simoleon/UI/CurrencySelector.swift Simoleon/UI/FavoriteButton.swift Simoleon/UI/FavoritePairRow.swift Simoleon/UI/FavoritesPlaceholder.swift Simoleon/UI/Flag.swift Simoleon/UI/SearchBar.swift Simoleon/UI/Sidebar.swift SimoleonAppPreview/Info.plist SimoleonAppPreview/SimoleonAppPreview.swift SimoleonScreenshots/Info.plist SimoleonScreenshots/SimoleonScreenshots.swift SimoleonTests/Info.plist SimoleonTests/SimoleonTests.swift SimoleonUITests/Info.plist SimoleonUITests/SimoleonUITests.swift SimoleonUITests/SimoleonUITestsLaunchTests.swift fastlane/Appfile fastlane/Fastfile fastlane/README.md fastlane/Snapfile fastlane/metadata/copyright.txt fastlane/metadata/de-DE/description.txt fastlane/metadata/de-DE/keywords.txt fastlane/metadata/de-DE/marketing_url.txt fastlane/metadata/de-DE/name.txt fastlane/metadata/de-DE/privacy_url.txt fastlane/metadata/de-DE/release_notes.txt fastlane/metadata/de-DE/subtitle.txt fastlane/metadata/de-DE/support_url.txt fastlane/metadata/en-GB/description.txt fastlane/metadata/en-GB/keywords.txt fastlane/metadata/en-GB/marketing_url.txt fastlane/metadata/en-GB/name.txt fastlane/metadata/en-GB/privacy_url.txt fastlane/metadata/en-GB/release_notes.txt fastlane/metadata/en-GB/subtitle.txt fastlane/metadata/en-GB/support_url.txt fastlane/metadata/en-US/description.txt fastlane/metadata/en-US/keywords.txt fastlane/metadata/en-US/marketing_url.txt fastlane/metadata/en-US/name.txt fastlane/metadata/en-US/privacy_url.txt fastlane/metadata/en-US/release_notes.txt fastlane/metadata/en-US/subtitle.txt fastlane/metadata/en-US/support_url.txt fastlane/metadata/es-ES/description.txt fastlane/metadata/es-ES/keywords.txt fastlane/metadata/es-ES/marketing_url.txt fastlane/metadata/es-ES/name.txt fastlane/metadata/es-ES/privacy_url.txt fastlane/metadata/es-ES/release_notes.txt fastlane/metadata/es-ES/subtitle.txt fastlane/metadata/es-ES/support_url.txt fastlane/metadata/fr-FR/description.txt fastlane/metadata/fr-FR/keywords.txt fastlane/metadata/fr-FR/marketing_url.txt fastlane/metadata/fr-FR/name.txt fastlane/metadata/fr-FR/privacy_url.txt fastlane/metadata/fr-FR/release_notes.txt fastlane/metadata/fr-FR/subtitle.txt fastlane/metadata/fr-FR/support_url.txt fastlane/metadata/it/description.txt fastlane/metadata/it/keywords.txt fastlane/metadata/it/marketing_url.txt fastlane/metadata/it/name.txt fastlane/metadata/it/privacy_url.txt fastlane/metadata/it/release_notes.txt fastlane/metadata/it/subtitle.txt fastlane/metadata/it/support_url.txt fastlane/metadata/nl-NL/description.txt fastlane/metadata/nl-NL/keywords.txt fastlane/metadata/nl-NL/marketing_url.txt fastlane/metadata/nl-NL/name.txt fastlane/metadata/nl-NL/privacy_url.txt fastlane/metadata/nl-NL/release_notes.txt fastlane/metadata/nl-NL/subtitle.txt fastlane/metadata/nl-NL/support_url.txt fastlane/metadata/primary_category.txt fastlane/metadata/pt-PT/description.txt fastlane/metadata/pt-PT/keywords.txt fastlane/metadata/pt-PT/marketing_url.txt fastlane/metadata/pt-PT/name.txt fastlane/metadata/pt-PT/privacy_url.txt fastlane/metadata/pt-PT/release_notes.txt fastlane/metadata/pt-PT/subtitle.txt fastlane/metadata/pt-PT/support_url.txt fastlane/metadata/ru/description.txt fastlane/metadata/ru/keywords.txt fastlane/metadata/ru/marketing_url.txt fastlane/metadata/ru/name.txt fastlane/metadata/ru/privacy_url.txt fastlane/metadata/ru/release_notes.txt fastlane/metadata/ru/subtitle.txt fastlane/metadata/ru/support_url.txt fastlane/metadata/secondary_category.txt fastlane/review_information/email_address.txt fastlane/review_information/first_name.txt fastlane/review_information/last_name.txt fastlane/review_information/phone_number.txt |
diffstat | 564 files changed, 379 insertions(+), 13255 deletions(-) [+] |
line wrap: on
line diff
--- a/.github/ISSUE_TEMPLATE/bug_report.md Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here.
--- a/.github/ISSUE_TEMPLATE/feature_request.md Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: '' -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here.
--- a/.github/workflows/ios.yml Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -name: Build and test - -on: - pull_request: - branches: [ main ] - -jobs: - build: - name: Build and Test default scheme using any available iPhone simulator - runs-on: macos-latest - - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Build - env: - scheme: ${{ 'Simoleon' }} - platform: ${{ 'iOS Simulator' }} - run: | - # xcrun xctrace returns via stderr, not the expected stdout (see https://developer.apple.com/forums/thread/663959) - device=`xcrun xctrace list devices 2>&1 | grep -oE 'iPhone.*?[^\(]+' | head -1 | awk '{$1=$1;print}'` - if [ $scheme = default ]; then scheme=$(cat default); fi - if [ "`ls -A | grep -i \\.xcworkspace\$`" ]; then filetype_parameter="workspace" && file_to_build="`ls -A | grep -i \\.xcworkspace\$`"; else filetype_parameter="project" && file_to_build="`ls -A | grep -i \\.xcodeproj\$`"; fi - file_to_build=`echo $file_to_build | awk '{$1=$1;print}'` - xcodebuild build-for-testing -scheme "$scheme" -"$filetype_parameter" "$file_to_build" -destination "platform=$platform,name=$device" - - name: Test - env: - scheme: ${{ 'Simoleon' }} - platform: ${{ 'iOS Simulator' }} - run: | - # xcrun xctrace returns via stderr, not the expected stdout (see https://developer.apple.com/forums/thread/663959) - device=`xcrun xctrace list devices 2>&1 | grep -oE 'iPhone.*?[^\(]+' | head -1 | awk '{$1=$1;print}'` - if [ $scheme = default ]; then scheme=$(cat default); fi - if [ "`ls -A | grep -i \\.xcworkspace\$`" ]; then filetype_parameter="workspace" && file_to_build="`ls -A | grep -i \\.xcworkspace\$`"; else filetype_parameter="project" && file_to_build="`ls -A | grep -i \\.xcodeproj\$`"; fi - file_to_build=`echo $file_to_build | awk '{$1=$1;print}'` - xcodebuild test-without-building -scheme "$scheme" -"$filetype_parameter" "$file_to_build" -destination "platform=$platform,name=$device"
--- a/.gitignore Tue Oct 12 17:14:05 2021 +0200 +++ b/.gitignore Tue Oct 26 13:09:17 2021 +0200 @@ -1,8 +1,9 @@ -# Sensitive data +# Project structure Simoleon/Config.xcconfig -# Created by https://www.toptal.com/developers/gitignore/api/macos,xcode,swift,fastlane -# Edit at https://www.toptal.com/developers/gitignore?templates=macos,xcode,swift,fastlane + +# Created by https://www.toptal.com/developers/gitignore/api/macos,xcode,fastlane +# Edit at https://www.toptal.com/developers/gitignore?templates=macos,xcode,fastlane ### fastlane ### # fastlane - A streamlined workflow tool for Cocoa deployment @@ -57,7 +58,7 @@ Temporary Items .apdisk -### Swift ### +### Xcode ### # Xcode # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore @@ -81,68 +82,6 @@ *.perspectivev3 !default.perspectivev3 -## Obj-C/Swift specific -*.hmap - -## App packaging -*.ipa -*.dSYM.zip -*.dSYM - -## Playgrounds -timeline.xctimeline -playground.xcworkspace - -# Swift Package Manager -# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. -# Packages/ -# Package.pins -# Package.resolved -# *.xcodeproj -# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata -# hence it is not needed unless you have added a package configuration file to your project -# .swiftpm - -.build/ - -# CocoaPods -# We recommend against adding the Pods directory to your .gitignore. However -# you should judge for yourself, the pros and cons are mentioned at: -# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control -# Pods/ -# Add this line if you want to avoid checking in source code from the Xcode workspace -# *.xcworkspace - -# Carthage -# Add this line if you want to avoid checking in source code from Carthage dependencies. -# Carthage/Checkouts - -Carthage/Build/ - -# Accio dependency management -Dependencies/ -.accio/ - -# fastlane -# It is recommended to not store the screenshots in the git repo. -# Instead, use fastlane to re-generate the screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/#source-control - - -# Code Injection -# After new code Injection tools there's a generated folder /iOSInjectionProject -# https://github.com/johnno1962/injectionforxcode - -iOSInjectionProject/ - -### Xcode ### -# Xcode -# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore - - - - ## Gcc Patch /*.gcno @@ -153,4 +92,4 @@ !*.xcworkspace/contents.xcworkspacedata **/xcshareddata/WorkspaceSettings.xcsettings -# End of https://www.toptal.com/developers/gitignore/api/macos,xcode,swift,fastlane +# End of https://www.toptal.com/developers/gitignore/api/macos,xcode,fastlane
--- a/Gemfile Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -source "https://rubygems.org" - -gem "fastlane"
--- a/Gemfile.lock Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,211 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - CFPropertyList (3.0.3) - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) - artifactory (3.0.15) - atomos (0.1.3) - aws-eventstream (1.1.1) - aws-partitions (1.487.0) - aws-sdk-core (3.119.0) - aws-eventstream (~> 1, >= 1.0.2) - aws-partitions (~> 1, >= 1.239.0) - aws-sigv4 (~> 1.1) - jmespath (~> 1.0) - aws-sdk-kms (1.46.0) - aws-sdk-core (~> 3, >= 3.119.0) - aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.98.0) - aws-sdk-core (~> 3, >= 3.119.0) - aws-sdk-kms (~> 1) - aws-sigv4 (~> 1.1) - aws-sigv4 (1.2.4) - aws-eventstream (~> 1, >= 1.0.2) - babosa (1.0.4) - claide (1.0.3) - colored (1.2) - colored2 (3.1.2) - commander (4.6.0) - highline (~> 2.0.0) - declarative (0.0.20) - digest-crc (0.6.4) - rake (>= 12.0.0, < 14.0.0) - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) - dotenv (2.7.6) - emoji_regex (3.2.2) - excon (0.85.0) - faraday (1.7.0) - faraday-em_http (~> 1.0) - faraday-em_synchrony (~> 1.0) - faraday-excon (~> 1.1) - faraday-httpclient (~> 1.0.1) - faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.1) - faraday-patron (~> 1.0) - faraday-rack (~> 1.0) - multipart-post (>= 1.2, < 3) - ruby2_keywords (>= 0.0.4) - faraday-cookie_jar (0.0.7) - faraday (>= 0.8.0) - http-cookie (~> 1.0.0) - faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) - faraday-excon (1.1.0) - faraday-httpclient (1.0.1) - faraday-net_http (1.0.1) - faraday-net_http_persistent (1.2.0) - faraday-patron (1.0.0) - faraday-rack (1.0.0) - faraday_middleware (1.1.0) - faraday (~> 1.0) - fastimage (2.2.5) - fastlane (2.191.0) - CFPropertyList (>= 2.3, < 4.0.0) - addressable (>= 2.8, < 3.0.0) - artifactory (~> 3.0) - aws-sdk-s3 (~> 1.0) - babosa (>= 1.0.3, < 2.0.0) - bundler (>= 1.12.0, < 3.0.0) - colored - commander (~> 4.6) - dotenv (>= 2.1.1, < 3.0.0) - emoji_regex (>= 0.1, < 4.0) - excon (>= 0.71.0, < 1.0.0) - faraday (~> 1.0) - faraday-cookie_jar (~> 0.0.6) - faraday_middleware (~> 1.0) - fastimage (>= 2.1.0, < 3.0.0) - gh_inspector (>= 1.1.2, < 2.0.0) - google-apis-androidpublisher_v3 (~> 0.3) - google-apis-playcustomapp_v1 (~> 0.1) - google-cloud-storage (~> 1.31) - highline (~> 2.0) - json (< 3.0.0) - jwt (>= 2.1.0, < 3) - mini_magick (>= 4.9.4, < 5.0.0) - multipart-post (~> 2.0.0) - naturally (~> 2.2) - plist (>= 3.1.0, < 4.0.0) - rubyzip (>= 2.0.0, < 3.0.0) - security (= 0.1.3) - simctl (~> 1.6.3) - terminal-notifier (>= 2.0.0, < 3.0.0) - terminal-table (>= 1.4.5, < 2.0.0) - tty-screen (>= 0.6.3, < 1.0.0) - tty-spinner (>= 0.8.0, < 1.0.0) - word_wrap (~> 1.0.0) - xcodeproj (>= 1.13.0, < 2.0.0) - xcpretty (~> 0.3.0) - xcpretty-travis-formatter (>= 0.0.3) - gh_inspector (1.1.3) - google-apis-androidpublisher_v3 (0.10.0) - google-apis-core (>= 0.4, < 2.a) - google-apis-core (0.4.1) - addressable (~> 2.5, >= 2.5.1) - googleauth (>= 0.16.2, < 2.a) - httpclient (>= 2.8.1, < 3.a) - mini_mime (~> 1.0) - representable (~> 3.0) - retriable (>= 2.0, < 4.a) - rexml - webrick - google-apis-iamcredentials_v1 (0.6.0) - google-apis-core (>= 0.4, < 2.a) - google-apis-playcustomapp_v1 (0.5.0) - google-apis-core (>= 0.4, < 2.a) - google-apis-storage_v1 (0.6.0) - google-apis-core (>= 0.4, < 2.a) - google-cloud-core (1.6.0) - google-cloud-env (~> 1.0) - google-cloud-errors (~> 1.0) - google-cloud-env (1.5.0) - faraday (>= 0.17.3, < 2.0) - google-cloud-errors (1.1.0) - google-cloud-storage (1.34.1) - addressable (~> 2.5) - digest-crc (~> 0.4) - google-apis-iamcredentials_v1 (~> 0.1) - google-apis-storage_v1 (~> 0.1) - google-cloud-core (~> 1.6) - googleauth (>= 0.16.2, < 2.a) - mini_mime (~> 1.0) - googleauth (0.17.0) - faraday (>= 0.17.3, < 2.0) - jwt (>= 1.4, < 3.0) - memoist (~> 0.16) - multi_json (~> 1.11) - os (>= 0.9, < 2.0) - signet (~> 0.14) - highline (2.0.3) - http-cookie (1.0.4) - domain_name (~> 0.5) - httpclient (2.8.3) - jmespath (1.4.0) - json (2.5.1) - jwt (2.2.3) - memoist (0.16.2) - mini_magick (4.11.0) - mini_mime (1.1.0) - multi_json (1.15.0) - multipart-post (2.0.0) - nanaimo (0.3.0) - naturally (2.2.1) - os (1.1.1) - plist (3.6.0) - public_suffix (4.0.6) - rake (13.0.6) - representable (3.1.1) - declarative (< 0.1.0) - trailblazer-option (>= 0.1.1, < 0.2.0) - uber (< 0.2.0) - retriable (3.1.2) - rexml (3.2.5) - rouge (2.0.7) - ruby2_keywords (0.0.5) - rubyzip (2.3.2) - security (0.1.3) - signet (0.15.0) - addressable (~> 2.3) - faraday (>= 0.17.3, < 2.0) - jwt (>= 1.5, < 3.0) - multi_json (~> 1.10) - simctl (1.6.8) - CFPropertyList - naturally - terminal-notifier (2.0.0) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) - trailblazer-option (0.1.1) - tty-cursor (0.7.1) - tty-screen (0.8.1) - tty-spinner (0.9.3) - tty-cursor (~> 0.7) - uber (0.1.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.7.7) - unicode-display_width (1.7.0) - webrick (1.7.0) - word_wrap (1.0.0) - xcodeproj (1.21.0) - CFPropertyList (>= 2.3.3, < 4.0) - atomos (~> 0.1.3) - claide (>= 1.0.2, < 2.0) - colored2 (~> 3.1) - nanaimo (~> 0.3.0) - rexml (~> 3.2.4) - xcpretty (0.3.0) - rouge (~> 2.0.7) - xcpretty-travis-formatter (1.0.1) - xcpretty (~> 0.2, >= 0.0.7) - -PLATFORMS - universal-darwin-20 - -DEPENDENCIES - fastlane - -BUNDLED WITH - 2.2.25
--- a/README.md Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -# simoleon
--- a/Simoleon.xcodeproj/project.pbxproj Tue Oct 12 17:14:05 2021 +0200 +++ b/Simoleon.xcodeproj/project.pbxproj Tue Oct 26 13:09:17 2021 +0200 @@ -3,216 +3,70 @@ archiveVersion = 1; classes = { }; - objectVersion = 52; + objectVersion = 55; objects = { /* Begin PBXBuildFile section */ - 950093CA26CBC7A200FEBF67 /* SimoleonAppPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 950093C926CBC7A200FEBF67 /* SimoleonAppPreview.swift */; }; - 9501E13826D3A52000D14DE5 /* Currencies.json in Resources */ = {isa = PBXBuildFile; fileRef = 9501E13726D3A52000D14DE5 /* Currencies.json */; }; - 9501E13A26D3A55200D14DE5 /* CurrencyPairsSupported.json in Resources */ = {isa = PBXBuildFile; fileRef = 9501E13926D3A55200D14DE5 /* CurrencyPairsSupported.json */; }; - 9522BEAB26B5AACB0076B098 /* ListModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9522BEAA26B5AACB0076B098 /* ListModifier.swift */; }; - 9522CD9D26CED2E100DD9D03 /* ErrorHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9522CD9C26CED2E100DD9D03 /* ErrorHandling.swift */; }; - 9531D44226D8E4CF00665D2A /* SimoleonTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9531D44126D8E4CF00665D2A /* SimoleonTests.swift */; }; - 953B8B1726D3A970003CF530 /* CurrencyModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 953B8B1626D3A970003CF530 /* CurrencyModel.swift */; }; - 9547423526DBE56600415B3F /* ConversionTextfield.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9547423426DBE56600415B3F /* ConversionTextfield.swift */; }; - 954D95CE26E4F16D005BE568 /* FavoritePairRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954D95CD26E4F16D005BE568 /* FavoritePairRow.swift */; }; - 954D95D026E4FE28005BE568 /* FavoritesPlaceholder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954D95CF26E4FE28005BE568 /* FavoritesPlaceholder.swift */; }; - 957065E226A5FE0400523E68 /* AboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 957065E126A5FE0400523E68 /* AboutView.swift */; }; - 957DCF3326D7ADEA00BCAB1E /* CurrencyConversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 957DCF3226D7ADEA00BCAB1E /* CurrencyConversion.swift */; }; - 95851CE326D4DAAE004ADA79 /* CurrencyButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95851CE226D4DAAE004ADA79 /* CurrencyButton.swift */; }; - 95851CE526D4DB4C004ADA79 /* Flag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95851CE426D4DB4C004ADA79 /* Flag.swift */; }; - 9585BB1426A6B7F400E3193E /* NetworkHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9585BB1326A6B7F400E3193E /* NetworkHelper.swift */; }; - 9585BB1A26A6E8FD00E3193E /* HapticsHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9585BB1926A6E8FD00E3193E /* HapticsHelper.swift */; }; - 95909CB326B07BFC00D051AB /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95909CB226B07BFC00D051AB /* SearchBar.swift */; }; - 959F6DEB26BBD53500101E53 /* SimoleonScreenshots.swift in Sources */ = {isa = PBXBuildFile; fileRef = 959F6DEA26BBD53500101E53 /* SimoleonScreenshots.swift */; }; - 95AA42ED26D78A4A0085570D /* FileHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95AA42EC26D78A4A0085570D /* FileHelper.swift */; }; - 95AC820726DAA3ED00CD5C3F /* FavoritePair+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95AC820526DAA3ED00CD5C3F /* FavoritePair+CoreDataClass.swift */; }; - 95AC820826DAA3ED00CD5C3F /* FavoritePair+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95AC820626DAA3ED00CD5C3F /* FavoritePair+CoreDataProperties.swift */; }; - 95AC820A26DAAC6B00CD5C3F /* ButtonAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95AC820926DAAC6B00CD5C3F /* ButtonAnimation.swift */; }; - 95AEBC9526A03ECB00613729 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95AEBC9426A03ECB00613729 /* ContentView.swift */; }; - 95AEBC9D26A04D4600613729 /* CurrencyRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95AEBC9C26A04D4600613729 /* CurrencyRow.swift */; }; - 95AEBCA326A0900E00613729 /* CurrencyQuoteModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95AEBCA226A0900E00613729 /* CurrencyQuoteModel.swift */; }; - 95B54F4426A4842C001DC0D8 /* ConversionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95B54F4326A4842C001DC0D8 /* ConversionView.swift */; }; - 95B54F4A26A4A450001DC0D8 /* ConversionBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95B54F4926A4A450001DC0D8 /* ConversionBox.swift */; }; - 95B54F5126A4ACAC001DC0D8 /* Sidebar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95B54F5026A4ACAC001DC0D8 /* Sidebar.swift */; }; - 95B5F53126AADE4B00BDCE89 /* en.xliff in Resources */ = {isa = PBXBuildFile; fileRef = 95B5F52826AADE4B00BDCE89 /* en.xliff */; }; - 95B5F53226AADE4B00BDCE89 /* contents.json in Resources */ = {isa = PBXBuildFile; fileRef = 95B5F52A26AADE4B00BDCE89 /* contents.json */; }; - 95B5F53326AADE4B00BDCE89 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 95B5F52D26AADE4B00BDCE89 /* Localizable.strings */; }; - 95B5F53426AADE4B00BDCE89 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 95B5F52F26AADE4B00BDCE89 /* InfoPlist.strings */; }; - 95C1DD6A26D8DF9400315C3F /* CurrencySelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C1DD6926D8DF9400315C3F /* CurrencySelector.swift */; }; - 95C5179126A5DC8E00BC2B24 /* ConditionalWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C5179026A5DC8E00BC2B24 /* ConditionalWrapper.swift */; }; - 95C5179926A5EC9F00BC2B24 /* FavoriteButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C5179826A5EC9F00BC2B24 /* FavoriteButton.swift */; }; - 95C5179F26A5F34200BC2B24 /* FavoritesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C5179E26A5F34200BC2B24 /* FavoritesView.swift */; }; - 95C517A126A5F6C000BC2B24 /* ResignKeyboard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C517A026A5F6C000BC2B24 /* ResignKeyboard.swift */; }; - 95C5B2282697752600941585 /* SimoleonApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C5B2272697752600941585 /* SimoleonApp.swift */; }; - 95C5B22C2697752700941585 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 95C5B22B2697752700941585 /* Assets.xcassets */; }; - 95C5B22F2697752700941585 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 95C5B22E2697752700941585 /* Preview Assets.xcassets */; }; - 95C5B2312697752700941585 /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C5B2302697752700941585 /* Persistence.swift */; }; - 95C5B2342697752700941585 /* Simoleon.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 95C5B2322697752700941585 /* Simoleon.xcdatamodeld */; }; - 95C5B24A2697752700941585 /* SimoleonUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C5B2492697752700941585 /* SimoleonUITests.swift */; }; - 95CE6A3626D50B7700D9DCBD /* CurrencyList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95CE6A3526D50B7700D9DCBD /* CurrencyList.swift */; }; - 95DA4B5626D7D10100566C5E /* SnapshotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 956088B526B9307600A4FD6C /* SnapshotHelper.swift */; }; - 95DA4B5926D7E2DE00566C5E /* ChildListResets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95DA4B5826D7E2DE00566C5E /* ChildListResets.swift */; }; - 95E76436269DFC1A008E9F31 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 95E76435269DFC1A008E9F31 /* LaunchScreen.storyboard */; }; - 95E7643A269E0037008E9F31 /* CloudKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95E76439269E0037008E9F31 /* CloudKit.framework */; }; + 95DC5D502728176700B1EFA0 /* SimoleonApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95DC5D4F2728176700B1EFA0 /* SimoleonApp.swift */; }; + 95DC5D522728176700B1EFA0 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95DC5D512728176700B1EFA0 /* ContentView.swift */; }; + 95DC5D542728176800B1EFA0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 95DC5D532728176800B1EFA0 /* Assets.xcassets */; }; + 95DC5D572728176800B1EFA0 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 95DC5D562728176800B1EFA0 /* Preview Assets.xcassets */; }; + 95DC5D592728176800B1EFA0 /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95DC5D582728176800B1EFA0 /* Persistence.swift */; }; + 95DC5D5C2728176800B1EFA0 /* Simoleon.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 95DC5D5A2728176800B1EFA0 /* Simoleon.xcdatamodeld */; }; + 95DC5D662728176900B1EFA0 /* SimoleonTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95DC5D652728176900B1EFA0 /* SimoleonTests.swift */; }; + 95DC5D702728176900B1EFA0 /* SimoleonUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95DC5D6F2728176900B1EFA0 /* SimoleonUITests.swift */; }; + 95DC5D722728176900B1EFA0 /* SimoleonUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95DC5D712728176900B1EFA0 /* SimoleonUITestsLaunchTests.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 950093CC26CBC7A200FEBF67 /* PBXContainerItemProxy */ = { + 95DC5D622728176900B1EFA0 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 95C5B21C2697752600941585 /* Project object */; + containerPortal = 95DC5D442728176700B1EFA0 /* Project object */; proxyType = 1; - remoteGlobalIDString = 95C5B2232697752600941585; + remoteGlobalIDString = 95DC5D4B2728176700B1EFA0; remoteInfo = Simoleon; }; - 9531D44426D8E4CF00665D2A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 95C5B21C2697752600941585 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 95C5B2232697752600941585; - remoteInfo = Simoleon; - }; - 959F6DED26BBD53500101E53 /* PBXContainerItemProxy */ = { + 95DC5D6C2728176900B1EFA0 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 95C5B21C2697752600941585 /* Project object */; + containerPortal = 95DC5D442728176700B1EFA0 /* Project object */; proxyType = 1; - remoteGlobalIDString = 95C5B2232697752600941585; - remoteInfo = Simoleon; - }; - 95C5B2462697752700941585 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 95C5B21C2697752600941585 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 95C5B2232697752600941585; + remoteGlobalIDString = 95DC5D4B2728176700B1EFA0; remoteInfo = Simoleon; }; /* End PBXContainerItemProxy section */ -/* Begin PBXCopyFilesBuildPhase section */ - 95CEFB8826B0034C003CD2AE /* Embed Watch Content */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "$(CONTENTS_FOLDER_PATH)/Watch"; - dstSubfolderSpec = 16; - files = ( - ); - name = "Embed Watch Content"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - /* Begin PBXFileReference section */ - 950093C726CBC7A200FEBF67 /* SimoleonAppPreview.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SimoleonAppPreview.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 950093C926CBC7A200FEBF67 /* SimoleonAppPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimoleonAppPreview.swift; sourceTree = "<group>"; }; - 950093CB26CBC7A200FEBF67 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; - 9501E13726D3A52000D14DE5 /* Currencies.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = Currencies.json; sourceTree = "<group>"; }; - 9501E13926D3A55200D14DE5 /* CurrencyPairsSupported.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = CurrencyPairsSupported.json; sourceTree = "<group>"; }; - 9522BEAA26B5AACB0076B098 /* ListModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListModifier.swift; sourceTree = "<group>"; }; - 9522CD9C26CED2E100DD9D03 /* ErrorHandling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorHandling.swift; sourceTree = "<group>"; }; - 9531D43F26D8E4CF00665D2A /* SimoleonTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SimoleonTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 9531D44126D8E4CF00665D2A /* SimoleonTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimoleonTests.swift; sourceTree = "<group>"; }; - 9531D44326D8E4CF00665D2A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; - 953B8B1626D3A970003CF530 /* CurrencyModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrencyModel.swift; sourceTree = "<group>"; }; - 9547423426DBE56600415B3F /* ConversionTextfield.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConversionTextfield.swift; sourceTree = "<group>"; }; - 954D95CD26E4F16D005BE568 /* FavoritePairRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoritePairRow.swift; sourceTree = "<group>"; }; - 954D95CF26E4FE28005BE568 /* FavoritesPlaceholder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoritesPlaceholder.swift; sourceTree = "<group>"; }; - 95562D4C26A8962A0047E778 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; }; - 956088B526B9307600A4FD6C /* SnapshotHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SnapshotHelper.swift; sourceTree = "<group>"; }; - 957065E126A5FE0400523E68 /* AboutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutView.swift; sourceTree = "<group>"; }; - 957DCF3226D7ADEA00BCAB1E /* CurrencyConversion.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrencyConversion.swift; sourceTree = "<group>"; }; - 95851CE226D4DAAE004ADA79 /* CurrencyButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrencyButton.swift; sourceTree = "<group>"; }; - 95851CE426D4DB4C004ADA79 /* Flag.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Flag.swift; sourceTree = "<group>"; }; - 9585BB0F26A6B58500E3193E /* Config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = "<group>"; }; - 9585BB1326A6B7F400E3193E /* NetworkHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkHelper.swift; sourceTree = "<group>"; }; - 9585BB1926A6E8FD00E3193E /* HapticsHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HapticsHelper.swift; sourceTree = "<group>"; }; - 9587597726B2A59D004086F0 /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-GB"; path = "en-GB.lproj/Localizable.strings"; sourceTree = "<group>"; }; - 9587597826B2A59D004086F0 /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-GB"; path = "en-GB.lproj/InfoPlist.strings"; sourceTree = "<group>"; }; - 9587597926B2A5B6004086F0 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; }; - 9587597A26B2A5B6004086F0 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = "<group>"; }; - 9587597B26B2A5BF004086F0 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = "<group>"; }; - 9587597C26B2A5BF004086F0 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = "<group>"; }; - 9587597D26B2A5D6004086F0 /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/Localizable.strings"; sourceTree = "<group>"; }; - 9587597E26B2A5D6004086F0 /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/InfoPlist.strings"; sourceTree = "<group>"; }; - 9587597F26B2A5E1004086F0 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = "<group>"; }; - 9587598026B2A5E2004086F0 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = "<group>"; }; - 9587598126B2A5EB004086F0 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = "<group>"; }; - 9587598226B2A5EB004086F0 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = "<group>"; }; - 9587598726B2A60C004086F0 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = "<group>"; }; - 9587598826B2A60C004086F0 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = "<group>"; }; - 95909CB226B07BFC00D051AB /* SearchBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBar.swift; sourceTree = "<group>"; }; - 959F6DE826BBD53500101E53 /* SimoleonScreenshots.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SimoleonScreenshots.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 959F6DEA26BBD53500101E53 /* SimoleonScreenshots.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimoleonScreenshots.swift; sourceTree = "<group>"; }; - 959F6DEC26BBD53500101E53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; - 95A70BE926B0550000CC0273 /* CloudKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CloudKit.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS7.4.sdk/System/Library/Frameworks/CloudKit.framework; sourceTree = DEVELOPER_DIR; }; - 95AA42EC26D78A4A0085570D /* FileHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileHelper.swift; sourceTree = "<group>"; }; - 95AC820526DAA3ED00CD5C3F /* FavoritePair+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FavoritePair+CoreDataClass.swift"; sourceTree = "<group>"; }; - 95AC820626DAA3ED00CD5C3F /* FavoritePair+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FavoritePair+CoreDataProperties.swift"; sourceTree = "<group>"; }; - 95AC820926DAAC6B00CD5C3F /* ButtonAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonAnimation.swift; sourceTree = "<group>"; }; - 95AEBC9426A03ECB00613729 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; }; - 95AEBC9C26A04D4600613729 /* CurrencyRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrencyRow.swift; sourceTree = "<group>"; }; - 95AEBCA226A0900E00613729 /* CurrencyQuoteModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrencyQuoteModel.swift; sourceTree = "<group>"; }; - 95B54F4326A4842C001DC0D8 /* ConversionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConversionView.swift; sourceTree = "<group>"; }; - 95B54F4926A4A450001DC0D8 /* ConversionBox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConversionBox.swift; sourceTree = "<group>"; }; - 95B54F5026A4ACAC001DC0D8 /* Sidebar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sidebar.swift; sourceTree = "<group>"; }; - 95B5F52826AADE4B00BDCE89 /* en.xliff */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = en.xliff; sourceTree = "<group>"; }; - 95B5F52A26AADE4B00BDCE89 /* contents.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = contents.json; sourceTree = "<group>"; }; - 95B5F52E26AADE4B00BDCE89 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; }; - 95B5F53026AADE4B00BDCE89 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; }; - 95B5F53526AADE5200BDCE89 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = "<group>"; }; - 95B5F53626AADE5500BDCE89 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; }; - 95C1DD6926D8DF9400315C3F /* CurrencySelector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrencySelector.swift; sourceTree = "<group>"; }; - 95C5179026A5DC8E00BC2B24 /* ConditionalWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConditionalWrapper.swift; sourceTree = "<group>"; }; - 95C5179826A5EC9F00BC2B24 /* FavoriteButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoriteButton.swift; sourceTree = "<group>"; }; - 95C5179E26A5F34200BC2B24 /* FavoritesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoritesView.swift; sourceTree = "<group>"; }; - 95C517A026A5F6C000BC2B24 /* ResignKeyboard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResignKeyboard.swift; sourceTree = "<group>"; }; - 95C5B2242697752600941585 /* Simoleon.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Simoleon.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 95C5B2272697752600941585 /* SimoleonApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimoleonApp.swift; sourceTree = "<group>"; }; - 95C5B22B2697752700941585 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; - 95C5B22E2697752700941585 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; }; - 95C5B2302697752700941585 /* Persistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = "<group>"; }; - 95C5B2332697752700941585 /* Simoleon.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Simoleon.xcdatamodel; sourceTree = "<group>"; }; - 95C5B2352697752700941585 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; - 95C5B2452697752700941585 /* SimoleonUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SimoleonUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 95C5B2492697752700941585 /* SimoleonUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimoleonUITests.swift; sourceTree = "<group>"; }; - 95C5B24B2697752700941585 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; - 95CE6A3526D50B7700D9DCBD /* CurrencyList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrencyList.swift; sourceTree = "<group>"; }; - 95DA4B5826D7E2DE00566C5E /* ChildListResets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChildListResets.swift; sourceTree = "<group>"; }; - 95E76435269DFC1A008E9F31 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; }; - 95E76437269E0033008E9F31 /* Simoleon.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Simoleon.entitlements; sourceTree = "<group>"; }; - 95E76439269E0037008E9F31 /* CloudKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CloudKit.framework; path = System/Library/Frameworks/CloudKit.framework; sourceTree = SDKROOT; }; + 95DC5D4C2728176700B1EFA0 /* Simoleon.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Simoleon.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 95DC5D4F2728176700B1EFA0 /* SimoleonApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimoleonApp.swift; sourceTree = "<group>"; }; + 95DC5D512728176700B1EFA0 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; }; + 95DC5D532728176800B1EFA0 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; + 95DC5D562728176800B1EFA0 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; }; + 95DC5D582728176800B1EFA0 /* Persistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = "<group>"; }; + 95DC5D5B2728176800B1EFA0 /* Simoleon.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Simoleon.xcdatamodel; sourceTree = "<group>"; }; + 95DC5D612728176900B1EFA0 /* SimoleonTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SimoleonTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 95DC5D652728176900B1EFA0 /* SimoleonTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimoleonTests.swift; sourceTree = "<group>"; }; + 95DC5D6B2728176900B1EFA0 /* SimoleonUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SimoleonUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 95DC5D6F2728176900B1EFA0 /* SimoleonUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimoleonUITests.swift; sourceTree = "<group>"; }; + 95DC5D712728176900B1EFA0 /* SimoleonUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimoleonUITestsLaunchTests.swift; sourceTree = "<group>"; }; + 95DC5D7E272817DE00B1EFA0 /* Config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = "<group>"; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 950093C426CBC7A200FEBF67 /* Frameworks */ = { + 95DC5D492728176700B1EFA0 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 9531D43C26D8E4CF00665D2A /* Frameworks */ = { + 95DC5D5E2728176900B1EFA0 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 959F6DE526BBD53500101E53 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 95C5B2212697752600941585 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 95E7643A269E0037008E9F31 /* CloudKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 95C5B2422697752700941585 /* Frameworks */ = { + 95DC5D682728176900B1EFA0 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -222,415 +76,182 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 950093C826CBC7A200FEBF67 /* SimoleonAppPreview */ = { + 95DC5D432728176700B1EFA0 = { isa = PBXGroup; children = ( - 950093C926CBC7A200FEBF67 /* SimoleonAppPreview.swift */, - 950093CB26CBC7A200FEBF67 /* Info.plist */, + 95DC5D4E2728176700B1EFA0 /* Simoleon */, + 95DC5D642728176900B1EFA0 /* SimoleonTests */, + 95DC5D6E2728176900B1EFA0 /* SimoleonUITests */, + 95DC5D4D2728176700B1EFA0 /* Products */, ); - path = SimoleonAppPreview; - sourceTree = "<group>"; - }; - 9531D44026D8E4CF00665D2A /* SimoleonTests */ = { - isa = PBXGroup; - children = ( - 9531D44126D8E4CF00665D2A /* SimoleonTests.swift */, - 9531D44326D8E4CF00665D2A /* Info.plist */, - ); - path = SimoleonTests; sourceTree = "<group>"; }; - 95559331269B094A000FD726 /* Models */ = { - isa = PBXGroup; - children = ( - 95AC820526DAA3ED00CD5C3F /* FavoritePair+CoreDataClass.swift */, - 95AC820626DAA3ED00CD5C3F /* FavoritePair+CoreDataProperties.swift */, - 95AEBCA226A0900E00613729 /* CurrencyQuoteModel.swift */, - 953B8B1626D3A970003CF530 /* CurrencyModel.swift */, - 957DCF3226D7ADEA00BCAB1E /* CurrencyConversion.swift */, - ); - path = Models; - sourceTree = "<group>"; - }; - 9555933B269B0DF9000FD726 /* Resources */ = { - isa = PBXGroup; - children = ( - 9501E13726D3A52000D14DE5 /* Currencies.json */, - 9501E13926D3A55200D14DE5 /* CurrencyPairsSupported.json */, - ); - path = Resources; - sourceTree = "<group>"; - }; - 959F6DE926BBD53500101E53 /* SimoleonScreenshots */ = { + 95DC5D4D2728176700B1EFA0 /* Products */ = { isa = PBXGroup; children = ( - 959F6DEA26BBD53500101E53 /* SimoleonScreenshots.swift */, - 959F6DEC26BBD53500101E53 /* Info.plist */, + 95DC5D4C2728176700B1EFA0 /* Simoleon.app */, + 95DC5D612728176900B1EFA0 /* SimoleonTests.xctest */, + 95DC5D6B2728176900B1EFA0 /* SimoleonUITests.xctest */, ); - path = SimoleonScreenshots; + name = Products; sourceTree = "<group>"; }; - 95B5F52526AADE4B00BDCE89 /* Localization */ = { - isa = PBXGroup; - children = ( - 95B5F52626AADE4B00BDCE89 /* en.xcloc */, - ); - path = Localization; - sourceTree = "<group>"; - }; - 95B5F52626AADE4B00BDCE89 /* en.xcloc */ = { + 95DC5D4E2728176700B1EFA0 /* Simoleon */ = { isa = PBXGroup; children = ( - 95B5F52726AADE4B00BDCE89 /* Localized Contents */, - 95B5F52A26AADE4B00BDCE89 /* contents.json */, - 95B5F52B26AADE4B00BDCE89 /* Source Contents */, - ); - path = en.xcloc; - sourceTree = "<group>"; - }; - 95B5F52726AADE4B00BDCE89 /* Localized Contents */ = { - isa = PBXGroup; - children = ( - 95B5F52826AADE4B00BDCE89 /* en.xliff */, - ); - path = "Localized Contents"; - sourceTree = "<group>"; - }; - 95B5F52B26AADE4B00BDCE89 /* Source Contents */ = { - isa = PBXGroup; - children = ( - 95B5F52C26AADE4B00BDCE89 /* Simoleon */, - ); - path = "Source Contents"; - sourceTree = "<group>"; - }; - 95B5F52C26AADE4B00BDCE89 /* Simoleon */ = { - isa = PBXGroup; - children = ( - 95B5F52D26AADE4B00BDCE89 /* Localizable.strings */, - 95B5F52F26AADE4B00BDCE89 /* InfoPlist.strings */, + 95DC5D532728176800B1EFA0 /* Assets.xcassets */, + 95DC5D7E272817DE00B1EFA0 /* Config.xcconfig */, + 95DC5D5A2728176800B1EFA0 /* Simoleon.xcdatamodeld */, + 95DC5D4F2728176700B1EFA0 /* SimoleonApp.swift */, + 95DC5D512728176700B1EFA0 /* ContentView.swift */, + 95DC5D582728176800B1EFA0 /* Persistence.swift */, + 95DC5D552728176800B1EFA0 /* Preview Content */, ); path = Simoleon; sourceTree = "<group>"; }; - 95C5B21B2697752600941585 = { - isa = PBXGroup; - children = ( - 95C5B2262697752600941585 /* Simoleon */, - 9531D44026D8E4CF00665D2A /* SimoleonTests */, - 95C5B2482697752700941585 /* SimoleonUITests */, - 959F6DE926BBD53500101E53 /* SimoleonScreenshots */, - 950093C826CBC7A200FEBF67 /* SimoleonAppPreview */, - 95C5B2252697752600941585 /* Products */, - 95E76438269E0037008E9F31 /* Frameworks */, - ); - sourceTree = "<group>"; - }; - 95C5B2252697752600941585 /* Products */ = { + 95DC5D552728176800B1EFA0 /* Preview Content */ = { isa = PBXGroup; children = ( - 95C5B2242697752600941585 /* Simoleon.app */, - 95C5B2452697752700941585 /* SimoleonUITests.xctest */, - 959F6DE826BBD53500101E53 /* SimoleonScreenshots.xctest */, - 950093C726CBC7A200FEBF67 /* SimoleonAppPreview.xctest */, - 9531D43F26D8E4CF00665D2A /* SimoleonTests.xctest */, - ); - name = Products; - sourceTree = "<group>"; - }; - 95C5B2262697752600941585 /* Simoleon */ = { - isa = PBXGroup; - children = ( - 95E76437269E0033008E9F31 /* Simoleon.entitlements */, - 9585BB0F26A6B58500E3193E /* Config.xcconfig */, - 95C5B22B2697752700941585 /* Assets.xcassets */, - 95C5B2352697752700941585 /* Info.plist */, - 95C5B2322697752700941585 /* Simoleon.xcdatamodeld */, - 95E76435269DFC1A008E9F31 /* LaunchScreen.storyboard */, - 95C5B2272697752600941585 /* SimoleonApp.swift */, - 95AEBC9426A03ECB00613729 /* ContentView.swift */, - 95B54F4326A4842C001DC0D8 /* ConversionView.swift */, - 95C5179E26A5F34200BC2B24 /* FavoritesView.swift */, - 957065E126A5FE0400523E68 /* AboutView.swift */, - 95DA4B5226D7D09A00566C5E /* UI */, - 95FE659A269AFB44008745DE /* Helpers */, - 95559331269B094A000FD726 /* Models */, - 9555933B269B0DF9000FD726 /* Resources */, - 95B5F52526AADE4B00BDCE89 /* Localization */, - 95C5B22D2697752700941585 /* Preview Content */, - 95DA4B5726D7E2B400566C5E /* Tests */, - ); - path = Simoleon; - sourceTree = "<group>"; - }; - 95C5B22D2697752700941585 /* Preview Content */ = { - isa = PBXGroup; - children = ( - 95C5B22E2697752700941585 /* Preview Assets.xcassets */, + 95DC5D562728176800B1EFA0 /* Preview Assets.xcassets */, ); path = "Preview Content"; sourceTree = "<group>"; }; - 95C5B2482697752700941585 /* SimoleonUITests */ = { - isa = PBXGroup; - children = ( - 95C5B2492697752700941585 /* SimoleonUITests.swift */, - 95C5B24B2697752700941585 /* Info.plist */, - ); - path = SimoleonUITests; - sourceTree = "<group>"; - }; - 95DA4B5226D7D09A00566C5E /* UI */ = { - isa = PBXGroup; - children = ( - 95C1DD6926D8DF9400315C3F /* CurrencySelector.swift */, - 95851CE226D4DAAE004ADA79 /* CurrencyButton.swift */, - 95CE6A3526D50B7700D9DCBD /* CurrencyList.swift */, - 95C5179826A5EC9F00BC2B24 /* FavoriteButton.swift */, - 95B54F4926A4A450001DC0D8 /* ConversionBox.swift */, - 9547423426DBE56600415B3F /* ConversionTextfield.swift */, - 95AEBC9C26A04D4600613729 /* CurrencyRow.swift */, - 95851CE426D4DB4C004ADA79 /* Flag.swift */, - 95B54F5026A4ACAC001DC0D8 /* Sidebar.swift */, - 95909CB226B07BFC00D051AB /* SearchBar.swift */, - 954D95CD26E4F16D005BE568 /* FavoritePairRow.swift */, - 954D95CF26E4FE28005BE568 /* FavoritesPlaceholder.swift */, - ); - path = UI; - sourceTree = "<group>"; - }; - 95DA4B5726D7E2B400566C5E /* Tests */ = { + 95DC5D642728176900B1EFA0 /* SimoleonTests */ = { isa = PBXGroup; children = ( - 95DA4B5826D7E2DE00566C5E /* ChildListResets.swift */, - 95AC820926DAAC6B00CD5C3F /* ButtonAnimation.swift */, + 95DC5D652728176900B1EFA0 /* SimoleonTests.swift */, ); - path = Tests; + path = SimoleonTests; sourceTree = "<group>"; }; - 95E76438269E0037008E9F31 /* Frameworks */ = { + 95DC5D6E2728176900B1EFA0 /* SimoleonUITests */ = { isa = PBXGroup; children = ( - 95A70BE926B0550000CC0273 /* CloudKit.framework */, - 95562D4C26A8962A0047E778 /* StoreKit.framework */, - 95E76439269E0037008E9F31 /* CloudKit.framework */, + 95DC5D6F2728176900B1EFA0 /* SimoleonUITests.swift */, + 95DC5D712728176900B1EFA0 /* SimoleonUITestsLaunchTests.swift */, ); - name = Frameworks; - sourceTree = "<group>"; - }; - 95FE659A269AFB44008745DE /* Helpers */ = { - isa = PBXGroup; - children = ( - 95C5B2302697752700941585 /* Persistence.swift */, - 9522CD9C26CED2E100DD9D03 /* ErrorHandling.swift */, - 9585BB1326A6B7F400E3193E /* NetworkHelper.swift */, - 9585BB1926A6E8FD00E3193E /* HapticsHelper.swift */, - 95AA42EC26D78A4A0085570D /* FileHelper.swift */, - 956088B526B9307600A4FD6C /* SnapshotHelper.swift */, - 95C5179026A5DC8E00BC2B24 /* ConditionalWrapper.swift */, - 9522BEAA26B5AACB0076B098 /* ListModifier.swift */, - 95C517A026A5F6C000BC2B24 /* ResignKeyboard.swift */, - ); - path = Helpers; + path = SimoleonUITests; sourceTree = "<group>"; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 950093C626CBC7A200FEBF67 /* SimoleonAppPreview */ = { + 95DC5D4B2728176700B1EFA0 /* Simoleon */ = { isa = PBXNativeTarget; - buildConfigurationList = 950093D126CBC7A200FEBF67 /* Build configuration list for PBXNativeTarget "SimoleonAppPreview" */; - buildPhases = ( - 950093C326CBC7A200FEBF67 /* Sources */, - 950093C426CBC7A200FEBF67 /* Frameworks */, - 950093C526CBC7A200FEBF67 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 950093CD26CBC7A200FEBF67 /* PBXTargetDependency */, - ); - name = SimoleonAppPreview; - productName = SimoleonAppPreview; - productReference = 950093C726CBC7A200FEBF67 /* SimoleonAppPreview.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; - 9531D43E26D8E4CF00665D2A /* SimoleonTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 9531D44626D8E4CF00665D2A /* Build configuration list for PBXNativeTarget "SimoleonTests" */; + buildConfigurationList = 95DC5D752728176900B1EFA0 /* Build configuration list for PBXNativeTarget "Simoleon" */; buildPhases = ( - 9531D43B26D8E4CF00665D2A /* Sources */, - 9531D43C26D8E4CF00665D2A /* Frameworks */, - 9531D43D26D8E4CF00665D2A /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 9531D44526D8E4CF00665D2A /* PBXTargetDependency */, - ); - name = SimoleonTests; - productName = SimoleonTests; - productReference = 9531D43F26D8E4CF00665D2A /* SimoleonTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 959F6DE726BBD53500101E53 /* SimoleonScreenshots */ = { - isa = PBXNativeTarget; - buildConfigurationList = 959F6DF126BBD53500101E53 /* Build configuration list for PBXNativeTarget "SimoleonScreenshots" */; - buildPhases = ( - 959F6DE426BBD53500101E53 /* Sources */, - 959F6DE526BBD53500101E53 /* Frameworks */, - 959F6DE626BBD53500101E53 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 959F6DEE26BBD53500101E53 /* PBXTargetDependency */, - ); - name = SimoleonScreenshots; - productName = SimoleonScreenshots; - productReference = 959F6DE826BBD53500101E53 /* SimoleonScreenshots.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; - 95C5B2232697752600941585 /* Simoleon */ = { - isa = PBXNativeTarget; - buildConfigurationList = 95C5B24E2697752700941585 /* Build configuration list for PBXNativeTarget "Simoleon" */; - buildPhases = ( - 95C5B2202697752600941585 /* Sources */, - 95C5B2212697752600941585 /* Frameworks */, - 95C5B2222697752600941585 /* Resources */, - 95CEFB8826B0034C003CD2AE /* Embed Watch Content */, + 95DC5D482728176700B1EFA0 /* Sources */, + 95DC5D492728176700B1EFA0 /* Frameworks */, + 95DC5D4A2728176700B1EFA0 /* Resources */, ); buildRules = ( ); dependencies = ( ); name = Simoleon; - packageProductDependencies = ( - ); productName = Simoleon; - productReference = 95C5B2242697752600941585 /* Simoleon.app */; + productReference = 95DC5D4C2728176700B1EFA0 /* Simoleon.app */; productType = "com.apple.product-type.application"; }; - 95C5B2442697752700941585 /* SimoleonUITests */ = { + 95DC5D602728176900B1EFA0 /* SimoleonTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 95C5B2542697752700941585 /* Build configuration list for PBXNativeTarget "SimoleonUITests" */; + buildConfigurationList = 95DC5D782728176900B1EFA0 /* Build configuration list for PBXNativeTarget "SimoleonTests" */; buildPhases = ( - 95C5B2412697752700941585 /* Sources */, - 95C5B2422697752700941585 /* Frameworks */, - 95C5B2432697752700941585 /* Resources */, + 95DC5D5D2728176900B1EFA0 /* Sources */, + 95DC5D5E2728176900B1EFA0 /* Frameworks */, + 95DC5D5F2728176900B1EFA0 /* Resources */, ); buildRules = ( ); dependencies = ( - 95C5B2472697752700941585 /* PBXTargetDependency */, + 95DC5D632728176900B1EFA0 /* PBXTargetDependency */, + ); + name = SimoleonTests; + productName = SimoleonTests; + productReference = 95DC5D612728176900B1EFA0 /* SimoleonTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 95DC5D6A2728176900B1EFA0 /* SimoleonUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 95DC5D7B2728176900B1EFA0 /* Build configuration list for PBXNativeTarget "SimoleonUITests" */; + buildPhases = ( + 95DC5D672728176900B1EFA0 /* Sources */, + 95DC5D682728176900B1EFA0 /* Frameworks */, + 95DC5D692728176900B1EFA0 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 95DC5D6D2728176900B1EFA0 /* PBXTargetDependency */, ); name = SimoleonUITests; productName = SimoleonUITests; - productReference = 95C5B2452697752700941585 /* SimoleonUITests.xctest */; + productReference = 95DC5D6B2728176900B1EFA0 /* SimoleonUITests.xctest */; productType = "com.apple.product-type.bundle.ui-testing"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 95C5B21C2697752600941585 /* Project object */ = { + 95DC5D442728176700B1EFA0 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1250; - LastUpgradeCheck = 1250; + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1310; + LastUpgradeCheck = 1310; TargetAttributes = { - 950093C626CBC7A200FEBF67 = { - CreatedOnToolsVersion = 12.5.1; - TestTargetID = 95C5B2232697752600941585; - }; - 9531D43E26D8E4CF00665D2A = { - CreatedOnToolsVersion = 12.5.1; - TestTargetID = 95C5B2232697752600941585; + 95DC5D4B2728176700B1EFA0 = { + CreatedOnToolsVersion = 13.1; }; - 959F6DE726BBD53500101E53 = { - CreatedOnToolsVersion = 12.5.1; - TestTargetID = 95C5B2232697752600941585; + 95DC5D602728176900B1EFA0 = { + CreatedOnToolsVersion = 13.1; + TestTargetID = 95DC5D4B2728176700B1EFA0; }; - 95C5B2232697752600941585 = { - CreatedOnToolsVersion = 12.5.1; - }; - 95C5B2442697752700941585 = { - CreatedOnToolsVersion = 12.5.1; - TestTargetID = 95C5B2232697752600941585; + 95DC5D6A2728176900B1EFA0 = { + CreatedOnToolsVersion = 13.1; + TestTargetID = 95DC5D4B2728176700B1EFA0; }; }; }; - buildConfigurationList = 95C5B21F2697752600941585 /* Build configuration list for PBXProject "Simoleon" */; - compatibilityVersion = "Xcode 9.3"; + buildConfigurationList = 95DC5D472728176700B1EFA0 /* Build configuration list for PBXProject "Simoleon" */; + compatibilityVersion = "Xcode 13.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, - es, Base, - "en-GB", - de, - fr, - "pt-PT", - nl, - it, - ru, ); - mainGroup = 95C5B21B2697752600941585; - packageReferences = ( - 95562D5026A8AEF60047E778 /* XCRemoteSwiftPackageReference "purchases-ios" */, - ); - productRefGroup = 95C5B2252697752600941585 /* Products */; + mainGroup = 95DC5D432728176700B1EFA0; + productRefGroup = 95DC5D4D2728176700B1EFA0 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 95C5B2232697752600941585 /* Simoleon */, - 9531D43E26D8E4CF00665D2A /* SimoleonTests */, - 95C5B2442697752700941585 /* SimoleonUITests */, - 959F6DE726BBD53500101E53 /* SimoleonScreenshots */, - 950093C626CBC7A200FEBF67 /* SimoleonAppPreview */, + 95DC5D4B2728176700B1EFA0 /* Simoleon */, + 95DC5D602728176900B1EFA0 /* SimoleonTests */, + 95DC5D6A2728176900B1EFA0 /* SimoleonUITests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 950093C526CBC7A200FEBF67 /* Resources */ = { + 95DC5D4A2728176700B1EFA0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 95DC5D572728176800B1EFA0 /* Preview Assets.xcassets in Resources */, + 95DC5D542728176800B1EFA0 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95DC5D5F2728176900B1EFA0 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 9531D43D26D8E4CF00665D2A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 959F6DE626BBD53500101E53 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 95C5B2222697752600941585 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 95C5B22F2697752700941585 /* Preview Assets.xcassets in Resources */, - 95E76436269DFC1A008E9F31 /* LaunchScreen.storyboard in Resources */, - 95B5F53126AADE4B00BDCE89 /* en.xliff in Resources */, - 9501E13A26D3A55200D14DE5 /* CurrencyPairsSupported.json in Resources */, - 95B5F53326AADE4B00BDCE89 /* Localizable.strings in Resources */, - 95B5F53226AADE4B00BDCE89 /* contents.json in Resources */, - 9501E13826D3A52000D14DE5 /* Currencies.json in Resources */, - 95B5F53426AADE4B00BDCE89 /* InfoPlist.strings in Resources */, - 95C5B22C2697752700941585 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 95C5B2432697752700941585 /* Resources */ = { + 95DC5D692728176900B1EFA0 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -640,315 +261,57 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 950093C326CBC7A200FEBF67 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 950093CA26CBC7A200FEBF67 /* SimoleonAppPreview.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9531D43B26D8E4CF00665D2A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9531D44226D8E4CF00665D2A /* SimoleonTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 959F6DE426BBD53500101E53 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 959F6DEB26BBD53500101E53 /* SimoleonScreenshots.swift in Sources */, - 95DA4B5626D7D10100566C5E /* SnapshotHelper.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 95C5B2202697752600941585 /* Sources */ = { + 95DC5D482728176700B1EFA0 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 95C5179926A5EC9F00BC2B24 /* FavoriteButton.swift in Sources */, - 95AC820726DAA3ED00CD5C3F /* FavoritePair+CoreDataClass.swift in Sources */, - 9522CD9D26CED2E100DD9D03 /* ErrorHandling.swift in Sources */, - 95AA42ED26D78A4A0085570D /* FileHelper.swift in Sources */, - 95851CE326D4DAAE004ADA79 /* CurrencyButton.swift in Sources */, - 95C5B2312697752700941585 /* Persistence.swift in Sources */, - 95DA4B5926D7E2DE00566C5E /* ChildListResets.swift in Sources */, - 95AEBC9526A03ECB00613729 /* ContentView.swift in Sources */, - 9522BEAB26B5AACB0076B098 /* ListModifier.swift in Sources */, - 95909CB326B07BFC00D051AB /* SearchBar.swift in Sources */, - 95C1DD6A26D8DF9400315C3F /* CurrencySelector.swift in Sources */, - 95851CE526D4DB4C004ADA79 /* Flag.swift in Sources */, - 9585BB1A26A6E8FD00E3193E /* HapticsHelper.swift in Sources */, - 95C5179F26A5F34200BC2B24 /* FavoritesView.swift in Sources */, - 95C5B2282697752600941585 /* SimoleonApp.swift in Sources */, - 954D95D026E4FE28005BE568 /* FavoritesPlaceholder.swift in Sources */, - 95B54F4A26A4A450001DC0D8 /* ConversionBox.swift in Sources */, - 954D95CE26E4F16D005BE568 /* FavoritePairRow.swift in Sources */, - 95AC820A26DAAC6B00CD5C3F /* ButtonAnimation.swift in Sources */, - 95AC820826DAA3ED00CD5C3F /* FavoritePair+CoreDataProperties.swift in Sources */, - 95C517A126A5F6C000BC2B24 /* ResignKeyboard.swift in Sources */, - 95CE6A3626D50B7700D9DCBD /* CurrencyList.swift in Sources */, - 957DCF3326D7ADEA00BCAB1E /* CurrencyConversion.swift in Sources */, - 95AEBC9D26A04D4600613729 /* CurrencyRow.swift in Sources */, - 95AEBCA326A0900E00613729 /* CurrencyQuoteModel.swift in Sources */, - 9585BB1426A6B7F400E3193E /* NetworkHelper.swift in Sources */, - 957065E226A5FE0400523E68 /* AboutView.swift in Sources */, - 95B54F4426A4842C001DC0D8 /* ConversionView.swift in Sources */, - 95C5B2342697752700941585 /* Simoleon.xcdatamodeld in Sources */, - 953B8B1726D3A970003CF530 /* CurrencyModel.swift in Sources */, - 95C5179126A5DC8E00BC2B24 /* ConditionalWrapper.swift in Sources */, - 95B54F5126A4ACAC001DC0D8 /* Sidebar.swift in Sources */, - 9547423526DBE56600415B3F /* ConversionTextfield.swift in Sources */, + 95DC5D592728176800B1EFA0 /* Persistence.swift in Sources */, + 95DC5D522728176700B1EFA0 /* ContentView.swift in Sources */, + 95DC5D502728176700B1EFA0 /* SimoleonApp.swift in Sources */, + 95DC5D5C2728176800B1EFA0 /* Simoleon.xcdatamodeld in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 95C5B2412697752700941585 /* Sources */ = { + 95DC5D5D2728176900B1EFA0 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 95C5B24A2697752700941585 /* SimoleonUITests.swift in Sources */, + 95DC5D662728176900B1EFA0 /* SimoleonTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95DC5D672728176900B1EFA0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 95DC5D722728176900B1EFA0 /* SimoleonUITestsLaunchTests.swift in Sources */, + 95DC5D702728176900B1EFA0 /* SimoleonUITests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 950093CD26CBC7A200FEBF67 /* PBXTargetDependency */ = { + 95DC5D632728176900B1EFA0 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 95C5B2232697752600941585 /* Simoleon */; - targetProxy = 950093CC26CBC7A200FEBF67 /* PBXContainerItemProxy */; - }; - 9531D44526D8E4CF00665D2A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 95C5B2232697752600941585 /* Simoleon */; - targetProxy = 9531D44426D8E4CF00665D2A /* PBXContainerItemProxy */; + target = 95DC5D4B2728176700B1EFA0 /* Simoleon */; + targetProxy = 95DC5D622728176900B1EFA0 /* PBXContainerItemProxy */; }; - 959F6DEE26BBD53500101E53 /* PBXTargetDependency */ = { + 95DC5D6D2728176900B1EFA0 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 95C5B2232697752600941585 /* Simoleon */; - targetProxy = 959F6DED26BBD53500101E53 /* PBXContainerItemProxy */; - }; - 95C5B2472697752700941585 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 95C5B2232697752600941585 /* Simoleon */; - targetProxy = 95C5B2462697752700941585 /* PBXContainerItemProxy */; + target = 95DC5D4B2728176700B1EFA0 /* Simoleon */; + targetProxy = 95DC5D6C2728176900B1EFA0 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ -/* Begin PBXVariantGroup section */ - 95B5F52D26AADE4B00BDCE89 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 95B5F52E26AADE4B00BDCE89 /* en */, - 95B5F53526AADE5200BDCE89 /* es */, - 9587597726B2A59D004086F0 /* en-GB */, - 9587597926B2A5B6004086F0 /* de */, - 9587597B26B2A5BF004086F0 /* fr */, - 9587597D26B2A5D6004086F0 /* pt-PT */, - 9587597F26B2A5E1004086F0 /* nl */, - 9587598126B2A5EB004086F0 /* it */, - 9587598726B2A60C004086F0 /* ru */, - ); - name = Localizable.strings; - sourceTree = "<group>"; - }; - 95B5F52F26AADE4B00BDCE89 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 95B5F53026AADE4B00BDCE89 /* en */, - 95B5F53626AADE5500BDCE89 /* es */, - 9587597826B2A59D004086F0 /* en-GB */, - 9587597A26B2A5B6004086F0 /* de */, - 9587597C26B2A5BF004086F0 /* fr */, - 9587597E26B2A5D6004086F0 /* pt-PT */, - 9587598026B2A5E2004086F0 /* nl */, - 9587598226B2A5EB004086F0 /* it */, - 9587598826B2A60C004086F0 /* ru */, - ); - name = InfoPlist.strings; - sourceTree = "<group>"; - }; -/* End PBXVariantGroup section */ - /* Begin XCBuildConfiguration section */ - 950093CE26CBC7A200FEBF67 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = MTX83R5H8X; - INFOPLIST_FILE = SimoleonAppPreview/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.5; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.SimoleonAppPreview; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = Simoleon; - }; - name = Debug; - }; - 950093CF26CBC7A200FEBF67 /* Screenshots */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = MTX83R5H8X; - INFOPLIST_FILE = SimoleonAppPreview/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.5; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.SimoleonAppPreview; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = Simoleon; - }; - name = Screenshots; - }; - 950093D026CBC7A200FEBF67 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = MTX83R5H8X; - INFOPLIST_FILE = SimoleonAppPreview/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.5; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.SimoleonAppPreview; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = Simoleon; - }; - name = Release; - }; - 9531D44726D8E4CF00665D2A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = MTX83R5H8X; - INFOPLIST_FILE = SimoleonTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.5; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.SimoleonTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Simoleon.app/Simoleon"; - }; - name = Debug; - }; - 9531D44826D8E4CF00665D2A /* Screenshots */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = MTX83R5H8X; - INFOPLIST_FILE = SimoleonTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.5; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.SimoleonTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Simoleon.app/Simoleon"; - }; - name = Screenshots; - }; - 9531D44926D8E4CF00665D2A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = MTX83R5H8X; - INFOPLIST_FILE = SimoleonTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.5; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.SimoleonTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Simoleon.app/Simoleon"; - }; - name = Release; - }; - 959F6DEF26BBD53500101E53 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = MTX83R5H8X; - INFOPLIST_FILE = SimoleonScreenshots/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.5; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - OTHER_SWIFT_FLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.SimoleonScreenshots; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = Simoleon; - }; - name = Debug; - }; - 959F6DF026BBD53500101E53 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = MTX83R5H8X; - INFOPLIST_FILE = SimoleonScreenshots/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.5; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - OTHER_SWIFT_FLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.SimoleonScreenshots; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ""; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = Simoleon; - }; - name = Release; - }; - 95B9EECD26CAC9EF00D94D60 /* Screenshots */ = { + 95DC5D732728176900B1EFA0 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -993,138 +356,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.4; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Screenshots; - }; - 95B9EECE26CAC9EF00D94D60 /* Screenshots */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9585BB0F26A6B58500E3193E /* Config.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = Simoleon/Simoleon.entitlements; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_ASSET_PATHS = "\"Simoleon/Preview Content\""; - DEVELOPMENT_TEAM = MTX83R5H8X; - ENABLE_PREVIEWS = YES; - INFOPLIST_FILE = Simoleon/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 1.3.2; - PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.Simoleon; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = SCREENSHOTS; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Screenshots; - }; - 95B9EED026CAC9EF00D94D60 /* Screenshots */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = MTX83R5H8X; - INFOPLIST_FILE = SimoleonUITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.SimoleonUITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = Simoleon; - }; - name = Screenshots; - }; - 95B9EED126CAC9EF00D94D60 /* Screenshots */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = MTX83R5H8X; - INFOPLIST_FILE = SimoleonScreenshots/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.5; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - OTHER_SWIFT_FLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.SimoleonScreenshots; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = Simoleon; - }; - name = Screenshots; - }; - 95C5B24C2697752700941585 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.4; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -1134,15 +366,14 @@ }; name = Debug; }; - 95C5B24D2697752700941585 /* Release */ = { + 95DC5D742728176900B1EFA0 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9585BB0F26A6B58500E3193E /* Config.xcconfig */; + baseConfigurationReference = 95DC5D7E272817DE00B1EFA0 /* Config.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -1181,7 +412,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.4; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = iphoneos; @@ -1191,20 +422,52 @@ }; name = Release; }; - 95C5B24F2697752700941585 /* Debug */ = { + 95DC5D762728176900B1EFA0 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9585BB0F26A6B58500E3193E /* Config.xcconfig */; + baseConfigurationReference = 95DC5D7E272817DE00B1EFA0 /* Config.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = Simoleon/Simoleon.entitlements; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"Simoleon/Preview Content\""; DEVELOPMENT_TEAM = MTX83R5H8X; ENABLE_PREVIEWS = YES; - INFOPLIST_FILE = Simoleon/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.3.2; + PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.Simoleon; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 95DC5D772728176900B1EFA0 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"Simoleon/Preview Content\""; + DEVELOPMENT_TEAM = MTX83R5H8X; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1212,70 +475,102 @@ MARKETING_VERSION = 1.3.2; PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.Simoleon; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 95C5B2502697752700941585 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = Simoleon/Simoleon.entitlements; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_ASSET_PATHS = "\"Simoleon/Preview Content\""; - DEVELOPMENT_TEAM = MTX83R5H8X; - ENABLE_PREVIEWS = YES; - INFOPLIST_FILE = Simoleon/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 1.3.2; - PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.Simoleon; - PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; }; - 95C5B2552697752700941585 /* Debug */ = { + 95DC5D792728176900B1EFA0 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = MTX83R5H8X; - INFOPLIST_FILE = SimoleonUITests/Info.plist; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.SimoleonTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Simoleon.app/Simoleon"; + }; + name = Debug; + }; + 95DC5D7A2728176900B1EFA0 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = MTX83R5H8X; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.SimoleonTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Simoleon.app/Simoleon"; + }; + name = Release; + }; + 95DC5D7C2728176900B1EFA0 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = MTX83R5H8X; + GENERATE_INFOPLIST_FILE = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.SimoleonUITests; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_TARGET_NAME = Simoleon; }; name = Debug; }; - 95C5B2562697752700941585 /* Release */ = { + 95DC5D7D2728176900B1EFA0 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = MTX83R5H8X; - INFOPLIST_FILE = SimoleonUITests/Info.plist; + GENERATE_INFOPLIST_FILE = YES; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); + MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = io.dennistech.SimoleonUITests; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_TARGET_NAME = Simoleon; @@ -1285,91 +580,56 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 950093D126CBC7A200FEBF67 /* Build configuration list for PBXNativeTarget "SimoleonAppPreview" */ = { + 95DC5D472728176700B1EFA0 /* Build configuration list for PBXProject "Simoleon" */ = { isa = XCConfigurationList; buildConfigurations = ( - 950093CE26CBC7A200FEBF67 /* Debug */, - 950093CF26CBC7A200FEBF67 /* Screenshots */, - 950093D026CBC7A200FEBF67 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 9531D44626D8E4CF00665D2A /* Build configuration list for PBXNativeTarget "SimoleonTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9531D44726D8E4CF00665D2A /* Debug */, - 9531D44826D8E4CF00665D2A /* Screenshots */, - 9531D44926D8E4CF00665D2A /* Release */, + 95DC5D732728176900B1EFA0 /* Debug */, + 95DC5D742728176900B1EFA0 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 959F6DF126BBD53500101E53 /* Build configuration list for PBXNativeTarget "SimoleonScreenshots" */ = { + 95DC5D752728176900B1EFA0 /* Build configuration list for PBXNativeTarget "Simoleon" */ = { isa = XCConfigurationList; buildConfigurations = ( - 959F6DEF26BBD53500101E53 /* Debug */, - 95B9EED126CAC9EF00D94D60 /* Screenshots */, - 959F6DF026BBD53500101E53 /* Release */, + 95DC5D762728176900B1EFA0 /* Debug */, + 95DC5D772728176900B1EFA0 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 95C5B21F2697752600941585 /* Build configuration list for PBXProject "Simoleon" */ = { + 95DC5D782728176900B1EFA0 /* Build configuration list for PBXNativeTarget "SimoleonTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 95C5B24C2697752700941585 /* Debug */, - 95B9EECD26CAC9EF00D94D60 /* Screenshots */, - 95C5B24D2697752700941585 /* Release */, + 95DC5D792728176900B1EFA0 /* Debug */, + 95DC5D7A2728176900B1EFA0 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 95C5B24E2697752700941585 /* Build configuration list for PBXNativeTarget "Simoleon" */ = { + 95DC5D7B2728176900B1EFA0 /* Build configuration list for PBXNativeTarget "SimoleonUITests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 95C5B24F2697752700941585 /* Debug */, - 95B9EECE26CAC9EF00D94D60 /* Screenshots */, - 95C5B2502697752700941585 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 95C5B2542697752700941585 /* Build configuration list for PBXNativeTarget "SimoleonUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 95C5B2552697752700941585 /* Debug */, - 95B9EED026CAC9EF00D94D60 /* Screenshots */, - 95C5B2562697752700941585 /* Release */, + 95DC5D7C2728176900B1EFA0 /* Debug */, + 95DC5D7D2728176900B1EFA0 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ -/* Begin XCRemoteSwiftPackageReference section */ - 95562D5026A8AEF60047E778 /* XCRemoteSwiftPackageReference "purchases-ios" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/RevenueCat/purchases-ios.git"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 3.12.2; - }; - }; -/* End XCRemoteSwiftPackageReference section */ - /* Begin XCVersionGroup section */ - 95C5B2322697752700941585 /* Simoleon.xcdatamodeld */ = { + 95DC5D5A2728176800B1EFA0 /* Simoleon.xcdatamodeld */ = { isa = XCVersionGroup; children = ( - 95C5B2332697752700941585 /* Simoleon.xcdatamodel */, + 95DC5D5B2728176800B1EFA0 /* Simoleon.xcdatamodel */, ); - currentVersion = 95C5B2332697752700941585 /* Simoleon.xcdatamodel */; + currentVersion = 95DC5D5B2728176800B1EFA0 /* Simoleon.xcdatamodel */; path = Simoleon.xcdatamodeld; sourceTree = "<group>"; versionGroupType = wrapper.xcdatamodel; }; /* End XCVersionGroup section */ }; - rootObject = 95C5B21C2697752600941585 /* Project object */; + rootObject = 95DC5D442728176700B1EFA0 /* Project object */; }
--- a/Simoleon.xcodeproj/xcshareddata/xcschemes/AppPreview.xcscheme Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,139 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "1250" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "95C5B2232697752600941585" - BuildableName = "Simoleon.app" - BlueprintName = "Simoleon" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "NO" - buildForRunning = "NO" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "95C5B2442697752700941585" - BuildableName = "SimoleonUITests.xctest" - BlueprintName = "SimoleonUITests" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "NO" - buildForRunning = "NO" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "95C5B2392697752700941585" - BuildableName = "SimoleonTests.xctest" - BlueprintName = "SimoleonTests" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "NO" - buildForRunning = "NO" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "959F6DE726BBD53500101E53" - BuildableName = "SimoleonScreenshots.xctest" - BlueprintName = "SimoleonScreenshots" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Screenshots" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "NO"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "95C5B2232697752600941585" - BuildableName = "Simoleon.app" - BlueprintName = "Simoleon" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </MacroExpansion> - <Testables> - <TestableReference - skipped = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "950093C626CBC7A200FEBF67" - BuildableName = "SimoleonAppPreview.xctest" - BlueprintName = "SimoleonAppPreview" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </TestableReference> - </Testables> - </TestAction> - <LaunchAction - buildConfiguration = "Screenshots" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - disableMainThreadChecker = "YES" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "95C5B2232697752600941585" - BuildableName = "Simoleon.app" - BlueprintName = "Simoleon" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildableProductRunnable> - </LaunchAction> - <ProfileAction - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "95C5B2232697752600941585" - BuildableName = "Simoleon.app" - BlueprintName = "Simoleon" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </MacroExpansion> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme>
--- a/Simoleon.xcodeproj/xcshareddata/xcschemes/Screenshots.xcscheme Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "1250" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "95C5B2232697752600941585" - BuildableName = "Simoleon.app" - BlueprintName = "Simoleon" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "NO" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "95C5B2442697752700941585" - BuildableName = "SimoleonUITests.xctest" - BlueprintName = "SimoleonUITests" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "NO" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "9531D43E26D8E4CF00665D2A" - BuildableName = "SimoleonTests.xctest" - BlueprintName = "SimoleonTests" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "959F6DE726BBD53500101E53" - BuildableName = "SimoleonScreenshots.xctest" - BlueprintName = "SimoleonScreenshots" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Screenshots" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES" - disableMainThreadChecker = "YES"> - <Testables> - <TestableReference - skipped = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "959F6DE726BBD53500101E53" - BuildableName = "SimoleonScreenshots.xctest" - BlueprintName = "SimoleonScreenshots" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </TestableReference> - <TestableReference - skipped = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "950093C626CBC7A200FEBF67" - BuildableName = "SimoleonAppPreview.xctest" - BlueprintName = "SimoleonAppPreview" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </TestableReference> - </Testables> - </TestAction> - <LaunchAction - buildConfiguration = "Screenshots" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - disableMainThreadChecker = "YES" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "95C5B2232697752600941585" - BuildableName = "Simoleon.app" - BlueprintName = "Simoleon" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildableProductRunnable> - </LaunchAction> - <ProfileAction - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "95C5B2232697752600941585" - BuildableName = "Simoleon.app" - BlueprintName = "Simoleon" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildableProductRunnable> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme>
--- a/Simoleon.xcodeproj/xcshareddata/xcschemes/Simoleon.xcscheme Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,143 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "1250" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "95C5B2232697752600941585" - BuildableName = "Simoleon.app" - BlueprintName = "Simoleon" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "NO" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "95C5B2442697752700941585" - BuildableName = "SimoleonUITests.xctest" - BlueprintName = "SimoleonUITests" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "NO" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "9531D43E26D8E4CF00665D2A" - BuildableName = "SimoleonTests.xctest" - BlueprintName = "SimoleonTests" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "NO" - buildForRunning = "NO" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "959F6DE726BBD53500101E53" - BuildableName = "SimoleonScreenshots.xctest" - BlueprintName = "SimoleonScreenshots" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES" - language = "en" - codeCoverageEnabled = "YES"> - <Testables> - <TestableReference - skipped = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "9531D43E26D8E4CF00665D2A" - BuildableName = "SimoleonTests.xctest" - BlueprintName = "SimoleonTests" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </TestableReference> - <TestableReference - skipped = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "95C5B2442697752700941585" - BuildableName = "SimoleonUITests.xctest" - BlueprintName = "SimoleonUITests" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </TestableReference> - </Testables> - </TestAction> - <LaunchAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - disableMainThreadChecker = "YES" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "95C5B2232697752600941585" - BuildableName = "Simoleon.app" - BlueprintName = "Simoleon" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildableProductRunnable> - </LaunchAction> - <ProfileAction - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "95C5B2232697752600941585" - BuildableName = "Simoleon.app" - BlueprintName = "Simoleon" - ReferencedContainer = "container:Simoleon.xcodeproj"> - </BuildableReference> - </BuildableProductRunnable> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme>
--- a/Simoleon/AboutView.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,72 +0,0 @@ -// -// AboutView.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 19/07/2021. -// - -import SwiftUI - -struct AboutView: View { - var body: some View { - Form { - Section(header: Text("Feedback")) { - Link(destination: URL(string: "https://itunes.apple.com/app/id1576390953?action=write-review")!) { - HStack { - Image(systemName: "heart.fill") - .foregroundColor(Color(.systemRed)) - .imageScale(.large) - - Text("Rate Simoleon") - } - } - } - - Section(header: Text("Stay in touch")) { - Link(destination: URL(string: "https://twitter.com/dennisconcep")!) { - HStack { - Image("TwitterLogo") - .resizable() - .frame(width: 30, height: 30) - - Text("Developer's Twitter") - } - } - - Link(destination: URL(string: "https://dennistech.io/contact")!) { - HStack { - Image(systemName: "envelope.fill") - .foregroundColor(Color(.systemIndigo)) - .imageScale(.large) - - Text("Contact") - } - } - } - - Section(header: Text("Information")) { - Link(destination: URL(string: "https://dennistech.io")!) { - Text("Website") - } - - Link(destination: URL(string: "https://dennistech.io/simoleon-privacy-policy")!) { - Text("Privacy Policy") - } - - Link(destination: URL(string: "https://dennistech.io/simoleon-terms-of-use")!) { - Text("Terms of Use") - } - } - } - .navigationTitle("About") - .if(UIDevice.current.userInterfaceIdiom == .phone) { content in - NavigationView { content } - } - } -} - -struct AboutView_Previews: PreviewProvider { - static var previews: some View { - AboutView() - } -}
--- a/Simoleon/Assets.xcassets/AccentColor.colorset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ b/Simoleon/Assets.xcassets/AccentColor.colorset/Contents.json Tue Oct 26 13:09:17 2021 +0200 @@ -2,15 +2,6 @@ "colors" : [ { "idiom" : "universal" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "idiom" : "universal" } ], "info" : {
--- a/Simoleon/Assets.xcassets/AppIcon.appiconset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ b/Simoleon/Assets.xcassets/AppIcon.appiconset/Contents.json Tue Oct 26 13:09:17 2021 +0200 @@ -1,172 +1,94 @@ { "images" : [ { - "filename" : "notification40.png", "idiom" : "iphone", "scale" : "2x", "size" : "20x20" }, { - "filename" : "notification60.png", "idiom" : "iphone", "scale" : "3x", "size" : "20x20" }, { - "filename" : "settings58.png", "idiom" : "iphone", "scale" : "2x", "size" : "29x29" }, { - "filename" : "settings87.png", "idiom" : "iphone", "scale" : "3x", "size" : "29x29" }, { - "filename" : "spotlight80.png", "idiom" : "iphone", "scale" : "2x", "size" : "40x40" }, { - "filename" : "spotlight120.png", "idiom" : "iphone", "scale" : "3x", "size" : "40x40" }, { - "filename" : "iphone120.png", "idiom" : "iphone", "scale" : "2x", "size" : "60x60" }, { - "filename" : "iphone180.png", "idiom" : "iphone", "scale" : "3x", "size" : "60x60" }, { - "filename" : "ipadNotification20.png", "idiom" : "ipad", "scale" : "1x", "size" : "20x20" }, { - "filename" : "ipadNotification40.png", "idiom" : "ipad", "scale" : "2x", "size" : "20x20" }, { - "filename" : "ipadSettings29.png", "idiom" : "ipad", "scale" : "1x", "size" : "29x29" }, { - "filename" : "ipadSettings58.png", "idiom" : "ipad", "scale" : "2x", "size" : "29x29" }, { - "filename" : "ipadSpotlight40.png", "idiom" : "ipad", "scale" : "1x", "size" : "40x40" }, { - "filename" : "ipadSpotlight80.png", "idiom" : "ipad", "scale" : "2x", "size" : "40x40" }, { - "filename" : "ipad76.png", "idiom" : "ipad", "scale" : "1x", "size" : "76x76" }, { - "filename" : "ipad152.png", "idiom" : "ipad", "scale" : "2x", "size" : "76x76" }, { - "filename" : "ipadPro167.png", "idiom" : "ipad", "scale" : "2x", "size" : "83.5x83.5" }, { - "filename" : "appstore1024.png", "idiom" : "ios-marketing", "scale" : "1x", "size" : "1024x1024" - }, - { - "filename" : "mac16.png", - "idiom" : "mac", - "scale" : "1x", - "size" : "16x16" - }, - { - "filename" : "mac32.png", - "idiom" : "mac", - "scale" : "2x", - "size" : "16x16" - }, - { - "filename" : "mac32.png", - "idiom" : "mac", - "scale" : "1x", - "size" : "32x32" - }, - { - "filename" : "mac64.png", - "idiom" : "mac", - "scale" : "2x", - "size" : "32x32" - }, - { - "filename" : "mac128.png", - "idiom" : "mac", - "scale" : "1x", - "size" : "128x128" - }, - { - "filename" : "mac256.png", - "idiom" : "mac", - "scale" : "2x", - "size" : "128x128" - }, - { - "filename" : "mac256.png", - "idiom" : "mac", - "scale" : "1x", - "size" : "256x256" - }, - { - "filename" : "mac512.png", - "idiom" : "mac", - "scale" : "2x", - "size" : "256x256" - }, - { - "filename" : "mac512.png", - "idiom" : "mac", - "scale" : "1x", - "size" : "512x512" - }, - { - "filename" : "mac1024.png", - "idiom" : "mac", - "scale" : "2x", - "size" : "512x512" } ], "info" : {
--- a/Simoleon/Assets.xcassets/Flags/AAVE.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "AAVE.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/ADA.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "ADA.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/AE.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "AE.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/AF.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "AF.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/AI.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "AI.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/AL.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "AL.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/AM.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "AM.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/AO.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "AO.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/AR.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "AR.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/AU.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "AU.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/AW.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "AW.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BA.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BA.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BB.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BB.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BD.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BD.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BG.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BG.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BH.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BH.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BI.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BI.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BM.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BM.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BN.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BN.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BNB.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BNB.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BO.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BO.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BR.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BR.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BS.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BS.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BT.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BT.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BTC.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BTC.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BW.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BW.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BY.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BY.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/BZ.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "BZ.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/CA.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "CA.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/CD.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "CD.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/CH.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "CH.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/CL.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "CL.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/CN.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "CN.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/CO.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "CO.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/CR.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "CR.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/CU.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "CU.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/CV.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "CV.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/CW.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "CW.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/CY.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "CY.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/CZ.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "CZ.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/DASH.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "DASH.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/DJ.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "DJ.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/DK.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "DK.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/DO.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "DO.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/DOGE.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "DOGE.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/DOT.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "DOT.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/DZ.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "DZ.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/EG.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "EG.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/ET.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "ET.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/ETH.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "ETH.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/EU.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "EU.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/FIL.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "FIL.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/FJ.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "FJ.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/FR.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "FR.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/GB.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "GB.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/GE.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "GE.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/GH.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "GH.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/GM.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "GM.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/GN.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "GN.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/GT.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "GT.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/GY.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "GY.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/HK.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "HK.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/HN.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "HN.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/HR.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "HR.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/HT.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "HT.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/HU.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "HU.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/ID.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "ID.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/IL.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "IL.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/IM.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "IM.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/IN.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "IN.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/IQ.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "IQ.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/IR.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "IR.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/IS.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "IS.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/JM.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "JM.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/JO.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "JO.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/JP.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "JP.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/KE.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "KE.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/KH.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "KH.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/KM.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "KM.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/KR.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "KR.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/KW.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "KW.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/KY.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "KY.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/KZ.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "KZ.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/LA.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "LA.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/LB.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "LB.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/LINK.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "LINK.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/LK.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "LK.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/LR.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "LR.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/LS.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "LS.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/LT.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "LT.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/LTC.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "LTC.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/LUNA.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "LUNA.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/LY.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "LY.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/MA.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "MA.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/MATIC.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "MATIC.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/MD.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "MD.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/MG.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "MG.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/MK.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "MK.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/MM.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "MM.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/MO.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "MO.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/MR.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "MR.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/MT.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "MT.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/MU.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "MU.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/MV.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "MV.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/MW.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "MW.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/MX.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "MX.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/MY.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "MY.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/MZ.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "MZ.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/NA.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "NA.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/NG.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "NG.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/NI.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "NI.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/NO.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "NO.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/NP.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "NP.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/NZ.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "NZ.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/OM.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "OM.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/PA.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "PA.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/PE.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "PE.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/PF.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "PF.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/PG.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "PG.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/PH.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "PH.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/PK.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "PK.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/PL.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "PL.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/PY.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "PY.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/QA.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "QA.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/RO.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "RO.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/RS.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "RS.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/RU.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "RU.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/RW.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "RW.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/SA.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "SA.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/SB.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "SB.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/SC.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "SC.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/SD.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "SD.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/SE.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "SE.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/SG.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "SG.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/SH.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "SH.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/SL.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "SL.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/SN.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "SN.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/SO.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "SO.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/SOL.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "SOL.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/SR.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "SR.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/ST.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "ST.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/SV.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "SV.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/SZ.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "SZ.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/TH.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "TH.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/THETA.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "THETA.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/TJ.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "TJ.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/TM.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "TM.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/TN.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "TN.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/TO.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "TO.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/TR.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "TR.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/TT.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "TT.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/TW.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "TW.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/TZ.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "TZ.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/UA.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "UA.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/UG.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "UG.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/UKO.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "UKO.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/UNI.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "UNI.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/US.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "US.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/USDC.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "USDC.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/UY.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "UY.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/UZ.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "UZ.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/VE.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "VE.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/VET.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "VET.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/VN.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "VN.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/XAG.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "XAG.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/XAU.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "XAU.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/XDR.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "XDR.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/XLM.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "XLM.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/XMR.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "XMR.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/XPD.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "XPD.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/XPT.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "XPT.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/XRP.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "XRP.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/YE.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "YE.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/ZA.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "ZA.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/ZM.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "ZM.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Flags/ZW.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "ZW.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/LaunchLogo.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "Simoleon.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/PlainButton.colorset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0.000", - "green" : "0.000", - "red" : "0.000" - } - }, - "idiom" : "universal" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "1.000", - "green" : "1.000", - "red" : "1.000" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/Subscription.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "SimoleonSubscription.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/Assets.xcassets/TwitterLogo.imageset/Contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "TwitterLogo@x1.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "TwitterLogo@x2.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "TwitterLogo@x3.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -}
--- a/Simoleon/ContentView.swift Tue Oct 12 17:14:05 2021 +0200 +++ b/Simoleon/ContentView.swift Tue Oct 26 13:09:17 2021 +0200 @@ -2,57 +2,20 @@ // ContentView.swift // Simoleon // -// Created by Dennis Concepción Martín on 15/07/2021. +// Created by Dennis Concepción Martín on 26/10/21. // import SwiftUI +import CoreData struct ContentView: View { - @State private var tab: Tab = .convert - - private enum Tab { - case convert, favorites, settings - } - - @ViewBuilder var adjustedView: some View { - - // MARK: - iPad - if UIDevice.current.userInterfaceIdiom == .pad { - NavigationView { - Sidebar() - ConversionView() - } - } else { - // MARK: - iPhone - TabView(selection: $tab) { - ConversionView() - .tabItem { - Label("Convert", systemImage: "arrow.counterclockwise.circle") - } - .tag(Tab.convert) - - FavoritesView() - .tabItem { - Label("Favorites", systemImage: "star") - } - .tag(Tab.favorites) - - AboutView() - .tabItem { - Label("About", systemImage: "info.circle") - } - .tag(Tab.settings) - } - } - } - var body: some View { - adjustedView + Text("Hello world") } } struct ContentView_Previews: PreviewProvider { static var previews: some View { - ContentView() + ContentView().environment(\.managedObjectContext, PersistenceController.preview.container.viewContext) } }
--- a/Simoleon/ConversionView.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -// -// ConversionView.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 18/07/2021. -// - -import SwiftUI - -struct ConversionView: View { - var showNavigationView: Bool? - @StateObject var currencyConversion = CurrencyConversion() - - var body: some View { - ScrollView(showsIndicators: false) { - VStack(alignment: .leading, spacing: 20) { - HStack { - CurrencySelector(currencyConversion: currencyConversion) - FavoriteButton(currencyConversion: currencyConversion) - } - - ConversionBox(currencyConversion: currencyConversion) - .padding(.top) - } - .padding() - } - .navigationTitle("Convert") - .if(UIDevice.current.userInterfaceIdiom == .phone && showNavigationView ?? true) { content in - NavigationView { content } - } - } -} - - -struct ConversionView_Previews: PreviewProvider { - static var previews: some View { - ConversionView(showNavigationView: true) - } -}
--- a/Simoleon/FavoritesView.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -// -// FavoritesView.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 19/07/2021. -// - -import SwiftUI - -struct FavoritesView: View { - @Environment(\.managedObjectContext) private var viewContext - @FetchRequest( - sortDescriptors: [NSSortDescriptor(keyPath: \FavoritePair.baseSymbol, ascending: true)], - animation: .default) - private var favoritePairs: FetchedResults<FavoritePair> - - var body: some View { - VStack { - if favoritePairs.isEmpty { - FavoritesPlaceholder() - } else { - List { - ForEach(favoritePairs, id:\.self) { favoritePair in - FavoritePairRow(favoritePair: favoritePair) - .padding(.vertical, 4) - } - .onDelete(perform: removeFromFavorites) - } - .listStyle(InsetGroupedListStyle()) - } - } - .navigationTitle("Favorites") - .toolbar { - #if os(iOS) - EditButton() - #endif - } - .if(UIDevice.current.userInterfaceIdiom == .phone) { content in - NavigationView { content } - } - .onAppear { - #if SCREENSHOTS - generateFavoritesForScreenshots() - #endif - } - } - - private func removeFromFavorites(offsets: IndexSet) { - withAnimation { - offsets.map { favoritePairs[$0] }.forEach(viewContext.delete) - - do { - try viewContext.save() - } catch { - let nsError = error as NSError - fatalError("Unresolved error \(nsError), \(nsError.userInfo)") - } - } - } - - #if SCREENSHOTS - /* - Save currencies to favourites to take screenshots for the App Store - */ - private func generateFavoritesForScreenshots() { - let pairs = ["EUR/USD", "BTC/USD", "USD/HKD", "USD/JPY", "AUD/USD", - "XAU/GBP", "DASH/ETH", "EUR/USD", "XAG/CAD"] - - for pair in pairs { - let symbols = pair.components(separatedBy: "/") - let favoritePair = favoritePairs.first( - where: { - $0.baseSymbol == symbols[0] && $0.quoteSymbol == symbols[1] - }) - - if let _ = favoritePair { - // Do not save to core data again - } else { - let favoritePair = FavoritePair(context: viewContext) - favoritePair.baseSymbol = symbols[0] - favoritePair.quoteSymbol = symbols[1] - } - - do { - try viewContext.save() - } catch { - let nsError = error as NSError - fatalError("Unresolved error \(nsError), \(nsError.userInfo)") - } - } - } - #endif -} - -struct FavoritesView_Previews: PreviewProvider { - static var previews: some View { - FavoritesView() - .environment(\.managedObjectContext, PersistenceController.preview.container.viewContext) - } -}
--- a/Simoleon/Helpers/ConditionalWrapper.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -// -// ConditionalWrapper.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 19/07/2021. -// - -import SwiftUI - -extension View { - @ViewBuilder - func `if`<Content: View>(_ conditional: Bool, content: (Self) -> Content) -> some View { - if conditional { - content(self) - } else { - self - } - } -}
--- a/Simoleon/Helpers/ErrorHandling.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -// -// ErrorHandling.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 19/8/21. -// - -import Foundation - -class ErrorHandling { - enum Json: Error { - case fileMissing - case loadFailed(cause: String) - case parseFailed(cause: String) - } - - enum Networking: Error { - case invalidURL - } -}
--- a/Simoleon/Helpers/FileHelper.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -// -// File.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 26/8/21. -// - -import Foundation - - -func readJson<T: Decodable>(from filename: String) throws -> T { - let data: Data - - guard let file = Bundle.main.url(forResource: filename, withExtension: nil) - else { - throw ErrorHandling.Json.fileMissing - } - - do { - data = try Data(contentsOf: file) - } catch { - throw ErrorHandling.Json.loadFailed(cause: error.localizedDescription) - } - - do { - let decoder = JSONDecoder() - return try decoder.decode(T.self, from: data) - } catch { - throw ErrorHandling.Json.parseFailed(cause: error.localizedDescription) - } -} - -func readConfig(withKey: String) -> String? { - return (Bundle.main.infoDictionary?[withKey] as? String)? - .replacingOccurrences(of: "\\", with: "") -}
--- a/Simoleon/Helpers/HapticsHelper.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -// -// SimpleSuccess.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 20/07/2021. -// - -import SwiftUI - -class HapticsHelper { - - // MARK: - Simple success - func simpleSuccess() { - let generator = UINotificationFeedbackGenerator() - generator.notificationOccurred(.success) - } -}
--- a/Simoleon/Helpers/ListModifier.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -// -// ListModifier.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 31/7/21. -// - -import SwiftUI - -struct ListModifier: ViewModifier { - func body(content: Content) -> some View { - content - .id(UUID()) - .listStyle(InsetGroupedListStyle()) - .gesture( - DragGesture() - .onChanged({ _ in - UIApplication.shared.dismissKeyboard() - }) - ) - } -}
--- a/Simoleon/Helpers/NetworkHelper.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -// -// Request.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 20/07/2021. -// - -import Foundation - -class NetworkHelper { - func httpRequest<T: Decodable>(url: String, model: T.Type, completion: @escaping (_ result: T) -> Void) throws { - // We take some model data T.Type - guard let url = URL(string: url) else { throw ErrorHandling.Networking.invalidURL } - - let request = URLRequest(url: url) - URLSession.shared.dataTask(with: request) { data, response, error in - if let data = data { - do { - // Decode response with the model passed - let decodedResponse = try JSONDecoder().decode(model, from: data) - DispatchQueue.main.async { - completion(decodedResponse) - } - return - } catch { - // Return error regarding the escaping code - print(error) - } - } - // Error with the request - print("Fetch failed: \(error?.localizedDescription ?? "Unknown error")") - } - .resume() - } -}
--- a/Simoleon/Helpers/Persistence.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -// -// Persistence.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 08/07/2021. -// - -import CoreData - -struct PersistenceController { - static let shared = PersistenceController() - - static var preview: PersistenceController = { - let result = PersistenceController(inMemory: true) - let viewContext = result.container.viewContext - - for _ in 0..<10 { - let favoritePair = FavoritePair(context: viewContext) - favoritePair.baseSymbol = "USD" - favoritePair.quoteSymbol = "EUR" - } - - do { - try viewContext.save() - } catch { - /* - Replace this implementation with code to handle the error appropriately. - fatalError() causes the application to generate a crash log and terminate. - You should not use this function in a shipping application, although it may be useful during development. - */ - let nsError = error as NSError - fatalError("Unresolved error \(nsError), \(nsError.userInfo)") - } - return result - }() - - let container: NSPersistentCloudKitContainer - - init(inMemory: Bool = false) { - container = NSPersistentCloudKitContainer(name: "Simoleon") - container.viewContext.automaticallyMergesChangesFromParent = true - container.viewContext.mergePolicy = NSMergeByPropertyStoreTrumpMergePolicy - if inMemory { - container.persistentStoreDescriptions.first!.url = URL(fileURLWithPath: "/dev/null") - } - container.loadPersistentStores(completionHandler: { (storeDescription, error) in - if let error = error as NSError? { - /* - Replace this implementation with code to handle the error appropriately. - fatalError() causes the application to generate a crash log and terminate. - You should not use this function in a shipping application, although it may be useful during development. - */ - - /* - Typical reasons for an error here include: - * The parent directory does not exist, cannot be created, or disallows writing. - * The persistent store is not accessible, due to permissions or data protection when the device is locked. - * The device is out of space. - * The store could not be migrated to the current model version. - Check the error message to determine what the actual problem was. - */ - fatalError("Unresolved error \(error), \(error.userInfo)") - } - }) - } -}
--- a/Simoleon/Helpers/ResignKeyboard.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -// -// ResignKeyboard.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 19/07/2021. -// - -import SwiftUI - -extension UIApplication { - func dismissKeyboard() { - sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil) - } -}
--- a/Simoleon/Helpers/SnapshotHelper.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,309 +0,0 @@ -// -// SnapshotHelper.swift -// Example -// -// Created by Felix Krause on 10/8/15. -// - -// ----------------------------------------------------- -// IMPORTANT: When modifying this file, make sure to -// increment the version number at the very -// bottom of the file to notify users about -// the new SnapshotHelper.swift -// ----------------------------------------------------- - -import Foundation -import XCTest - -var deviceLanguage = "" -var locale = "" - -func setupSnapshot(_ app: XCUIApplication, waitForAnimations: Bool = true) { - Snapshot.setupSnapshot(app, waitForAnimations: waitForAnimations) -} - -func snapshot(_ name: String, waitForLoadingIndicator: Bool) { - if waitForLoadingIndicator { - Snapshot.snapshot(name) - } else { - Snapshot.snapshot(name, timeWaitingForIdle: 0) - } -} - -/// - Parameters: -/// - name: The name of the snapshot -/// - timeout: Amount of seconds to wait until the network loading indicator disappears. Pass `0` if you don't want to wait. -func snapshot(_ name: String, timeWaitingForIdle timeout: TimeInterval = 20) { - Snapshot.snapshot(name, timeWaitingForIdle: timeout) -} - -enum SnapshotError: Error, CustomDebugStringConvertible { - case cannotFindSimulatorHomeDirectory - case cannotRunOnPhysicalDevice - - var debugDescription: String { - switch self { - case .cannotFindSimulatorHomeDirectory: - return "Couldn't find simulator home location. Please, check SIMULATOR_HOST_HOME env variable." - case .cannotRunOnPhysicalDevice: - return "Can't use Snapshot on a physical device." - } - } -} - -@objcMembers -open class Snapshot: NSObject { - static var app: XCUIApplication? - static var waitForAnimations = true - static var cacheDirectory: URL? - static var screenshotsDirectory: URL? { - return cacheDirectory?.appendingPathComponent("screenshots", isDirectory: true) - } - - open class func setupSnapshot(_ app: XCUIApplication, waitForAnimations: Bool = true) { - - Snapshot.app = app - Snapshot.waitForAnimations = waitForAnimations - - do { - let cacheDir = try getCacheDirectory() - Snapshot.cacheDirectory = cacheDir - setLanguage(app) - setLocale(app) - setLaunchArguments(app) - } catch let error { - NSLog(error.localizedDescription) - } - } - - class func setLanguage(_ app: XCUIApplication) { - guard let cacheDirectory = self.cacheDirectory else { - NSLog("CacheDirectory is not set - probably running on a physical device?") - return - } - - let path = cacheDirectory.appendingPathComponent("language.txt") - - do { - let trimCharacterSet = CharacterSet.whitespacesAndNewlines - deviceLanguage = try String(contentsOf: path, encoding: .utf8).trimmingCharacters(in: trimCharacterSet) - app.launchArguments += ["-AppleLanguages", "(\(deviceLanguage))"] - } catch { - NSLog("Couldn't detect/set language...") - } - } - - class func setLocale(_ app: XCUIApplication) { - guard let cacheDirectory = self.cacheDirectory else { - NSLog("CacheDirectory is not set - probably running on a physical device?") - return - } - - let path = cacheDirectory.appendingPathComponent("locale.txt") - - do { - let trimCharacterSet = CharacterSet.whitespacesAndNewlines - locale = try String(contentsOf: path, encoding: .utf8).trimmingCharacters(in: trimCharacterSet) - } catch { - NSLog("Couldn't detect/set locale...") - } - - if locale.isEmpty && !deviceLanguage.isEmpty { - locale = Locale(identifier: deviceLanguage).identifier - } - - if !locale.isEmpty { - app.launchArguments += ["-AppleLocale", "\"\(locale)\""] - } - } - - class func setLaunchArguments(_ app: XCUIApplication) { - guard let cacheDirectory = self.cacheDirectory else { - NSLog("CacheDirectory is not set - probably running on a physical device?") - return - } - - let path = cacheDirectory.appendingPathComponent("snapshot-launch_arguments.txt") - app.launchArguments += ["-FASTLANE_SNAPSHOT", "YES", "-ui_testing"] - - do { - let launchArguments = try String(contentsOf: path, encoding: String.Encoding.utf8) - let regex = try NSRegularExpression(pattern: "(\\\".+?\\\"|\\S+)", options: []) - let matches = regex.matches(in: launchArguments, options: [], range: NSRange(location: 0, length: launchArguments.count)) - let results = matches.map { result -> String in - (launchArguments as NSString).substring(with: result.range) - } - app.launchArguments += results - } catch { - NSLog("Couldn't detect/set launch_arguments...") - } - } - - open class func snapshot(_ name: String, timeWaitingForIdle timeout: TimeInterval = 20) { - if timeout > 0 { - waitForLoadingIndicatorToDisappear(within: timeout) - } - - NSLog("snapshot: \(name)") // more information about this, check out https://docs.fastlane.tools/actions/snapshot/#how-does-it-work - - if Snapshot.waitForAnimations { - sleep(1) // Waiting for the animation to be finished (kind of) - } - - #if os(OSX) - guard let app = self.app else { - NSLog("XCUIApplication is not set. Please call setupSnapshot(app) before snapshot().") - return - } - - app.typeKey(XCUIKeyboardKeySecondaryFn, modifierFlags: []) - #else - - guard self.app != nil else { - NSLog("XCUIApplication is not set. Please call setupSnapshot(app) before snapshot().") - return - } - - let screenshot = XCUIScreen.main.screenshot() - #if os(iOS) - let image = XCUIDevice.shared.orientation.isLandscape ? fixLandscapeOrientation(image: screenshot.image) : screenshot.image - #else - let image = screenshot.image - #endif - - guard var simulator = ProcessInfo().environment["SIMULATOR_DEVICE_NAME"], let screenshotsDir = screenshotsDirectory else { return } - - do { - // The simulator name contains "Clone X of " inside the screenshot file when running parallelized UI Tests on concurrent devices - let regex = try NSRegularExpression(pattern: "Clone [0-9]+ of ") - let range = NSRange(location: 0, length: simulator.count) - simulator = regex.stringByReplacingMatches(in: simulator, range: range, withTemplate: "") - - let path = screenshotsDir.appendingPathComponent("\(simulator)-\(name).png") - #if swift(<5.0) - UIImagePNGRepresentation(image)?.write(to: path, options: .atomic) - #else - try image.pngData()?.write(to: path, options: .atomic) - #endif - } catch let error { - NSLog("Problem writing screenshot: \(name) to \(screenshotsDir)/\(simulator)-\(name).png") - NSLog(error.localizedDescription) - } - #endif - } - - class func fixLandscapeOrientation(image: UIImage) -> UIImage { - #if os(watchOS) - return image - #else - if #available(iOS 10.0, *) { - let format = UIGraphicsImageRendererFormat() - format.scale = image.scale - let renderer = UIGraphicsImageRenderer(size: image.size, format: format) - return renderer.image { context in - image.draw(in: CGRect(x: 0, y: 0, width: image.size.width, height: image.size.height)) - } - } else { - return image - } - #endif - } - - class func waitForLoadingIndicatorToDisappear(within timeout: TimeInterval) { - #if os(tvOS) - return - #endif - - guard let app = self.app else { - NSLog("XCUIApplication is not set. Please call setupSnapshot(app) before snapshot().") - return - } - - let networkLoadingIndicator = app.otherElements.deviceStatusBars.networkLoadingIndicators.element - let networkLoadingIndicatorDisappeared = XCTNSPredicateExpectation(predicate: NSPredicate(format: "exists == false"), object: networkLoadingIndicator) - _ = XCTWaiter.wait(for: [networkLoadingIndicatorDisappeared], timeout: timeout) - } - - class func getCacheDirectory() throws -> URL { - let cachePath = "Library/Caches/tools.fastlane" - // on OSX config is stored in /Users/<username>/Library - // and on iOS/tvOS/WatchOS it's in simulator's home dir - #if os(OSX) - let homeDir = URL(fileURLWithPath: NSHomeDirectory()) - return homeDir.appendingPathComponent(cachePath) - #elseif arch(i386) || arch(x86_64) || arch(arm64) - guard let simulatorHostHome = ProcessInfo().environment["SIMULATOR_HOST_HOME"] else { - throw SnapshotError.cannotFindSimulatorHomeDirectory - } - let homeDir = URL(fileURLWithPath: simulatorHostHome) - return homeDir.appendingPathComponent(cachePath) - #else - throw SnapshotError.cannotRunOnPhysicalDevice - #endif - } -} - -private extension XCUIElementAttributes { - var isNetworkLoadingIndicator: Bool { - if hasAllowListedIdentifier { return false } - - let hasOldLoadingIndicatorSize = frame.size == CGSize(width: 10, height: 20) - let hasNewLoadingIndicatorSize = frame.size.width.isBetween(46, and: 47) && frame.size.height.isBetween(2, and: 3) - - return hasOldLoadingIndicatorSize || hasNewLoadingIndicatorSize - } - - var hasAllowListedIdentifier: Bool { - let allowListedIdentifiers = ["GeofenceLocationTrackingOn", "StandardLocationTrackingOn"] - - return allowListedIdentifiers.contains(identifier) - } - - func isStatusBar(_ deviceWidth: CGFloat) -> Bool { - if elementType == .statusBar { return true } - guard frame.origin == .zero else { return false } - - let oldStatusBarSize = CGSize(width: deviceWidth, height: 20) - let newStatusBarSize = CGSize(width: deviceWidth, height: 44) - - return [oldStatusBarSize, newStatusBarSize].contains(frame.size) - } -} - -private extension XCUIElementQuery { - var networkLoadingIndicators: XCUIElementQuery { - let isNetworkLoadingIndicator = NSPredicate { (evaluatedObject, _) in - guard let element = evaluatedObject as? XCUIElementAttributes else { return false } - - return element.isNetworkLoadingIndicator - } - - return self.containing(isNetworkLoadingIndicator) - } - - var deviceStatusBars: XCUIElementQuery { - guard let app = Snapshot.app else { - fatalError("XCUIApplication is not set. Please call setupSnapshot(app) before snapshot().") - } - - let deviceWidth = app.windows.firstMatch.frame.width - - let isStatusBar = NSPredicate { (evaluatedObject, _) in - guard let element = evaluatedObject as? XCUIElementAttributes else { return false } - - return element.isStatusBar(deviceWidth) - } - - return self.containing(isStatusBar) - } -} - -private extension CGFloat { - func isBetween(_ numberA: CGFloat, and numberB: CGFloat) -> Bool { - return numberA...numberB ~= self - } -} - -// Please don't remove the lines below -// They are used to detect outdated configuration files -// SnapshotHelperVersion [1.27]
--- a/Simoleon/Info.plist Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>API_KEY</key> - <string>$(API_KEY)</string> - <key>CFBundleDevelopmentRegion</key> - <string>$(DEVELOPMENT_LANGUAGE)</string> - <key>CFBundleDisplayName</key> - <string>Simoleon</string> - <key>CFBundleExecutable</key> - <string>$(EXECUTABLE_NAME)</string> - <key>CFBundleIdentifier</key> - <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>$(PRODUCT_NAME)</string> - <key>CFBundlePackageType</key> - <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string> - <key>CFBundleShortVersionString</key> - <string>$(MARKETING_VERSION)</string> - <key>CFBundleVersion</key> - <string>1</string> - <key>LSRequiresIPhoneOS</key> - <true/> - <key>UIApplicationSceneManifest</key> - <dict> - <key>UIApplicationSupportsMultipleScenes</key> - <true/> - </dict> - <key>UIApplicationSupportsIndirectInputEvents</key> - <true/> - <key>UIBackgroundModes</key> - <array> - <string>remote-notification</string> - </array> - <key>UILaunchScreen</key> - <dict/> - <key>UILaunchStoryboardName</key> - <string>LaunchScreen</string> - <key>UIRequiredDeviceCapabilities</key> - <array> - <string>armv7</string> - </array> - <key>UISupportedInterfaceOrientations</key> - <array> - <string>UIInterfaceOrientationPortrait</string> - </array> - <key>UISupportedInterfaceOrientations~ipad</key> - <array> - <string>UIInterfaceOrientationPortrait</string> - <string>UIInterfaceOrientationPortraitUpsideDown</string> - <string>UIInterfaceOrientationLandscapeLeft</string> - <string>UIInterfaceOrientationLandscapeRight</string> - </array> -</dict> -</plist>
--- a/Simoleon/LaunchScreen.storyboard Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="18122" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="Y6W-OH-hqX"> - <device id="retina6_1" orientation="portrait" appearance="light"/> - <dependencies> - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="18093"/> - <capability name="Named colors" minToolsVersion="9.0"/> - <capability name="Safe area layout guides" minToolsVersion="9.0"/> - <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> - </dependencies> - <scenes> - <!--View Controller--> - <scene sceneID="s0d-6b-0kx"> - <objects> - <viewController id="Y6W-OH-hqX" sceneMemberID="viewController"> - <view key="view" contentMode="scaleToFill" id="5EZ-qb-Rvc"> - <rect key="frame" x="0.0" y="0.0" width="414" height="896"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> - <subviews> - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="LaunchLogo" translatesAutoresizingMaskIntoConstraints="NO" id="Gb6-EW-6id"> - <rect key="frame" x="102" y="392" width="210" height="112"/> - <autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/> - </imageView> - </subviews> - <viewLayoutGuide key="safeArea" id="vDu-zF-Fre"/> - <color key="backgroundColor" name="LaunchBackground"/> - </view> - </viewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="Ief-a0-LHa" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/> - </objects> - <point key="canvasLocation" x="131.8840579710145" y="72.991071428571431"/> - </scene> - </scenes> - <resources> - <image name="LaunchLogo" width="1024" height="1024"/> - <namedColor name="LaunchBackground"> - <color red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> - </namedColor> - </resources> -</document>
--- a/Simoleon/Localization/en.xcloc/Localized Contents/en.xliff Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,251 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd"> - <file original="Simoleon/en.lproj/InfoPlist.strings" source-language="en" target-language="en" datatype="plaintext"> - <header> - <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="12.5.1" build-num="12E507"/> - </header> - <body> - <trans-unit id="CFBundleDisplayName" xml:space="preserve"> - <source>Simoleon</source> - <target>Simoleon</target> - <note>Bundle display name</note> - </trans-unit> - <trans-unit id="CFBundleName" xml:space="preserve"> - <source>Simoleon</source> - <target>Simoleon</target> - <note>Bundle name</note> - </trans-unit> - </body> - </file> - <file original="Simoleon/en.lproj/Localizable.strings" source-language="en" target-language="en" datatype="plaintext"> - <header> - <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="12.5.1" build-num="12E507"/> - </header> - <body> - <trans-unit id="%.2f" xml:space="preserve"> - <source>%.2f</source> - <target>%.2f</target> - <note>No comment provided by engineer.</note> - </trans-unit> - <trans-unit id="%@ (%@)" xml:space="preserve"> - <source>%1$@ (%2$@)</source> - <target>%1$@ (%2$@)</target> - <note>No comment provided by engineer.</note> - </trans-unit> - <trans-unit id="-" xml:space="preserve"> - <source>-</source> - <target>-</target> - <note>No comment provided by engineer.</note> - </trans-unit> - <trans-unit id="About" xml:space="preserve"> - <source>About</source> - <target>About</target> - <note>No comment provided by engineer.</note> - </trans-unit> - <trans-unit id="All currencies" xml:space="preserve"> - <source>All currencies</source> - <target>All currencies</target> - <note>Section header in currency selector</note> - </trans-unit> - <trans-unit id="Cancel" xml:space="preserve"> - <source>Cancel</source> - <target>Cancel</target> - <note>Button to dismiss currency selector - Button to dismiss paywall modal sheet - Button to stop editing textfield</note> - </trans-unit> - <trans-unit id="Categories" xml:space="preserve"> - <source>Categories</source> - <target>Categories</target> - <note>Side bar navigation title</note> - </trans-unit> - <trans-unit id="Contact" xml:space="preserve"> - <source>Contact</source> - <target>Contact</target> - <note>Button to contact in Settings</note> - </trans-unit> - <trans-unit id="Convert" xml:space="preserve"> - <source>Convert</source> - <target>Convert</target> - <note>Navigation title - Tab bar button to show conversion</note> - </trans-unit> - <trans-unit id="Convert your currency between cryptos, gold, and silver." xml:space="preserve"> - <source>Convert your currency between cryptos, gold, and silver.</source> - <target>Convert your currency between cryptos, gold, and silver.</target> - <note>Subscription feature description</note> - </trans-unit> - <trans-unit id="Cryptos and commodities" xml:space="preserve"> - <source>Cryptos and commodities</source> - <target>Cryptos and commodities</target> - <note>Subscription feature title</note> - </trans-unit> - <trans-unit id="Currencies" xml:space="preserve"> - <source>Currencies</source> - <target>Currencies</target> - <note>Navigation title</note> - </trans-unit> - <trans-unit id="Default currency" xml:space="preserve"> - <source>Default currency</source> - <target>Default currency</target> - <note>Label in locked picker - Picker to select default currency</note> - </trans-unit> - <trans-unit id="Developer's Twitter" xml:space="preserve"> - <source>Developer's Twitter</source> - <target>Developer's Twitter</target> - <note>Button to go to Twitter in Settings</note> - </trans-unit> - <trans-unit id="Enter amount" xml:space="preserve"> - <source>Enter amount</source> - <target>Enter amount</target> - <note>No comment provided by engineer.</note> - </trans-unit> - <trans-unit id="Expires at %@" xml:space="preserve"> - <source>Expires at %@</source> - <target>Expires at %@</target> - <note>Subscriber information</note> - </trans-unit> - <trans-unit id="Favorite currencies" xml:space="preserve"> - <source>Favorite currencies</source> - <target>Favorite currencies</target> - <note>Subscription feature title</note> - </trans-unit> - <trans-unit id="Favorites" xml:space="preserve"> - <source>Favorite</source> - <target>Favorite</target> - <note>Navigation title - Tab bar button to show favorites</note> - </trans-unit> - <trans-unit id="From %@ to %@" xml:space="preserve"> - <source>From %1$@ to %2$@</source> - <target>From %1$@ to %2$@</target> - <note>Conversion from one currency to another</note> - </trans-unit> - <trans-unit id="Have access to almost every currency of the world." xml:space="preserve"> - <source>Have access to almost every currency of the world.</source> - <target>Have access to almost every currency of the world.</target> - <note>Subscription feature description</note> - </trans-unit> - <trans-unit id="Information" xml:space="preserve"> - <source>Information</source> - <target>Information</target> - <note>Button to show subscription information in settings - Navigation title</note> - </trans-unit> - <trans-unit id="Latest purchase %@" xml:space="preserve"> - <source>Latest purchase %@</source> - <target>Latest purchase %@</target> - <note>Subscriber information</note> - </trans-unit> - <trans-unit id="Member since %@" xml:space="preserve"> - <source>Member since %@</source> - <target>Member since %@</target> - <note>Subscriber information</note> - </trans-unit> - <trans-unit id="Ok" xml:space="preserve"> - <source>Ok</source> - <target>Ok</target> - <note>Button to dismiss alert - Button to stop searching in currency selector - Dismiss alert</note> - </trans-unit> - <trans-unit id="Over 170 currencies" xml:space="preserve"> - <source>Over 170 currencies</source> - <target>Over 170 currencies</target> - <note>Subscription feature title</note> - </trans-unit> - <trans-unit id="Preferences" xml:space="preserve"> - <source>Preferences</source> - <target>Preferences</target> - <note>Section header in settings</note> - </trans-unit> - <trans-unit id="Privacy Policy" xml:space="preserve"> - <source>Privacy Policy</source> - <target>Privacy Policy</target> - <note>Button to go to app privacy policy</note> - </trans-unit> - <trans-unit id="Rate Simoleon" xml:space="preserve"> - <source>Rate Simoleon</source> - <target>Rate Simoleon</target> - <note>Button to rate app in Settings</note> - </trans-unit> - <trans-unit id="Restore purchases" xml:space="preserve"> - <source>Restore purchases</source> - <target>Restore purchases</target> - <note>Button to restore in-App purchases</note> - </trans-unit> - <trans-unit id="Save your favorite currencies to access them quickly." xml:space="preserve"> - <source>Save your favorite currencies to access them quickly.</source> - <target>Save your favorite currencies to access them quickly.</target> - <note>Subscription feature description</note> - </trans-unit> - <trans-unit id="Search ..." xml:space="preserve"> - <source>Search ...</source> - <target>Search ...</target> - <note>No comment provided by engineer.</note> - </trans-unit> - <trans-unit id="Settings" xml:space="preserve"> - <source>Settings</source> - <target>Settings</target> - <note>Navigation title - Tab bar button to show settings</note> - </trans-unit> - <trans-unit id="Simoleon on all your devices" xml:space="preserve"> - <source>Simoleon on all your devices</source> - <target>Simoleon on all your devices</target> - <note>Subscription feature title</note> - </trans-unit> - <trans-unit id="Stay in touch" xml:space="preserve"> - <source>Stay in touch</source> - <target>Stay in touch</target> - <note>Section header in settings</note> - </trans-unit> - <trans-unit id="Subscribe" xml:space="preserve"> - <source>Subscribe</source> - <target>Subscribe</target> - <note>Button to suscribe in settings</note> - </trans-unit> - <trans-unit id="Subscribe for %@ / month" xml:space="preserve"> - <source>Subscribe for %@ / month</source> - <target>Subscribe for %@ / month</target> - <note>Subscribe button</note> - </trans-unit> - <trans-unit id="Subscription" xml:space="preserve"> - <source>Subscription</source> - <target>Subscription</target> - <note>Section header in settings</note> - </trans-unit> - <trans-unit id="Tap " xml:space="preserve"> - <source>Tap </source> - <target>Tap </target> - <note>First line when favorites are empty</note> - </trans-unit> - <trans-unit id="USD/GBP" xml:space="preserve"> - <source>USD/GBP</source> - <target>USD/GBP</target> - <note>Default currency in locked picker</note> - </trans-unit> - <trans-unit id="Unlock all access" xml:space="preserve"> - <source>Unlock all access</source> - <target>Unlock all access</target> - <note>Headline in Subscription paywall</note> - </trans-unit> - <trans-unit id="Website" xml:space="preserve"> - <source>Website</source> - <target>Website</target> - <note>Button to go to Dennis Tech website</note> - </trans-unit> - <trans-unit id="Your settings and favorite currencies in all your devices." xml:space="preserve"> - <source>Your settings and favorite currencies in all your devices.</source> - <target>Your settings and favorite currencies in all your devices.</target> - <note>Subscription feature description</note> - </trans-unit> - <trans-unit id="to add a currency pair to favorites" xml:space="preserve"> - <source>to add a currency pair to favorites</source> - <target>to add a currency pair to favorites</target> - <note>Finish line when favorites are empty</note> - </trans-unit> - </body> - </file> -</xliff>
--- a/Simoleon/Localization/en.xcloc/Source Contents/Simoleon/de.lproj/InfoPlist.strings Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -/* Bundle display name */ -"CFBundleDisplayName" = "Simoleon"; -/* Bundle name */ -"CFBundleName" = "Simoleon";
Binary file Simoleon/Localization/en.xcloc/Source Contents/Simoleon/de.lproj/Localizable.strings has changed
--- a/Simoleon/Localization/en.xcloc/Source Contents/Simoleon/en-GB.lproj/InfoPlist.strings Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -/* Bundle display name */ -"CFBundleDisplayName" = "Simoleon"; -/* Bundle name */ -"CFBundleName" = "Simoleon";
Binary file Simoleon/Localization/en.xcloc/Source Contents/Simoleon/en-GB.lproj/Localizable.strings has changed
--- a/Simoleon/Localization/en.xcloc/Source Contents/Simoleon/en.lproj/InfoPlist.strings Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -/* Bundle display name */ -"CFBundleDisplayName" = "Simoleon"; -/* Bundle name */ -"CFBundleName" = "Simoleon";
Binary file Simoleon/Localization/en.xcloc/Source Contents/Simoleon/en.lproj/Localizable.strings has changed
--- a/Simoleon/Localization/en.xcloc/Source Contents/Simoleon/es.lproj/InfoPlist.strings Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -/* Bundle display name */ -"CFBundleDisplayName" = "Simoleon"; -/* Bundle name */ -"CFBundleName" = "Simoleon";
Binary file Simoleon/Localization/en.xcloc/Source Contents/Simoleon/es.lproj/Localizable.strings has changed
--- a/Simoleon/Localization/en.xcloc/Source Contents/Simoleon/fr.lproj/InfoPlist.strings Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -/* Bundle display name */ -"CFBundleDisplayName" = "Simoleon"; -/* Bundle name */ -"CFBundleName" = "Simoleon";
Binary file Simoleon/Localization/en.xcloc/Source Contents/Simoleon/fr.lproj/Localizable.strings has changed
--- a/Simoleon/Localization/en.xcloc/Source Contents/Simoleon/it.lproj/InfoPlist.strings Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -/* Bundle display name */ -"CFBundleDisplayName" = "Simoleon"; -/* Bundle name */ -"CFBundleName" = "Simoleon";
Binary file Simoleon/Localization/en.xcloc/Source Contents/Simoleon/it.lproj/Localizable.strings has changed
--- a/Simoleon/Localization/en.xcloc/Source Contents/Simoleon/ja.lproj/InfoPlist.strings Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -/* Bundle display name */ -"CFBundleDisplayName" = "Simoleon"; -/* Bundle name */ -"CFBundleName" = "Simoleon";
Binary file Simoleon/Localization/en.xcloc/Source Contents/Simoleon/ja.lproj/Localizable.strings has changed
--- a/Simoleon/Localization/en.xcloc/Source Contents/Simoleon/ko.lproj/InfoPlist.strings Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -/* Bundle display name */ -"CFBundleDisplayName" = "Simoleon"; -/* Bundle name */ -"CFBundleName" = "Simoleon";
Binary file Simoleon/Localization/en.xcloc/Source Contents/Simoleon/ko.lproj/Localizable.strings has changed
--- a/Simoleon/Localization/en.xcloc/Source Contents/Simoleon/nl.lproj/InfoPlist.strings Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -/* Bundle display name */ -"CFBundleDisplayName" = "Simoleon"; -/* Bundle name */ -"CFBundleName" = "Simoleon";
Binary file Simoleon/Localization/en.xcloc/Source Contents/Simoleon/nl.lproj/Localizable.strings has changed
--- a/Simoleon/Localization/en.xcloc/Source Contents/Simoleon/pt-PT.lproj/InfoPlist.strings Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -/* Bundle display name */ -"CFBundleDisplayName" = "Simoleon"; -/* Bundle name */ -"CFBundleName" = "Simoleon";
Binary file Simoleon/Localization/en.xcloc/Source Contents/Simoleon/pt-PT.lproj/Localizable.strings has changed
--- a/Simoleon/Localization/en.xcloc/Source Contents/Simoleon/ru.lproj/InfoPlist.strings Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -/* Bundle display name */ -"CFBundleDisplayName" = "Simoleon"; -/* Bundle name */ -"CFBundleName" = "Simoleon";
Binary file Simoleon/Localization/en.xcloc/Source Contents/Simoleon/ru.lproj/Localizable.strings has changed
--- a/Simoleon/Localization/en.xcloc/Source Contents/Simoleon/zh-Hans.lproj/InfoPlist.strings Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -/* Bundle display name */ -"CFBundleDisplayName" = "Simoleon"; -/* Bundle name */ -"CFBundleName" = "Simoleon";
Binary file Simoleon/Localization/en.xcloc/Source Contents/Simoleon/zh-Hans.lproj/Localizable.strings has changed
--- a/Simoleon/Localization/en.xcloc/Source Contents/Simoleon/zh-Hant.lproj/InfoPlist.strings Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -/* Bundle display name */ -"CFBundleDisplayName" = "Simoleon"; -/* Bundle name */ -"CFBundleName" = "Simoleon";
Binary file Simoleon/Localization/en.xcloc/Source Contents/Simoleon/zh-Hant.lproj/Localizable.strings has changed
--- a/Simoleon/Localization/en.xcloc/contents.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -{ - "developmentRegion" : "en", - "project" : "Simoleon.xcodeproj", - "targetLocale" : "en", - "toolInfo" : { - "toolBuildNumber" : "12E507", - "toolID" : "com.apple.dt.xcode", - "toolName" : "Xcode", - "toolVersion" : "12.5.1" - }, - "version" : "1.0" -} \ No newline at end of file
--- a/Simoleon/Models/CurrencyConversion.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -// -// CurrencyConversion.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 26/8/21. -// - -import Foundation - -class CurrencyConversion: ObservableObject { - // Forex pair -> XXX/YYY where XXX = base symbol, YYY = quote symbol - - @Published var baseSymbol = "USD" { - didSet { - getQuote() - } - } - @Published var quoteSymbol = "EUR" { - didSet { - getQuote() - } - } - @Published var quote = CurrencyQuoteModel() - @Published var isShowing = false - @Published var showingAlert = false - - let networkHelper = NetworkHelper() - - init() { - getQuote() - } - - func getQuote() { - self.isShowing = false - let pair = "\(baseSymbol)/\(quoteSymbol)" - let apiKey = readConfig(withKey: "API_KEY")! - let url = "https://api.1forge.com/quotes?pairs=\(pair)&api_key=\(apiKey)" - - try? networkHelper.httpRequest(url: url, model: [CurrencyQuoteModel].self) { response in - if let quote = response.first { - self.quote = quote - } - - self.isShowing = true - } - } -}
--- a/Simoleon/Models/CurrencyModel.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -// -// CurrencyDetailsModel.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 23/8/21. -// - -import Foundation - -struct CurrencyModel: Codable { - var symbol: String - var name: String - var flag: String - var isCrypto: Bool -}
--- a/Simoleon/Models/CurrencyQuoteModel.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -// -// CurrencyQuoteModel.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 15/07/2021. -// - -import Foundation - -struct CurrencyQuoteModel: Codable, Hashable { - var pair: String? - var price: Double? - var bid: Double? - var ask: Double? - var timeStamp: Int? - - private enum CodingKeys: String, CodingKey { - case pair = "s" - case price = "p" - case bid = "b" - case ask = "a" - case timeStamp = "t" - } -}
--- a/Simoleon/Models/FavoritePair+CoreDataClass.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -// -// FavoritePair+CoreDataClass.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 28/8/21. -// -// - -import Foundation -import CoreData - -@objc(FavoritePair) -public class FavoritePair: NSManagedObject { - -}
--- a/Simoleon/Models/FavoritePair+CoreDataProperties.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -// -// FavoritePair+CoreDataProperties.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 28/8/21. -// -// - -import Foundation -import CoreData - - -extension FavoritePair { - - @nonobjc public class func fetchRequest() -> NSFetchRequest<FavoritePair> { - return NSFetchRequest<FavoritePair>(entityName: "FavoritePair") - } - - @NSManaged public var baseSymbol: String - @NSManaged public var quoteSymbol: String - -} - -extension FavoritePair : Identifiable { - -}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Simoleon/Persistence.swift Tue Oct 26 13:09:17 2021 +0200 @@ -0,0 +1,55 @@ +// +// Persistence.swift +// Simoleon +// +// Created by Dennis Concepción Martín on 26/10/21. +// + +import CoreData + +struct PersistenceController { + static let shared = PersistenceController() + + static var preview: PersistenceController = { + let result = PersistenceController(inMemory: true) + let viewContext = result.container.viewContext + for _ in 0..<10 { + let newItem = Item(context: viewContext) + newItem.timestamp = Date() + } + do { + try viewContext.save() + } catch { + // Replace this implementation with code to handle the error appropriately. + // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. + let nsError = error as NSError + fatalError("Unresolved error \(nsError), \(nsError.userInfo)") + } + return result + }() + + let container: NSPersistentCloudKitContainer + + init(inMemory: Bool = false) { + container = NSPersistentCloudKitContainer(name: "Simoleon") + if inMemory { + container.persistentStoreDescriptions.first!.url = URL(fileURLWithPath: "/dev/null") + } + container.loadPersistentStores(completionHandler: { (storeDescription, error) in + if let error = error as NSError? { + // Replace this implementation with code to handle the error appropriately. + // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. + + /* + Typical reasons for an error here include: + * The parent directory does not exist, cannot be created, or disallows writing. + * The persistent store is not accessible, due to permissions or data protection when the device is locked. + * The device is out of space. + * The store could not be migrated to the current model version. + Check the error message to determine what the actual problem was. + */ + fatalError("Unresolved error \(error), \(error.userInfo)") + } + }) + } +}
--- a/Simoleon/Resources/Currencies.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1374 +0,0 @@ -{ - "AED": - { - "symbol": "AED", - "name": "United Arab Emirates Dirham", - "flag": "AE", - "isCrypto": false - }, - "AFN": - { - "symbol": "AFN", - "name": "Afghan Afghani", - "flag": "AF", - "isCrypto": false - }, - "ALL": - { - "symbol": "ALL", - "name": "Albanian Lek", - "flag": "AL", - "isCrypto": false - }, - "AMD": - { - "symbol": "AMD", - "name": "Armenian Dram", - "flag": "AM", - "isCrypto": false - }, - "ANG": - { - "symbol": "ANG", - "name": "Netherlands Antillean Guilder", - "flag": "CW", - "isCrypto": false - }, - "AOA": - { - "symbol": "AOA", - "name": "Angolan Kwanza", - "flag": "AO", - "isCrypto": false - }, - "ARE": - { - "symbol": "ARE", - "name": "Areg", - "flag": "AR", - "isCrypto": false - }, - "ARS": - { - "symbol": "ARS", - "name": "Argentine Peso", - "flag": "AR", - "isCrypto": false - }, - "AUD": - { - "symbol": "AUD", - "name": "Australian Dollar", - "flag": "AU", - "isCrypto": false - }, - "AUN": - { - "symbol": "AUN", - "name": "Australian Nugget", - "flag": "AU", - "isCrypto": false - }, - "AWG": - { - "symbol": "AWG", - "name": "Aruban Florin", - "flag": "AW", - "isCrypto": false - }, - "BAM": - { - "symbol": "BAM", - "name": "Bosnia And Herzegovina Convertible Mark", - "flag": "BA", - "isCrypto": false - }, - "BBD": - { - "symbol": "BBD", - "name": "Barbados Dollar", - "flag": "BB", - "isCrypto": false - }, - "BDT": - { - "symbol": "BDT", - "name": "Bangladeshi Taka", - "flag": "BD", - "isCrypto": false - }, - "BGN": - { - "symbol": "BGN", - "name": "Bulgarian Lev", - "flag": "BG", - "isCrypto": false - }, - "BHD": - { - "symbol": "BHD", - "name": "Bahraini Dinar", - "flag": "BH", - "isCrypto": false - }, - "BIF": - { - "symbol": "BIF", - "name": "Burundian Franc", - "flag": "BI", - "isCrypto": false - }, - "BMD": - { - "symbol": "BMD", - "name": "Bermudian Dollar", - "flag": "BM", - "isCrypto": false - }, - "BND": - { - "symbol": "BND", - "name": "Brunei Dollar", - "flag": "BN", - "isCrypto": false - }, - "BOB": - { - "symbol": "BOB", - "name": "Boliviano", - "flag": "BO", - "isCrypto": false - }, - "BRI": - { - "symbol": "BRI", - "name": "Britannia", - "flag": "BR", - "isCrypto": false - }, - "BRL": - { - "symbol": "BRL", - "name": "Brazilian Real", - "flag": "BR", - "isCrypto": false - }, - "BSD": - { - "symbol": "BSD", - "name": "Bahamian Dollar", - "flag": "BS", - "isCrypto": false - }, - "BTN": - { - "symbol": "BTN", - "name": "Bhutanese Ngultrum", - "flag": "BT", - "isCrypto": false - }, - "BWP": - { - "symbol": "BWP", - "name": "Botswana Pula", - "flag": "BW", - "isCrypto": false - }, - "BYN": - { - "symbol": "BYN", - "name": "Belarusian Ruble", - "flag": "BY", - "isCrypto": false - }, - "BZD": - { - "symbol": "BZD", - "name": "Belize Dollar", - "flag": "BZ", - "isCrypto": false - }, - "CAD": - { - "symbol": "CAD", - "name": "Canadian Dollar", - "flag": "CA", - "isCrypto": false - }, - "CDF": - { - "symbol": "CDF", - "name": "Congolese Franc", - "flag": "CD", - "isCrypto": false - }, - "CHF": - { - "symbol": "CHF", - "name": "Swiss Franc", - "flag": "CH", - "isCrypto": false - }, - "CLF": - { - "symbol": "CLF", - "name": "Chilean Unit Of Account", - "flag": "CL", - "isCrypto": false - }, - "CLP": - { - "symbol": "CLP", - "name": "Chilean Peso", - "flag": "CL", - "isCrypto": false - }, - "CNH": - { - "symbol": "CNH", - "name": "Chinese Yuan", - "flag": "CN", - "isCrypto": false - }, - "CNY": - { - "symbol": "CNY", - "name": "Chinese Yuan", - "flag": "CN", - "isCrypto": false - }, - "COP": - { - "symbol": "COP", - "name": "Colombian Peso", - "flag": "CO", - "isCrypto": false - }, - "CRC": - { - "symbol": "CRC", - "name": "Costa Rican Colon", - "flag": "CR", - "isCrypto": false - }, - "CUP": - { - "symbol": "CUP", - "name": "Cuban Peso", - "flag": "CU", - "isCrypto": false - }, - "CVE": - { - "symbol": "CVE", - "name": "Cape Verde Escudo", - "flag": "CV", - "isCrypto": false - }, - "CYP": - { - "symbol": "CYP", - "name": "Cypriot Pound", - "flag": "CY", - "isCrypto": false - }, - "CZK": - { - "symbol": "CZK", - "name": "Czech Koruna", - "flag": "CZ", - "isCrypto": false - }, - "DJF": - { - "symbol": "DJF", - "name": "Djiboutian Franc", - "flag": "DJ", - "isCrypto": false - }, - "DKK": - { - "symbol": "DKK", - "name": "Danish Krone", - "flag": "DK", - "isCrypto": false - }, - "DOE": - { - "symbol": "DOE", - "name": "Double Eagle", - "flag": "DO", - "isCrypto": false - }, - "DOP": - { - "symbol": "DOP", - "name": "Dominican Peso", - "flag": "DO", - "isCrypto": false - }, - "DZD": - { - "symbol": "DZD", - "name": "Algerian Dinar", - "flag": "DZ", - "isCrypto": false - }, - "EGP": - { - "symbol": "EGP", - "name": "Egyptian Pound", - "flag": "EG", - "isCrypto": false - }, - "ETB": - { - "symbol": "ETB", - "name": "Ethiopian Birr", - "flag": "ET", - "isCrypto": false - }, - "EUR": - { - "symbol": "EUR", - "name": "Euro", - "flag": "EU", - "isCrypto": false - }, - "FJD": - { - "symbol": "FJD", - "name": "Fiji Dollar", - "flag": "FJ", - "isCrypto": false - }, - "FRN": - { - "symbol": "FRN", - "name": "French Napoleon", - "flag": "FR", - "isCrypto": false - }, - "GBP": - { - "symbol": "GBP", - "name": "Pound Sterling", - "flag": "GB", - "isCrypto": false - }, - "GEL": - { - "symbol": "GEL", - "name": "Georgian Lari", - "flag": "GE", - "isCrypto": false - }, - "GHS": - { - "symbol": "GHS", - "name": "Ghanaian Cedi", - "flag": "GH", - "isCrypto": false - }, - "GMD": - { - "symbol": "GMD", - "name": "Gambian Dalasi", - "flag": "GM", - "isCrypto": false - }, - "GNF": - { - "symbol": "GNF", - "name": "Guinean Franc", - "flag": "GN", - "isCrypto": false - }, - "GTQ": - { - "symbol": "GTQ", - "name": "Guatemalan Quetzal", - "flag": "GT", - "isCrypto": false - }, - "GYD": - { - "symbol": "GYD", - "name": "Guyanese Dollar", - "flag": "GY", - "isCrypto": false - }, - "HKD": - { - "symbol": "HKD", - "name": "Hong Kong Dollar", - "flag": "HK", - "isCrypto": false - }, - "HNL": - { - "symbol": "HNL", - "name": "Honduran Lempira", - "flag": "HN", - "isCrypto": false - }, - "HRK": - { - "symbol": "HRK", - "name": "Croatian Kuna", - "flag": "HR", - "isCrypto": false - }, - "HTG": - { - "symbol": "HTG", - "name": "Haitian Gourde", - "flag": "HT", - "isCrypto": false - }, - "HUF": - { - "symbol": "HUF", - "name": "Hungarian Forint", - "flag": "HU", - "isCrypto": false - }, - "IDR": - { - "symbol": "IDR", - "name": "Indonesian Rupiah", - "flag": "ID", - "isCrypto": false - }, - "ILS": - { - "symbol": "ILS", - "name": "Israeli New Shekel", - "flag": "IL", - "isCrypto": false - }, - "INR": - { - "symbol": "INR", - "name": "Indian Rupee", - "flag": "IN", - "isCrypto": false - }, - "IQD": - { - "symbol": "IQD", - "name": "Iraqi Dinar", - "flag": "IQ", - "isCrypto": false - }, - "IRR": - { - "symbol": "IRR", - "name": "Iranian Rial", - "flag": "IR", - "isCrypto": false - }, - "ISK": - { - "symbol": "ISK", - "name": "Icelandic Króna", - "flag": "IS", - "isCrypto": false - }, - "JMD": - { - "symbol": "JMD", - "name": "Jamaican Dollar", - "flag": "JM", - "isCrypto": false - }, - "JOD": - { - "symbol": "JOD", - "name": "Jordanian Dinar", - "flag": "JO", - "isCrypto": false - }, - "JPY": - { - "symbol": "JPY", - "name": "Japanese Yen", - "flag": "JP", - "isCrypto": false - }, - "KES": - { - "symbol": "KES", - "name": "Kenyan Shilling", - "flag": "KE", - "isCrypto": false - }, - "KHR": - { - "symbol": "KHR", - "name": "Cambodian Riel", - "flag": "KH", - "isCrypto": false - }, - "KMF": - { - "symbol": "KMF", - "name": "Comoro Franc", - "flag": "KM", - "isCrypto": false - }, - "KRU": - { - "symbol": "KRU", - "name": "South African Krugerrand", - "flag": "KR", - "isCrypto": false - }, - "KRW": - { - "symbol": "KRW", - "name": "South Korean Won", - "flag": "KR", - "isCrypto": false - }, - "KWD": - { - "symbol": "KWD", - "name": "Kuwaiti Dinar", - "flag": "KW", - "isCrypto": false - }, - "KYD": - { - "symbol": "KYD", - "name": "Cayman Islands Dollar", - "flag": "KY", - "isCrypto": false - }, - "KZT": - { - "symbol": "KZT", - "name": "Kazakhstani Tenge", - "flag": "KZ", - "isCrypto": false - }, - "LAK": - { - "symbol": "LAK", - "name": "Lao Kip", - "flag": "LA", - "isCrypto": false - }, - "LBP": - { - "symbol": "LBP", - "name": "Lebanese Pound", - "flag": "LB", - "isCrypto": false - }, - "LFX": - { - "symbol": "LFX", - "name": "Khazanah Sukuk", - "flag": "MY", - "isCrypto": false - }, - "LKR": - { - "symbol": "LKR", - "name": "Sri Lankan Rupee", - "flag": "LK", - "isCrypto": false - }, - "LRD": - { - "symbol": "LRD", - "name": "Liberian Dollar", - "flag": "LR", - "isCrypto": false - }, - "LSL": - { - "symbol": "LSL", - "name": "Lesotho Loti", - "flag": "LS", - "isCrypto": false - }, - "LTL": - { - "symbol": "LTL", - "name": "Lithuanian Litas", - "flag": "LT", - "isCrypto": false - }, - "LYD": - { - "symbol": "LYD", - "name": "Libyan Dinar", - "flag": "LY", - "isCrypto": false - }, - "M5P": - { - "symbol": "M5P", - "name": "Mexican 50 Peso", - "flag": "MX", - "isCrypto": false - }, - "MAD": - { - "symbol": "MAD", - "name": "Moroccan Dirham", - "flag": "MA", - "isCrypto": false - }, - "MAL": - { - "symbol": "MAL", - "name": "Maple Leaf", - "flag": "MA", - "isCrypto": false - }, - "MDL": - { - "symbol": "MDL", - "name": "Moldovan Leu", - "flag": "MD", - "isCrypto": false - }, - "MGA": - { - "symbol": "MGA", - "name": "Malagasy Ariary", - "flag": "MG", - "isCrypto": false - }, - "MKD": - { - "symbol": "MKD", - "name": "Macedonian Denar", - "flag": "MK", - "isCrypto": false - }, - "MMK": - { - "symbol": "MMK", - "name": "Myanma Kyat", - "flag": "MM", - "isCrypto": false - }, - "MOP": - { - "symbol": "MOP", - "name": "Macanese Pataca", - "flag": "MO", - "isCrypto": false - }, - "MRU": - { - "symbol": "MRU", - "name": "Mauritanian Ouguiya", - "flag": "MR", - "isCrypto": false - }, - "MTL": - { - "symbol": "MTL", - "name": "Maltese Lira", - "flag": "MT", - "isCrypto": false - }, - "MUR": - { - "symbol": "MUR", - "name": "Mauritian Rupee", - "flag": "MU", - "isCrypto": false - }, - "MVR": - { - "symbol": "MVR", - "name": "Maldivian Rufiyaa", - "flag": "MV", - "isCrypto": false - }, - "MWK": - { - "symbol": "MWK", - "name": "Malawian Kwacha", - "flag": "MW", - "isCrypto": false - }, - "MXN": - { - "symbol": "MXN", - "name": "Mexican Peso", - "flag": "MX", - "isCrypto": false - }, - "MYR": - { - "symbol": "MYR", - "name": "Malaysian Ringgit", - "flag": "MY", - "isCrypto": false - }, - "MZN": - { - "symbol": "MZN", - "name": "Mozambican Metical", - "flag": "MZ", - "isCrypto": false - }, - "NAD": - { - "symbol": "NAD", - "name": "Namibian Dollar", - "flag": "NA", - "isCrypto": false - }, - "NBL": - { - "symbol": "NBL", - "name": "Isle Of Man Noble", - "flag": "IM", - "isCrypto": false - }, - "NGN": - { - "symbol": "NGN", - "name": "Nigerian Naira", - "flag": "NG", - "isCrypto": false - }, - "NIO": - { - "symbol": "NIO", - "name": "Nicaraguan Córdoba", - "flag": "NI", - "isCrypto": false - }, - "NOK": - { - "symbol": "NOK", - "name": "Norwegian Krone", - "flag": "NO", - "isCrypto": false - }, - "NPR": - { - "symbol": "NPR", - "name": "Nepalese Rupee", - "flag": "NP", - "isCrypto": false - }, - "NSO": - { - "symbol": "NSO", - "name": "New Sovereign", - "flag": "GB", - "isCrypto": false - }, - "NZD": - { - "symbol": "NZD", - "name": "New Zealand Dollar", - "flag": "NZ", - "isCrypto": false - }, - "OMR": - { - "symbol": "OMR", - "name": "Omani Rial", - "flag": "OM", - "isCrypto": false - }, - "OSO": - { - "symbol": "OSO", - "name": "Old Sovereign", - "flag": "GB", - "isCrypto": false - }, - "PAB": - { - "symbol": "PAB", - "name": "Panamanian Balboa", - "flag": "PA", - "isCrypto": false - }, - "PEN": - { - "symbol": "PEN", - "name": "Peruvian Nuevo Sol", - "flag": "PE", - "isCrypto": false - }, - "PGK": - { - "symbol": "PGK", - "name": "Papua New Guinean Kina", - "flag": "PG", - "isCrypto": false - }, - "PHP": - { - "symbol": "PHP", - "name": "Philippine Peso", - "flag": "PH", - "isCrypto": false - }, - "PKR": - { - "symbol": "PKR", - "name": "Pakistani Rupee", - "flag": "PK", - "isCrypto": false - }, - "PLN": - { - "symbol": "PLN", - "name": "Polish Zloty", - "flag": "PL", - "isCrypto": false - }, - "PYG": - { - "symbol": "PYG", - "name": "Paraguayan Guaraní", - "flag": "PY", - "isCrypto": false - }, - "QAR": - { - "symbol": "QAR", - "name": "Qatari Riyal", - "flag": "QA", - "isCrypto": false - }, - "RON": - { - "symbol": "RON", - "name": "Romanian New Leu", - "flag": "RO", - "isCrypto": false - }, - "RSD": - { - "symbol": "RSD", - "name": "Serbian Dinar", - "flag": "RS", - "isCrypto": false - }, - "RUB": - { - "symbol": "RUB", - "name": "Russian Rouble", - "flag": "RU", - "isCrypto": false - }, - "RWF": - { - "symbol": "RWF", - "name": "Rwandan Franc", - "flag": "RW", - "isCrypto": false - }, - "SAR": - { - "symbol": "SAR", - "name": "Saudi Riyal", - "flag": "SA", - "isCrypto": false - }, - "SBD": - { - "symbol": "SBD", - "name": "Solomon Islands Dollar", - "flag": "SB", - "isCrypto": false - }, - "SCR": - { - "symbol": "SCR", - "name": "Seychelles Rupee", - "flag": "SC", - "isCrypto": false - }, - "SDG": - { - "symbol": "SDG", - "name": "Sudanese Pound", - "flag": "SD", - "isCrypto": false - }, - "SEK": - { - "symbol": "SEK", - "name": "Swedish Krona", - "flag": "SE", - "isCrypto": false - }, - "SGD": - { - "symbol": "SGD", - "name": "Singapore Dollar", - "flag": "SG", - "isCrypto": false - }, - "SHP": - { - "symbol": "SHP", - "name": "Saint Helena Pound", - "flag": "SH", - "isCrypto": false - }, - "SLL": - { - "symbol": "SLL", - "name": "Sierra Leonean Leone", - "flag": "SL", - "isCrypto": false - }, - "SOS": - { - "symbol": "SOS", - "name": "Somali Shilling", - "flag": "SO", - "isCrypto": false - }, - "SRD": - { - "symbol": "SRD", - "name": "Surinamese Dollar", - "flag": "SR", - "isCrypto": false - }, - "STN": - { - "symbol": "STN", - "name": "Sao Tomean Dobra", - "flag": "ST", - "isCrypto": false - }, - "SVC": - { - "symbol": "SVC", - "name": "Salvadoran Colón", - "flag": "SV", - "isCrypto": false - }, - "SZL": - { - "symbol": "SZL", - "name": "Swazi Lilangeni", - "flag": "SZ", - "isCrypto": false - }, - "THB": - { - "symbol": "THB", - "name": "Thai Baht", - "flag": "TH", - "isCrypto": false - }, - "TJS": - { - "symbol": "TJS", - "name": "Tajikistani Somoni", - "flag": "TJ", - "isCrypto": false - }, - "TMT": - { - "symbol": "TMT", - "name": "Turkmenistani Manat", - "flag": "TM", - "isCrypto": false - }, - "TND": - { - "symbol": "TND", - "name": "Tunisian Dinar", - "flag": "TN", - "isCrypto": false - }, - "TOP": - { - "symbol": "TOP", - "name": "Tongan PaʻAnga", - "flag": "TO", - "isCrypto": false - }, - "TRY": - { - "symbol": "TRY", - "name": "Turkish Lira", - "flag": "TR", - "isCrypto": false - }, - "TTD": - { - "symbol": "TTD", - "name": "Trinidad And Tobago Dollar", - "flag": "TT", - "isCrypto": false - }, - "TWD": - { - "symbol": "TWD", - "name": "New Taiwan Dollar", - "flag": "TW", - "isCrypto": false - }, - "TZS": - { - "symbol": "TZS", - "name": "Tanzanian Shilling", - "flag": "TZ", - "isCrypto": false - }, - "UAH": - { - "symbol": "UAH", - "name": "Ukrainian Hryvnia", - "flag": "UA", - "isCrypto": false - }, - "UGX": - { - "symbol": "UGX", - "name": "Ugandan Shilling", - "flag": "UG", - "isCrypto": false - }, - "USD": - { - "symbol": "USD", - "name": "United States Dollar", - "flag": "US", - "isCrypto": false - }, - "UYU": - { - "symbol": "UYU", - "name": "Uruguayan Peso", - "flag": "UY", - "isCrypto": false - }, - "UZS": - { - "symbol": "UZS", - "name": "Uzbekistan Som", - "flag": "UZ", - "isCrypto": false - }, - "VES": - { - "symbol": "VES", - "name": "Venezuelan Bolivar Soberano", - "flag": "VE", - "isCrypto": false - }, - "VND": - { - "symbol": "VND", - "name": "Vietnamese Dong", - "flag": "VN", - "isCrypto": false - }, - "VRL": - { - "symbol": "VRL", - "name": "Vreneli 10F.", - "flag": "CH", - "isCrypto": false - }, - "VRN": - { - "symbol": "VRN", - "name": "Vreneli 20F", - "flag": "CH", - "isCrypto": false - }, - "XAG": - { - "symbol": "XAG", - "name": "Silver (One Troy Ounce)", - "flag": "XAG", - "isCrypto": false - }, - "XAGK": - { - "symbol": "XAGK", - "name": "Silver (Kg)", - "flag": "XAG", - "isCrypto": false - }, - "XAU": - { - "symbol": "XAU", - "name": "Gold (One Troy Ounce)", - "flag": "XAU", - "isCrypto": false - }, - "XAUK": - { - "symbol": "XAUK", - "name": "Gold (Kg)", - "flag": "XAU", - "isCrypto": false - }, - "XCD": - { - "symbol": "XCD", - "name": "East Caribbean Dollar", - "flag": "AI", - "isCrypto": false - }, - "XOF": - { - "symbol": "XOF", - "name": "Cfa Franc Bceao", - "flag": "SN", - "isCrypto": false - }, - "XPD": - { - "symbol": "XPD", - "name": "Palladium (One Troy Ounce)", - "flag": "XPD", - "isCrypto": false - }, - "XPDK": - { - "symbol": "XPDK", - "name": "Palladium (Kg)", - "flag": "XPD", - "isCrypto": false - }, - "XPF": - { - "symbol": "XPF", - "name": "Cfp Franc", - "flag": "PF", - "isCrypto": false - }, - "XPT": - { - "symbol": "XPT", - "name": "Platinum (One Troy Ounce)", - "flag": "XPT", - "isCrypto": false - }, - "XPTK": - { - "symbol": "XPTK", - "name": "Platinum (Kg)", - "flag": "XPT", - "isCrypto": false - }, - "YER": - { - "symbol": "YER", - "name": "Yemeni Rial", - "flag": "YE", - "isCrypto": false - }, - "ZAR": - { - "symbol": "ZAR", - "name": "South African Rand", - "flag": "ZA", - "isCrypto": false - }, - "ZMW": - { - "symbol": "ZMW", - "name": "Zambian Kwacha", - "flag": "ZM", - "isCrypto": false - }, - "ZWD": - { - "symbol": "ZWD", - "name": "Zimbabwe Dollar", - "flag": "ZW", - "isCrypto": false - }, - "DASH": - { - "symbol": "DASH", - "name": "Dash", - "flag": "DASH", - "isCrypto": true - }, - "BTC": - { - "symbol": "BTC", - "name": "Bitcoin", - "flag": "BTC", - "isCrypto": true - }, - "DSH": - { - "symbol": "DSH", - "name": "Dash Coin", - "flag": "DASH", - "isCrypto": true - }, - "LTC": - { - "symbol": "LTC", - "name": "Litecoin", - "flag": "LTC", - "isCrypto": true - }, - "ETH": - { - "symbol": "ETH", - "name": "Ethereum", - "flag": "ETH", - "isCrypto": true - }, - "BCH": - { - "symbol": "BCH", - "name": "Bitcoin Cash", - "flag": "BTC", - "isCrypto": true - }, - "XRP": - { - "symbol": "XRP", - "name": "Xrp Cryptocurrency", - "flag": "XRP", - "isCrypto": true - }, - "XLM": - { - "symbol": "XLM", - "name": "Stellar", - "flag": "XLM", - "isCrypto": true - }, - "ADA": - { - "symbol": "ADA", - "name": "Cardano", - "flag": "ADA", - "isCrypto": true - }, - "UKO": - { - "symbol": "UKO", - "name": "Brent Crude Oil", - "flag": "UKO", - "isCrypto": false - }, - "AAVE": - { - "symbol": "AAVE", - "name": "Aave Token", - "flag": "AAVE", - "isCrypto": true - }, - "UNI": - { - "symbol": "UNI", - "name": "Uniswap", - "flag": "UNI", - "isCrypto": true - }, - "LUNA": - { - "symbol": "LUNA", - "name": "Terra", - "flag": "LUNA", - "isCrypto": true - }, - "XMR": - { - "symbol": "XMR", - "name": "Monero", - "flag": "XMR", - "isCrypto": true - }, - "XDR": - { - "symbol": "XDR", - "name": "Special Drawing Rights", - "flag": "XDR", - "isCrypto": false - }, - "SOL": - { - "symbol": "SOL", - "name": "Solana", - "flag": "SOL", - "isCrypto": true - }, - "DOGE": - { - "symbol": "DOGE", - "name": "Dogecoin", - "flag": "DOGE", - "isCrypto": true - }, - "VET": - { - "symbol": "VET", - "name": "VeChain", - "flag": "VET", - "isCrypto": true - }, - "DOT": - { - "symbol": "DOT", - "name": "Polkadot", - "flag": "DOT", - "isCrypto": true - }, - "USDC": - { - "symbol": "USDC", - "name": "USD Coin", - "flag": "USDC", - "isCrypto": true - }, - "FIL": - { - "symbol": "FIL", - "name": "File Coin", - "flag": "FIL", - "isCrypto": true - }, - "LINK": - { - "symbol": "LINK", - "name": "Chainlink", - "flag": "LINK", - "isCrypto": true - }, - "MATIC": - { - "symbol": "MATIC", - "name": "Polygon", - "flag": "MATIC", - "isCrypto": true - }, - "THETA": - { - "symbol": "THETA", - "name": "Theta", - "flag": "THETA", - "isCrypto": true - }, - "BNB": - { - "symbol": "BNB", - "name": "Binance Coin", - "flag": "BNB", - "isCrypto": true - } -}
--- a/Simoleon/Resources/CurrencyPairsSupported.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2160 +0,0 @@ -[ - "UKO/USD", - "EUR/USD", - "HUF/CHF", - "TWD/SEK", - "GNF/USD", - "DKK/EUR", - "GBP/SGD", - "NPR/USD", - "USD/GTQ", - "PEN/COP", - "AUD/PHP", - "CHF/ISK", - "USD/CLF", - "GBP/SOS", - "ARS/CHF", - "GTQ/GBP", - "CNH/USD", - "EUR/HKD", - "CZK/MXN", - "ILS/NOK", - "TWD/DKK", - "EUR/AOA", - "AUD/SEK", - "DKK/USD", - "SBD/USD", - "ISK/EUR", - "ZAR/PGK", - "EUR/KHR", - "TWD/MYR", - "EUR/HTG", - "VES/GBP", - "COP/DKK", - "ZAR/CDF", - "GBP/BWP", - "VND/JPY", - "GBP/EUR", - "BWP/GBP", - "EUR/CLP", - "NZD/ZAR", - "ANG/USD", - "USD/TRY", - "EUR/SAR", - "SEK/NZD", - "AUD/DKK", - "EUR/IQD", - "ISK/USD", - "CAD/BMD", - "CLP/ZAR", - "ZAR/FJD", - "TRY/CAD", - "AUD/MYR", - "USD/HNL", - "JPY/TRY", - "GBP/RUB", - "ZAR/CAD", - "GBP/BTN", - "INR/PKR", - "XAU/CAD", - "GBP/USD", - "DKK/COP", - "MYR/CNY", - "CAD/HRK", - "GBP/MMK", - "NZD/NOK", - "KRW/SGD", - "EUR/PAB", - "CZK/SEK", - "EUR/YER", - "CHF/ILS", - "SEK/AUD", - "USD/BZD", - "MYR/KRW", - "EUR/NAD", - "GBP/KWD", - "PHP/JPY", - "HKD/TRY", - "EUR/ARS", - "ARE/CHF", - "USD/NGN", - "USD/SDG", - "DOE/CHF", - "CNY/SRD", - "CAD/CHF", - "SGD/EUR", - "TWD/HKD", - "CZK/DKK", - "THB/TWD", - "GBP/COP", - "EUR/AFN", - "INR/SEK", - "ZAR/LAK", - "KRW/EUR", - "PEN/GBP", - "EUR/LSL", - "ETB/GBP", - "EUR/CNH", - "ZMW/ZAR", - "UAH/EUR", - "THB/JPY", - "COP/CLP", - "CAD/VND", - "SGD/USD", - "TOP/USD", - "AUD/HKD", - "USD/MXN", - "RUB/EUR", - "GHS/GBP", - "QAR/USD", - "USD/KYD", - "KRW/RUB", - "GNF/GBP", - "KRW/USD", - "USD/PKR", - "NOK/SGD", - "XAG/CAD", - "PHP/ZAR", - "EUR/BBD", - "INR/MYR", - "JPY/MXN", - "EUR/CUP", - "AUD/CLP", - "TRY/NZD", - "NPR/GBP", - "EUR/GHS", - "CHF/TRY", - "KRU/USD", - "CNY/DKK", - "ZAR/NZD", - "UAH/USD", - "JPY/PKR", - "TZS/USD", - "USD/SRD", - "CNY/MYR", - "DKK/CZK", - "AED/CAD", - "RUB/USD", - "GBP/QAR", - "IDR/INR", - "MXN/TRY", - "DKK/GBP", - "USD/PHP", - "HKD/MXN", - "TRY/AUD", - "DKK/CNY", - "GBP/BSD", - "ZAR/AUD", - "COP/ARS", - "XAU/AUD", - "EUR/INR", - "OMR/PKR", - "NOK/EUR", - "CNH/KRW", - "HKD/PKR", - "CZK/HKD", - "THB/ZAR", - "USD/SEK", - "ANG/GBP", - "SLL/USD", - "GBP/VES", - "SEK/CHF", - "AUD/ARS", - "JPY/SEK", - "MGA/USD", - "CAD/THB", - "GBP/CZK", - "GBP/UYU", - "ISK/GBP", - "USD/PEN", - "MAL/USD", - "ZAR/LKR", - "NOK/RUB", - "NOK/USD", - "ILS/EUR", - "USD/DKK", - "GBP/CNY", - "INR/HKD", - "PLN/CAD", - "GYD/SRD", - "GBP/RON", - "EUR/TND", - "DKK/PLN", - "EUR/AED", - "USD/MYR", - "KES/CHF", - "NZD/SGD", - "HKD/SEK", - "BDT/USD", - "BMD/CAD", - "AMD/USD", - "NSO/CHF", - "JPY/DKK", - "GBP/KRW", - "USD/KES", - "AUD/CNH", - "CNY/HKD", - "JPY/MYR", - "GBP/PYG", - "CHF/MXN", - "HRK/CAD", - "ILS/USD", - "CHF/PKR", - "MAD/USD", - "CNY/CLP", - "EUR/ALL", - "AED/NZD", - "EUR/BAM", - "CAD/ISK", - "USD/LBP", - "HKD/DKK", - "XAG/AUD", - "GBP/PLN", - "HKD/MYR", - "TWD/INR", - "NZD/EUR", - "SGD/CZK", - "JOD/ILS", - "SAR/PKR", - "DOP/USD", - "AED/AUD", - "SGD/GBP", - "TOP/GBP", - "SGD/CNY", - "DKK/HUF", - "QAR/GBP", - "CLP/EUR", - "NGN/JPY", - "EUR/BRL", - "BRL/CAD", - "TRY/CHF", - "KRW/CNY", - "ZAR/EGP", - "CHF/SEK", - "EUR/BGN", - "AUD/INR", - "NZD/USD", - "USD/HKD", - "SGD/KRW", - "ZAR/CHF", - "USD/AOA", - "EUR/MTL", - "USD/KHR", - "DKK/UAH", - "TTD/USD", - "USD/HTG", - "TZS/GBP", - "ZAR/MAD", - "PLN/NZD", - "MXN/SEK", - "JPY/HKD", - "M5P/USD", - "RUB/GBP", - "USD/CLP", - "CLP/USD", - "VND/EUR", - "CHF/DKK", - "CAD/ILS", - "CRC/USD", - "ZAR/SZL", - "GBP/HUF", - "USD/SAR", - "JPY/CLP", - "MXN/PEN", - "ZAR/VND", - "RUB/KRW", - "CHF/MYR", - "SGD/PLN", - "GBP/BND", - "USD/IQD", - "EUR/TWD", - "VRN/CHF", - "PLN/AUD", - "AUD/AED", - "GBP/MGA", - "MXN/DKK", - "JPY/SAR", - "MUR/ZAR", - "NGN/ZAR", - "SLL/GBP", - "GBP/UAH", - "EUR/RWF", - "VRL/CHF", - "EGP/PKR", - "USD/PAB", - "NOK/CZK", - "MGA/GBP", - "USD/YER", - "VND/USD", - "GBP/MOP", - "SEK/ISK", - "GBP/ETB", - "EUR/JPY", - "CLP/COP", - "EUR/OMR", - "HRK/AUD", - "USD/NAD", - "RUB/PLN", - "NOK/GBP", - "USD/ARS", - "DJF/GBP", - "THB/SGD", - "EUR/MWK", - "BDT/GBP", - "HUF/MXN", - "JPY/ARS", - "EUR/BIF", - "COP/BRL", - "BRL/NZD", - "ZMW/USD", - "USD/AFN", - "CZK/AED", - "GBP/GEL", - "ZAR/JOD", - "SGD/HUF", - "USD/LSL", - "EUR/ZMW", - "EUR/JMD", - "USD/CNH", - "AED/CHF", - "CNY/INR", - "MAD/GBP", - "CAD/TRY", - "AUD/BRL", - "ARS/MXN", - "ZAR/THB", - "GBP/DZD", - "XAU/THB", - "CHF/HKD", - "PHP/USD", - "BZD/USD", - "HKD/ARS", - "ZAR/BHD", - "ZAR/XOF", - "MYR/CAD", - "AUD/BGN", - "BRL/AUD", - "AFN/USD", - "NOK/PLN", - "BIF/USD", - "EUR/ZAR", - "THB/EUR", - "CHF/CLP", - "MXN/HKD", - "LFX/JPY", - "SEK/ILS", - "USD/BBD", - "DOP/GBP", - "USD/CUP", - "USD/GHS", - "HUF/SEK", - "NZD/CZK", - "MXN/CLP", - "EUR/NPR", - "XCD/GBP", - "TWD/JPY", - "NZD/GBP", - "ILS/PLN", - "THB/USD", - "NZD/CNY", - "AUD/TWD", - "EUR/NOK", - "SZL/CHF", - "TMT/USD", - "PLN/CHF", - "TTD/GBP", - "PEN/CAD", - "USD/INR", - "NZD/KRW", - "HUF/DKK", - "EUR/LYD", - "MKD/USD", - "RSD/EUR", - "CLP/GBP", - "CLP/CNY", - "AUD/JPY", - "CHF/ARS", - "MZN/ZAR", - "ARS/PEN", - "CRC/GBP", - "JPY/INR", - "NOK/HUF", - "FRN/CHF", - "EUR/UGX", - "GBP/XPF", - "LYD/USD", - "EUR/IDR", - "CAD/MXN", - "MXN/ARS", - "CAD/KYD", - "NZD/PLN", - "CAD/PKR", - "TWD/ZAR", - "SEK/TRY", - "MYR/NZD", - "GBP/MKD", - "USD/TND", - "USD/AED", - "HKD/INR", - "VND/GBP", - "CHF/CNH", - "EUR/TZS", - "AED/BHD", - "COP/ZAR", - "NBL/USD", - "CNY/BGN", - "USD/ANG", - "ZAR/MUR", - "KWD/PKR", - "JPY/AED", - "DKK/CAD", - "GBP/PGK", - "CZK/JPY", - "EUR/BYN", - "ZAR/ILS", - "MYR/AUD", - "PKR/JPY", - "GBP/CDF", - "BRL/CHF", - "AUD/ZAR", - "USD/ALL", - "USD/BAM", - "BND/USD", - "INR/TWD", - "GBP/SCR", - "OMR/AED", - "CAD/SEK", - "HKD/AED", - "HUF/HKD", - "ISK/CAD", - "CNY/TWD", - "GBP/FJD", - "PHP/GBP", - "NZD/HUF", - "INR/JPY", - "GBP/CAD", - "CAD/PEN", - "AFN/GBP", - "GBP/DJF", - "USD/KMF", - "AUD/NOK", - "USD/BRL", - "ARS/HKD", - "CHF/INR", - "GBP/MDL", - "CAD/DKK", - "CNY/JPY", - "MUR/EUR", - "USD/BGN", - "CAD/MYR", - "CZK/ZAR", - "JPY/BRL", - "ARS/CLP", - "PKR/ZAR", - "SEK/MXN", - "GBP/MVR", - "GBP/CRC", - "THB/CNY", - "ZAR/TRY", - "AUD/IDR", - "XAU/TRY", - "AWG/SRD", - "MUR/USD", - "GBP/LAK", - "PGK/USD", - "EUR/SGD", - "NGN/USD", - "HKD/BRL", - "DKK/NZD", - "CHF/AED", - "THB/KRW", - "BWP/CHF", - "USD/TWD", - "CZK/NOK", - "MKD/GBP", - "INR/ZAR", - "TOP/FJD", - "LKR/ZAR", - "EUR/SOS", - "SGD/CAD", - "USD/AWG", - "USD/RWF", - "MXN/AED", - "MDL/EUR", - "GBP/BOB", - "JPY/TWD", - "CNY/ZAR", - "BBD/EUR", - "DKK/AUD", - "KRW/CAD", - "USD/JPY", - "LYD/GBP", - "USD/OMR", - "BSD/USD", - "MYR/CHF", - "EUR/BWP", - "ZAR/NGN", - "GBP/NZD", - "GBP/LFX", - "CAD/HKD", - "USD/MWK", - "HKD/TWD", - "RUB/CAD", - "MDL/USD", - "USD/BIF", - "BBD/USD", - "CAD/CLP", - "SEK/DKK", - "USD/ZMW", - "USD/JMD", - "CHF/BRL", - "XPTK/CHF", - "EUR/RUB", - "EUR/BTN", - "GBP/AUD", - "HKD/JPY", - "XAG/TRY", - "PLN/ILS", - "EUR/MMK", - "TRY/MXN", - "CAD/SAR", - "BND/GBP", - "ZAR/MXN", - "TWD/SGD", - "XAU/MXN", - "MXN/BRL", - "USD/ZAR", - "EUR/KWD", - "ZAR/PKR", - "AED/TRY", - "GBP/GYD", - "GBP/LKR", - "NOK/CAD", - "JPY/ZAR", - "GBP/GNF", - "UGX/ZAR", - "GBP/DOP", - "BGN/USD", - "SGD/NZD", - "TOP/NZD", - "USD/NPR", - "EUR/COP", - "PAB/USD", - "AUD/SGD", - "GBP/TOP", - "CAD/ARS", - "CHF/TWD", - "LRD/USD", - "CYP/ZAR", - "KRW/NZD", - "USD/IRR", - "ZAR/PHP", - "USD/NOK", - "TWD/EUR", - "GBP/BDT", - "OMR/ZAR", - "HKD/ZAR", - "MZN/USD", - "AUN/USD", - "TRY/SEK", - "ILS/CAD", - "ZAR/SEK", - "SGD/AUD", - "TOP/AUD", - "JPY/NOK", - "SCR/USD", - "CHF/JPY", - "USD/LYD", - "MYR/THB", - "HUF/AED", - "SEK/HKD", - "GBP/BMD", - "DKK/CHF", - "KRW/AUD", - "CAD/CNH", - "BRL/ILS", - "MUR/GBP", - "PGK/GBP", - "BHD/PKR", - "EUR/AMD", - "NGN/GBP", - "PLN/TRY", - "TWD/USD", - "AUD/EUR", - "MXN/JPY", - "USD/UGX", - "GBP/HRK", - "USD/IDR", - "UYU/EUR", - "TRY/DKK", - "XAG/MXN", - "SAR/JPY", - "HKD/NOK", - "COP/USD", - "CZK/SGD", - "ZAR/DKK", - "RUB/AUD", - "EUR/QAR", - "ZAR/MYR", - "ISK/CHF", - "USD/TZS", - "BAM/USD", - "BRI/USD", - "AED/MXN", - "ZAR/KES", - "GBP/EGP", - "AUD/RUB", - "NZD/CAD", - "AUD/USD", - "BSD/GBP", - "EUR/BSD", - "USD/GMD", - "GBP/CHF", - "AED/PKR", - "UYU/USD", - "EUR/RSD", - "NOK/NZD", - "CHF/ZAR", - "USD/BYN", - "GBP/MAD", - "JOD/AED", - "INR/SGD", - "MDL/GBP", - "CZK/EUR", - "CLP/CAD", - "BBD/GBP", - "ZAR/LBP", - "EUR/CZK", - "EUR/UYU", - "CAD/INR", - "PKR/EUR", - "MXN/ZAR", - "GBP/SZL", - "GBP/XCD", - "CNY/SGD", - "GBP/VND", - "NOK/AUD", - "EUR/GBP", - "IDR/KRW", - "EUR/CNY", - "EUR/MRU", - "EUR/RON", - "ARS/BRL", - "CHF/NOK", - "XPT/EUR", - "AED/SEK", - "CZK/USD", - "EGP/JPY", - "EUR/KRW", - "PLN/MXN", - "GBP/LRD", - "PKR/USD", - "TRY/HKD", - "VND/CAD", - "INR/EUR", - "CNH/THB", - "EUR/PYG", - "SEK/CNH", - "ZAR/HKD", - "XAU/HKD", - "MXN/NOK", - "DKK/THB", - "CAD/AED", - "ILS/AUD", - "BMD/KYD", - "ZAR/KHR", - "GBP/SLL", - "SGD/CHF", - "MAD/AUD", - "CNY/EUR", - "SHP/USD", - "GBP/SVC", - "BGN/CNY", - "GBP/KZT", - "ZAR/CLP", - "RON/ZAR", - "AED/DKK", - "KRW/CHF", - "XPT/USD", - "KWD/AED", - "LRD/GBP", - "EUR/PLN", - "INR/USD", - "KRU/CHF", - "ZAR/SAR", - "LKR/USD", - "HUF/JPY", - "XAU/SAR", - "NZD/LFX", - "USD/SGD", - "GBP/JOD", - "RUB/CHF", - "CNY/USD", - "SCR/GBP", - "GBP/THB", - "PLN/SEK", - "JPY/SGD", - "EGP/ZAR", - "USD/SOS", - "GBP/BHD", - "ARS/JPY", - "NZD/AUD", - "DKK/ISK", - "TWD/CNY", - "SEK/INR", - "ZAR/NAD", - "BRL/MXN", - "GBP/NIO", - "ZAR/ARS", - "CAD/BRL", - "XAU/ARS", - "USD/BWP", - "KHR/USD", - "USD/EUR", - "HKD/SGD", - "TWD/KRW", - "PLN/DKK", - "CLP/AUD", - "AUD/CZK", - "XPD/EUR", - "CAD/BGN", - "XAG/HKD", - "BAM/GBP", - "MAL/CHF", - "EUR/HUF", - "JPY/EUR", - "HUF/ZAR", - "AUD/GBP", - "THB/CAD", - "AUD/CNY", - "NOK/CHF", - "EUR/BND", - "BRL/SRD", - "LTL/AUD", - "UYU/GBP", - "AUD/RON", - "OSO/USD", - "EUR/MGA", - "ZAR/LSL", - "XPF/USD", - "KYD/EUR", - "AED/HKD", - "NZD/TOP", - "GBP/ISK", - "ZAR/CNH", - "USD/RUB", - "USD/BTN", - "SEK/AED", - "AUD/KRW", - "EUR/MZN", - "EUR/UAH", - "USD/MMK", - "XPD/USD", - "XAG/SAR", - "ARS/ZAR", - "SGD/THB", - "EUR/MOP", - "HKD/EUR", - "EUR/ETB", - "JPY/RUB", - "JPY/USD", - "CAD/TWD", - "BRL/SEK", - "UGX/USD", - "KRW/THB", - "USD/KWD", - "ILS/CHF", - "TJS/USD", - "GBP/TTD", - "AED/SAR", - "KYD/USD", - "ZAR/GHS", - "BRL/PEN", - "PHP/NZD", - "AUD/PLN", - "CZK/GBP", - "CHF/SGD", - "CAD/JPY", - "OMR/USD", - "PKR/GBP", - "HKD/USD", - "USD/COP", - "XAG/ARS", - "EUR/GEL", - "MWK/ZAR", - "GBP/MUR", - "PLN/HKD", - "MXN/SGD", - "EUR/DZD", - "PHP/AUD", - "ZAR/INR", - "USD/TMT", - "XAU/INR", - "GYD/USD", - "GBP/ILS", - "XPT/GBP", - "NZD/CHF", - "INR/GBP", - "INR/CNY", - "CHF/BWP", - "THB/NZD", - "LKR/GBP", - "CHF/EUR", - "USD/CVE", - "USD/AMD", - "USD/SBD", - "M5P/CHF", - "CZK/PLN", - "CNY/GBP", - "MYR/PKR", - "INR/KRW", - "CLP/CHF", - "CAD/ZAR", - "MXN/EUR", - "AUD/HUF", - "MMK/USD", - "USD/QAR", - "DKK/TRY", - "GBP/GTQ", - "ZAR/TND", - "ZAR/AED", - "THB/AUD", - "SAR/EUR", - "CNY/KRW", - "CHF/RUB", - "CHF/USD", - "ILS/JOD", - "USD/BSD", - "KHR/GBP", - "USD/RSD", - "MXN/RUB", - "TND/ZAR", - "MXN/USD", - "PEN/MXN", - "BRL/HKD", - "CAD/NOK", - "USD/VES", - "SAR/USD", - "SEK/JPY", - "USD/CZK", - "USD/UYU", - "XAG/INR", - "GBP/TRY", - "BRL/CLP", - "XPF/GBP", - "KMF/USD", - "NOK/ISK", - "CZK/HUF", - "USD/GBP", - "USD/CNY", - "JPY/CZK", - "SAR/KWD", - "XPD/GBP", - "USD/MRU", - "GBP/HNL", - "EUR/MKD", - "EUR/UZS", - "USD/RON", - "AED/INR", - "TRY/BRL", - "MYR/DKK", - "JPY/GBP", - "USD/KRW", - "ZAR/BRL", - "JPY/CNY", - "XAUK/CHF", - "UGX/GBP", - "MXN/COP", - "XAU/BRL", - "JPY/RON", - "USD/PYG", - "NZD/THB", - "GBP/BZD", - "HUF/SGD", - "KYD/GBP", - "EGP/EUR", - "RON/USD", - "EUR/PGK", - "HKD/CZK", - "JPY/KRW", - "EUR/CDF", - "DKK/MXN", - "PYG/ZAR", - "GBP/NGN", - "BMD/BBD", - "OMR/GBP", - "HKD/GBP", - "SEK/ZAR", - "HKD/CNY", - "BRL/ARS", - "DKK/PKR", - "EUR/SCR", - "ARS/SGD", - "USD/PLN", - "EGP/USD", - "SGD/TRY", - "HKD/KRW", - "EUR/FJD", - "GYD/GBP", - "NOK/ILS", - "JPY/PLN", - "ZAR/TWD", - "EUR/CAD", - "HUF/EUR", - "KES/ZAR", - "CNH/PHP", - "EUR/DJF", - "THB/CHF", - "EUR/MDL", - "ZAR/RWF", - "SEK/NOK", - "DKK/PHP", - "GBP/MXN", - "TRY/JPY", - "ANG/SRD", - "FJD/USD", - "GBP/KYD", - "ZAR/JPY", - "GBP/PKR", - "XAU/JPY", - "ZAR/OMR", - "ARS/EUR", - "DKK/SEK", - "HKD/PLN", - "MYR/HKD", - "CHF/CZK", - "XAG/BRL", - "EUR/MVR", - "HUF/USD", - "MMK/GBP", - "EUR/CRC", - "ISK/XDR", - "BGN/CAD", - "ZAR/MWK", - "GBP/SRD", - "CHF/GBP", - "PLN/AED", - "CHF/CNY", - "PGK/AUD", - "EUR/LAK", - "USD/HUF", - "MXN/CZK", - "CHF/RON", - "USD/BND", - "GBP/PHP", - "ARS/USD", - "NIO/USD", - "ISK/SEK", - "USD/MGA", - "ZAR/ZMW", - "CHF/KRW", - "MXN/GBP", - "JPY/HUF", - "DKK/MYR", - "USD/MZN", - "GBP/SEK", - "USD/UAH", - "NBL/CHF", - "CAD/SGD", - "EUR/BOB", - "TRY/ZAR", - "USD/MOP", - "NOK/TRY", - "AUD/PGK", - "USD/ETB", - "ZAR/CYP", - "KMF/GBP", - "SGD/MXN", - "XAU/ZAR", - "TWD/CAD", - "GBP/PEN", - "ISK/DKK", - "HKD/HUF", - "JOD/USD", - "SGD/PKR", - "PEN/CLP", - "EUR/NZD", - "CHF/PLN", - "QAR/PKR", - "EUR/LFX", - "COP/CAD", - "GBP/DKK", - "ARS/COP", - "MWK/USD", - "XAG/JPY", - "ZAR/NPR", - "GBP/MYR", - "AUD/FJD", - "TRY/NOK", - "MXN/PLN", - "USD/GEL", - "CAD/EUR", - "RON/GBP", - "RUB/MXN", - "GBP/KES", - "ZAR/NOK", - "AUD/CAD", - "EUR/AUD", - "AED/JPY", - "USD/DZD", - "KWD/EUR", - "ALL/EUR", - "MYR/CNH", - "CNH/HKD", - "ARE/USD", - "SGD/SEK", - "DKK/HKD", - "DOE/USD", - "GBP/LBP", - "CAD/RUB", - "CAD/USD", - "EUR/GYD", - "PEN/ARS", - "KRW/SEK", - "YER/USD", - "EUR/LKR", - "ZAR/UGX", - "EUR/GNF", - "CHF/HUF", - "BGN/AUD", - "KWD/USD", - "EUR/DOP", - "DZD/EUR", - "NZD/TRY", - "XAG/ZAR", - "ALL/USD", - "CAD/KWD", - "NOK/MXN", - "SGD/DKK", - "RUB/SEK", - "CZK/CAD", - "FJD/GBP", - "SEK/SGD", - "ZAR/TZS", - "HUF/CZK", - "SGD/MYR", - "TND/USD", - "MXN/HUF", - "BOB/USD", - "TWD/NZD", - "EUR/BDT", - "GBP/HKD", - "AED/ZAR", - "PLN/JPY", - "KRW/MYR", - "HUF/GBP", - "CAD/COP", - "GBP/KHR", - "DZD/USD", - "UAH/DKK", - "GBP/HTG", - "MYR/INR", - "EUR/BMD", - "GBP/CLP", - "RUB/DKK", - "HTG/USD", - "TWD/AUD", - "INR/CAD", - "ARS/GBP", - "AUD/NZD", - "USD/XPF", - "NIO/GBP", - "EUR/HRK", - "SEK/EUR", - "GBP/SAR", - "AUD/LFX", - "EUR/TJS", - "AED/NOK", - "GBP/IQD", - "BTN/USD", - "NOK/SEK", - "CNY/CAD", - "USD/MKD", - "USD/UZS", - "AWG/USD", - "SZL/ZAR", - "GBP/PAB", - "EUR/EGP", - "HUF/PLN", - "MVR/USD", - "GBP/YER", - "PYG/USD", - "PLN/ZAR", - "KES/EUR", - "HNL/USD", - "EUR/CHF", - "SEK/RUB", - "SEK/USD", - "IQD/USD", - "USD/PGK", - "SGD/HKD", - "NZD/MXN", - "NOK/DKK", - "GBP/ARS", - "EUR/MAD", - "USD/CDF", - "MWK/GBP", - "ILS/SEK", - "BRL/JPY", - "NZD/PKR", - "KRW/HKD", - "CZK/NZD", - "USD/SCR", - "SVC/USD", - "EUR/SZL", - "TRY/SGD", - "CLP/MXN", - "KES/USD", - "EUR/VND", - "GBP/AFN", - "XCD/SRD", - "ZAR/SGD", - "PLN/NOK", - "NSO/USD", - "USD/FJD", - "GBP/LSL", - "AUD/TOP", - "GBP/CNH", - "CAD/CZK", - "USD/CAD", - "TTD/SRD", - "CZK/AUD", - "NZD/PHP", - "EUR/LRD", - "USD/MDL", - "CAD/GBP", - "INR/NZD", - "CAD/CNY", - "CNH/INR", - "JPY/CAD", - "YER/GBP", - "AUN/CHF", - "CAD/RON", - "NZD/SEK", - "DKK/INR", - "EUR/SLL", - "GBP/BBD", - "TRY/EUR", - "KYD/CAD", - "RWF/ZAR", - "LBP/USD", - "KWD/GBP", - "EUR/SVC", - "CAD/KRW", - "GBP/CUP", - "LSL/USD", - "CNY/NZD", - "ALL/GBP", - "BRL/ZAR", - "ZAR/BWP", - "EUR/KZT", - "USD/MVR", - "ZAR/EUR", - "GBP/GHS", - "XAU/EUR", - "USD/CRC", - "SGD/ARS", - "INR/AUD", - "TWD/CHF", - "AUD/HRK", - "HKD/CAD", - "TND/GBP", - "BYN/USD", - "BOB/GBP", - "XPDK/CHF", - "USD/LAK", - "NOK/HKD", - "EUR/JOD", - "NZD/DKK", - "CNY/AUD", - "TRY/USD", - "NZD/MYR", - "CLP/PEN", - "ZAR/RUB", - "ZAR/BTN", - "EUR/THB", - "CAD/PLN", - "XAU/RUB", - "DKK/AED", - "ZAR/USD", - "GBP/INR", - "XAU/USD", - "PEN/BRL", - "ZAR/MMK", - "SGD/CNH", - "EUR/BHD", - "MYR/TWD", - "BRI/CHF", - "HTG/GBP", - "USD/BOB", - "AUD/CHF", - "ZAR/KWD", - "AUD/MAD", - "EUR/NIO", - "BTN/GBP", - "MYR/JPY", - "BHD/EUR", - "AED/SGD", - "USD/NZD", - "SEK/CZK", - "AWG/GBP", - "GBP/TND", - "GBP/AED", - "ZAR/COP", - "JPY/NZD", - "HNL/GBP", - "CHF/CAD", - "SEK/GBP", - "IQD/GBP", - "XAG/EUR", - "GBP/ANG", - "EUR/ISK", - "BWP/ZAR", - "USD/AUD", - "USD/STN", - "BHD/USD", - "CZK/CHF", - "CAD/HUF", - "JMD/EUR", - "MXN/CAD", - "THB/PKR", - "SGD/INR", - "AED/EUR", - "NZD/HKD", - "SOS/USD", - "JPY/AUD", - "HKD/NZD", - "GBP/ALL", - "SVC/GBP", - "DKK/BGN", - "GBP/BAM", - "KRW/INR", - "XAG/RUB", - "XAG/USD", - "USD/GYD", - "EUR/TTD", - "TWD/THB", - "MYR/ZAR", - "PLN/SGD", - "XAGK/CHF", - "USD/LKR", - "NOK/CNH", - "USD/GNF", - "JMD/USD", - "USD/DOP", - "UZS/USD", - "PHP/DKK", - "INR/CHF", - "HKD/AUD", - "SEK/PLN", - "ZAR/QAR", - "AED/USD", - "USD/TOP", - "GBP/KMF", - "GBP/BRL", - "CNH/TWD", - "SGD/AED", - "EUR/MUR", - "CNY/CHF", - "QAR/AED", - "AUD/THB", - "DKK/TWD", - "USD/BDT", - "GBP/BGN", - "LSL/GBP", - "SZL/EUR", - "EUR/ILS", - "GBP/MTL", - "PLN/EUR", - "CNH/JPY", - "BYN/GBP", - "TRY/CZK", - "DKK/JPY", - "BMD/EUR", - "ETB/ZAR", - "CHF/NZD", - "ZAR/CZK", - "ZAR/UYU", - "CHF/LFX", - "MOP/USD", - "USD/HRK", - "TRY/GBP", - "THB/MYR", - "NOK/INR", - "ZAR/GBP", - "USD/TJS", - "HRK/EUR", - "XAU/GBP", - "ZAR/CNY", - "SZL/USD", - "GHS/ZAR", - "XAU/CNY", - "MXN/NZD", - "GBP/TWD", - "EUR/GTQ", - "KYD/BMD", - "PLN/USD", - "ZAR/RON", - "CLP/ARS", - "BRL/SGD", - "SEK/HUF", - "CHF/AUD", - "LAK/USD", - "ISK/JPY", - "GBP/AWG", - "CUP/USD", - "GBP/RWF", - "ZAR/KRW", - "OSO/CHF", - "XAU/KRW", - "USD/EGP", - "NZD/CNH", - "SGD/BRL", - "ZAR/PYG", - "USD/CHF", - "GBP/JPY", - "GBP/OMR", - "KZT/USD", - "MXN/AUD", - "HRK/USD", - "KRW/BRL", - "USD/MAD", - "HUF/CAD", - "JPY/CHF", - "NOK/AED", - "DKK/ZAR", - "TRY/PLN", - "GBP/MWK", - "EUR/TRY", - "BRL/EUR", - "GBP/BIF", - "ZAR/PLN", - "INR/THB", - "USD/SZL", - "USD/XCD", - "USD/VND", - "ARS/CAD", - "EUR/HNL", - "GBP/ZMW", - "GBP/JMD", - "CNY/THB", - "HKD/CHF", - "THB/HKD", - "SOS/GBP", - "SGD/TWD", - "ILS/AED", - "USD/LRD", - "RWF/USD", - "DKK/NOK", - "BRL/RUB", - "XAG/GBP", - "BRL/USD", - "XAG/CNY", - "KRW/TWD", - "EUR/BZD", - "NZD/INR", - "GBP/ZAR", - "AUD/ILS", - "AED/CZK", - "USD/SLL", - "AUD/LTL", - "CDF/USD", - "SGD/JPY", - "JMD/GBP", - "USD/SVC", - "XAG/KRW", - "EUR/NGN", - "USD/KZT", - "AED/GBP", - "KRW/JPY", - "TRY/HUF", - "GBP/NPR", - "CNH/IDR", - "ISK/NOK", - "ZAR/HUF", - "USD/JOD", - "GBP/NOK", - "BRL/COP", - "ZAR/MGA", - "NZD/AED", - "RUB/JPY", - "HUF/NZD", - "USD/THB", - "VES/EUR", - "ZAR/MZN", - "USD/BHD", - "USD/XOF", - "EUR/MXN", - "BWP/EUR", - "GBP/LYD", - "EUR/KYD", - "ZAR/ETB", - "JPY/THB", - "PLN/CZK", - "EUR/PKR", - "GTQ/USD", - "BBD/SRD", - "AED/PLN", - "MXN/CHF", - "USD/NIO", - "SGD/ZAR", - "SZL/GBP", - "HUF/AUD", - "GBP/UGX", - "QAR/ZAR", - "PLN/GBP", - "CHF/SZL", - "KRW/ZAR", - "AUD/TRY", - "VES/USD", - "EUR/SRD", - "MYR/EUR", - "LAK/GBP", - "ZWD/GBP", - "BWP/USD", - "BMD/GBP", - "HKD/THB", - "XOF/ZAR", - "GBP/TZS", - "EUR/PHP", - "NOK/JPY", - "ARS/AUD", - "TZS/ZAR", - "KZT/GBP", - "USD/ISK", - "RUB/ZAR", - "FJD/TOP", - "SGD/NOK", - "NZD/BRL", - "EUR/SEK", - "BDT/JPY", - "GBP/BYN", - "MYR/USD", - "JPY/ISK", - "RON/CHF", - "EUR/PEN", - "ILS/JPY", - "CLP/BRL", - "BRL/VES", - "IDR/MYR", - "USD/TTD", - "AED/HUF", - "CZK/TRY", - "PEN/EUR", - "EUR/DKK", - "MGA/ZAR", - "SGD/IDR", - "EUR/MYR", - "RWF/GBP", - "TWD/PKR", - "COP/MXN", - "BRL/GBP", - "THB/INR", - "NOK/ZAR", - "DKK/SGD", - "GHS/EUR", - "EUR/KES", - "CAD/NZD", - "CHF/THB", - "NZD/TWD", - "USD/MUR", - "CAD/LFX", - "XDR/ISK", - "SEK/CAD", - "CDF/GBP", - "PEN/USD", - "BRL/KRW", - "ETB/USD", - "AUD/MXN", - "USD/ILS", - "BGN/DKK", - "NZD/JPY", - "AUD/PKR", - "EUR/LBP", - "CAD/AUD", - "GHS/USD", - "JPY/ILS", - "ILS/ZAR", - "PLN/HUF", - "MAD/ZAR", - "MTL/GBP", - "USD/BTC", - "BTC/USD", - "BTC/ETH", - "ETH/BTC", - "ETH/USD", - "USD/ETH", - "BTC/LTC", - "LTC/BTC", - "LTC/USD", - "USD/LTC", - "XRP/USD", - "USD/XRP", - "XRP/BTC", - "BTC/XRP", - "DSH/USD", - "USD/DSH", - "DSH/BTC", - "BTC/DASH", - "BCH/USD", - "USD/BCH", - "BCH/BTC", - "BTC/BCH", - "DASH/BTC", - "EUR/BTC", - "EUR/ETH", - "EUR/BCH", - "USD/DASH", - "TRY/RUB", - "TRY/BTC", - "BTC/EUR", - "BTC/JPY", - "BTC/GBP", - "BTC/SGD", - "BTC/RUB", - "BTC/TRY", - "BTC/ZAR", - "BTC/PLN", - "ETH/EUR", - "ETH/JPY", - "ETH/GBP", - "ETH/CAD", - "ETH/CHF", - "ETH/SGD", - "ETH/RUB", - "ETH/TRY", - "ETH/ZAR", - "ETH/PLN", - "ETH/LTC", - "ETH/XRP", - "ETH/DASH", - "ETH/BCH", - "LTC/EUR", - "LTC/GBP", - "LTC/RUB", - "LTC/ETH", - "LTC/BCH", - "XRP/EUR", - "XRP/JPY", - "XRP/GBP", - "XRP/CAD", - "XRP/RUB", - "XRP/TRY", - "XRP/ETH", - "XRP/BCH", - "DASH/EUR", - "DASH/RUB", - "DASH/ETH", - "DASH/BCH", - "BCH/EUR", - "BCH/GBP", - "BCH/RUB", - "BCH/ETH", - "XAU/CHF", - "CNH/TRY", - "BTC/AUD", - "MXN/XRP", - "BNB/XAG", - "MXN/BCH", - "BTC/NOK", - "DSH/RUB", - "DSH/AUD", - "LTC/ZAR", - "PLN/DSH", - "USD/ZWD", - "SGD/LTC", - "DOT/XAU", - "XRP/SGD", - "BTC/DKK", - "XAU/SEK", - "XMR/XAU", - "NZD/BCH", - "CAD/BCH", - "SEK/LTC", - "XRP/HKD", - "DKK/BTC", - "JPY/DSH", - "BTC/CNH", - "ETH/DKK", - "PLN/XAG", - "BCH/HKD", - "DSH/XRP", - "XAU/XAG", - "NOK/XAU", - "XPT/NZD", - "TRY/BCH", - "XRP/DKK", - "CNH/DKK", - "XAG/BTC", - "LTC/CNH", - "ETH/NZD", - "NZD/ETH", - "DSH/CAD", - "CAD/DSH", - "PLN/BCH", - "XAG/XAU", - "SEK/XAG", - "AUD/DSH", - "CNH/DSH", - "SEK/ETH", - "SOL/XAU", - "CNH/PLN", - "CHF/BTC", - "XAU/DKK", - "SGD/BCH", - "DSH/SEK", - "CNH/BCH", - "RUB/NZD", - "LTC/SGD", - "DSH/CHF", - "DKK/ETH", - "RUB/CNH", - "VET/XAU", - "NZD/XAG", - "BCH/NZD", - "NZD/XRP", - "DSH/DKK", - "SEK/XAU", - "XPD/AUD", - "LTC/NOK", - "XRP/LTC", - "LTC/NZD", - "RUB/DSH", - "XAU/PLN", - "HKD/BTC", - "XAG/SEK", - "TRY/DSH", - "DKK/CNH", - "BCH/TRY", - "LTC/MXN", - "ZAR/DSH", - "BTC/HKD", - "JPY/LTC", - "XRP/XAG", - "XPD/NZD", - "NZD/DSH", - "SEK/BTC", - "ZAR/BCH", - "BCH/ZAR", - "AAVE/XAU", - "NZD/LTC", - "ETH/XAU", - "CNH/XAG", - "LTC/XRP", - "LTC/DKK", - "UNI/XAU", - "XMR/XAG", - "HKD/ETH", - "DSH/TRY", - "BTC/NZD", - "BTC/XAG", - "DSH/NOK", - "NZD/XPT", - "ZAR/XRP", - "GBP/DSH", - "HKD/RUB", - "ILS/PLN", - "LTC/XAU", - "FIL/XAG", - "USDC/XAU", - "CHF/XAG", - "XPT/AUD", - "LUNA/XAG", - "FIL/XAU", - "SEK/DSH", - "XAU/LTC", - "SEK/BCH", - "NOK/LTC", - "ETH/SEK", - "ETH/NOK", - "XAG/XRP", - "LUNA/XAU", - "SEK/XRP", - "CHF/LTC", - "SGD/RUB", - "ETH/DSH", - "NOK/XAG", - "SGD/XRP", - "XRP/XAU", - "HKD/DSH", - "BCH/CAD", - "LTC/TRY", - "CNH/LTC", - "LTC/JPY", - "TRY/LTC", - "SGD/XAU", - "BCH/NOK", - "XAU/SGD", - "CAD/BTC", - "SGD/DSH", - "MXN/BTC", - "DSH/EUR", - "CNH/XRP", - "ADA/XAU", - "DSH/HKD", - "XAG/DSH", - "XAG/CNH", - "XAG/PLN", - "BCH/XAU", - "CHF/DSH", - "CNH/MXN", - "XAG/NOK", - "DKK/LTC", - "CHF/BCH", - "CNH/RUB", - "RUB/SGD", - "XAG/BCH", - "PLN/XRP", - "XAG/CHF", - "XAU/CNH", - "DSH/LTC", - "BTC/MXN", - "THETA/XAU", - "CAD/LTC", - "BCH/DSH", - "XRP/DSH", - "LTC/CHF", - "DKK/XAU", - "NZD/RUB", - "BNB/XAU", - "XAU/NZD", - "AUD/XPD", - "NZD/BTC", - "ETH/HKD", - "HKD/BCH", - "BTC/SEK", - "XAG/NZD", - "XRP/CNH", - "XRP/SEK", - "DSH/CNH", - "NOK/BTC", - "XRP/NZD", - "RUB/HKD", - "PLN/XAU", - "CHF/XRP", - "DOGE/XAU", - "LTC/XAG", - "DKK/XAG", - "CNH/ETH", - "BCH/XAG", - "XAU/ETH", - "ZAR/LTC", - "BCH/CHF", - "PLN/LTC", - "BTC/XAU", - "DSH/NZD", - "LTC/DSH", - "DSH/SGD", - "DSH/ETH", - "XAU/BTC", - "DSH/PLN", - "XRP/PLN", - "CNH/XAU", - "LTC/PLN", - "LTC/SEK", - "MATIC/XAU", - "DSH/JPY", - "NOK/DSH", - "DSH/BCH", - "BCH/MXN", - "XAU/NOK", - "DKK/XRP", - "BCH/DKK", - "XAG/LTC", - "BCH/JPY", - "MXN/LTC", - "AAVE/XAG", - "DSH/MXN", - "DSH/XAG", - "NZD/XAU", - "NZD/XPD", - "NOK/ETH", - "XAU/DSH", - "DKK/DSH", - "DKK/BCH", - "PLN/CNH", - "XRP/CHF", - "BCH/CNH", - "AUD/XPT", - "LTC/HKD", - "XRP/MXN", - "DSH/XAU", - "MXN/CNH", - "NOK/BCH", - "BCH/SEK", - "MXN/ETH", - "MXN/DSH", - "BCH/SGD", - "NOK/XRP", - "XAG/ETH", - "BCH/PLN", - "XAG/SGD", - "LTC/CAD", - "HKD/XRP", - "DSH/ZAR", - "XAU/XRP", - "XRP/NOK", - "HKD/LTC", - "XRP/ZAR", - "CNH/BTC", - "ETH/CNH", - "JPY/ZWD", - "DSH/GBP", - "DOGE/XAG", - "XLM/XAG", - "ADA/XAG", - "VET/XAG", - "SGD/XAG", - "EUR/DSH", - "JPY/BCH", - "ETH/MXN", - "XAG/DKK", - "ETH/XAG", - "LINK/XAU", - "XAU/BCH", - "MATIC/XAG", - "LINK/XAG", - "UNI/XAG", - "SOL/XAG", - "DOT/XAG", - "THETA/XAG", - "USDC/XAG", - "USD/UKO", - "SEK/TWD", - "COP/PEN", - "CLF/USD", - "AOA/EUR", - "PGK/ZAR", - "KHR/EUR", - "HTG/EUR", - "CDF/ZAR", - "JPY/VND", - "IQD/EUR", - "FJD/ZAR", - "PKR/INR", - "CAD/XAU", - "PAB/EUR", - "YER/EUR", - "NAD/EUR", - "JPY/PHP", - "CHF/ARE", - "SDG/USD", - "CHF/DOE", - "SRD/CNY", - "COP/GBP", - "AFN/EUR", - "LAK/ZAR", - "LSL/EUR", - "CNH/EUR", - "CAD/XAG", - "CUP/EUR", - "USD/KRU", - "SRD/USD", - "INR/IDR", - "AUD/XAU", - "PKR/OMR", - "KRW/CNH", - "PKR/HKD", - "USD/MAL", - "RUB/NOK", - "SRD/GYD", - "TND/EUR", - "CHF/KES", - "CHF/NSO", - "KRW/GBP", - "CNH/AUD", - "PYG/GBP", - "PKR/CHF", - "BAM/EUR", - "AUD/XAG", - "PKR/SAR", - "JPY/NGN", - "BGN/EUR", - "AOA/USD", - "MTL/EUR", - "USD/M5P", - "CLP/JPY", - "VND/ZAR", - "CHF/VRN", - "UAH/GBP", - "RWF/EUR", - "CHF/VRL", - "PKR/EGP", - "MOP/GBP", - "OMR/EUR", - "NAD/USD", - "PLN/RUB", - "MWK/EUR", - "BIF/EUR", - "GEL/GBP", - "JOD/ZAR", - "ZMW/EUR", - "DZD/GBP", - "THB/XAU", - "BHD/ZAR", - "JPY/LFX", - "NPR/EUR", - "LYD/EUR", - "HUF/NOK", - "CHF/FRN", - "UGX/EUR", - "IDR/EUR", - "PKR/CAD", - "CNH/CHF", - "TZS/EUR", - "BHD/AED", - "USD/NBL", - "PKR/KWD", - "BYN/EUR", - "AED/OMR", - "MVR/GBP", - "IDR/AUD", - "TRY/XAU", - "SRD/AWG", - "SOS/EUR", - "LFX/GBP", - "CHF/XPTK", - "BTN/EUR", - "TRY/XAG", - "MMK/EUR", - "SAR/CAD", - "MXN/XAU", - "TRY/AED", - "COP/EUR", - "IRR/USD", - "USD/AUN", - "CNH/CAD", - "ILS/BRL", - "PKR/BHD", - "AMD/EUR", - "HRK/GBP", - "IDR/USD", - "MXN/XAG", - "QAR/EUR", - "USD/BRI", - "EGP/GBP", - "BSD/EUR", - "GMD/USD", - "PKR/AED", - "AED/JOD", - "LBP/ZAR", - "KRW/IDR", - "MRU/EUR", - "RON/EUR", - "EUR/XPT", - "JPY/EGP", - "THB/CNH", - "PYG/EUR", - "CNH/SEK", - "HKD/XAU", - "THB/DKK", - "KHR/ZAR", - "USD/SHP", - "USD/XPT", - "AED/KWD", - "CHF/KRU", - "SAR/ZAR", - "SAR/XAU", - "LFX/NZD", - "JOD/GBP", - "THB/GBP", - "BHD/GBP", - "NAD/ZAR", - "ARS/XAU", - "EUR/XPD", - "HKD/XAG", - "CHF/MAL", - "BND/EUR", - "SRD/BRL", - "RON/AUD", - "USD/OSO", - "MGA/EUR", - "LSL/ZAR", - "CNH/ZAR", - "MZN/EUR", - "USD/XPD", - "SAR/XAG", - "MOP/EUR", - "ETB/EUR", - "SEK/BRL", - "SAR/AED", - "ARS/XAG", - "GEL/EUR", - "INR/XAU", - "ILS/GBP", - "GBP/XPT", - "CVE/USD", - "CHF/M5P", - "PKR/MYR", - "RSD/USD", - "INR/XAG", - "KWD/SAR", - "GBP/XPD", - "MRU/USD", - "MKD/EUR", - "UZS/EUR", - "INR/AED", - "BRL/TRY", - "CHF/XAUK", - "BRL/XAU", - "RON/JPY", - "BZD/GBP", - "PGK/EUR", - "CDF/EUR", - "BBD/BMD", - "PKR/DKK", - "SCR/EUR", - "FJD/EUR", - "PHP/CNH", - "DJF/EUR", - "SRD/ANG", - "JPY/XAU", - "BRL/XAG", - "MVR/EUR", - "CRC/EUR", - "SRD/GBP", - "LAK/EUR", - "CHF/NBL", - "BOB/EUR", - "ZAR/XAU", - "PKR/SGD", - "PKR/QAR", - "LFX/EUR", - "JPY/XAG", - "NPR/ZAR", - "MYR/GBP", - "FJD/AUD", - "GEL/USD", - "KES/GBP", - "CNH/MYR", - "HKD/CNH", - "USD/ARE", - "USD/DOE", - "LBP/GBP", - "GYD/EUR", - "SEK/KRW", - "LKR/EUR", - "GNF/EUR", - "DOP/EUR", - "ZAR/XAG", - "KWD/CAD", - "MYR/SGD", - "BDT/EUR", - "DKK/RUB", - "SAR/GBP", - "LFX/AUD", - "TJS/EUR", - "PAB/GBP", - "MAD/EUR", - "PKR/NZD", - "SRD/XCD", - "USD/NSO", - "CNH/GBP", - "SRD/TTD", - "LRD/EUR", - "INR/CNH", - "CHF/AUN", - "RON/CAD", - "INR/DKK", - "SLL/EUR", - "SVC/EUR", - "CUP/GBP", - "KZT/EUR", - "EUR/XAU", - "CHF/XPDK", - "JOD/EUR", - "BTN/ZAR", - "RUB/XAU", - "USD/XAU", - "MMK/ZAR", - "CNH/SGD", - "CHF/BRI", - "KWD/ZAR", - "NIO/EUR", - "EUR/XAG", - "STN/USD", - "PKR/THB", - "RUB/XAG", - "USD/XAG", - "TTD/EUR", - "CHF/XAGK", - "CNH/NOK", - "TWD/CNH", - "AED/QAR", - "BGN/GBP", - "JPY/CNH", - "UYU/ZAR", - "LFX/CHF", - "INR/NOK", - "GBP/XAU", - "CNY/XAU", - "TWD/GBP", - "GTQ/EUR", - "CHF/OSO", - "KRW/XAU", - "CNH/NZD", - "BIF/GBP", - "XCD/USD", - "HNL/EUR", - "ZMW/GBP", - "AED/ILS", - "RUB/BRL", - "GBP/XAG", - "CNY/XAG", - "BZD/EUR", - "KRW/XAG", - "NGN/EUR", - "HUF/TRY", - "IDR/CNH", - "EUR/VES", - "XOF/USD", - "SRD/BBD", - "SRD/EUR", - "GBP/ZWD", - "PHP/EUR", - "JPY/BDT", - "VES/BRL", - "MYR/IDR", - "IDR/SGD", - "PKR/TWD", - "LFX/CAD", - "PKR/AUD", - "LBP/EUR", - "BTC/DSH", - "DASH/USD", - "RUB/TRY", - "JPY/BTC", - "GBP/BTC", - "SGD/BTC", - "RUB/BTC", - "ZAR/BTC", - "PLN/BTC", - "JPY/ETH", - "GBP/ETH", - "CAD/ETH", - "CHF/ETH", - "SGD/ETH", - "RUB/ETH", - "TRY/ETH", - "ZAR/ETH", - "PLN/ETH", - "EUR/LTC", - "GBP/LTC", - "RUB/LTC", - "BCH/LTC", - "EUR/XRP", - "JPY/XRP", - "GBP/XRP", - "CAD/XRP", - "RUB/XRP", - "TRY/XRP", - "BCH/XRP", - "EUR/DASH", - "RUB/DASH", - "BCH/DASH", - "GBP/BCH", - "RUB/BCH", - "CHF/XAU", - "TRY/CNH", - "AUD/BTC" -]
--- a/Simoleon/Resources/ja.lproj/CurrencyMetadata.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,714 +0,0 @@ -{ - "AED": { - "name": "\u30a2\u30e9\u30d6\u9996\u9577\u56fd\u9023\u90a6\u30c7\u30a3\u30eb\u30cf\u30e0", - "flag": "AE" - }, - "AFN": { - "name": "\u30a2\u30d5\u30ac\u30cb\u30b9\u30bf\u30f3\u30a2\u30d5\u30ac\u30cb", - "flag": "AF" - }, - "ALL": { - "name": "\u30a2\u30eb\u30d0\u30cb\u30a2\u30ec\u30af", - "flag": "AL" - }, - "AMD": { - "name": "\u30a2\u30eb\u30e1\u30cb\u30a2\u30c9\u30e9\u30e0", - "flag": "AM" - }, - "ANG": { - "name": "\u30aa\u30e9\u30f3\u30c0\u9818\u30a2\u30f3\u30c6\u30a3\u30eb\u30ae\u30eb\u30c0\u30fc", - "flag": "CW" - }, - "AOA": { - "name": "\u30a2\u30f3\u30b4\u30e9\u30d5\u30a1\u30fc\u30b9\u30c8", - "flag": "AO" - }, - "ARE": { - "name": "\u30a2\u30ec\u30b0", - "flag": "AR" - }, - "ARS": { - "name": "\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3\u30da\u30bd", - "flag": "AR" - }, - "AUD": { - "name": "\u30aa\u30fc\u30b9\u30c8\u30e9\u30ea\u30a2\u30c9\u30eb", - "flag": "AU" - }, - "AUN": { - "name": "\u30aa\u30fc\u30b9\u30c8\u30e9\u30ea\u30a2\u306e\u30ca\u30b2\u30c3\u30c8", - "flag": "AU" - }, - "AWG": { - "name": "\u30a2\u30eb\u30d0\u30d5\u30ed\u30ea\u30f3", - "flag": "AW" - }, - "BAM": { - "name": "\u30dc\u30b9\u30cb\u30a2\u30fb\u30d8\u30eb\u30c4\u30a7\u30b4\u30d3\u30ca\u514c\u63db\u30de\u30eb\u30af", - "flag": "BA" - }, - "BBD": { - "name": "\u30d0\u30eb\u30d0\u30c9\u30b9\u30c9\u30eb", - "flag": "BB" - }, - "BDT": { - "name": "\u30d0\u30f3\u30b0\u30e9\u30c7\u30b7\u30e5\u30bf\u30ab", - "flag": "BD" - }, - "BGN": { - "name": "\u30d6\u30eb\u30ac\u30ea\u30a2\u30ec\u30d5", - "flag": "BG" - }, - "BHD": { - "name": "\u30d0\u30fc\u30ec\u30fc\u30f3\u30c7\u30a3\u30ca\u30fc\u30eb", - "flag": "BH" - }, - "BIF": { - "name": "\u30d6\u30eb\u30f3\u30b8\u30d5\u30e9\u30f3", - "flag": "BI" - }, - "BMD": { - "name": "\u30d0\u30df\u30e5\u30fc\u30c0\u30c9\u30eb", - "flag": "BM" - }, - "BND": { - "name": "\u30d6\u30eb\u30cd\u30a4\u30c9\u30eb", - "flag": "BN" - }, - "BOB": { - "name": "\u30dc\u30ea\u30d3\u30a2", - "flag": "BO" - }, - "BRI": { - "name": "\u82f1\u56fd", - "flag": "BR" - }, - "BRL": { - "name": "\u30d6\u30e9\u30b8\u30eb\u30ec\u30a2\u30eb", - "flag": "BR" - }, - "BSD": { - "name": "\u30d0\u30cf\u30de\u30c9\u30eb", - "flag": "BS" - }, - "BTN": { - "name": "\u30d6\u30fc\u30bf\u30f3\u30cb\u30e5\u30eb\u30bf\u30e0", - "flag": "BT" - }, - "BWP": { - "name": "\u30dc\u30c4\u30ef\u30ca\u30d7\u30e9", - "flag": "BW" - }, - "BYN": { - "name": "\u30d9\u30e9\u30eb\u30fc\u30b7\u30eb\u30fc\u30d6\u30eb", - "flag": "BY" - }, - "BZD": { - "name": "\u30d9\u30ea\u30fc\u30ba\u30c9\u30eb", - "flag": "BZ" - }, - "CAD": { - "name": "\u30ab\u30ca\u30c0\u30c9\u30eb", - "flag": "CA" - }, - "CDF": { - "name": "\u30b3\u30f3\u30b4\u30d5\u30e9\u30f3", - "flag": "CD" - }, - "CHF": { - "name": "\u30b9\u30a4\u30b9\u30d5\u30e9\u30f3", - "flag": "CH" - }, - "CLF": { - "name": "\u30c1\u30ea\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u5358\u4f4d", - "flag": "CL" - }, - "CLP": { - "name": "\u30c1\u30ea\u30da\u30bd", - "flag": "CL" - }, - "CNH": { - "name": "\u4eba\u6c11\u5143", - "flag": "CN" - }, - "CNY": { - "name": "\u4eba\u6c11\u5143", - "flag": "CN" - }, - "COP": { - "name": "\u30b3\u30ed\u30f3\u30d3\u30a2\u30da\u30bd", - "flag": "CO" - }, - "CRC": { - "name": "\u30b3\u30b9\u30bf\u30ea\u30ab\u30b3\u30ed\u30f3", - "flag": "CR" - }, - "CUP": { - "name": "\u30ad\u30e5\u30fc\u30d0\u30da\u30bd", - "flag": "CU" - }, - "CVE": { - "name": "\u30ab\u30fc\u30dc\u30d9\u30eb\u30c7\u30b7\u30fc\u30eb\u30c9", - "flag": "CV" - }, - "CYP": { - "name": "\u30ad\u30d7\u30ed\u30b9\u30dd\u30f3\u30c9", - "flag": "CY" - }, - "CZK": { - "name": "\u30c1\u30a7\u30b3\u30b3\u30eb\u30ca", - "flag": "CZ" - }, - "DJF": { - "name": "\u30b8\u30d6\u30c1\u30d5\u30e9\u30f3", - "flag": "DJ" - }, - "DKK": { - "name": "\u30c7\u30f3\u30de\u30fc\u30af\u30af\u30ed\u30fc\u30cd", - "flag": "DK" - }, - "DOE": { - "name": "\u30c0\u30d6\u30eb\u30a4\u30fc\u30b0\u30eb", - "flag": "DO" - }, - "DOP": { - "name": "\u30c9\u30df\u30cb\u30ab\u30da\u30bd", - "flag": "DO" - }, - "DZD": { - "name": "\u30a2\u30eb\u30b8\u30a7\u30ea\u30a2\u30c7\u30a3\u30ca\u30fc\u30eb", - "flag": "DZ" - }, - "EGP": { - "name": "\u30a8\u30b8\u30d7\u30c8\u30dd\u30f3\u30c9", - "flag": "EG" - }, - "ETB": { - "name": "\u30a8\u30c1\u30aa\u30d4\u30a2\u30d6\u30eb", - "flag": "ET" - }, - "EUR": { - "name": "\u30e6\u30fc\u30ed", - "flag": "EU" - }, - "FJD": { - "name": "\u30d5\u30a3\u30b8\u30fc\u30c9\u30eb", - "flag": "FJ" - }, - "FRN": { - "name": "\u30d5\u30e9\u30f3\u30b9\u306e\u30ca\u30dd\u30ec\u30aa\u30f3", - "flag": "FR" - }, - "GBP": { - "name": "\u82f1\u30dd\u30f3\u30c9", - "flag": "GB" - }, - "GEL": { - "name": "\u30b0\u30eb\u30b8\u30a2\u30e9\u30f3", - "flag": "GE" - }, - "GHS": { - "name": "\u30ac\u30fc\u30ca\u30bb\u30c7\u30a3", - "flag": "GH" - }, - "GMD": { - "name": "\u30ac\u30f3\u30d3\u30a2\u30c0\u30e9\u30b7", - "flag": "GM" - }, - "GNF": { - "name": "\u30ae\u30cb\u30a2\u30d5\u30e9\u30f3", - "flag": "GN" - }, - "GTQ": { - "name": "\u30b0\u30a2\u30c6\u30de\u30e9\u30b1\u30c4\u30a1\u30eb", - "flag": "GT" - }, - "GYD": { - "name": "\u30ac\u30a4\u30a2\u30ca\u30c9\u30eb", - "flag": "GY" - }, - "HKD": { - "name": "\u9999\u6e2f\u30c9\u30eb", - "flag": "HK" - }, - "HNL": { - "name": "\u30db\u30f3\u30b8\u30e5\u30e9\u30b9\u30ec\u30f3\u30d4\u30e9", - "flag": "HN" - }, - "HRK": { - "name": "\u30af\u30ed\u30a2\u30c1\u30a2\u306e\u30af\u30ca", - "flag": "HR" - }, - "HTG": { - "name": "\u30cf\u30a4\u30c1\u306e\u3072\u3087\u3046\u305f\u3093", - "flag": "HT" - }, - "HUF": { - "name": "\u30cf\u30f3\u30ac\u30ea\u30fc\u30d5\u30a9\u30ea\u30f3\u30c8", - "flag": "HU" - }, - "IDR": { - "name": "\u30a4\u30f3\u30c9\u30cd\u30b7\u30a2\u30eb\u30d4\u30a2", - "flag": "ID" - }, - "ILS": { - "name": "\u30a4\u30b9\u30e9\u30a8\u30eb\u306e\u65b0\u30b7\u30a7\u30b1\u30eb", - "flag": "IL" - }, - "INR": { - "name": "\u30a4\u30f3\u30c9\u30eb\u30d4\u30fc", - "flag": "IN" - }, - "IQD": { - "name": "\u30a4\u30e9\u30af\u30c7\u30a3\u30ca\u30fc\u30eb", - "flag": "IQ" - }, - "IRR": { - "name": "\u30a4\u30e9\u30f3\u30ea\u30a2\u30eb", - "flag": "IR" - }, - "ISK": { - "name": "\u30a2\u30a4\u30b9\u30e9\u30f3\u30c9\u30af\u30ed\u30fc\u30ca", - "flag": "IS" - }, - "JMD": { - "name": "\u30b8\u30e3\u30de\u30a4\u30ab\u30c9\u30eb", - "flag": "JM" - }, - "JOD": { - "name": "\u30e8\u30eb\u30c0\u30f3\u30c7\u30a3\u30ca\u30fc\u30eb", - "flag": "JO" - }, - "JPY": { - "name": "\u65e5\u672c\u5186", - "flag": "JP" - }, - "KES": { - "name": "\u30b1\u30cb\u30a2\u30b7\u30ea\u30f3\u30b0", - "flag": "KE" - }, - "KHR": { - "name": "\u30ab\u30f3\u30dc\u30b8\u30a2\u30ea\u30a8\u30eb", - "flag": "KH" - }, - "KMF": { - "name": "\u30b3\u30e2\u30ed\u30d5\u30e9\u30f3", - "flag": "KM" - }, - "KRU": { - "name": "\u5357\u30a2\u30d5\u30ea\u30ab\u306e\u30af\u30eb\u30fc\u30ac\u30fc\u30e9\u30f3\u30c9", - "flag": "KR" - }, - "KRW": { - "name": "\u97d3\u56fd\u30a6\u30a9\u30f3", - "flag": "KR" - }, - "KWD": { - "name": "\u30af\u30a6\u30a7\u30fc\u30c8\u30c7\u30a3\u30ca\u30fc\u30eb", - "flag": "KW" - }, - "KYD": { - "name": "\u30b1\u30a4\u30de\u30f3\u8af8\u5cf6\u30c9\u30eb", - "flag": "KY" - }, - "KZT": { - "name": "\u30ab\u30b6\u30d5\u30b9\u30bf\u30f3\u30c6\u30f3\u30b2", - "flag": "KZ" - }, - "LAK": { - "name": "\u30e9\u30aa\u30b9\u30ad\u30c3\u30d7", - "flag": "LA" - }, - "LBP": { - "name": "\u30ec\u30d0\u30ce\u30f3\u30dd\u30f3\u30c9", - "flag": "LB" - }, - "LFX": { - "name": "\u30b9\u30af\u30fc\u30af\u306e\u5b9d\u7269", - "flag": "MY" - }, - "LKR": { - "name": "\u30b9\u30ea\u30e9\u30f3\u30ab\u30eb\u30d4\u30fc", - "flag": "LK" - }, - "LRD": { - "name": "\u30ea\u30d9\u30ea\u30a2\u30c9\u30eb", - "flag": "LR" - }, - "LSL": { - "name": "\u30ec\u30bd\u30c8\u30ed\u30c1", - "flag": "LS" - }, - "LTL": { - "name": "\u30ea\u30c8\u30a2\u30cb\u30a2\u306e\u30ea\u30bf\u30b9", - "flag": "LT" - }, - "LYD": { - "name": "\u30ea\u30d3\u30a2\u30c7\u30a3\u30ca\u30fc\u30eb", - "flag": "LY" - }, - "M5P": { - "name": "\u30e1\u30ad\u30b7\u30b3\u30da\u30bd50\u30da\u30bd", - "flag": "MX" - }, - "MAD": { - "name": "\u30e2\u30ed\u30c3\u30b3\u30c7\u30a3\u30eb\u30cf\u30e0", - "flag": "MA" - }, - "MAL": { - "name": "\u30ab\u30a8\u30c7\u306e\u8449", - "flag": "MA" - }, - "MDL": { - "name": "\u30e2\u30eb\u30c9\u30d0\u30fb\u30ec\u30a6", - "flag": "MD" - }, - "MGA": { - "name": "\u30de\u30c0\u30ac\u30b9\u30ab\u30eb\u30a2\u30ea\u30a2\u30ea\u30fc", - "flag": "MG" - }, - "MKD": { - "name": "\u30de\u30b1\u30c9\u30cb\u30a2\u30c7\u30ca\u30fc\u30eb", - "flag": "MK" - }, - "MMK": { - "name": "\u30df\u30e3\u30f3\u30de\u30fc\u30c1\u30e3\u30c3\u30c8", - "flag": "MM" - }, - "MOP": { - "name": "\u30de\u30ab\u30aa\u30d1\u30bf\u30ab", - "flag": "MO" - }, - "MRU": { - "name": "\u30e2\u30fc\u30ea\u30bf\u30cb\u30a2\u306e\u30a6\u30ae\u30a2", - "flag": "MR" - }, - "MTL": { - "name": "\u30de\u30eb\u30bf\u30ea\u30e9", - "flag": "MT" - }, - "MUR": { - "name": "\u30e2\u30fc\u30ea\u30b7\u30e3\u30b9\u30eb\u30d4\u30fc", - "flag": "MU" - }, - "MVR": { - "name": "\u30e2\u30eb\u30c7\u30a3\u30d6\u306e\u30eb\u30d5\u30a3\u30e4", - "flag": "MV" - }, - "MWK": { - "name": "\u30de\u30e9\u30a6\u30a4\u30af\u30ef\u30c1\u30e3", - "flag": "MW" - }, - "MXN": { - "name": "\u30e1\u30ad\u30b7\u30b3\u30da\u30bd", - "flag": "MX" - }, - "MYR": { - "name": "\u30de\u30ec\u30fc\u30b7\u30a2\u30ea\u30f3\u30ae\u30c3\u30c8", - "flag": "MY" - }, - "MZN": { - "name": "\u30e2\u30b6\u30f3\u30d3\u30fc\u30af\u30e1\u30c6\u30a3\u30ab\u30eb", - "flag": "MZ" - }, - "NAD": { - "name": "\u30ca\u30df\u30d3\u30a2\u30c9\u30eb", - "flag": "NA" - }, - "NBL": { - "name": "\u30de\u30f3\u5cf6\u30ce\u30fc\u30d6\u30eb", - "flag": "IM" - }, - "NGN": { - "name": "\u30ca\u30a4\u30b8\u30a7\u30ea\u30a2\u30ca\u30a4\u30e9", - "flag": "NG" - }, - "NIO": { - "name": "\u30cb\u30ab\u30e9\u30b0\u30a2\u30b3\u30eb\u30c9\u30d0", - "flag": "NI" - }, - "NOK": { - "name": "\u30ce\u30eb\u30a6\u30a7\u30fc\u30af\u30ed\u30fc\u30cd", - "flag": "NO" - }, - "NPR": { - "name": "\u30cd\u30d1\u30fc\u30eb\u30eb\u30d4\u30fc", - "flag": "NP" - }, - "NSO": { - "name": "\u65b0\u3057\u3044\u30bd\u30d6\u30ea\u30f3", - "flag": "GB" - }, - "NZD": { - "name": "\u30cb\u30e5\u30fc\u30b8\u30fc\u30e9\u30f3\u30c9\u30c9\u30eb", - "flag": "NZ" - }, - "OMR": { - "name": "\u30aa\u30de\u30fc\u30f3\u30ea\u30a2\u30eb", - "flag": "OM" - }, - "OSO": { - "name": "\u30aa\u30fc\u30eb\u30c9\u30bd\u30d6\u30ea\u30f3", - "flag": "GB" - }, - "PAB": { - "name": "\u30d1\u30ca\u30de\u30d0\u30eb\u30dc\u30a2", - "flag": "PA" - }, - "PEN": { - "name": "\u30da\u30eb\u30fc\u306e\u65b0\u3057\u3044\u30bd\u30eb", - "flag": "PE" - }, - "PGK": { - "name": "\u30d1\u30d7\u30a2\u30cb\u30e5\u30fc\u30ae\u30cb\u30a2\u4e2d\u56fd", - "flag": "PG" - }, - "PHP": { - "name": "\u30d5\u30a3\u30ea\u30d4\u30f3\u30da\u30bd", - "flag": "PH" - }, - "PKR": { - "name": "\u30d1\u30ad\u30b9\u30bf\u30f3\u30eb\u30d4\u30fc", - "flag": "PK" - }, - "PLN": { - "name": "\u30dd\u30fc\u30e9\u30f3\u30c9\u30ba\u30a6\u30a9\u30c6\u30a3", - "flag": "PL" - }, - "PYG": { - "name": "\u30d1\u30e9\u30b0\u30a2\u30a4\u30b0\u30a2\u30e9\u30cb\u30fc", - "flag": "PY" - }, - "QAR": { - "name": "\u30ab\u30bf\u30fc\u30eb\u30ea\u30e4\u30eb", - "flag": "QA" - }, - "RON": { - "name": "\u30eb\u30fc\u30de\u30cb\u30a2\u306e\u65b0\u3057\u3044\u30ed\u30a4", - "flag": "RO" - }, - "RSD": { - "name": "\u30bb\u30eb\u30d3\u30a2\u30c7\u30a3\u30ca\u30fc\u30eb", - "flag": "RS" - }, - "RUB": { - "name": "\u30ed\u30b7\u30a2\u30eb\u30fc\u30d6\u30eb", - "flag": "RU" - }, - "RWF": { - "name": "\u30eb\u30ef\u30f3\u30c0\u30d5\u30e9\u30f3", - "flag": "RW" - }, - "SAR": { - "name": "\u30b5\u30a6\u30b8\u30a2\u30e9\u30d3\u30a2\u30ea\u30e4\u30eb", - "flag": "SA" - }, - "SBD": { - "name": "\u30bd\u30ed\u30e2\u30f3\u8af8\u5cf6\u30c9\u30eb", - "flag": "SB" - }, - "SCR": { - "name": "\u30bb\u30a4\u30b7\u30a7\u30eb\u30fb\u30eb\u30d4\u30fc", - "flag": "SC" - }, - "SDG": { - "name": "\u30b9\u30fc\u30c0\u30f3\u30dd\u30f3\u30c9", - "flag": "SD" - }, - "SEK": { - "name": "\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3\u30af\u30ed\u30fc\u30ca", - "flag": "SE" - }, - "SGD": { - "name": "\u30b7\u30f3\u30ac\u30dd\u30fc\u30eb\u30c9\u30eb", - "flag": "SG" - }, - "SHP": { - "name": "\u30bb\u30f3\u30c8\u30d8\u30ec\u30ca\u30dd\u30f3\u30c9", - "flag": "SH" - }, - "SLL": { - "name": "\u30b7\u30a8\u30e9\u30ec\u30aa\u30cd\u30ec\u30aa\u30f3", - "flag": "SL" - }, - "SOS": { - "name": "\u30bd\u30de\u30ea\u30a2\u30b7\u30ea\u30f3\u30b0", - "flag": "SO" - }, - "SRD": { - "name": "\u30b9\u30ea\u30ca\u30e0\u30c9\u30eb", - "flag": "SR" - }, - "STN": { - "name": "\u30b5\u30f3\u30c8\u30e1\u30fb\u30d7\u30ea\u30f3\u30b7\u30da", - "flag": "ST" - }, - "SVC": { - "name": "\u30a8\u30eb\u30b5\u30eb\u30d0\u30c9\u30eb\u306e\u30b3\u30ed\u30f3\u30d0\u30b9", - "flag": "SV" - }, - "SZL": { - "name": "\u30b9\u30ef\u30b8\u30ea\u30e9\u30f3\u30b2\u30cb", - "flag": "SZ" - }, - "THB": { - "name": "\u30bf\u30a4\u30d0\u30fc\u30c4", - "flag": "TH" - }, - "TJS": { - "name": "\u30bf\u30b8\u30ad\u30b9\u30bf\u30f3\u30bd\u30e2\u30cb", - "flag": "TJ" - }, - "TMT": { - "name": "\u30c8\u30eb\u30af\u30e1\u30cb\u30b9\u30bf\u30f3\u30de\u30ca\u30c8", - "flag": "TM" - }, - "TND": { - "name": "\u30c1\u30e5\u30cb\u30b8\u30a2\u30c7\u30a3\u30ca\u30fc\u30eb", - "flag": "TN" - }, - "TOP": { - "name": "\u30c8\u30f3\u30ac\u30d1\u30a2\u30f3\u30ac", - "flag": "TO" - }, - "TRY": { - "name": "\u30c8\u30eb\u30b3\u30ea\u30e9", - "flag": "TR" - }, - "TTD": { - "name": "\u30c8\u30ea\u30cb\u30c0\u30fc\u30c9\u30fb\u30c8\u30d0\u30b4\u30c9\u30eb", - "flag": "TT" - }, - "TWD": { - "name": "\u30cb\u30e5\u30fc\u53f0\u6e7e\u30c9\u30eb", - "flag": "TW" - }, - "TZS": { - "name": "\u30bf\u30f3\u30b6\u30cb\u30a2\u30b7\u30ea\u30f3\u30b0", - "flag": "TZ" - }, - "UAH": { - "name": "\u30a6\u30af\u30e9\u30a4\u30ca\u30b0\u30ea\u30d6\u30ca", - "flag": "UA" - }, - "UGX": { - "name": "\u30a6\u30ac\u30f3\u30c0\u30b7\u30ea\u30f3\u30b0", - "flag": "UG" - }, - "USD": { - "name": "\u7c73\u30c9\u30eb", - "flag": "US" - }, - "UYU": { - "name": "\u30a6\u30eb\u30b0\u30a2\u30a4\u30da\u30bd", - "flag": "UY" - }, - "UZS": { - "name": "\u30a6\u30ba\u30d9\u30ad\u30b9\u30bf\u30f3\u30bd\u30e0", - "flag": "UZ" - }, - "VES": { - "name": "\u30d9\u30cd\u30ba\u30a8\u30e9\u30dc\u30ea\u30d0\u30eb\u30bd\u30d9\u30e9\u30ce", - "flag": "VE" - }, - "VND": { - "name": "\u30d9\u30c8\u30ca\u30e0\u30c9\u30f3", - "flag": "VN" - }, - "VRL": { - "name": "\u30f4\u30ec\u30cd\u30ea10F\u3002", - "flag": "CH" - }, - "VRN": { - "name": "\u30f4\u30ec\u30cd\u30ea20F", - "flag": "CH" - }, - "XAG": { - "name": "\u30b7\u30eb\u30d0\u30fc\uff081\u30c8\u30ed\u30a4\u30aa\u30f3\u30b9\uff09", - "flag": "XAG" - }, - "XAGK": { - "name": "\u30b7\u30eb\u30d0\u30fc\uff08Kg\uff09", - "flag": "XAG" - }, - "XAU": { - "name": "\u30b4\u30fc\u30eb\u30c9\uff081\u30c8\u30ed\u30a4\u30aa\u30f3\u30b9\uff09", - "flag": "XAU" - }, - "XAUK": { - "name": "\u30b4\u30fc\u30eb\u30c9\uff08Kg\uff09", - "flag": "XAU" - }, - "XCD": { - "name": "\u6771\u30ab\u30ea\u30d6\u30c9\u30eb", - "flag": "AI" - }, - "XOF": { - "name": "Cfa\u30d5\u30e9\u30f3Bceao", - "flag": "SN" - }, - "XPD": { - "name": "\u30d1\u30e9\u30b8\u30a6\u30e0\uff081\u30c8\u30ed\u30a4\u30aa\u30f3\u30b9\uff09", - "flag": "XPD" - }, - "XPDK": { - "name": "\u30d1\u30e9\u30b8\u30a6\u30e0\uff08Kg\uff09", - "flag": "XPD" - }, - "XPF": { - "name": "Cfp\u30d5\u30e9\u30f3", - "flag": "PF" - }, - "XPT": { - "name": "\u30d7\u30e9\u30c1\u30ca\uff081\u30c8\u30ed\u30a4\u30aa\u30f3\u30b9\uff09", - "flag": "XPT" - }, - "XPTK": { - "name": "\u30d7\u30e9\u30c1\u30ca\uff08Kg\uff09", - "flag": "XPT" - }, - "YER": { - "name": "\u30a4\u30a8\u30e1\u30f3\u30ea\u30a2\u30eb", - "flag": "YE" - }, - "ZAR": { - "name": "\u5357\u30a2\u30d5\u30ea\u30ab\u30e9\u30f3\u30c9", - "flag": "ZA" - }, - "ZMW": { - "name": "\u30b6\u30f3\u30d3\u30a2\u30af\u30ef\u30c1\u30e3", - "flag": "ZM" - }, - "ZWD": { - "name": "\u30b8\u30f3\u30d0\u30d6\u30a8\u30c9\u30eb", - "flag": "ZW" - }, - "DASH": { - "name": "\u30c0\u30c3\u30b7\u30e5\u6697\u53f7\u901a\u8ca8", - "flag": "DASH" - }, - "BTC": { - "name": "\u30d3\u30c3\u30c8\u30b3\u30a4\u30f3", - "flag": "BTC" - }, - "DSH": { - "name": "\u30c0\u30c3\u30b7\u30e5\u6697\u53f7\u901a\u8ca8", - "flag": "DASH" - }, - "LTC": { - "name": "\u30e9\u30a4\u30c8\u30b3\u30a4\u30f3", - "flag": "LTC" - }, - "ETH": { - "name": "\u30a4\u30fc\u30b5\u30ea\u30a2\u30e0", - "flag": "ETH" - }, - "BCH": { - "name": "\u30d3\u30c3\u30c8\u30b3\u30a4\u30f3\u30ad\u30e3\u30c3\u30b7\u30e5", - "flag": "BTC" - }, - "XRP": { - "name": "Xrp\u6697\u53f7\u901a\u8ca8", - "flag": "XRP" - } -}
--- a/Simoleon/Resources/ko.lproj/CurrencyMetadata.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,714 +0,0 @@ -{ - "AED": { - "name": "\uc544\ub78d\uc5d0\ubbf8\ub9ac\ud2b8 \ub514\ub974\ud568", - "flag": "AE" - }, - "AFN": { - "name": "\uc544\ud504\uac00\ub2c8\uc2a4\ud0c4 \uc544\ud504\uac00\ub2c8\uc2a4\ud0c4", - "flag": "AF" - }, - "ALL": { - "name": "\uc54c\ubc14\ub2c8\uc544 \ub809", - "flag": "AL" - }, - "AMD": { - "name": "\uc544\ub974\uba54\ub2c8\uc544 \ub4dc\ub78c", - "flag": "AM" - }, - "ANG": { - "name": "\ub124\ub35c\ub780\ub4dc\ub839 \uc548\ud2f8\ub808\uc2a4 \uae38\ub354", - "flag": "CW" - }, - "AOA": { - "name": "\uc559\uace8\ub77c \ud37c\uc2a4\ud2b8", - "flag": "AO" - }, - "ARE": { - "name": "\uc544\ub808\uadf8", - "flag": "AR" - }, - "ARS": { - "name": "\uc544\ub974\ud5e8\ud2f0\ub098 \ud398\uc18c", - "flag": "AR" - }, - "AUD": { - "name": "\ud638\uc8fc \ub2ec\ub7ec", - "flag": "AU" - }, - "AUN": { - "name": "\ud638\uc8fc \ub108\uac9f", - "flag": "AU" - }, - "AWG": { - "name": "\uc544\ub8e8\ubc18 \ud50c\ub85c\ub9b0", - "flag": "AW" - }, - "BAM": { - "name": "\ubcf4\uc2a4\ub2c8\uc544 \ud5e4\ub974\uccb4\uace0\ube44\ub098 \ucee8\ubc84\ud130\ube14 \ub9c8\ud06c", - "flag": "BA" - }, - "BBD": { - "name": "\ubc14\ubca0\uc774\ub3c4\uc2a4 \ub2ec\ub7ec", - "flag": "BB" - }, - "BDT": { - "name": "\ubc29\uae00\ub77c\ub370\uc2dc \ud0c0\uce74", - "flag": "BD" - }, - "BGN": { - "name": "\ubd88\uac00\ub9ac\uc544 \ub808\ud504", - "flag": "BG" - }, - "BHD": { - "name": "\ubc14\ub808\uc778 \ub514\ub098\ub974", - "flag": "BH" - }, - "BIF": { - "name": "\ubd80\ub8ec\ub514 \ud504\ub791", - "flag": "BI" - }, - "BMD": { - "name": "\ubc84\ubba4\ub2e4 \ub2ec\ub7ec", - "flag": "BM" - }, - "BND": { - "name": "\ube0c\ub8e8\ub098\uc774 \ub2ec\ub7ec", - "flag": "BN" - }, - "BOB": { - "name": "\ubcfc\ub9ac\ube44\uc544\uc5b4", - "flag": "BO" - }, - "BRI": { - "name": "\uc601\uad6d", - "flag": "BR" - }, - "BRL": { - "name": "\ube0c\ub77c\uc9c8 \ub808\uc54c", - "flag": "BR" - }, - "BSD": { - "name": "\ubc14\ud558\ub9c8 \ub2ec\ub7ec", - "flag": "BS" - }, - "BTN": { - "name": "\ubd80\ud0c4 \ub20c\ud2b8\ub7fc", - "flag": "BT" - }, - "BWP": { - "name": "\ubcf4\uce20\uc640\ub098 \ud480\ub77c", - "flag": "BW" - }, - "BYN": { - "name": "\ubca8\ub85c\ub8e8\uc2dc \ub8e8\ube14", - "flag": "BY" - }, - "BZD": { - "name": "\ubca8\ub9ac\uc988 \ub2ec\ub7ec", - "flag": "BZ" - }, - "CAD": { - "name": "\uce90\ub098\ub2e4 \ub2ec\ub7ec", - "flag": "CA" - }, - "CDF": { - "name": "\ucf69\uace0 \ud504\ub791", - "flag": "CD" - }, - "CHF": { - "name": "\uc2a4\uc704\uc2a4 \ud504\ub791", - "flag": "CH" - }, - "CLF": { - "name": "\uce60\ub808 \uacc4\uc815 \ub2e8\uc704", - "flag": "CL" - }, - "CLP": { - "name": "\uce60\ub808 \ud398\uc18c", - "flag": "CL" - }, - "CNH": { - "name": "\uc911\uad6d \uc704\uc548", - "flag": "CN" - }, - "CNY": { - "name": "\uc911\uad6d \uc704\uc548", - "flag": "CN" - }, - "COP": { - "name": "\ucf5c\ub86c\ube44\uc544 \ud398\uc18c", - "flag": "CO" - }, - "CRC": { - "name": "\ucf54\uc2a4\ud0c0\ub9ac\uce74 \ucf5c\ub860", - "flag": "CR" - }, - "CUP": { - "name": "\ucfe0\ubc14 \ud398\uc18c", - "flag": "CU" - }, - "CVE": { - "name": "\uce74\ubcf4\ubca0\ub974\ub370 \ubc29\ud328", - "flag": "CV" - }, - "CYP": { - "name": "\ud0a4\ud504\ub85c\uc2a4 \ud30c\uc6b4\ub4dc", - "flag": "CY" - }, - "CZK": { - "name": "\uccb4\ucf54 \ucf54\ub8e8\ub098", - "flag": "CZ" - }, - "DJF": { - "name": "\uc9c0\ubd80\ud2f0 \ud504\ub791", - "flag": "DJ" - }, - "DKK": { - "name": "\ub374\ub9c8\ud06c \ud06c\ub85c\ub124", - "flag": "DK" - }, - "DOE": { - "name": "\ub354\ube14 \uc774\uae00", - "flag": "DO" - }, - "DOP": { - "name": "\ub3c4\ubbf8\ub2c8\uce74 \ud398\uc18c", - "flag": "DO" - }, - "DZD": { - "name": "\uc54c\uc81c\ub9ac \ub514\ub098\ub974", - "flag": "DZ" - }, - "EGP": { - "name": "\uc774\uc9d1\ud2b8 \ud30c\uc6b4\ub4dc", - "flag": "EG" - }, - "ETB": { - "name": "\uc5d0\ud2f0\uc624\ud53c\uc544 \ube44\ub974", - "flag": "ET" - }, - "EUR": { - "name": "\uc720\ub85c", - "flag": "EU" - }, - "FJD": { - "name": "\ud53c\uc9c0 \ub2ec\ub7ec", - "flag": "FJ" - }, - "FRN": { - "name": "\ud504\ub791\uc2a4 \ub098\ud3f4\ub808\uc639", - "flag": "FR" - }, - "GBP": { - "name": "\ud30c\uc6b4\ub4dc \uc2a4\ud138\ub9c1", - "flag": "GB" - }, - "GEL": { - "name": "\uc870\uc9c0\uc548 \ub7f0", - "flag": "GE" - }, - "GHS": { - "name": "\uac00\ub098 \uc138\ub514", - "flag": "GH" - }, - "GMD": { - "name": "\uac10\ube44\uc544 \ub2ec\ub77c\uc2dc", - "flag": "GM" - }, - "GNF": { - "name": "\uae30\ub2c8 \ud504\ub791", - "flag": "GN" - }, - "GTQ": { - "name": "\uacfc\ud14c\ub9d0\ub77c \ucf00\ucc30", - "flag": "GT" - }, - "GYD": { - "name": "\uac00\uc774\uc544\ub098 \ub2ec\ub7ec", - "flag": "GY" - }, - "HKD": { - "name": "\ud64d\ucf69 \ub2ec\ub7ec", - "flag": "HK" - }, - "HNL": { - "name": "\uc628\ub450\ub77c\uc2a4 \ub818\ud53c\ub77c", - "flag": "HN" - }, - "HRK": { - "name": "\ud06c\ub85c\uc544\ud2f0\uc544 \ucfe0\ub098", - "flag": "HR" - }, - "HTG": { - "name": "\uc544\uc774\ud2f0 \uc870\ub871\ubc15", - "flag": "HT" - }, - "HUF": { - "name": "\ud5dd\uac00\ub9ac \ud3ec\ub9b0\ud2b8", - "flag": "HU" - }, - "IDR": { - "name": "\uc778\ub3c4\ub124\uc2dc\uc544 \ub8e8\ud53c\uc544", - "flag": "ID" - }, - "ILS": { - "name": "\uc774\uc2a4\ub77c\uc5d8 \uc0c8 \uc170\ucf08", - "flag": "IL" - }, - "INR": { - "name": "\uc778\ub3c4 \ub8e8\ud53c", - "flag": "IN" - }, - "IQD": { - "name": "\uc774\ub77c\ud06c \ub514\ub098\ub974", - "flag": "IQ" - }, - "IRR": { - "name": "\uc774\ub780 \ub9ac\uc54c", - "flag": "IR" - }, - "ISK": { - "name": "\uc544\uc774\uc2ac\ub780\ub4dc \ud06c\ub85c\ub098", - "flag": "IS" - }, - "JMD": { - "name": "\uc790\uba54\uc774\uce74 \ub2ec\ub7ec", - "flag": "JM" - }, - "JOD": { - "name": "\uc694\ub974\ub2e8 \ub514\ub098\ub974", - "flag": "JO" - }, - "JPY": { - "name": "\uc77c\ubcf8 \uc5d4", - "flag": "JP" - }, - "KES": { - "name": "\ucf00\ub0d0 \uc2e4\ub9c1", - "flag": "KE" - }, - "KHR": { - "name": "\uce84\ubcf4\ub514\uc544 \ub9ac\uc5d8", - "flag": "KH" - }, - "KMF": { - "name": "\ucf54\ubaa8\ub85c \ud504\ub791", - "flag": "KM" - }, - "KRU": { - "name": "\ub0a8\uc544\ud504\ub9ac\uce74 \uacf5\ud654\uad6d \ud06c\ub8e8\uac70\ub79c\ub4dc", - "flag": "KR" - }, - "KRW": { - "name": "\ud55c\uad6d \uc6d0", - "flag": "KR" - }, - "KWD": { - "name": "\ucfe0\uc6e8\uc774\ud2b8 \ub514\ub098\ub974", - "flag": "KW" - }, - "KYD": { - "name": "\ucf00\uc774\ub9e8 \uc81c\ub3c4 \ub2ec\ub7ec", - "flag": "KY" - }, - "KZT": { - "name": "\uce74\uc790\ud750\uc2a4\ud0c4 \ud161\uac8c", - "flag": "KZ" - }, - "LAK": { - "name": "\ub77c\uc624\uc2a4 \ud0b5", - "flag": "LA" - }, - "LBP": { - "name": "\ub808\ubc14\ub17c \ud30c\uc6b4\ub4dc", - "flag": "LB" - }, - "LFX": { - "name": "\uc218\uad6d \ubcf4\ubb3c", - "flag": "MY" - }, - "LKR": { - "name": "\uc2a4\ub9ac\ub791\uce74 \ub8e8\ud53c", - "flag": "LK" - }, - "LRD": { - "name": "\ub77c\uc774\ubca0\ub9ac\uc544 \ub2ec\ub7ec", - "flag": "LR" - }, - "LSL": { - "name": "\ub808\uc18c\ud1a0 \ub85c\ud2f0", - "flag": "LS" - }, - "LTL": { - "name": "\ub9ac\ud22c\uc544\ub2c8\uc544 \ub9ac\ud0c0\uc2a4", - "flag": "LT" - }, - "LYD": { - "name": "\ub9ac\ube44\uc544 \ub514\ub098\ub974", - "flag": "LY" - }, - "M5P": { - "name": "\uba55\uc2dc\ucf54 50\ud398\uc18c", - "flag": "MX" - }, - "MAD": { - "name": "\ubaa8\ub85c\ucf54 \ub514\ub974\ud568", - "flag": "MA" - }, - "MAL": { - "name": "\ub2e8\ud48d\uc78e", - "flag": "MA" - }, - "MDL": { - "name": "\ubab0\ub3c4\ubc14 \ub808\uc6b0", - "flag": "MD" - }, - "MGA": { - "name": "\ub9c8\ub2e4\uac00\uc2a4\uce74\ub974 \uc544\ub9ac\uc544\ub9ac", - "flag": "MG" - }, - "MKD": { - "name": "\ub9c8\ucf00\ub3c4\ub2c8\uc544 \ub514\ub098\ub974", - "flag": "MK" - }, - "MMK": { - "name": "\ubbf8\uc580\ub9c8 \ucc28\ud2b8", - "flag": "MM" - }, - "MOP": { - "name": "\ub9c8\uce74\uc624 \ud30c\ud0c0\uce74", - "flag": "MO" - }, - "MRU": { - "name": "\ubaa8\ub9ac\ud0c0\ub2c8\uc548 \uc6b0\uae30\uc57c", - "flag": "MR" - }, - "MTL": { - "name": "\ubab0\ud0c0 \ub9ac\ub77c", - "flag": "MT" - }, - "MUR": { - "name": "\ubaa8\ub9ac\uc154\uc2a4 \ub8e8\ud53c", - "flag": "MU" - }, - "MVR": { - "name": "\ubab0\ub514\ube0c \ub8e8\ud53c\uc57c", - "flag": "MV" - }, - "MWK": { - "name": "\ub9d0\ub77c\uc704 \ucf70\ucc28", - "flag": "MW" - }, - "MXN": { - "name": "\uba55\uc2dc\ucf54 \ud398\uc18c", - "flag": "MX" - }, - "MYR": { - "name": "\ub9d0\ub808\uc774\uc2dc\uc544 \ub9c1\uae43", - "flag": "MY" - }, - "MZN": { - "name": "\ubaa8\uc7a0\ube44\ud06c \uba54\ud2f0\uce7c", - "flag": "MZ" - }, - "NAD": { - "name": "\ub098\ubbf8\ube44\uc544 \ub2ec\ub7ec", - "flag": "NA" - }, - "NBL": { - "name": "\ub9e8 \uc12c \ub178\ube14", - "flag": "IM" - }, - "NGN": { - "name": "\ub098\uc774\uc9c0\ub9ac\uc544 \ub098\uc774\ub77c", - "flag": "NG" - }, - "NIO": { - "name": "\ub2c8\uce74\ub77c\uacfc \ucf54\ub974\ub3c4\ubc14", - "flag": "NI" - }, - "NOK": { - "name": "\ub178\ub974\uc6e8\uc774 \ud06c\ub85c\ub124", - "flag": "NO" - }, - "NPR": { - "name": "\ub124\ud314 \ub8e8\ud53c", - "flag": "NP" - }, - "NSO": { - "name": "\uc0c8\ub85c\uc6b4 \uad70\uc8fc", - "flag": "GB" - }, - "NZD": { - "name": "\ub274\uc9c8\ub79c\ub4dc \ub2ec\ub7ec", - "flag": "NZ" - }, - "OMR": { - "name": "\uc624\ub9cc \ub9ac\uc54c", - "flag": "OM" - }, - "OSO": { - "name": "\uc61b \uad70\uc8fc", - "flag": "GB" - }, - "PAB": { - "name": "\ud30c\ub098\ub9c8 \ubc1c\ubcf4\uc544", - "flag": "PA" - }, - "PEN": { - "name": "\ud398\ub8e8 \ub274 \uc194", - "flag": "PE" - }, - "PGK": { - "name": "\ud30c\ud478\uc544\ub274\uae30\ub2c8 \uc911\uad6d", - "flag": "PG" - }, - "PHP": { - "name": "\ud544\ub9ac\ud540 \ud398\uc18c", - "flag": "PH" - }, - "PKR": { - "name": "\ud30c\ud0a4\uc2a4\ud0c4 \ub8e8\ud53c", - "flag": "PK" - }, - "PLN": { - "name": "\ud3f4\ub780\ub4dc \uc990\ub85c\ud2f0", - "flag": "PL" - }, - "PYG": { - "name": "\ud30c\ub77c\uacfc\uc774 \uacfc\ub77c\ub2c8", - "flag": "PY" - }, - "QAR": { - "name": "\uce74\ud0c0\ub974 \ub9ac\uc584", - "flag": "QA" - }, - "RON": { - "name": "\ub8e8\ub9c8\ub2c8\uc544\uc5b4 \ub274 \ub808\uc6b0", - "flag": "RO" - }, - "RSD": { - "name": "\uc138\ub974\ube44\uc544 \ub514\ub098\ub974", - "flag": "RS" - }, - "RUB": { - "name": "\ub7ec\uc2dc\uc544 \ub8e8\ube14", - "flag": "RU" - }, - "RWF": { - "name": "\ub974\uc644\ub2e4 \ud504\ub791", - "flag": "RW" - }, - "SAR": { - "name": "\uc0ac\uc6b0\ub514 \ub9ac\uc584", - "flag": "SA" - }, - "SBD": { - "name": "\uc194\ub85c\ubaac \uc81c\ub3c4 \ub2ec\ub7ec", - "flag": "SB" - }, - "SCR": { - "name": "\uc138\uc774\uc178 \ub8e8\ud53c", - "flag": "SC" - }, - "SDG": { - "name": "\uc218\ub2e8 \ud30c\uc6b4\ub4dc", - "flag": "SD" - }, - "SEK": { - "name": "\uc2a4\uc6e8\ub374 \ud06c\ub85c\ub098", - "flag": "SE" - }, - "SGD": { - "name": "\uc2f1\uac00\ud3ec\ub974 \ub2ec\ub7ec", - "flag": "SG" - }, - "SHP": { - "name": "\uc138\uc778\ud2b8 \ud5ec\ub808\ub098 \ud30c\uc6b4\ub4dc", - "flag": "SH" - }, - "SLL": { - "name": "\uc2dc\uc5d0\ub77c\ub9ac\uc628", - "flag": "SL" - }, - "SOS": { - "name": "\uc18c\ub9d0\ub9ac\uc544 \uc2e4\ub9c1", - "flag": "SO" - }, - "SRD": { - "name": "\uc218\ub9ac\ub0a8 \ub2ec\ub7ec", - "flag": "SR" - }, - "STN": { - "name": "\uc0c1\ud22c\uba54\uc548 \ub3c4\ube0c\ub77c", - "flag": "ST" - }, - "SVC": { - "name": "\uc0b4\ubc14\ub3c4\ub974 \ucf5c\ub7fc\ubc84\uc2a4", - "flag": "SV" - }, - "SZL": { - "name": "\uc2a4\uc640\uc9c0 \ub9b4\ub791\uac8c\ub2c8", - "flag": "SZ" - }, - "THB": { - "name": "\ud0dc\uad6d \ubc14\ud2b8", - "flag": "TH" - }, - "TJS": { - "name": "\ud0c0\uc9c0\ud0a4\uc2a4\ud0c4 \uc18c\ube44\ub2c8", - "flag": "TJ" - }, - "TMT": { - "name": "\ud22c\ub974\ud06c\uba54\ub2c8\uc2a4\ud0c4 \ub9c8\ub098\ud2b8", - "flag": "TM" - }, - "TND": { - "name": "\ud280\ub2c8\uc9c0 \ub514\ub098\ub974", - "flag": "TN" - }, - "TOP": { - "name": "\ud1b5\uac00 \ud321\uac00", - "flag": "TO" - }, - "TRY": { - "name": "\ud130\ud0a4 \ub9ac\ub77c", - "flag": "TR" - }, - "TTD": { - "name": "\ud2b8\ub9ac\ub2c8\ub2e4\ub4dc \ud1a0\ubc14\uace0 \ub2ec\ub7ec", - "flag": "TT" - }, - "TWD": { - "name": "\uc2e0\ub300\ub9cc \ub2ec\ub7ec", - "flag": "TW" - }, - "TZS": { - "name": "\ud0c4\uc790\ub2c8\uc544 \uc2e4\ub9c1", - "flag": "TZ" - }, - "UAH": { - "name": "\uc6b0\ud06c\ub77c\uc774\ub098 \ud750\ub9ac\ube0c\ub0d0", - "flag": "UA" - }, - "UGX": { - "name": "\uc6b0\uac04\ub2e4 \uc2e4\ub9c1", - "flag": "UG" - }, - "USD": { - "name": "\ubbf8\uad6d \ub2ec\ub7ec", - "flag": "US" - }, - "UYU": { - "name": "\uc6b0\ub8e8\uacfc\uc774 \ud398\uc18c", - "flag": "UY" - }, - "UZS": { - "name": "\uc6b0\uc988\ubca0\ud0a4\uc2a4\ud0c4 \uc19c", - "flag": "UZ" - }, - "VES": { - "name": "\ubca0\ub124\uc218\uc5d8\ub77c \ubcfc\ub9ac\ubc14\ub974 \uc18c\ubca0\ub77c\ub178", - "flag": "VE" - }, - "VND": { - "name": "\ubca0\ud2b8\ub0a8 \ub3d9", - "flag": "VN" - }, - "VRL": { - "name": "\ube0c\ub808\ub12c\ub9ac 10F.", - "flag": "CH" - }, - "VRN": { - "name": "\ube0c\ub808\ub12c\ub9ac 20F", - "flag": "CH" - }, - "XAG": { - "name": "\uc740\ud654(1\ud2b8\ub85c\uc774 \uc628\uc2a4)", - "flag": "XAG" - }, - "XAGK": { - "name": "\uc740(Kg)", - "flag": "XAG" - }, - "XAU": { - "name": "\uae08(1\ud2b8\ub85c\uc774 \uc628\uc2a4)", - "flag": "XAU" - }, - "XAUK": { - "name": "\uae08(Kg)", - "flag": "XAU" - }, - "XCD": { - "name": "\ub3d9\uce74\ub9ac\ube0c \ub2ec\ub7ec", - "flag": "AI" - }, - "XOF": { - "name": "Cfa \ud504\ub791 Bceao", - "flag": "SN" - }, - "XPD": { - "name": "\ud314\ub77c\ub4d0(1\ud2b8\ub85c\uc774 \uc628\uc2a4)", - "flag": "XPD" - }, - "XPDK": { - "name": "\ud314\ub77c\ub4d0(Kg)", - "flag": "XPD" - }, - "XPF": { - "name": "Cfp \ud504\ub791", - "flag": "PF" - }, - "XPT": { - "name": "\ud50c\ub798\ud2f0\ub118(1\ud2b8\ub85c\uc774 \uc628\uc2a4)", - "flag": "XPT" - }, - "XPTK": { - "name": "\ubc31\uae08(Kg)", - "flag": "XPT" - }, - "YER": { - "name": "\uc608\uba58 \ub9ac\uc54c", - "flag": "YE" - }, - "ZAR": { - "name": "\ub0a8\uc544\ud504\ub9ac\uce74 \uacf5\ud654\uad6d \ub79c\ub4dc", - "flag": "ZA" - }, - "ZMW": { - "name": "\uc7a0\ube44\uc544 \ucf70\ucc28", - "flag": "ZM" - }, - "ZWD": { - "name": "\uc9d0\ubc14\ube0c\uc6e8 \ub2ec\ub7ec", - "flag": "ZW" - }, - "DASH": { - "name": "\ub300\uc2dc \uc554\ud638\ud654\ud3d0", - "flag": "DASH" - }, - "BTC": { - "name": "\ube44\ud2b8\ucf54\uc778", - "flag": "BTC" - }, - "DSH": { - "name": "\ub300\uc2dc \uc554\ud638\ud654\ud3d0", - "flag": "DASH" - }, - "LTC": { - "name": "\ub77c\uc774\ud2b8\ucf54\uc778", - "flag": "LTC" - }, - "ETH": { - "name": "\uc774\ub354 \ub9ac\uc6c0", - "flag": "ETH" - }, - "BCH": { - "name": "\ube44\ud2b8\ucf54\uc778 \uce90\uc2dc", - "flag": "BTC" - }, - "XRP": { - "name": "Xrp \uc554\ud638\ud654\ud3d0", - "flag": "XRP" - } -}
--- a/Simoleon/Resources/zh-Hans.lproj/CurrencyMetadata.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,714 +0,0 @@ -{ - "AED": { - "name": "\u963f\u8054\u914b\u8fea\u62c9\u59c6", - "flag": "AE" - }, - "AFN": { - "name": "\u963f\u5bcc\u6c57 \u963f\u5bcc\u6c57\u5c3c", - "flag": "AF" - }, - "ALL": { - "name": "\u963f\u5c14\u5df4\u5c3c\u4e9a\u5217\u514b", - "flag": "AL" - }, - "AMD": { - "name": "\u4e9a\u7f8e\u5c3c\u4e9a\u5fb7\u62c9\u59c6", - "flag": "AM" - }, - "ANG": { - "name": "\u8377\u5c5e\u5b89\u7684\u5217\u65af\u7fa4\u5c9b\u76fe", - "flag": "CW" - }, - "AOA": { - "name": "\u5b89\u54e5\u62c9\u7b2c\u4e00", - "flag": "AO" - }, - "ARE": { - "name": "\u963f\u96f7\u683c", - "flag": "AR" - }, - "ARS": { - "name": "\u963f\u6839\u5ef7\u6bd4\u7d22", - "flag": "AR" - }, - "AUD": { - "name": "\u6fb3\u5143", - "flag": "AU" - }, - "AUN": { - "name": "\u6fb3\u5927\u5229\u4e9a\u6398\u91d1", - "flag": "AU" - }, - "AWG": { - "name": "\u963f\u9c81\u5df4\u5f17\u7f57\u6797", - "flag": "AW" - }, - "BAM": { - "name": "\u6ce2\u65af\u5c3c\u4e9a\u548c\u9ed1\u585e\u54e5\u7ef4\u90a3\u53ef\u5151\u6362\u9a6c\u514b", - "flag": "BA" - }, - "BBD": { - "name": "\u5df4\u5df4\u591a\u65af\u5143", - "flag": "BB" - }, - "BDT": { - "name": "\u5b5f\u52a0\u62c9\u56fd\u5854\u5361", - "flag": "BD" - }, - "BGN": { - "name": "\u4fdd\u52a0\u5229\u4e9a\u5217\u5f17", - "flag": "BG" - }, - "BHD": { - "name": "\u5df4\u6797\u7b2c\u7eb3\u5c14", - "flag": "BH" - }, - "BIF": { - "name": "\u5e03\u9686\u8fea\u6cd5\u90ce", - "flag": "BI" - }, - "BMD": { - "name": "\u767e\u6155\u5927\u5143", - "flag": "BM" - }, - "BND": { - "name": "\u6587\u83b1\u5143", - "flag": "BN" - }, - "BOB": { - "name": "\u73bb\u5229\u7ef4\u4e9a", - "flag": "BO" - }, - "BRI": { - "name": "\u82f1\u56fd", - "flag": "BR" - }, - "BRL": { - "name": "\u5df4\u897f\u96f7\u4e9a\u5c14", - "flag": "BR" - }, - "BSD": { - "name": "\u5df4\u54c8\u9a6c\u5143", - "flag": "BS" - }, - "BTN": { - "name": "\u4e0d\u4e39\u52aa\u5c14\u7279\u9c81\u59c6", - "flag": "BT" - }, - "BWP": { - "name": "\u535a\u8328\u74e6\u7eb3\u666e\u62c9", - "flag": "BW" - }, - "BYN": { - "name": "\u767d\u4fc4\u7f57\u65af\u5362\u5e03", - "flag": "BY" - }, - "BZD": { - "name": "\u4f2f\u5229\u5179\u5143", - "flag": "BZ" - }, - "CAD": { - "name": "\u52a0\u5143", - "flag": "CA" - }, - "CDF": { - "name": "\u521a\u679c\u6cd5\u90ce", - "flag": "CD" - }, - "CHF": { - "name": "\u745e\u58eb\u6cd5\u90ce", - "flag": "CH" - }, - "CLF": { - "name": "\u667a\u5229\u8bb0\u8d26\u5355\u4f4d", - "flag": "CL" - }, - "CLP": { - "name": "\u667a\u5229\u6bd4\u7d22", - "flag": "CL" - }, - "CNH": { - "name": "\u4eba\u6c11\u5e01", - "flag": "CN" - }, - "CNY": { - "name": "\u4eba\u6c11\u5e01", - "flag": "CN" - }, - "COP": { - "name": "\u54e5\u4f26\u6bd4\u4e9a\u6bd4\u7d22", - "flag": "CO" - }, - "CRC": { - "name": "\u54e5\u65af\u8fbe\u9ece\u52a0\u79d1\u6717", - "flag": "CR" - }, - "CUP": { - "name": "\u53e4\u5df4\u6bd4\u7d22", - "flag": "CU" - }, - "CVE": { - "name": "\u4f5b\u5f97\u89d2\u76fe\u724c", - "flag": "CV" - }, - "CYP": { - "name": "\u585e\u6d66\u8def\u65af\u9551", - "flag": "CY" - }, - "CZK": { - "name": "\u6377\u514b\u514b\u6717", - "flag": "CZ" - }, - "DJF": { - "name": "\u5409\u5e03\u63d0\u6cd5\u90ce", - "flag": "DJ" - }, - "DKK": { - "name": "\u4e39\u9ea6\u514b\u6717", - "flag": "DK" - }, - "DOE": { - "name": "\u53cc\u9e70", - "flag": "DO" - }, - "DOP": { - "name": "\u591a\u7c73\u5c3c\u52a0\u6bd4\u7d22", - "flag": "DO" - }, - "DZD": { - "name": "\u963f\u5c14\u53ca\u5229\u4e9a\u7b2c\u7eb3\u5c14", - "flag": "DZ" - }, - "EGP": { - "name": "\u57c3\u53ca\u9551", - "flag": "EG" - }, - "ETB": { - "name": "\u57c3\u585e\u4fc4\u6bd4\u4e9a\u6bd4\u5c14", - "flag": "ET" - }, - "EUR": { - "name": "\u6b27\u5143", - "flag": "EU" - }, - "FJD": { - "name": "\u6590\u6d4e\u5143", - "flag": "FJ" - }, - "FRN": { - "name": "\u6cd5\u56fd\u62ff\u7834\u4ed1", - "flag": "FR" - }, - "GBP": { - "name": "\u82f1\u9551", - "flag": "GB" - }, - "GEL": { - "name": "\u683c\u9c81\u5409\u4e9a\u8dd1", - "flag": "GE" - }, - "GHS": { - "name": "\u52a0\u7eb3\u585e\u5730", - "flag": "GH" - }, - "GMD": { - "name": "Gambian Dalasi", - "flag": "GM" - }, - "GNF": { - "name": "\u51e0\u5185\u4e9a\u6cd5\u90ce", - "flag": "GN" - }, - "GTQ": { - "name": "\u5371\u5730\u9a6c\u62c9\u683c\u67e5\u5c14", - "flag": "GT" - }, - "GYD": { - "name": "\u572d\u4e9a\u90a3\u5143", - "flag": "GY" - }, - "HKD": { - "name": "\u6e2f\u5143", - "flag": "HK" - }, - "HNL": { - "name": "\u6d2a\u90fd\u62c9\u65af\u4f26\u76ae\u62c9", - "flag": "HN" - }, - "HRK": { - "name": "\u514b\u7f57\u5730\u4e9a\u5e93\u7eb3", - "flag": "HR" - }, - "HTG": { - "name": "\u6d77\u5929\u846b\u82a6", - "flag": "HT" - }, - "HUF": { - "name": "\u5308\u7259\u5229\u798f\u6797", - "flag": "HU" - }, - "IDR": { - "name": "\u5370\u5c3c\u76fe", - "flag": "ID" - }, - "ILS": { - "name": "\u4ee5\u8272\u5217\u65b0\u8c22\u514b\u5c14", - "flag": "IL" - }, - "INR": { - "name": "\u5370\u5ea6\u5362\u6bd4", - "flag": "IN" - }, - "IQD": { - "name": "\u4f0a\u62c9\u514b\u7b2c\u7eb3\u5c14", - "flag": "IQ" - }, - "IRR": { - "name": "\u4f0a\u6717\u91cc\u4e9a\u5c14", - "flag": "IR" - }, - "ISK": { - "name": "\u51b0\u5c9b\u514b\u6717", - "flag": "IS" - }, - "JMD": { - "name": "\u7259\u4e70\u52a0\u5143", - "flag": "JM" - }, - "JOD": { - "name": "\u7ea6\u65e6\u7b2c\u7eb3\u5c14", - "flag": "JO" - }, - "JPY": { - "name": "\u65e5\u5706", - "flag": "JP" - }, - "KES": { - "name": "\u80af\u5c3c\u4e9a\u5148\u4ee4", - "flag": "KE" - }, - "KHR": { - "name": "\u67ec\u57d4\u5be8\u745e\u5c14", - "flag": "KH" - }, - "KMF": { - "name": "\u79d1\u6469\u7f57\u6cd5\u90ce", - "flag": "KM" - }, - "KRU": { - "name": "\u5357\u975e\u514b\u9c81\u683c\u6717", - "flag": "KR" - }, - "KRW": { - "name": "\u97e9\u5143", - "flag": "KR" - }, - "KWD": { - "name": "\u79d1\u5a01\u7279\u7b2c\u7eb3\u5c14", - "flag": "KW" - }, - "KYD": { - "name": "\u5f00\u66fc\u7fa4\u5c9b\u5143", - "flag": "KY" - }, - "KZT": { - "name": "\u54c8\u8428\u514b\u65af\u5766\u575a\u6208", - "flag": "KZ" - }, - "LAK": { - "name": "\u8001\u57fa\u666e", - "flag": "LA" - }, - "LBP": { - "name": "\u9ece\u5df4\u5ae9\u9551", - "flag": "LB" - }, - "LFX": { - "name": "\u56de\u6559\u5b9d\u85cf", - "flag": "MY" - }, - "LKR": { - "name": "\u65af\u91cc\u5170\u5361\u5362\u6bd4", - "flag": "LK" - }, - "LRD": { - "name": "\u5229\u6bd4\u91cc\u4e9a\u5143", - "flag": "LR" - }, - "LSL": { - "name": "\u83b1\u7d22\u6258\u6d1b\u8482", - "flag": "LS" - }, - "LTL": { - "name": "\u7acb\u9676\u5b9b\u7acb\u7279", - "flag": "LT" - }, - "LYD": { - "name": "\u5229\u6bd4\u4e9a\u7b2c\u7eb3\u5c14", - "flag": "LY" - }, - "M5P": { - "name": "\u58a8\u897f\u54e5 50 \u6bd4\u7d22", - "flag": "MX" - }, - "MAD": { - "name": "\u6469\u6d1b\u54e5\u8fea\u62c9\u59c6", - "flag": "MA" - }, - "MAL": { - "name": "\u67ab\u53f6", - "flag": "MA" - }, - "MDL": { - "name": "\u6469\u5c14\u591a\u74e6\u5217\u4f0a", - "flag": "MD" - }, - "MGA": { - "name": "\u9a6c\u8fbe\u52a0\u65af\u52a0\u963f\u91cc\u4e9a\u91cc", - "flag": "MG" - }, - "MKD": { - "name": "\u9a6c\u5176\u987f\u7b2c\u7eb3\u5c14", - "flag": "MK" - }, - "MMK": { - "name": "\u7f05\u5143", - "flag": "MM" - }, - "MOP": { - "name": "\u6fb3\u95e8\u5e01", - "flag": "MO" - }, - "MRU": { - "name": "\u6bdb\u91cc\u5854\u5c3c\u4e9a\u4e4c\u5409\u4e9a", - "flag": "MR" - }, - "MTL": { - "name": "\u9a6c\u8033\u4ed6\u91cc\u62c9", - "flag": "MT" - }, - "MUR": { - "name": "\u6bdb\u91cc\u6c42\u65af\u5362\u6bd4", - "flag": "MU" - }, - "MVR": { - "name": "\u9a6c\u5c14\u4ee3\u592b\u62c9\u83f2\u4e9a", - "flag": "MV" - }, - "MWK": { - "name": "\u9a6c\u62c9\u7ef4\u514b\u74e6\u67e5", - "flag": "MW" - }, - "MXN": { - "name": "\u58a8\u897f\u54e5\u6bd4\u7d22", - "flag": "MX" - }, - "MYR": { - "name": "\u9a6c\u6765\u897f\u4e9a\u4ee4\u5409", - "flag": "MY" - }, - "MZN": { - "name": "\u83ab\u6851\u6bd4\u514b\u6885\u8482\u5361\u5c14", - "flag": "MZ" - }, - "NAD": { - "name": "\u7eb3\u7c73\u6bd4\u4e9a\u5143", - "flag": "NA" - }, - "NBL": { - "name": "\u9a6c\u6069\u5c9b\u8d35\u65cf", - "flag": "IM" - }, - "NGN": { - "name": "\u5c3c\u65e5\u5229\u4e9a\u5948\u62c9", - "flag": "NG" - }, - "NIO": { - "name": "\u5c3c\u52a0\u62c9\u74dc\u79d1\u5c14\u591a\u74e6", - "flag": "NI" - }, - "NOK": { - "name": "\u632a\u5a01\u514b\u6717", - "flag": "NO" - }, - "NPR": { - "name": "\u5c3c\u6cca\u5c14\u5362\u6bd4", - "flag": "NP" - }, - "NSO": { - "name": "\u65b0\u4e3b\u6743", - "flag": "GB" - }, - "NZD": { - "name": "\u65b0\u897f\u5170\u5143", - "flag": "NZ" - }, - "OMR": { - "name": "\u963f\u66fc\u91cc\u4e9a\u5c14", - "flag": "OM" - }, - "OSO": { - "name": "\u8001\u541b\u4e3b", - "flag": "GB" - }, - "PAB": { - "name": "\u5df4\u62ff\u9a6c\u5df4\u6ce2\u4e9a", - "flag": "PA" - }, - "PEN": { - "name": "\u79d8\u9c81\u65b0\u7d22\u5c14", - "flag": "PE" - }, - "PGK": { - "name": "\u5df4\u5e03\u4e9a\u65b0\u51e0\u5185\u4e9a \u4e2d\u56fd", - "flag": "PG" - }, - "PHP": { - "name": "\u83f2\u5f8b\u5bbe\u6bd4\u7d22", - "flag": "PH" - }, - "PKR": { - "name": "\u5df4\u57fa\u65af\u5766\u5362\u6bd4", - "flag": "PK" - }, - "PLN": { - "name": "\u6ce2\u5170\u5179\u7f57\u63d0", - "flag": "PL" - }, - "PYG": { - "name": "\u5df4\u62c9\u572d\u74dc\u62c9\u5c3c", - "flag": "PY" - }, - "QAR": { - "name": "\u5361\u5854\u5c14\u91cc\u4e9a\u5c14", - "flag": "QA" - }, - "RON": { - "name": "\u7f57\u9a6c\u5c3c\u4e9a\u65b0\u5217\u4f0a", - "flag": "RO" - }, - "RSD": { - "name": "\u585e\u5c14\u7ef4\u4e9a\u7b2c\u7eb3\u5c14", - "flag": "RS" - }, - "RUB": { - "name": "\u4fc4\u7f57\u65af\u5362\u5e03", - "flag": "RU" - }, - "RWF": { - "name": "\u5362\u65fa\u8fbe\u6cd5\u90ce", - "flag": "RW" - }, - "SAR": { - "name": "\u6c99\u7279\u91cc\u4e9a\u5c14", - "flag": "SA" - }, - "SBD": { - "name": "\u6240\u7f57\u95e8\u7fa4\u5c9b\u5143", - "flag": "SB" - }, - "SCR": { - "name": "\u585e\u820c\u5c14\u5362\u6bd4", - "flag": "SC" - }, - "SDG": { - "name": "\u82cf\u4e39\u9551", - "flag": "SD" - }, - "SEK": { - "name": "\u745e\u5178\u514b\u6717", - "flag": "SE" - }, - "SGD": { - "name": "\u65b0\u52a0\u5761\u5143", - "flag": "SG" - }, - "SHP": { - "name": "\u5723\u8d6b\u52d2\u62ff\u9551", - "flag": "SH" - }, - "SLL": { - "name": "\u585e\u62c9\u5229\u6602\u5229\u6602", - "flag": "SL" - }, - "SOS": { - "name": "\u7d22\u9a6c\u91cc\u5148\u4ee4", - "flag": "SO" - }, - "SRD": { - "name": "\u82cf\u91cc\u5357\u5143", - "flag": "SR" - }, - "STN": { - "name": "\u5723\u591a\u7f8e\u591a\u5e03\u62c9", - "flag": "ST" - }, - "SVC": { - "name": "\u8428\u5c14\u74e6\u591a\u54e5\u4f26\u5e03", - "flag": "SV" - }, - "SZL": { - "name": "\u65af\u5a01\u58eb\u5170\u91cc\u5170\u5409\u5c3c", - "flag": "SZ" - }, - "THB": { - "name": "\u6cf0\u94e2", - "flag": "TH" - }, - "TJS": { - "name": "\u5854\u5409\u514b\u65af\u5766\u7d22\u83ab\u5c3c", - "flag": "TJ" - }, - "TMT": { - "name": "\u571f\u5e93\u66fc\u65af\u5766\u9a6c\u7eb3\u7279", - "flag": "TM" - }, - "TND": { - "name": "\u7a81\u5c3c\u65af\u7b2c\u7eb3\u5c14", - "flag": "TN" - }, - "TOP": { - "name": "Tongan Pa\u02bbAnga", - "flag": "TO" - }, - "TRY": { - "name": "\u571f\u8033\u5176\u91cc\u62c9", - "flag": "TR" - }, - "TTD": { - "name": "\u7279\u7acb\u5c3c\u8fbe\u548c\u591a\u5df4\u54e5\u5143", - "flag": "TT" - }, - "TWD": { - "name": "\u65b0\u53f0\u5e01", - "flag": "TW" - }, - "TZS": { - "name": "\u5766\u6851\u5c3c\u4e9a\u5148\u4ee4", - "flag": "TZ" - }, - "UAH": { - "name": "\u4e4c\u514b\u5170\u683c\u91cc\u592b\u7eb3", - "flag": "UA" - }, - "UGX": { - "name": "\u4e4c\u5e72\u8fbe\u5148\u4ee4", - "flag": "UG" - }, - "USD": { - "name": "\u7f8e\u56fd\u7f8e\u5143", - "flag": "US" - }, - "UYU": { - "name": "\u4e4c\u62c9\u572d\u6bd4\u7d22", - "flag": "UY" - }, - "UZS": { - "name": "\u4e4c\u5179\u522b\u514b\u65af\u5766\u7d22\u59c6", - "flag": "UZ" - }, - "VES": { - "name": "\u59d4\u5185\u745e\u62c9\u73bb\u5229\u74e6\u5c14\u7d22\u8d1d\u62c9\u8bfa", - "flag": "VE" - }, - "VND": { - "name": "\u8d8a\u5357\u76fe", - "flag": "VN" - }, - "VRL": { - "name": "\u5f17\u745e\u5185\u5229 10F\u3002", - "flag": "CH" - }, - "VRN": { - "name": "\u7ef4\u5185\u5229 20F", - "flag": "CH" - }, - "XAG": { - "name": "\u94f6\uff08\u4e00\u91d1\u8861\u76ce\u53f8\uff09", - "flag": "XAG" - }, - "XAGK": { - "name": "\u94f6\uff08\u516c\u65a4\uff09", - "flag": "XAG" - }, - "XAU": { - "name": "\u9ec4\u91d1\uff08\u4e00\u91d1\u8861\u76ce\u53f8\uff09", - "flag": "XAU" - }, - "XAUK": { - "name": "\u9ec4\u91d1\uff08\u516c\u65a4\uff09", - "flag": "XAU" - }, - "XCD": { - "name": "\u4e1c\u52a0\u52d2\u6bd4\u5143", - "flag": "AI" - }, - "XOF": { - "name": "\u975e\u6d32\u6cd5\u90ce", - "flag": "SN" - }, - "XPD": { - "name": "\u94af\uff08\u4e00\u91d1\u8861\u76ce\u53f8\uff09", - "flag": "XPD" - }, - "XPDK": { - "name": "\u94af\uff08\u516c\u65a4\uff09", - "flag": "XPD" - }, - "XPF": { - "name": "\u6cd5\u90ce", - "flag": "PF" - }, - "XPT": { - "name": "\u767d\u91d1\uff08\u4e00\u91d1\u8861\u76ce\u53f8\uff09", - "flag": "XPT" - }, - "XPTK": { - "name": "\u94c2\u91d1\uff08\u516c\u65a4\uff09", - "flag": "XPT" - }, - "YER": { - "name": "\u4e5f\u95e8\u91cc\u4e9a\u5c14", - "flag": "YE" - }, - "ZAR": { - "name": "\u5357\u975e\u5170\u7279", - "flag": "ZA" - }, - "ZMW": { - "name": "\u8d5e\u6bd4\u4e9a\u514b\u74e6\u67e5", - "flag": "ZM" - }, - "ZWD": { - "name": "\u6d25\u5df4\u5e03\u97e6\u5143", - "flag": "ZW" - }, - "DASH": { - "name": "\u8fbe\u4e16\u5e01", - "flag": "DASH" - }, - "BTC": { - "name": "\u6bd4\u7279\u5e01", - "flag": "BTC" - }, - "DSH": { - "name": "\u8fbe\u4e16\u5e01", - "flag": "DASH" - }, - "LTC": { - "name": "\u83b1\u7279\u5e01", - "flag": "LTC" - }, - "ETH": { - "name": "\u4ee5\u592a\u574a", - "flag": "ETH" - }, - "BCH": { - "name": "\u6bd4\u7279\u5e01\u73b0\u91d1", - "flag": "BTC" - }, - "XRP": { - "name": "Xrp \u52a0\u5bc6\u8d27\u5e01", - "flag": "XRP" - } -}
--- a/Simoleon/Resources/zh-Hant.lproj/CurrencyMetadata.json Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,714 +0,0 @@ -{ - "AED": { - "name": "\u963f\u806f\u914b\u8fea\u62c9\u59c6", - "flag": "AE" - }, - "AFN": { - "name": "\u963f\u5bcc\u6c57 \u963f\u5bcc\u6c57\u5c3c", - "flag": "AF" - }, - "ALL": { - "name": "\u963f\u723e\u5df4\u5c3c\u4e9e\u5217\u514b", - "flag": "AL" - }, - "AMD": { - "name": "\u4e9e\u7f8e\u5c3c\u4e9e\u5fb7\u62c9\u59c6", - "flag": "AM" - }, - "ANG": { - "name": "\u8377\u5c6c\u5b89\u7684\u5217\u65af\u7fa4\u5cf6\u76fe", - "flag": "CW" - }, - "AOA": { - "name": "\u5b89\u54e5\u62c9\u7b2c\u4e00", - "flag": "AO" - }, - "ARE": { - "name": "\u963f\u96f7\u683c", - "flag": "AR" - }, - "ARS": { - "name": "\u963f\u6839\u5ef7\u6bd4\u7d22", - "flag": "AR" - }, - "AUD": { - "name": "\u6fb3\u5143", - "flag": "AU" - }, - "AUN": { - "name": "\u6fb3\u5927\u5229\u4e9e\u6398\u91d1", - "flag": "AU" - }, - "AWG": { - "name": "\u963f\u9b6f\u5df4\u5f17\u7f85\u6797", - "flag": "AW" - }, - "BAM": { - "name": "\u6ce2\u65af\u5c3c\u4e9e\u548c\u9ed1\u585e\u54e5\u7dad\u90a3\u53ef\u514c\u63db\u99ac\u514b", - "flag": "BA" - }, - "BBD": { - "name": "\u5df4\u5df4\u591a\u65af\u5143", - "flag": "BB" - }, - "BDT": { - "name": "\u5b5f\u52a0\u62c9\u570b\u5854\u5361", - "flag": "BD" - }, - "BGN": { - "name": "\u4fdd\u52a0\u5229\u4e9e\u5217\u5f17", - "flag": "BG" - }, - "BHD": { - "name": "\u5df4\u6797\u7b2c\u7d0d\u723e", - "flag": "BH" - }, - "BIF": { - "name": "\u5e03\u9686\u8fea\u6cd5\u90ce", - "flag": "BI" - }, - "BMD": { - "name": "\u767e\u6155\u5927\u5143", - "flag": "BM" - }, - "BND": { - "name": "\u6587\u840a\u5143", - "flag": "BN" - }, - "BOB": { - "name": "\u73bb\u5229\u7dad\u4e9e", - "flag": "BO" - }, - "BRI": { - "name": "\u82f1\u570b", - "flag": "BR" - }, - "BRL": { - "name": "\u5df4\u897f\u96f7\u4e9e\u723e", - "flag": "BR" - }, - "BSD": { - "name": "\u5df4\u54c8\u99ac\u5143", - "flag": "BS" - }, - "BTN": { - "name": "\u4e0d\u4e39\u52aa\u723e\u7279\u9b6f\u59c6", - "flag": "BT" - }, - "BWP": { - "name": "\u535a\u8328\u74e6\u7d0d\u666e\u62c9", - "flag": "BW" - }, - "BYN": { - "name": "\u767d\u4fc4\u7f85\u65af\u76e7\u5e03", - "flag": "BY" - }, - "BZD": { - "name": "\u4f2f\u5229\u8332\u5143", - "flag": "BZ" - }, - "CAD": { - "name": "\u52a0\u5143", - "flag": "CA" - }, - "CDF": { - "name": "\u525b\u679c\u6cd5\u90ce", - "flag": "CD" - }, - "CHF": { - "name": "\u745e\u58eb\u6cd5\u90ce", - "flag": "CH" - }, - "CLF": { - "name": "\u667a\u5229\u8a18\u8cec\u55ae\u4f4d", - "flag": "CL" - }, - "CLP": { - "name": "\u667a\u5229\u6bd4\u7d22", - "flag": "CL" - }, - "CNH": { - "name": "\u4eba\u6c11\u5e63", - "flag": "CN" - }, - "CNY": { - "name": "\u4eba\u6c11\u5e63", - "flag": "CN" - }, - "COP": { - "name": "\u54e5\u502b\u6bd4\u4e9e\u6bd4\u7d22", - "flag": "CO" - }, - "CRC": { - "name": "\u54e5\u65af\u9054\u9ece\u52a0\u79d1\u6717", - "flag": "CR" - }, - "CUP": { - "name": "\u53e4\u5df4\u6bd4\u7d22", - "flag": "CU" - }, - "CVE": { - "name": "\u4f5b\u5f97\u89d2\u76fe\u724c", - "flag": "CV" - }, - "CYP": { - "name": "\u585e\u6d66\u8def\u65af\u938a", - "flag": "CY" - }, - "CZK": { - "name": "\u6377\u514b\u514b\u6717", - "flag": "CZ" - }, - "DJF": { - "name": "\u5409\u5e03\u63d0\u6cd5\u90ce", - "flag": "DJ" - }, - "DKK": { - "name": "\u4e39\u9ea5\u514b\u6717", - "flag": "DK" - }, - "DOE": { - "name": "\u96d9\u9df9", - "flag": "DO" - }, - "DOP": { - "name": "\u591a\u7c73\u5c3c\u52a0\u6bd4\u7d22", - "flag": "DO" - }, - "DZD": { - "name": "\u963f\u723e\u53ca\u5229\u4e9e\u7b2c\u7d0d\u723e", - "flag": "DZ" - }, - "EGP": { - "name": "\u57c3\u53ca\u938a", - "flag": "EG" - }, - "ETB": { - "name": "\u57c3\u585e\u4fc4\u6bd4\u4e9e\u6bd4\u723e", - "flag": "ET" - }, - "EUR": { - "name": "\u6b50\u5143", - "flag": "EU" - }, - "FJD": { - "name": "\u6590\u6fdf\u5143", - "flag": "FJ" - }, - "FRN": { - "name": "\u6cd5\u570b\u62ff\u7834\u5d19", - "flag": "FR" - }, - "GBP": { - "name": "\u82f1\u938a", - "flag": "GB" - }, - "GEL": { - "name": "\u683c\u9b6f\u5409\u4e9e\u8dd1", - "flag": "GE" - }, - "GHS": { - "name": "\u52a0\u7d0d\u585e\u5730", - "flag": "GH" - }, - "GMD": { - "name": "Gambian Dalasi", - "flag": "GM" - }, - "GNF": { - "name": "\u5e7e\u5167\u4e9e\u6cd5\u90ce", - "flag": "GN" - }, - "GTQ": { - "name": "\u5371\u5730\u99ac\u62c9\u683c\u67e5\u723e", - "flag": "GT" - }, - "GYD": { - "name": "\u572d\u4e9e\u90a3\u5143", - "flag": "GY" - }, - "HKD": { - "name": "\u6e2f\u5143", - "flag": "HK" - }, - "HNL": { - "name": "\u6d2a\u90fd\u62c9\u65af\u502b\u76ae\u62c9", - "flag": "HN" - }, - "HRK": { - "name": "\u514b\u7f85\u5730\u4e9e\u5eab\u7d0d", - "flag": "HR" - }, - "HTG": { - "name": "\u6d77\u5929\u846b\u8606", - "flag": "HT" - }, - "HUF": { - "name": "\u5308\u7259\u5229\u798f\u6797", - "flag": "HU" - }, - "IDR": { - "name": "\u5370\u5c3c\u76fe", - "flag": "ID" - }, - "ILS": { - "name": "\u4ee5\u8272\u5217\u65b0\u8b1d\u514b\u723e", - "flag": "IL" - }, - "INR": { - "name": "\u5370\u5ea6\u76e7\u6bd4", - "flag": "IN" - }, - "IQD": { - "name": "\u4f0a\u62c9\u514b\u7b2c\u7d0d\u723e", - "flag": "IQ" - }, - "IRR": { - "name": "\u4f0a\u6717\u91cc\u4e9e\u723e", - "flag": "IR" - }, - "ISK": { - "name": "\u51b0\u5cf6\u514b\u6717", - "flag": "IS" - }, - "JMD": { - "name": "\u7259\u8cb7\u52a0\u5143", - "flag": "JM" - }, - "JOD": { - "name": "\u7d04\u65e6\u7b2c\u7d0d\u723e", - "flag": "JO" - }, - "JPY": { - "name": "\u65e5\u5713", - "flag": "JP" - }, - "KES": { - "name": "\u80af\u5c3c\u4e9e\u5148\u4ee4", - "flag": "KE" - }, - "KHR": { - "name": "\u67ec\u57d4\u5be8\u745e\u723e", - "flag": "KH" - }, - "KMF": { - "name": "\u79d1\u6469\u7f85\u6cd5\u90ce", - "flag": "KM" - }, - "KRU": { - "name": "\u5357\u975e\u514b\u9b6f\u683c\u6717", - "flag": "KR" - }, - "KRW": { - "name": "\u97d3\u5143", - "flag": "KR" - }, - "KWD": { - "name": "\u79d1\u5a01\u7279\u7b2c\u7d0d\u723e", - "flag": "KW" - }, - "KYD": { - "name": "\u958b\u66fc\u7fa4\u5cf6\u5143", - "flag": "KY" - }, - "KZT": { - "name": "\u54c8\u85a9\u514b\u65af\u5766\u5805\u6208", - "flag": "KZ" - }, - "LAK": { - "name": "\u8001\u57fa\u666e", - "flag": "LA" - }, - "LBP": { - "name": "\u9ece\u5df4\u5ae9\u938a", - "flag": "LB" - }, - "LFX": { - "name": "\u56de\u6559\u5bf6\u85cf", - "flag": "MY" - }, - "LKR": { - "name": "\u65af\u91cc\u862d\u5361\u76e7\u6bd4", - "flag": "LK" - }, - "LRD": { - "name": "\u5229\u6bd4\u91cc\u4e9e\u5143", - "flag": "LR" - }, - "LSL": { - "name": "\u840a\u7d22\u6258\u6d1b\u8482", - "flag": "LS" - }, - "LTL": { - "name": "\u7acb\u9676\u5b9b\u7acb\u7279", - "flag": "LT" - }, - "LYD": { - "name": "\u5229\u6bd4\u4e9e\u7b2c\u7d0d\u723e", - "flag": "LY" - }, - "M5P": { - "name": "\u58a8\u897f\u54e5 50 \u6bd4\u7d22", - "flag": "MX" - }, - "MAD": { - "name": "\u6469\u6d1b\u54e5\u8fea\u62c9\u59c6", - "flag": "MA" - }, - "MAL": { - "name": "\u6953\u8449", - "flag": "MA" - }, - "MDL": { - "name": "\u6469\u723e\u591a\u74e6\u5217\u4f0a", - "flag": "MD" - }, - "MGA": { - "name": "\u99ac\u9054\u52a0\u65af\u52a0\u963f\u91cc\u4e9e\u91cc", - "flag": "MG" - }, - "MKD": { - "name": "\u99ac\u5176\u9813\u7b2c\u7d0d\u723e", - "flag": "MK" - }, - "MMK": { - "name": "\u7dec\u5143", - "flag": "MM" - }, - "MOP": { - "name": "\u6fb3\u9580\u5e63", - "flag": "MO" - }, - "MRU": { - "name": "\u6bdb\u91cc\u5854\u5c3c\u4e9e\u70cf\u5409\u4e9e", - "flag": "MR" - }, - "MTL": { - "name": "\u99ac\u8033\u4ed6\u91cc\u62c9", - "flag": "MT" - }, - "MUR": { - "name": "\u6bdb\u91cc\u6c42\u65af\u76e7\u6bd4", - "flag": "MU" - }, - "MVR": { - "name": "\u99ac\u723e\u4ee3\u592b\u62c9\u83f2\u4e9e", - "flag": "MV" - }, - "MWK": { - "name": "\u99ac\u62c9\u7dad\u514b\u74e6\u67e5", - "flag": "MW" - }, - "MXN": { - "name": "\u58a8\u897f\u54e5\u6bd4\u7d22", - "flag": "MX" - }, - "MYR": { - "name": "\u99ac\u4f86\u897f\u4e9e\u4ee4\u5409", - "flag": "MY" - }, - "MZN": { - "name": "\u83ab\u6851\u6bd4\u514b\u6885\u8482\u5361\u723e", - "flag": "MZ" - }, - "NAD": { - "name": "\u7d0d\u7c73\u6bd4\u4e9e\u5143", - "flag": "NA" - }, - "NBL": { - "name": "\u99ac\u6069\u5cf6\u8cb4\u65cf", - "flag": "IM" - }, - "NGN": { - "name": "\u5c3c\u65e5\u5229\u4e9e\u5948\u62c9", - "flag": "NG" - }, - "NIO": { - "name": "\u5c3c\u52a0\u62c9\u74dc\u79d1\u723e\u591a\u74e6", - "flag": "NI" - }, - "NOK": { - "name": "\u632a\u5a01\u514b\u6717", - "flag": "NO" - }, - "NPR": { - "name": "\u5c3c\u6cca\u723e\u76e7\u6bd4", - "flag": "NP" - }, - "NSO": { - "name": "\u65b0\u4e3b\u6b0a", - "flag": "GB" - }, - "NZD": { - "name": "\u65b0\u897f\u862d\u5143", - "flag": "NZ" - }, - "OMR": { - "name": "\u963f\u66fc\u91cc\u4e9e\u723e", - "flag": "OM" - }, - "OSO": { - "name": "\u8001\u541b\u4e3b", - "flag": "GB" - }, - "PAB": { - "name": "\u5df4\u62ff\u99ac\u5df4\u6ce2\u4e9e", - "flag": "PA" - }, - "PEN": { - "name": "\u79d8\u9b6f\u65b0\u7d22\u723e", - "flag": "PE" - }, - "PGK": { - "name": "\u5df4\u5e03\u4e9e\u65b0\u5e7e\u5167\u4e9e \u4e2d\u570b", - "flag": "PG" - }, - "PHP": { - "name": "\u83f2\u5f8b\u8cd3\u6bd4\u7d22", - "flag": "PH" - }, - "PKR": { - "name": "\u5df4\u57fa\u65af\u5766\u76e7\u6bd4", - "flag": "PK" - }, - "PLN": { - "name": "\u6ce2\u862d\u8332\u7f85\u63d0", - "flag": "PL" - }, - "PYG": { - "name": "\u5df4\u62c9\u572d\u74dc\u62c9\u5c3c", - "flag": "PY" - }, - "QAR": { - "name": "\u5361\u5854\u723e\u91cc\u4e9e\u723e", - "flag": "QA" - }, - "RON": { - "name": "\u7f85\u99ac\u5c3c\u4e9e\u65b0\u5217\u4f0a", - "flag": "RO" - }, - "RSD": { - "name": "\u585e\u723e\u7dad\u4e9e\u7b2c\u7d0d\u723e", - "flag": "RS" - }, - "RUB": { - "name": "\u4fc4\u7f85\u65af\u76e7\u5e03", - "flag": "RU" - }, - "RWF": { - "name": "\u76e7\u65fa\u9054\u6cd5\u90ce", - "flag": "RW" - }, - "SAR": { - "name": "\u6c99\u7279\u91cc\u4e9e\u723e", - "flag": "SA" - }, - "SBD": { - "name": "\u6240\u7f85\u9580\u7fa4\u5cf6\u5143", - "flag": "SB" - }, - "SCR": { - "name": "\u585e\u820c\u723e\u76e7\u6bd4", - "flag": "SC" - }, - "SDG": { - "name": "\u8607\u4e39\u938a", - "flag": "SD" - }, - "SEK": { - "name": "\u745e\u5178\u514b\u6717", - "flag": "SE" - }, - "SGD": { - "name": "\u65b0\u52a0\u5761\u5143", - "flag": "SG" - }, - "SHP": { - "name": "\u8056\u8d6b\u52d2\u62ff\u938a", - "flag": "SH" - }, - "SLL": { - "name": "\u585e\u62c9\u5229\u6602\u5229\u6602", - "flag": "SL" - }, - "SOS": { - "name": "\u7d22\u99ac\u91cc\u5148\u4ee4", - "flag": "SO" - }, - "SRD": { - "name": "\u8607\u91cc\u5357\u5143", - "flag": "SR" - }, - "STN": { - "name": "\u8056\u591a\u7f8e\u591a\u5e03\u62c9", - "flag": "ST" - }, - "SVC": { - "name": "\u85a9\u723e\u74e6\u591a\u54e5\u502b\u5e03", - "flag": "SV" - }, - "SZL": { - "name": "\u65af\u5a01\u58eb\u862d\u91cc\u862d\u5409\u5c3c", - "flag": "SZ" - }, - "THB": { - "name": "\u6cf0\u9296", - "flag": "TH" - }, - "TJS": { - "name": "\u5854\u5409\u514b\u65af\u5766\u7d22\u83ab\u5c3c", - "flag": "TJ" - }, - "TMT": { - "name": "\u571f\u5eab\u66fc\u65af\u5766\u99ac\u7d0d\u7279", - "flag": "TM" - }, - "TND": { - "name": "\u7a81\u5c3c\u65af\u7b2c\u7d0d\u723e", - "flag": "TN" - }, - "TOP": { - "name": "Tongan Pa\u02bbAnga", - "flag": "TO" - }, - "TRY": { - "name": "\u571f\u8033\u5176\u91cc\u62c9", - "flag": "TR" - }, - "TTD": { - "name": "\u7279\u7acb\u5c3c\u9054\u548c\u591a\u5df4\u54e5\u5143", - "flag": "TT" - }, - "TWD": { - "name": "\u65b0\u53f0\u5e63", - "flag": "TW" - }, - "TZS": { - "name": "\u5766\u6851\u5c3c\u4e9e\u5148\u4ee4", - "flag": "TZ" - }, - "UAH": { - "name": "\u70cf\u514b\u862d\u683c\u91cc\u592b\u7d0d", - "flag": "UA" - }, - "UGX": { - "name": "\u70cf\u5e72\u9054\u5148\u4ee4", - "flag": "UG" - }, - "USD": { - "name": "\u7f8e\u570b\u7f8e\u5143", - "flag": "US" - }, - "UYU": { - "name": "\u70cf\u62c9\u572d\u6bd4\u7d22", - "flag": "UY" - }, - "UZS": { - "name": "\u70cf\u8332\u5225\u514b\u65af\u5766\u7d22\u59c6", - "flag": "UZ" - }, - "VES": { - "name": "\u59d4\u5167\u745e\u62c9\u73bb\u5229\u74e6\u723e\u7d22\u8c9d\u62c9\u8afe", - "flag": "VE" - }, - "VND": { - "name": "\u8d8a\u5357\u76fe", - "flag": "VN" - }, - "VRL": { - "name": "\u5f17\u745e\u5167\u5229 10F\u3002", - "flag": "CH" - }, - "VRN": { - "name": "\u7dad\u5167\u5229 20F", - "flag": "CH" - }, - "XAG": { - "name": "\u9280\uff08\u4e00\u91d1\u8861\u76ce\u53f8\uff09", - "flag": "XAG" - }, - "XAGK": { - "name": "\u9280\uff08\u516c\u65a4\uff09", - "flag": "XAG" - }, - "XAU": { - "name": "\u9ec3\u91d1\uff08\u4e00\u91d1\u8861\u76ce\u53f8\uff09", - "flag": "XAU" - }, - "XAUK": { - "name": "\u9ec3\u91d1\uff08\u516c\u65a4\uff09", - "flag": "XAU" - }, - "XCD": { - "name": "\u6771\u52a0\u52d2\u6bd4\u5143", - "flag": "AI" - }, - "XOF": { - "name": "\u975e\u6d32\u6cd5\u90ce", - "flag": "SN" - }, - "XPD": { - "name": "\u9200\uff08\u4e00\u91d1\u8861\u76ce\u53f8\uff09", - "flag": "XPD" - }, - "XPDK": { - "name": "\u9200\uff08\u516c\u65a4\uff09", - "flag": "XPD" - }, - "XPF": { - "name": "\u6cd5\u90ce", - "flag": "PF" - }, - "XPT": { - "name": "\u767d\u91d1\uff08\u4e00\u91d1\u8861\u76ce\u53f8\uff09", - "flag": "XPT" - }, - "XPTK": { - "name": "\u9251\u91d1\uff08\u516c\u65a4\uff09", - "flag": "XPT" - }, - "YER": { - "name": "\u4e5f\u9580\u91cc\u4e9e\u723e", - "flag": "YE" - }, - "ZAR": { - "name": "\u5357\u975e\u862d\u7279", - "flag": "ZA" - }, - "ZMW": { - "name": "\u8d0a\u6bd4\u4e9e\u514b\u74e6\u67e5", - "flag": "ZM" - }, - "ZWD": { - "name": "\u6d25\u5df4\u5e03\u97cb\u5143", - "flag": "ZW" - }, - "DASH": { - "name": "\u9054\u4e16\u5e63", - "flag": "DASH" - }, - "BTC": { - "name": "\u6bd4\u7279\u5e63", - "flag": "BTC" - }, - "DSH": { - "name": "\u9054\u4e16\u5e63", - "flag": "DASH" - }, - "LTC": { - "name": "\u840a\u7279\u5e63", - "flag": "LTC" - }, - "ETH": { - "name": "\u4ee5\u592a\u574a", - "flag": "ETH" - }, - "BCH": { - "name": "\u6bd4\u7279\u5e63\u73fe\u91d1", - "flag": "BTC" - }, - "XRP": { - "name": "Xrp \u52a0\u5bc6\u8ca8\u5e63", - "flag": "XRP" - } -}
--- a/Simoleon/Simoleon.entitlements Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>aps-environment</key> - <string>development</string> - <key>com.apple.developer.icloud-container-identifiers</key> - <array> - <string>iCloud.simoleon</string> - </array> - <key>com.apple.developer.icloud-services</key> - <array> - <string>CloudKit</string> - </array> -</dict> -</plist>
--- a/Simoleon/Simoleon.xcdatamodeld/Simoleon.xcdatamodel/contents Tue Oct 12 17:14:05 2021 +0200 +++ b/Simoleon/Simoleon.xcdatamodeld/Simoleon.xcdatamodel/contents Tue Oct 26 13:09:17 2021 +0200 @@ -1,10 +1,9 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="18154" systemVersion="20G95" minimumToolsVersion="Automatic" sourceLanguage="Swift" usedWithCloudKit="YES" userDefinedModelVersionIdentifier=""> - <entity name="FavoritePair" representedClassName="FavoritePair" syncable="YES"> - <attribute name="baseSymbol" optional="YES" attributeType="String"/> - <attribute name="quoteSymbol" optional="YES" attributeType="String"/> +<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="1" systemVersion="11A491" minimumToolsVersion="Automatic" sourceLanguage="Swift" usedWithCloudKit="true" userDefinedModelVersionIdentifier=""> + <entity name="Item" representedClassName="Item" syncable="YES" codeGenerationType="class"> + <attribute name="timestamp" optional="YES" attributeType="Date" usesScalarValueType="NO"/> </entity> <elements> - <element name="FavoritePair" positionX="-63" positionY="-18" width="128" height="59"/> + <element name="Item" positionX="-63" positionY="-18" width="128" height="44"/> </elements> </model> \ No newline at end of file
--- a/Simoleon/SimoleonApp.swift Tue Oct 12 17:14:05 2021 +0200 +++ b/Simoleon/SimoleonApp.swift Tue Oct 26 13:09:17 2021 +0200 @@ -2,7 +2,7 @@ // SimoleonApp.swift // Simoleon // -// Created by Dennis Concepción Martín on 08/07/2021. +// Created by Dennis Concepción Martín on 26/10/21. // import SwiftUI @@ -10,7 +10,7 @@ @main struct SimoleonApp: App { let persistenceController = PersistenceController.shared - + var body: some Scene { WindowGroup { ContentView()
--- a/Simoleon/Tests/ButtonAnimation.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -// -// ButtonAnimation.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 28/8/21. -// - -import SwiftUI - -struct ButtonAnimation: View { - @State private var scale: CGFloat = 1 - - var body: some View { - Button("Press here", action: animate) - .scaleEffect(scale) - .animation(.easeIn, value: scale) - } - - private func animate() { - scale += 0.2 - DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) { - scale -= 0.2 - } - } -} - -struct ButtonAnimation_Previews: PreviewProvider { - static var previews: some View { - ButtonAnimation() - } -}
--- a/Simoleon/Tests/ChildListResets.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -// -// ModalSheetSelection.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 26/8/21. -// - -import SwiftUI - -struct ParentView: View { - @State var selection: Int = 1 - @State private var showingList = false - - var body: some View { - VStack { - Button("Show list", action: {showingList = true}) - .sheet(isPresented: $showingList) { - ModalSheetSelection(selection: $selection) - } - - Text("My first var is: \(selection)") - } - } -} - -struct ModalSheetSelection: View { - @Binding var selection: Int - - var body: some View { - NavigationView { - List { - SearchBar(placeholder: "", text: .constant("")) - ForEach((1..<100), id: \.self) { number in - Button(action: {selection = number}) { - Text("\(number)") - } - } - } - .id(UUID()) - .navigationTitle("Currencies") - .navigationBarTitleDisplayMode(.inline) - } - } -}
--- a/Simoleon/UI/ConversionBox.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -// -// ConversionBox.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 18/07/2021. -// - -import SwiftUI - -struct ConversionBox: View { - @ObservedObject var currencyConversion: CurrencyConversion - @State private var amount = "" - @State private var isEditing = false - - let networkHelper = NetworkHelper() - let currencyDetails: [String: CurrencyModel] = try! readJson(from: "Currencies.json") - - var body: some View { - VStack(alignment: .leading) { - let baseCurrencyName = currencyDetails[currencyConversion.baseSymbol]!.name - Text("\(baseCurrencyName) (\(currencyConversion.baseSymbol))") - .font(.callout) - .fontWeight(.semibold) - - ConversionTextfield(amount: $amount, isEditing: $isEditing) - Divider() - - let quoteCurrencyName = currencyDetails[currencyConversion.quoteSymbol]!.name - Text("\(quoteCurrencyName) (\(currencyConversion.quoteSymbol))") - .font(.callout) - .fontWeight(.semibold) - - if currencyConversion.isShowing { - let conversion = convert() - Text("\(conversion, specifier: "%.2f")") - .font(Font.title.weight(.semibold)) - .lineLimit(1) - .padding(.top, 1) - } else { - ProgressView() - } - } - .toolbar { - ToolbarItem(placement: .navigationBarTrailing) { - if isEditing { - Button(action: { - UIApplication.shared.dismissKeyboard() - isEditing = false - }) { - Text("Done") - } - } - } - } - } - - private func convert() -> Double { - guard let amount = Double(amount) else { return 0 } - guard let price = currencyConversion.quote.price else { return 0 } - - return amount * price - } -} - -struct ConversionBox_Previews: PreviewProvider { - static var previews: some View { - ConversionBox(currencyConversion: CurrencyConversion()) - } -}
--- a/Simoleon/UI/ConversionTextfield.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -// -// ConversionTextfield.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 29/8/21. -// - -import SwiftUI - -struct ConversionTextfield: View { - @Binding var amount: String - @Binding var isEditing: Bool - - var body: some View { - ZStack { - TextField("Enter amount", text: $amount) { startedEditing in - if startedEditing { - withAnimation { - isEditing = true - } - } - } - onCommit: { - withAnimation { - isEditing = false - } - } - .keyboardType(.decimalPad) - .font(Font.title.weight(.semibold)) - .lineLimit(1) - } - } -} - -struct ConversionTextfield_Previews: PreviewProvider { - static var previews: some View { - ConversionTextfield(amount: .constant("1000"), isEditing: .constant(false)) - } -}
--- a/Simoleon/UI/CurrencyButton.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -// -// CurrencyButton.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 24/8/21. -// - -import SwiftUI - -struct CurrencyButton: View { - var selectedCurrency: String - let currencyDetails: [String: CurrencyModel] = try! readJson(from: "Currencies.json") - - var body: some View { - let currency = currencyDetails[selectedCurrency]! - RoundedRectangle(cornerRadius: 15) - .foregroundColor(Color(.secondarySystemBackground)) - .frame(height: 60) - .overlay( - HStack { - Flag(flag: currency.flag) - Text(currency.symbol) - .foregroundColor(.primary) - .font(.headline) - } - ) - } -} - -struct CurrencyButton_Previews: PreviewProvider { - static var previews: some View { - CurrencyButton(selectedCurrency: "USD") - } -}
--- a/Simoleon/UI/CurrencyList.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -// -// CurrencyList.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 24/8/21. -// - -import SwiftUI - -struct CurrencyList: View { - var currencies: [String] - var selection: Selection - @ObservedObject var currencyConversion: CurrencyConversion - @State private var searchCurrency = "" - - @Environment(\.presentationMode) private var presentation - let currencyDetails: [String: CurrencyModel] = try! readJson(from: "Currencies.json") - - var searchResults: [String] { - if searchCurrency.isEmpty { - return currencies.sorted() - } else { - return currencies.filter {$0.contains(searchCurrency.uppercased())} - } - } - - var body: some View { - NavigationView { - List { - SearchBar(placeholder: "Search...", text: $searchCurrency) - .padding(.vertical, 4) - .accessibilityIdentifier("CurrencySearchBar") - - ForEach(searchResults, id: \.self) { symbol in - Button(action: { - if selection == .baseSymbol { - currencyConversion.baseSymbol = symbol - } else { - currencyConversion.quoteSymbol = symbol - } - - presentation.wrappedValue.dismiss() - }) { - let currency = currencyDetails[symbol]! - CurrencyRow(currency: currency) - .padding(.vertical, 4) - } - } - } - .listStyle() - .navigationTitle("Currencies") - .navigationBarTitleDisplayMode(.inline) - .toolbar { - ToolbarItem(placement: .cancellationAction) { - Button(action: { presentation.wrappedValue.dismiss() }) { - Text("Cancel") - } - } - } - } - } - - enum Selection { - case baseSymbol, quoteSymbol - } -} -extension View { - func listStyle() -> some View { - self.modifier(ListModifier()) - } -} - -struct CurrencyList_Previews: PreviewProvider { - static var previews: some View { - CurrencyList(currencies: ["USD"], selection: .baseSymbol, currencyConversion: CurrencyConversion()) - } -}
--- a/Simoleon/UI/CurrencyRow.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -// -// CurrencyRow.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 15/07/2021. -// - -import SwiftUI - -struct CurrencyRow: View { - var currency: CurrencyModel - - var body: some View { - HStack { - Flag(flag: currency.flag) - VStack(alignment: .leading) { - Text(currency.symbol) - .font(.headline) - - Text(currency.name) - .font(.subheadline) - .lineLimit(1) - } - .foregroundColor(.primary) - .padding(.horizontal) - } - } -} - -struct CurrencyRow_Previews: PreviewProvider { - static var previews: some View { - CurrencyRow( - currency: - CurrencyModel( - symbol: "USD", - name: "United States Dollar", - flag: "US", - isCrypto: false - ) - ) - } -}
--- a/Simoleon/UI/CurrencySelector.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ -// -// CurrencySelector.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 27/8/21. -// - -import SwiftUI - -struct CurrencySelector: View { - @ObservedObject var currencyConversion: CurrencyConversion - @State private var modalSelection: ModalType = .allCurrencies - @State private var showingList = false - - let currencyPairsSupported: [String] = try! readJson(from: "CurrencyPairsSupported.json") - - private enum ModalType { - case allCurrencies, compatibleCurrencies - } - - var body: some View { - HStack { - Button(action: { - modalSelection = .allCurrencies - showingList = true - }) { - CurrencyButton(selectedCurrency: currencyConversion.baseSymbol) - } - - Button(action: { - modalSelection = .compatibleCurrencies - showingList = true - }) { - CurrencyButton(selectedCurrency: currencyConversion.quoteSymbol) - } - } - .onChange(of: currencyConversion.baseSymbol) { _ in - // If the previous quote symbol is not compatible anymore with base symbol - // return the first symbol of the new compatible symbols list - let compatibleCurrencies = get(currencyType: .compatible(with: currencyConversion.baseSymbol), from: currencyPairsSupported) - if !compatibleCurrencies.contains(currencyConversion.quoteSymbol) { - currencyConversion.quoteSymbol = compatibleCurrencies.sorted().first! - } - } - .sheet(isPresented: $showingList) { - if modalSelection == .allCurrencies { - let currencies = get(currencyType: .all, from: currencyPairsSupported) - CurrencyList(currencies: currencies, selection: .baseSymbol, currencyConversion: currencyConversion) - } else { - let currencies = get(currencyType: .compatible(with: currencyConversion.baseSymbol), from: currencyPairsSupported) - CurrencyList(currencies: currencies, selection: .quoteSymbol, currencyConversion: currencyConversion) - } - } - } - - enum CurrencyType { - case all - case compatible(with: String) - } - - func get(currencyType: CurrencyType, from currencyPairsSupported: [String]) -> [String] { - var currencies = Set<String>() - - switch currencyType { - case .all: - for currencyPairSupported in currencyPairsSupported { - let currency = currencyPairSupported.components(separatedBy: "/")[0] - currencies.insert(currency) - } - - return Array(currencies) - - case .compatible(with: let symbol): - for currencyPairSupported in currencyPairsSupported { - if currencyPairSupported.hasPrefix(symbol) { - let compatibleCurrency = currencyPairSupported.components(separatedBy: "/")[1] - currencies.insert(compatibleCurrency) - } - } - - return Array(currencies) - } - } -} - -struct CurrencySelector_Previews: PreviewProvider { - static var previews: some View { - CurrencySelector(currencyConversion: CurrencyConversion()) - } -}
--- a/Simoleon/UI/FavoriteButton.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -// -// FavoriteButton.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 19/07/2021. -// - -import SwiftUI - -struct FavoriteButton: View { - @ObservedObject var currencyConversion: CurrencyConversion - @State private var scale: CGFloat = 1 - @Environment(\.managedObjectContext) private var viewContext - @FetchRequest(sortDescriptors: []) private var favoritePairs: FetchedResults<FavoritePair> - - let hapticsHelper = HapticsHelper() - - var body: some View { - Button(action: { - animate() - if isFavorite() { - remove() - } else { - add() - } - - hapticsHelper.simpleSuccess() - }) { - RoundedRectangle(cornerRadius: 15) - .foregroundColor(Color(.secondarySystemBackground)) - .frame(width: 60, height: 60) - .overlay( - VStack { - if isFavorite() { - Image(systemName: "star.fill") - } else { - Image(systemName: "star") - } - } - .font(.system(size: 28)) - .foregroundColor(Color(.systemYellow)) - ) - } - .scaleEffect(scale) - .animation(.linear(duration: 0.2), value: scale) - } - - func add() { - let favoritePair = FavoritePair(context: viewContext) - favoritePair.baseSymbol = currencyConversion.baseSymbol - favoritePair.quoteSymbol = currencyConversion.quoteSymbol - - do { - try viewContext.save() - } catch { - let nsError = error as NSError - fatalError("Unresolved error \(nsError), \(nsError.userInfo)") - } - } - - func remove() { - let favoritePair = favoritePairs.first( - where: { - $0.baseSymbol == currencyConversion.baseSymbol && $0.quoteSymbol == currencyConversion.quoteSymbol - }) - - viewContext.delete(favoritePair!) - - do { - try viewContext.save() - } catch { - let nsError = error as NSError - fatalError("Unresolved error \(nsError), \(nsError.userInfo)") - } - } - - func isFavorite() -> Bool { - let favoritePair = favoritePairs.first( - where: { - $0.baseSymbol == currencyConversion.baseSymbol && $0.quoteSymbol == currencyConversion.quoteSymbol - }) - - guard let _ = favoritePair else { return false } - - return true - } - - private func animate() { - scale += 0.2 - DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) { - scale -= 0.2 - } - } -} - -struct FavoriteButton_Previews: PreviewProvider { - static var previews: some View { - FavoriteButton(currencyConversion: CurrencyConversion()) - } -}
--- a/Simoleon/UI/FavoritePairRow.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -// -// FavoritePairRow.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 5/9/21. -// - -import SwiftUI - -struct FavoritePairRow: View { - var favoritePair: FavoritePair - let currencyDetails: [String: CurrencyModel] = try! readJson(from: "Currencies.json") - - var body: some View { - HStack { - let baseCurrencyDetails = currencyDetails[favoritePair.baseSymbol] - let quoteCurrencyDetails = currencyDetails[favoritePair.quoteSymbol] - - Flag(flag: baseCurrencyDetails!.flag) - Flag(flag: quoteCurrencyDetails!.flag) - .offset(x: -25) - .padding(.trailing, -25) - - Group { - Text("From \(baseCurrencyDetails!.symbol)") - Text("to \(quoteCurrencyDetails!.symbol)") - } - .font(.headline) - } - } -} - -struct FavoritePairRow_Previews: PreviewProvider { - static var previews: some View { - FavoritePairRow(favoritePair: FavoritePair()) - } -}
--- a/Simoleon/UI/FavoritesPlaceholder.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -// -// FavoritesPlaceholder.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 5/9/21. -// - -import SwiftUI - -struct FavoritesPlaceholder: View { - var body: some View { - VStack { - Group { - Group { - Image(systemName: "star") - .padding(.bottom) - - Text("No Favorites") - .padding(.bottom, 5) - } - .font(.system(size: 30)) - - Text("Your favorite currencies will appear here.") - } - .foregroundColor(.secondary) - } - } -} - -struct FavoritesPlaceholder_Previews: PreviewProvider { - static var previews: some View { - FavoritesPlaceholder() - } -}
--- a/Simoleon/UI/Flag.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -// -// Flag.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 24/8/21. -// - -import SwiftUI - -struct Flag: View { - var flag: String - - var body: some View { - Image(flag) - .resizable() - .aspectRatio(contentMode: .fill) - .frame(width: 35, height: 35) - .clipShape(Circle()) - } -} - -struct Flag_Previews: PreviewProvider { - static var previews: some View { - Flag(flag: "GB") - } -}
--- a/Simoleon/UI/SearchBar.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -// -// SearchBar.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 27/07/2021. -// - -import SwiftUI - -struct SearchBar: View { - var placeholder: LocalizedStringKey - @Binding var text: String - - var body: some View { - TextField(placeholder, text: $text) - .disableAutocorrection(true) - .padding(10) - .background( - RoundedRectangle(cornerRadius: 15) - .foregroundColor(Color(.tertiarySystemFill)) - ) - } -} - -struct SearchBar_Previews: PreviewProvider { - static var previews: some View { - SearchBar(placeholder: "Search ...", text: .constant("")) - } -}
--- a/Simoleon/UI/Sidebar.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -// -// Sidebar.swift -// Simoleon -// -// Created by Dennis Concepción Martín on 18/07/2021. -// - -import SwiftUI - -struct Sidebar: View { - var body: some View { - List { - NavigationLink(destination: ConversionView()) { - Label("Convert", systemImage: "arrow.counterclockwise.circle") - } - .accessibilityIdentifier("NavigateToConversion") - - NavigationLink(destination: FavoritesView()) { - Label("Favorites", systemImage: "star") - } - .accessibilityIdentifier("NavigateToFavorites") - - NavigationLink(destination: AboutView()) { - Label("About", systemImage: "info.circle") - } - .accessibilityIdentifier("NavigateToSettings") - } - .listStyle(SidebarListStyle()) - .navigationTitle("Categories") - .accessibilityIdentifier("Sidebar") - } -} - -struct Sidebar_Previews: PreviewProvider { - static var previews: some View { - NavigationView { - Sidebar() - } - } -}
--- a/SimoleonAppPreview/Info.plist Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>$(DEVELOPMENT_LANGUAGE)</string> - <key>CFBundleExecutable</key> - <string>$(EXECUTABLE_NAME)</string> - <key>CFBundleIdentifier</key> - <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>$(PRODUCT_NAME)</string> - <key>CFBundlePackageType</key> - <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string> - <key>CFBundleShortVersionString</key> - <string>1.0</string> - <key>CFBundleVersion</key> - <string>1</string> -</dict> -</plist>
--- a/SimoleonAppPreview/SimoleonAppPreview.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,150 +0,0 @@ -// -// SimoleonAppPreview.swift -// SimoleonAppPreview -// -// Created by Dennis Concepción Martín on 17/8/21. -// - -import XCTest - -class SimoleonAppPreview: XCTestCase { - - override func setUpWithError() throws { - // This method is called before the invocation of each test method in the class. - if UIDevice.current.userInterfaceIdiom == .pad { - XCUIDevice.shared.orientation = .landscapeLeft - } - - // In UI tests it is usually best to stop immediately when a failure occurs. - continueAfterFailure = false - } - - override func tearDownWithError() throws { - // This method is called after the invocation of each test method in the class. - } - - func recordInteraction(of app: XCUIApplication) { - app.launch() - - /* - * Type amount to convert - * Click 'Done' to dismiss keyboard - */ - app.textFields["ConversionTextField"].tap() - app.keys["4"].tap() - app.keys["5"].tap() - app.keys["0"].tap() - app.keys["0"].tap() - app.keys["0"].tap() - - // Tap done to dismiss keyboard - app.navigationBars.buttons.element(boundBy: 0).tap() - - /* - * Open currency selector - * Select USD/BTC - */ - app.scrollViews.buttons["OpenCurrencySelector"].tap() - let currencySearchBar = app.textFields["CurrencySearchBar"] - currencySearchBar.tap() - currencySearchBar.typeText("Usd/btc\n") - sleep(1) - app.tables.buttons.firstMatch.tap() - sleep(2) - - /* - * Go to favorite view - * Open XAG/CAD - * Convert 100 ounce to CAD - * Go back to favorite - * Delete XAG to CAD - */ - app.tabBars.buttons.element(boundBy: 1).tap() - let favoritesList = app.tables["FavoritesList"].cells - sleep(1) - let xagToCad = favoritesList.element(boundBy: 7) - xagToCad.tap() - sleep(2) - - // Convert 100 ounce to CAD - app.textFields["ConversionTextField"].tap() - app.keys["1"].tap() - app.keys["0"].tap() - app.keys["0"].tap() - sleep(2) - - // Tap done to dismiss keyboard - app.navigationBars.buttons.element(boundBy: 1).tap() - - // Go back - app.navigationBars.buttons.element(boundBy: 0).tap() - sleep(1) - - // Delete row from favorites - xagToCad.swipeLeft() - xagToCad.buttons.firstMatch.tap() - } - - func testUSEnglish() throws { - let app = XCUIApplication() - app.launchArguments += ["-AppleLanguages", "(en-US)"] - app.launchArguments += ["-AppleLocale", "\"en-US\""] - recordInteraction(of: app) - } - - func testSpanish() throws { - let app = XCUIApplication() - app.launchArguments += ["-AppleLanguages", "(es-ES)"] - app.launchArguments += ["-AppleLocale", "\"es-ES\""] - recordInteraction(of: app) - } - - func testGBEnglish() throws { - let app = XCUIApplication() - app.launchArguments += ["-AppleLanguages", "(en-GB)"] - app.launchArguments += ["-AppleLocale", "\"en-GB\""] - recordInteraction(of: app) - } - - func testGerman() throws { - let app = XCUIApplication() - app.launchArguments += ["-AppleLanguages", "(de-DE)"] - app.launchArguments += ["-AppleLocale", "\"de-DE\""] - recordInteraction(of: app) - } - - func testFrench() throws { - let app = XCUIApplication() - app.launchArguments += ["-AppleLanguages", "(fr-FR)"] - app.launchArguments += ["-AppleLocale", "\"fr-FR\""] - recordInteraction(of: app) - } - - func testPortuguese() throws { - let app = XCUIApplication() - app.launchArguments += ["-AppleLanguages", "(pt-PT)"] - app.launchArguments += ["-AppleLocale", "\"pt-PT\""] - recordInteraction(of: app) - } - - func testDutch() throws { - let app = XCUIApplication() - app.launchArguments += ["-AppleLanguages", "(nl-NL)"] - app.launchArguments += ["-AppleLocale", "\"nl-NL\""] - recordInteraction(of: app) - } - - func testItalian() throws { - let app = XCUIApplication() - app.launchArguments += ["-AppleLanguages", "(it-IT)"] - app.launchArguments += ["-AppleLocale", "\"it-IT\""] - recordInteraction(of: app) - } - - func testRussian() throws { - let app = XCUIApplication() - app.launchArguments += ["-AppleLanguages", "(ru-RU)"] - app.launchArguments += ["-AppleLocale", "\"ru-RU\""] - recordInteraction(of: app) - } -}
--- a/SimoleonScreenshots/Info.plist Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>$(DEVELOPMENT_LANGUAGE)</string> - <key>CFBundleExecutable</key> - <string>$(EXECUTABLE_NAME)</string> - <key>CFBundleIdentifier</key> - <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>$(PRODUCT_NAME)</string> - <key>CFBundlePackageType</key> - <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string> - <key>CFBundleShortVersionString</key> - <string>1.0</string> - <key>CFBundleVersion</key> - <string>1</string> -</dict> -</plist>
--- a/SimoleonScreenshots/SimoleonScreenshots.swift Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -// -// SimoleonScreenshots.swift -// SimoleonScreenshots -// -// Created by Dennis Concepción Martín on 5/8/21. -// - -import XCTest -import CoreData -// Automate screenshots with Fastlane -class SimoleonScreenshots: XCTestCase { - var screenshotEndingName = "" - - override func setUpWithError() throws { - // This method is called before the invocation of each test method in the class. - - if UIDevice.current.userInterfaceIdiom == .pad { - XCUIDevice.shared.orientation = .landscapeLeft - screenshotEndingName = "-force_landscapeleft" - } - - // In UI tests it is usually best to stop immediately when a failure occurs. - continueAfterFailure = false - } - - override func tearDownWithError() throws { - // Put teardown code here. This method is called after the invocation of each test method in the class. - } - - func testLaunchScreenshot() throws { - let app = XCUIApplication() - setupSnapshot(app) - app.launch() - - if UIDevice.current.userInterfaceIdiom == .pad { - app.tables["Sidebar"].buttons["NavigateToConversion"].tap() - } - - sleep(2) - snapshot("1Launch\(screenshotEndingName)") - } - - func testConvertAmountScreenshot() throws { - let app = XCUIApplication() - setupSnapshot(app) - app.launch() - - if UIDevice.current.userInterfaceIdiom == .pad { - app.tables["Sidebar"].buttons["NavigateToConversion"].tap() - } - - let conversionTextField = app.textFields["ConversionTextField"] - conversionTextField.tap() - conversionTextField.typeText("1030.15\n") - snapshot("2Conversion\(screenshotEndingName)") - } - - func testCurrencySelectorScreenshot() throws { - let app = XCUIApplication() - setupSnapshot(app) - app.launch() - - if UIDevice.current.userInterfaceIdiom == .pad { - app.tables["Sidebar"].buttons["NavigateToConversion"].tap() - } - - app.scrollViews.buttons["OpenCurrencySelector"].tap() - snapshot("3CurrencySelector\(screenshotEndingName)") - } - - func testFavoriteScreenshot() throws { - let app = XCUIApplication() - setupSnapshot(app) - app.launch() - - if UIDevice.current.userInterfaceIdiom == .pad { - app.tables["Sidebar"].buttons["NavigateToFavorites"].tap() - } else { - app.tabBars.buttons.element(boundBy: 1).tap() - } - - sleep(1) - - snapshot("4Favorites\(screenshotEndingName)") - } -}
--- a/SimoleonTests/Info.plist Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>$(DEVELOPMENT_LANGUAGE)</string> - <key>CFBundleExecutable</key> - <string>$(EXECUTABLE_NAME)</string> - <key>CFBundleIdentifier</key> - <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>$(PRODUCT_NAME)</string> - <key>CFBundlePackageType</key> - <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string> - <key>CFBundleShortVersionString</key> - <string>1.0</string> - <key>CFBundleVersion</key> - <string>1</string> -</dict> -</plist>
--- a/SimoleonTests/SimoleonTests.swift Tue Oct 12 17:14:05 2021 +0200 +++ b/SimoleonTests/SimoleonTests.swift Tue Oct 26 13:09:17 2021 +0200 @@ -2,7 +2,7 @@ // SimoleonTests.swift // SimoleonTests // -// Created by Dennis Concepción Martín on 27/8/21. +// Created by Dennis Concepción Martín on 26/10/21. // import XCTest @@ -17,47 +17,15 @@ override func tearDownWithError() throws { // Put teardown code here. This method is called after the invocation of each test method in the class. } - - func testGetAllCurrencies() throws { - // Create test cases - let testCases = [1: ["USD/GBP", "EUR/AED"], 2: ["USD/GBP", "USD/EUR"]] - let expectedResults = [1: ["USD", "EUR"], 2: ["USD"]] - - // Test - let currencySelector = CurrencySelector(currencyConversion: CurrencyConversion()) - for testCaseNumber in testCases.keys { - print("Testing case: \(testCaseNumber)") - let mockData = testCases[testCaseNumber]! - let allCurrencies = currencySelector.get(currencyType: .all, from: mockData) - - // Assert - XCTAssertEqual(allCurrencies, expectedResults[testCaseNumber]) - } - } - - func testGetCompatibleCurrencies() throws { - // Create test cases - let testCases = [1: ["USD/GBP", "EUR/AED"], 2: ["USD/GBP", "USD/EUR"], 3: ["EUR/AED"]] - let expectedResults = [1: ["GBP"], 2: ["GBP", "EUR"], 3: []] - - // Test - let currencySelector = CurrencySelector(currencyConversion: CurrencyConversion()) - for testCaseNumber in testCases.keys { - print("Testing case: \(testCaseNumber)") - let mockData = testCases[testCaseNumber]! - let compatibleCurrencies = - currencySelector.get( - currencyType: .compatible(with: currencySelector.currencyConversion.baseSymbol), from: mockData - ) - - // Assert - XCTAssertEqual(compatibleCurrencies, expectedResults[testCaseNumber]) - } + + func testExample() throws { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. } func testPerformanceExample() throws { // This is an example of a performance test case. - measure { + self.measure { // Put the code you want to measure the time of here. } }
--- a/SimoleonUITests/Info.plist Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>$(DEVELOPMENT_LANGUAGE)</string> - <key>CFBundleExecutable</key> - <string>$(EXECUTABLE_NAME)</string> - <key>CFBundleIdentifier</key> - <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>$(PRODUCT_NAME)</string> - <key>CFBundlePackageType</key> - <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string> - <key>CFBundleShortVersionString</key> - <string>1.0</string> - <key>CFBundleVersion</key> - <string>1</string> -</dict> -</plist>
--- a/SimoleonUITests/SimoleonUITests.swift Tue Oct 12 17:14:05 2021 +0200 +++ b/SimoleonUITests/SimoleonUITests.swift Tue Oct 26 13:09:17 2021 +0200 @@ -2,7 +2,7 @@ // SimoleonUITests.swift // SimoleonUITests // -// Created by Dennis Concepción Martín on 08/07/2021. +// Created by Dennis Concepción Martín on 26/10/21. // import XCTest @@ -11,9 +11,6 @@ override func setUpWithError() throws { // Put setup code here. This method is called before the invocation of each test method in the class. - if UIDevice.current.userInterfaceIdiom == .pad { - XCUIDevice.shared.orientation = .landscapeLeft - } // In UI tests it is usually best to stop immediately when a failure occurs. continueAfterFailure = false @@ -24,60 +21,14 @@ override func tearDownWithError() throws { // Put teardown code here. This method is called after the invocation of each test method in the class. } - - func testTabBar() throws { + + func testExample() throws { + // UI tests must launch the application that they test. let app = XCUIApplication() app.launch() - - if UIDevice.current.userInterfaceIdiom == .pad { - app.tables["Sidebar"].buttons["NavigateToConversion"].tap() - XCTAssertTrue(app.staticTexts["Convert"].exists) - - app.tables["Sidebar"].buttons["NavigateToFavorites"].tap() - XCTAssertTrue(app.staticTexts["Favorites"].exists) - - app.tables["Sidebar"].buttons["NavigateToSettings"].tap() - XCTAssertTrue(app.staticTexts["Settings"].exists) - } else { - app.tabBars.buttons.element(boundBy: 0).tap() - XCTAssertTrue(app.staticTexts["Convert"].exists) - - app.tabBars.buttons.element(boundBy: 1).tap() - XCTAssertTrue(app.staticTexts["Favorites"].exists) - - app.tabBars.buttons.element(boundBy: 2).tap() - XCTAssertTrue(app.staticTexts["Settings"].exists) - - } - } - - func testCurrencySelector() throws { - let app = XCUIApplication() - app.launch() - app.scrollViews.buttons["OpenCurrencySelector"].tap() - - let currencySearchBar = app.textFields["CurrencySearchBar"] - currencySearchBar.tap() - currencySearchBar.typeText("USD/BTC") - app.tables.buttons["From USD to BTC"].tap() - } - - func testCoreData() throws { - let app = XCUIApplication() - app.launch() - - if UIDevice.current.userInterfaceIdiom == .pad { - app.tables["Sidebar"].buttons["NavigateToFavorites"].tap() - } else { - app.tabBars.buttons.element(boundBy: 1).tap() - } - - XCTAssertTrue(app.tables.buttons["From USD to GBP"].exists) - - let favoriteList = app.tables - favoriteList.buttons["From USD to GBP"].swipeLeft() - favoriteList.buttons["Delete"].tap() - XCTAssertFalse(app.tables.buttons["From USD to GBP"].exists) + + // Use recording to get started writing UI tests. + // Use XCTAssert and related functions to verify your tests produce the correct results. } func testLaunchPerformance() throws {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SimoleonUITests/SimoleonUITestsLaunchTests.swift Tue Oct 26 13:09:17 2021 +0200 @@ -0,0 +1,32 @@ +// +// SimoleonUITestsLaunchTests.swift +// SimoleonUITests +// +// Created by Dennis Concepción Martín on 26/10/21. +// + +import XCTest + +class SimoleonUITestsLaunchTests: XCTestCase { + + override class var runsForEachTargetApplicationUIConfiguration: Bool { + true + } + + override func setUpWithError() throws { + continueAfterFailure = false + } + + func testLaunch() throws { + let app = XCUIApplication() + app.launch() + + // Insert steps here to perform after app launch but before taking a screenshot, + // such as logging into a test account or navigating somewhere in the app + + let attachment = XCTAttachment(screenshot: app.screenshot()) + attachment.name = "Launch Screen" + attachment.lifetime = .keepAlways + add(attachment) + } +}
--- a/fastlane/Appfile Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -app_identifier("io.dennistech.Simoleon") # The bundle identifier of your app -apple_id("dennisconcepcionmartin@gmail.com") # Your Apple email address - -itc_team_id("121864401") # App Store Connect Team ID -team_id("MTX83R5H8X") # Developer Portal Team ID - -# For more information about the Appfile, see: -# https://docs.fastlane.tools/advanced/#appfile
--- a/fastlane/Fastfile Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -# This file contains the fastlane.tools configuration -# You can find the documentation at https://docs.fastlane.tools -# -# For a list of all available actions, check out -# -# https://docs.fastlane.tools/actions -# -# For a list of all available plugins, check out -# -# https://docs.fastlane.tools/plugins/available-plugins -# - -# Uncomment the line if you want fastlane to automatically update itself -# update_fastlane - -default_platform(:ios) - -platform :ios do - - desc "Push a new beta build to TestFlight" - lane :beta do - increment_build_number(xcodeproj: "Simoleon.xcodeproj") - build_app(scheme: "Simoleon") - upload_to_testflight( - beta_app_review_info: { - contact_email: "dmartin@dennistech.io", - contact_first_name: "Dennis", - contact_last_name: "Concepcion Martin", - contact_phone: "+34 639 465 931", - notes: "Go and crash it. Thank you for reviewing <3" - } - ) - end - - desc "Capture screenshots and release version to App Store" - lane :release do - capture_screenshots - build_app(scheme: "Simoleon") - upload_to_app_store - end - - desc "Upload to App Store Connect" - lane :upload do - build_app(scheme: "Simoleon") - upload_to_app_store - end - -end
--- a/fastlane/README.md Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -fastlane documentation -================ -# Installation - -Make sure you have the latest version of the Xcode command line tools installed: - -``` -xcode-select --install -``` - -Install _fastlane_ using -``` -[sudo] gem install fastlane -NV -``` -or alternatively using `brew install fastlane` - -# Available Actions -## iOS -### ios beta -``` -fastlane ios beta -``` -Push a new beta build to TestFlight -### ios release -``` -fastlane ios release -``` -Capture screenshots and release version to App Store -### ios upload -``` -fastlane ios upload -``` -Upload to App Store Connect - ----- - -This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run. -More information about fastlane can be found on [fastlane.tools](https://fastlane.tools). -The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools).
--- a/fastlane/Snapfile Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -# A list of devices you want to take the screenshots from -devices([ - "iPhone 8 Plus", - "iPhone 12 Pro Max", - "iPad Pro (12.9-inch) (5th generation)", - "iPad Pro (12.9-inch) (3rd generation)" -]) - -languages([ - "en-US", - "es-ES", - "en-GB", - "de-DE", - "fr-FR", - "pt-PT", - "nl-NL", - "it", - "ru" -]) - -# The name of the scheme which contains the UI Tests. -scheme("Screenshots") - -# Enabling this option will automatically uninstall the application before running it. -reinstall_app(true) - -# Enabling this option will automatically erase the simulator before running the application -# erase_simulator(true) - -# Take snapshots on multiple simulators concurrently. -concurrent_simulators(false) - -# Should the project be cleaned before building it? -clean(true) - -# Enabling this option will configure the Simulator's system language. -localize_simulator(true) - -# Clear all previously generated screenshots before creating new ones. -clear_previous_screenshots(true) - -# Remove the '#' to set the status bar to 9:41 AM, and show full battery and reception. -override_status_bar(true) - -# For more information about all available options run -# fastlane action snapshot
--- a/fastlane/metadata/copyright.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -2021 Dennis Technologies Ltd. \ No newline at end of file
--- a/fastlane/metadata/de-DE/description.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -Simoleon ist ein Echtzeit-Währungsumrechner, der über 170 globale Währungen und 2000 Währungspaare unterstützt. Die einfache Bedienung und der reale Wechselkurs machen es zur perfekten App für Reisende, die wissen wollen, wie viel ihre Währung in jedem Moment wert ist. - -- 170 Weltwährungen, Kryptowährungen wie Bitcoin, Ethereum und Dash sowie Rohstoffe wie Gold, Silber und Platin. -- Kurse direkt von den europäischen Handelsplätzen. -- Wählen Sie Ihr Standard-Währungspaar und speichern Sie Ihre Lieblingswährungen. -- Simoleon wird auf all Ihren Geräten synchronisiert. -- Schnelle und einfache Schnittstelle. - -Datenschutzbestimmungen: https://dennistech.io/apps/simoleon/privacy -Nutzungsbedingungen: https://dennistech.io/apps/simoleon/terms \ No newline at end of file
--- a/fastlane/metadata/de-DE/keywords.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -währung,forex,umrechner,geld,euro,dollar,yen,reisen,wechsel,märkte,finanz \ No newline at end of file
--- a/fastlane/metadata/de-DE/marketing_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon \ No newline at end of file
--- a/fastlane/metadata/de-DE/name.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Simoleon \ No newline at end of file
--- a/fastlane/metadata/de-DE/privacy_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon/privacy \ No newline at end of file
--- a/fastlane/metadata/de-DE/release_notes.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Wie läuft's denn so? In diesem Update haben wir einige kleinere Fehler behoben und die Benutzeroberfläche verbessert. Nichts Großes, aber sehr wichtige Verbesserungen. Wir sehen uns in der nächsten Version! \ No newline at end of file
--- a/fastlane/metadata/de-DE/subtitle.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Währungsumrechner in Echtzeit \ No newline at end of file
--- a/fastlane/metadata/de-DE/support_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/ \ No newline at end of file
--- a/fastlane/metadata/en-GB/description.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -Simoleon is a real-time currency converter with over 170 global currencies and 2000 currency pairs supported. The ease of use and the real exchange rate makes it the perfect app for travellers who want to know how much their currency is worth at every moment. - -- 170 global currencies, cryptos like Bitcoin, Ethereum, and Dash, and raw materials like gold, silver, and platinum. -- Quotes straight from European trading floors. -- Select your default currency pair and save your favourite currencies. -- Simoleon is synchronised across all your devices. -- Fast and simple interface. - -Privacy policy: https://dennistech.io/apps/simoleon/privacy -Terms of use: https://dennistech.io/apps/simoleon/terms \ No newline at end of file
--- a/fastlane/metadata/en-GB/keywords.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -currency,forex,converter,money,euro,dollar,yen,travel,exchange,markets,finance \ No newline at end of file
--- a/fastlane/metadata/en-GB/marketing_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon \ No newline at end of file
--- a/fastlane/metadata/en-GB/name.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Simoleon \ No newline at end of file
--- a/fastlane/metadata/en-GB/privacy_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon/privacy \ No newline at end of file
--- a/fastlane/metadata/en-GB/release_notes.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -How's everything going? In this update we fixed some minor bugs and improved the UX. Nothing big but very important improvements. See you in the next version! \ No newline at end of file
--- a/fastlane/metadata/en-GB/subtitle.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Real-time currency converter \ No newline at end of file
--- a/fastlane/metadata/en-GB/support_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/ \ No newline at end of file
--- a/fastlane/metadata/en-US/description.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -Simoleon is a real-time currency converter with over 170 global currencies and 2000 currency pairs supported. The ease of use and the real exchange rate makes it the perfect app for travellers who want to know how much their currency is worth at every moment. - -- 170 global currencies, cryptos like Bitcoin, Ethereum, and Dash, and raw materials like gold, silver, and platinum. -- Quotes straight from European trading floors. -- Select your default currency pair and save your favorite currencies. -- Simoleon is synchronised across all your devices. -- Fast and simple interface. - -Privacy policy: https://dennistech.io/apps/simoleon/privacy -Terms of use: https://dennistech.io/apps/simoleon/terms \ No newline at end of file
--- a/fastlane/metadata/en-US/keywords.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -currency,forex,converter,money,euro,dollar,yen,travel,exchange,markets,finance \ No newline at end of file
--- a/fastlane/metadata/en-US/marketing_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon \ No newline at end of file
--- a/fastlane/metadata/en-US/name.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Simoleon \ No newline at end of file
--- a/fastlane/metadata/en-US/privacy_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon/privacy \ No newline at end of file
--- a/fastlane/metadata/en-US/release_notes.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -How's everything going? In this update we fixed some minor bugs and improved the UX. Nothing big but very important improvements. See you in the next version! \ No newline at end of file
--- a/fastlane/metadata/en-US/subtitle.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Real-time currency converter \ No newline at end of file
--- a/fastlane/metadata/en-US/support_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/ \ No newline at end of file
--- a/fastlane/metadata/es-ES/description.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -Simoleon es un conversor de divisas en tiempo real con más de 170 monedas mundiales y 2000 pares de divisas. Su facilidad de uso y el tipo de cambio en tiempo real hace que Simoleon sea la app perfecta para viajeros que necesitan saber cuánto vale su divisa en cada momento. - -- 170 monedas mundiales, criptomonedas como Bitcoin, Ethereum, y Dash, y materias primas como el oro, la plata, o el platino. -- Los tipos de cambios son recibidos directamente desde las salas de trading europeas. -- Selecciona el par de divisas principal, y guarda tus divisas favoritas. -- Simoleon se sincroniza con todos tus dispositivos. -- Interfaz rápida y sencilla. - -Política de privacidad: https://dennistech.io/apps/simoleon/privacy -Términos de uso: https://dennistech.io/apps/simoleon/terms \ No newline at end of file
--- a/fastlane/metadata/es-ES/keywords.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Divisa,moneda,conversor,dinero,euro,dolar,yen,viaje,intercambio,mercado,finanzas \ No newline at end of file
--- a/fastlane/metadata/es-ES/marketing_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon \ No newline at end of file
--- a/fastlane/metadata/es-ES/name.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Simoleon \ No newline at end of file
--- a/fastlane/metadata/es-ES/privacy_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon/privacy \ No newline at end of file
--- a/fastlane/metadata/es-ES/release_notes.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -¿Cómo va todo? En esta actualización hemos corregido algunos errores menores y mejorado la UX. Nada grande pero son mejoras muy importantes. ¡Nos vemos en la próxima versión! \ No newline at end of file
--- a/fastlane/metadata/es-ES/subtitle.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Conversor de divisas \ No newline at end of file
--- a/fastlane/metadata/es-ES/support_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/ \ No newline at end of file
--- a/fastlane/metadata/fr-FR/description.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -Simoleon est un convertisseur de devises en temps réel qui prend en charge plus de 170 devises internationales et 2000 paires de devises. La facilité d'utilisation et le taux de change réel en font l'application parfaite pour les voyageurs qui veulent savoir combien vaut leur devise à chaque instant. - -- 170 devises internationales, des cryptomonnaies comme le bitcoin, l'ethereum et le dash, et des matières premières comme l'or, l'argent et le platine. -- Des cotations en provenance directe des salles de marché européennes. -- Sélectionnez votre paire de devises par défaut et enregistrez vos devises préférées. -- Simoleon est synchronisé sur tous vos appareils. -- Interface simple et rapide. - -Politique de confidentialité: https://dennistech.io/apps/simoleon/privacy -Conditions d'utilisation: https://dennistech.io/apps/simoleon/terms \ No newline at end of file
--- a/fastlane/metadata/fr-FR/keywords.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -monnaie,forex,convertisseur,argent,euro,dollar,yen,voyage,change,marchés,finance \ No newline at end of file
--- a/fastlane/metadata/fr-FR/marketing_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon \ No newline at end of file
--- a/fastlane/metadata/fr-FR/name.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Simoleon \ No newline at end of file
--- a/fastlane/metadata/fr-FR/privacy_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon/privacy \ No newline at end of file
--- a/fastlane/metadata/fr-FR/release_notes.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Comment ça se passe ? Dans cette mise à jour, nous avons corrigé quelques bugs mineurs et amélioré l'interface utilisateur. Rien de gros mais des améliorations très importantes. A bientôt dans la prochaine version! \ No newline at end of file
--- a/fastlane/metadata/fr-FR/subtitle.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Convertisseur de devises \ No newline at end of file
--- a/fastlane/metadata/fr-FR/support_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/ \ No newline at end of file
--- a/fastlane/metadata/it/description.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -Simoleon è un convertitore di valuta in tempo reale con oltre 170 valute globali e 2000 coppie di valute supportate. La facilità d'uso e il tasso di cambio reale lo rendono l'app perfetta per i viaggiatori che vogliono sapere quanto vale la loro valuta in ogni momento. - -- 170 valute globali, criptovalute come Bitcoin, Ethereum e Dash, e materie prime come oro, argento e platino. -- Quotazioni direttamente dai trading floor europei. -- Seleziona la tua coppia di valute predefinita e salva le tue valute preferite. -- Simoleon è sincronizzato su tutti i tuoi dispositivi. -- Interfaccia semplice e veloce. - -Informativa sulla privacy: https://dennistech.io/apps/simoleon/privacy -Termini di utilizzo: https://dennistech.io/apps/simoleon/terms \ No newline at end of file
--- a/fastlane/metadata/it/keywords.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -valuta, forex, convertitore, soldi, euro, dollaro, yen, viaggio, scambio, mercati, finanza \ No newline at end of file
--- a/fastlane/metadata/it/marketing_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon \ No newline at end of file
--- a/fastlane/metadata/it/name.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Simoleon \ No newline at end of file
--- a/fastlane/metadata/it/privacy_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon/privacy \ No newline at end of file
--- a/fastlane/metadata/it/release_notes.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Come vanno le cose? In questo aggiornamento abbiamo risolto alcuni bug minori e migliorato l'UX. Niente di che, ma miglioramenti molto importanti. Ci vediamo nella prossima versione! \ No newline at end of file
--- a/fastlane/metadata/it/subtitle.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Convertitore di valuta \ No newline at end of file
--- a/fastlane/metadata/it/support_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/ \ No newline at end of file
--- a/fastlane/metadata/nl-NL/description.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -Simoleon is een real-time valuta converter met meer dan 170 wereldwijde valuta's en 2000 valutaparen ondersteund. Het gebruiksgemak en de reële wisselkoers maakt het de perfecte app voor reizigers die op elk moment willen weten hoeveel hun valuta waard is. - -- 170 wereldwijde valuta's, crypto's zoals Bitcoin, Ethereum, en Dash, en grondstoffen zoals goud, zilver, en platina. -- Koersen rechtstreeks van Europese handelsvloeren. -- Selecteer uw standaard valutapaar en sla uw favoriete valuta's op. -- Simoleon wordt gesynchroniseerd op al uw apparaten. -- Snelle en eenvoudige interface. - -Privacybeleid: https://dennistech.io/apps/simoleon/privacy -Gebruiksvoorwaarden: https://dennistech.io/apps/simoleon/terms \ No newline at end of file
--- a/fastlane/metadata/nl-NL/keywords.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -valuta, forex, converter, geld, euro, dollar, yen, reizen, uitwisseling, markten, financiën \ No newline at end of file
--- a/fastlane/metadata/nl-NL/marketing_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon \ No newline at end of file
--- a/fastlane/metadata/nl-NL/name.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Simoleon \ No newline at end of file
--- a/fastlane/metadata/nl-NL/privacy_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon/privacy \ No newline at end of file
--- a/fastlane/metadata/nl-NL/release_notes.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Hoe gaat het met alles? In deze update hebben we wat kleine bugs verholpen en de UX verbeterd. Niets groots, maar zeer belangrijke verbeteringen. Tot ziens in de volgende versie! \ No newline at end of file
--- a/fastlane/metadata/nl-NL/subtitle.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Realtime valutacalculator \ No newline at end of file
--- a/fastlane/metadata/nl-NL/support_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/ \ No newline at end of file
--- a/fastlane/metadata/primary_category.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -UTILITIES \ No newline at end of file
--- a/fastlane/metadata/pt-PT/description.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -Simoleon é um conversor de moeda em tempo real com mais de 170 moedas globais e 2000 pares de moedas suportados. A facilidade de utilização e a taxa de câmbio real torna-a a aplicação perfeita para viajantes que querem saber quanto vale a sua moeda em cada momento. - -- 170 moedas globais, criptos como Bitcoin, Ethereum, e Dash, e matérias-primas como ouro, prata, e platina. -- Cotações directamente dos pisos comerciais europeus. -- Seleccione o seu par de moedas padrão e guarde as suas moedas favoritas. -- O Simoleon está sincronizado em todos os seus dispositivos. -- Interface rápida e simples. - -Política de privacidade: https://dennistech.io/apps/simoleon/privacy -Termos de utilização: https://dennistech.io/apps/simoleon/terms \ No newline at end of file
--- a/fastlane/metadata/pt-PT/keywords.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -moeda,forex,conversor,dinheiro,euro,dólar,iene,viagens,câmbio,mercados,finanças \ No newline at end of file
--- a/fastlane/metadata/pt-PT/marketing_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon \ No newline at end of file
--- a/fastlane/metadata/pt-PT/name.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Simoleon \ No newline at end of file
--- a/fastlane/metadata/pt-PT/privacy_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon/privacy \ No newline at end of file
--- a/fastlane/metadata/pt-PT/release_notes.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Como está tudo a correr? Nesta actualização corrigimos alguns bugs menores e melhorámos o UX. Nada de grande mas melhorias muito importantes. Vejo-vos na próxima versão! \ No newline at end of file
--- a/fastlane/metadata/pt-PT/subtitle.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Conversor de moeda \ No newline at end of file
--- a/fastlane/metadata/pt-PT/support_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/ \ No newline at end of file
--- a/fastlane/metadata/ru/description.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -Simoleon - это конвертер валют в реальном времени с поддержкой более 170 мировых валют и 2000 валютных пар. Простота использования и реальный обменный курс делают это приложение идеальным для путешественников, которые хотят знать, сколько стоит их валюта в каждый момент времени. - -- 170 мировых валют, криптовалюты, такие как Bitcoin, Ethereum и Dash, и сырьевые товары, такие как золото, серебро и платина. -- Котировки прямо с европейских торговых площадок. -- Выберите валютную пару по умолчанию и сохраните любимые валюты. -- Simoleon синхронизируется на всех ваших устройствах. -- Быстрый и простой интерфейс. - -Политика конфиденциальности: https://dennistech.io/apps/simoleon/privacy -Условия использования: https://dennistech.io/apps/simoleon/terms \ No newline at end of file
--- a/fastlane/metadata/ru/keywords.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -валюта,форекс,конвертер,деньги,евро,доллар,йена,путешествия,обмен,рынки,финансы \ No newline at end of file
--- a/fastlane/metadata/ru/marketing_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon \ No newline at end of file
--- a/fastlane/metadata/ru/name.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Simoleon \ No newline at end of file
--- a/fastlane/metadata/ru/privacy_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/apps/simoleon/privacy \ No newline at end of file
--- a/fastlane/metadata/ru/release_notes.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Как идут дела? В этом обновлении мы исправили несколько мелких ошибок и улучшили UX. Ничего особенного, но очень важные улучшения. Увидимся в следующей версии! \ No newline at end of file
--- a/fastlane/metadata/ru/subtitle.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Конвертер валют \ No newline at end of file
--- a/fastlane/metadata/ru/support_url.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://dennistech.io/ \ No newline at end of file
--- a/fastlane/metadata/secondary_category.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -FINANCE \ No newline at end of file
--- a/fastlane/review_information/email_address.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -dmartin@dennistech.io \ No newline at end of file
--- a/fastlane/review_information/first_name.txt Tue Oct 12 17:14:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Dennis \ No newline at end of file