From b1ed0f1656f3e413c429a41509157df40d32b6b2 Mon Sep 17 00:00:00 2001 From: Yemel Jardi Date: Wed, 3 Sep 2014 12:04:14 -0300 Subject: [PATCH 1/2] Switch to cordova framework - IOS support --- .gitignore | 12 +- android/build.sh | 71 - android/icon.png | Bin 8158 -> 0 bytes android/logo.png | Bin 7600 -> 0 bytes android/manifest.json | 21 - .../android}/AndroidManifest.xml | 15 +- .../res/xml => cordova/android}/config.xml | 27 +- cordova/build.sh | 123 ++ cordova/config.xml | 16 + cordova/ios/Copay-Info.plist | 94 + cordova/ios/icons/iTunesArtwork.png | Bin 0 -> 25276 bytes cordova/ios/icons/iTunesArtwork@2x.png | Bin 0 -> 53515 bytes cordova/ios/icons/icon-40.png | Bin 0 -> 1501 bytes cordova/ios/icons/icon-40@2x.png | Bin 0 -> 3650 bytes cordova/ios/icons/icon-50.png | Bin 0 -> 1777 bytes cordova/ios/icons/icon-50@2x.png | Bin 0 -> 4689 bytes cordova/ios/icons/icon-57.png | Bin 0 -> 1982 bytes cordova/ios/icons/icon-57@2x.png | Bin 0 -> 5267 bytes cordova/ios/icons/icon-60.png | Bin 0 -> 2866 bytes cordova/ios/icons/icon-60@2x.png | Bin 0 -> 5582 bytes cordova/ios/icons/icon-72.png | Bin 0 -> 3270 bytes cordova/ios/icons/icon-72@2x.png | Bin 0 -> 6687 bytes cordova/ios/icons/icon-76.png | Bin 0 -> 3495 bytes cordova/ios/icons/icon-76@2x.png | Bin 0 -> 7133 bytes cordova/ios/icons/icon-small.png | Bin 0 -> 1144 bytes cordova/ios/icons/icon-small@2x.png | Bin 0 -> 1989 bytes cordova/ios/icons/icon.png | Bin 0 -> 1982 bytes cordova/ios/icons/icon@2x.png | Bin 0 -> 5267 bytes cordova/ios/splash/Default-568h@2x~iphone.png | Bin 0 -> 32119 bytes .../ios/splash/Default-Landscape@2x~ipad.png | Bin 0 -> 90402 bytes cordova/ios/splash/Default-Landscape~ipad.png | Bin 0 -> 33729 bytes .../ios/splash/Default-Portrait@2x~ipad.png | Bin 0 -> 91222 bytes cordova/ios/splash/Default-Portrait~ipad.png | Bin 0 -> 33855 bytes cordova/ios/splash/Default@2x~iphone.png | Bin 0 -> 27154 bytes cordova/ios/splash/Default~iphone.png | Bin 0 -> 10277 bytes js/mobile.js | 1 + mobile/build.sh | 76 - mobile/build.xml | 92 - mobile/cordova.js | 1879 ----------------- mobile/cordova_plugins.js | 61 - ...e.zxing.client.android.captureactivity.jar | Bin 619420 -> 0 bytes mobile/local.properties | 10 - .../com.borismus.webintent/www/webintent.js | 75 - .../www/barcodescanner.js | 89 - .../www/clipboard.js | 36 - .../www/email_composer.js | 108 - .../nl.x-services.plugins.toast/test/tests.js | 59 - .../nl.x-services.plugins.toast/www/Toast.js | 42 - .../www/splashscreen.js | 35 - mobile/proguard-project.txt | 20 - mobile/project.properties | 17 - mobile/res/drawable/icon.png | Bin 8158 -> 0 bytes mobile/res/drawable/launcher_icon.png | Bin 2222 -> 0 bytes mobile/res/drawable/screen.9.png | Bin 12200 -> 0 bytes mobile/res/drawable/share_via_barcode.png | Bin 3207 -> 0 bytes mobile/res/drawable/shopper_icon.png | Bin 1326 -> 0 bytes mobile/res/layout-land/encode.xml | 48 - mobile/res/layout-land/share.xml | 90 - mobile/res/layout-ldpi/capture.xml | 219 -- .../res/layout/bookmark_picker_list_item.xml | 34 - mobile/res/layout/capture.xml | 218 -- mobile/res/layout/encode.xml | 49 - mobile/res/layout/help.xml | 50 - mobile/res/layout/history_list_item.xml | 22 - mobile/res/layout/search_book_contents.xml | 51 - .../layout/search_book_contents_header.xml | 23 - .../layout/search_book_contents_list_item.xml | 38 - mobile/res/layout/share.xml | 96 - mobile/res/menu/capture.xml | 19 - mobile/res/menu/encode.xml | 19 - mobile/res/menu/history.xml | 26 - mobile/res/raw/beep.ogg | Bin 6401 -> 0 bytes mobile/res/values/arrays.xml | 35 - mobile/res/values/colors.xml | 29 - mobile/res/values/dimens.xml | 5 - mobile/res/values/ids.xml | 25 - mobile/res/values/strings.xml | 123 -- mobile/res/xml/preferences.xml | 102 - mobile/src/com/bitpay/copay/Copay.java | 37 - .../src/com/borismus/webintent/WebIntent.java | 217 -- .../barcodescanner/BarcodeScanner.java | 169 -- .../verso/cordova/clipboard/Clipboard.java | 62 - .../emailcomposer/AttachmentProvider.java | 115 - .../plugin/emailcomposer/EmailComposer.java | 413 ---- mobile/src/nl/xservices/plugins/Toast.java | 56 - .../cordova/splashscreen/SplashScreen.java | 43 - .../apache/cordova/vibration/Vibration.java | 124 -- 87 files changed, 252 insertions(+), 5284 deletions(-) delete mode 100644 android/build.sh delete mode 100644 android/icon.png delete mode 100644 android/logo.png delete mode 100644 android/manifest.json rename {mobile => cordova/android}/AndroidManifest.xml (78%) rename {mobile/res/xml => cordova/android}/config.xml (82%) create mode 100644 cordova/build.sh create mode 100644 cordova/config.xml create mode 100644 cordova/ios/Copay-Info.plist create mode 100644 cordova/ios/icons/iTunesArtwork.png create mode 100644 cordova/ios/icons/iTunesArtwork@2x.png create mode 100644 cordova/ios/icons/icon-40.png create mode 100644 cordova/ios/icons/icon-40@2x.png create mode 100644 cordova/ios/icons/icon-50.png create mode 100644 cordova/ios/icons/icon-50@2x.png create mode 100644 cordova/ios/icons/icon-57.png create mode 100644 cordova/ios/icons/icon-57@2x.png create mode 100644 cordova/ios/icons/icon-60.png create mode 100644 cordova/ios/icons/icon-60@2x.png create mode 100644 cordova/ios/icons/icon-72.png create mode 100644 cordova/ios/icons/icon-72@2x.png create mode 100644 cordova/ios/icons/icon-76.png create mode 100644 cordova/ios/icons/icon-76@2x.png create mode 100644 cordova/ios/icons/icon-small.png create mode 100644 cordova/ios/icons/icon-small@2x.png create mode 100644 cordova/ios/icons/icon.png create mode 100644 cordova/ios/icons/icon@2x.png create mode 100644 cordova/ios/splash/Default-568h@2x~iphone.png create mode 100644 cordova/ios/splash/Default-Landscape@2x~ipad.png create mode 100644 cordova/ios/splash/Default-Landscape~ipad.png create mode 100644 cordova/ios/splash/Default-Portrait@2x~ipad.png create mode 100644 cordova/ios/splash/Default-Portrait~ipad.png create mode 100644 cordova/ios/splash/Default@2x~iphone.png create mode 100644 cordova/ios/splash/Default~iphone.png delete mode 100644 mobile/build.sh delete mode 100644 mobile/build.xml delete mode 100644 mobile/cordova.js delete mode 100644 mobile/cordova_plugins.js delete mode 100644 mobile/libs/com.google.zxing.client.android.captureactivity.jar delete mode 100644 mobile/local.properties delete mode 100644 mobile/plugins/com.borismus.webintent/www/webintent.js delete mode 100644 mobile/plugins/com.phonegap.plugins.barcodescanner/www/barcodescanner.js delete mode 100644 mobile/plugins/com.verso.cordova.clipboard/www/clipboard.js delete mode 100644 mobile/plugins/de.appplant.cordova.plugin.email-composer/www/email_composer.js delete mode 100644 mobile/plugins/nl.x-services.plugins.toast/test/tests.js delete mode 100644 mobile/plugins/nl.x-services.plugins.toast/www/Toast.js delete mode 100644 mobile/plugins/org.apache.cordova.splashscreen/www/splashscreen.js delete mode 100644 mobile/proguard-project.txt delete mode 100644 mobile/project.properties delete mode 100644 mobile/res/drawable/icon.png delete mode 100644 mobile/res/drawable/launcher_icon.png delete mode 100644 mobile/res/drawable/screen.9.png delete mode 100644 mobile/res/drawable/share_via_barcode.png delete mode 100644 mobile/res/drawable/shopper_icon.png delete mode 100644 mobile/res/layout-land/encode.xml delete mode 100644 mobile/res/layout-land/share.xml delete mode 100644 mobile/res/layout-ldpi/capture.xml delete mode 100644 mobile/res/layout/bookmark_picker_list_item.xml delete mode 100644 mobile/res/layout/capture.xml delete mode 100644 mobile/res/layout/encode.xml delete mode 100644 mobile/res/layout/help.xml delete mode 100644 mobile/res/layout/history_list_item.xml delete mode 100644 mobile/res/layout/search_book_contents.xml delete mode 100644 mobile/res/layout/search_book_contents_header.xml delete mode 100644 mobile/res/layout/search_book_contents_list_item.xml delete mode 100644 mobile/res/layout/share.xml delete mode 100644 mobile/res/menu/capture.xml delete mode 100644 mobile/res/menu/encode.xml delete mode 100644 mobile/res/menu/history.xml delete mode 100644 mobile/res/raw/beep.ogg delete mode 100644 mobile/res/values/arrays.xml delete mode 100644 mobile/res/values/colors.xml delete mode 100644 mobile/res/values/dimens.xml delete mode 100644 mobile/res/values/ids.xml delete mode 100644 mobile/res/values/strings.xml delete mode 100644 mobile/res/xml/preferences.xml delete mode 100644 mobile/src/com/bitpay/copay/Copay.java delete mode 100644 mobile/src/com/borismus/webintent/WebIntent.java delete mode 100644 mobile/src/com/phonegap/plugins/barcodescanner/BarcodeScanner.java delete mode 100644 mobile/src/com/verso/cordova/clipboard/Clipboard.java delete mode 100644 mobile/src/de/appplant/cordova/plugin/emailcomposer/AttachmentProvider.java delete mode 100644 mobile/src/de/appplant/cordova/plugin/emailcomposer/EmailComposer.java delete mode 100644 mobile/src/nl/xservices/plugins/Toast.java delete mode 100644 mobile/src/org/apache/cordova/splashscreen/SplashScreen.java delete mode 100644 mobile/src/org/apache/cordova/vibration/Vibration.java diff --git a/.gitignore b/.gitignore index 7c9c458c7..1c375d353 100644 --- a/.gitignore +++ b/.gitignore @@ -54,16 +54,8 @@ browser-extensions/firefox/copay.xpi version.js !js/controllers/version.js -android/package -android/*.apk -android/*.keystore - -mobile/*.keystore -mobile/assets/www -mobile/bin/* -mobile/gen/* -mobile/cordova/* -mobile/CordovaLib/* +cordova/project/* +cordova/*.keystore coverage/ diff --git a/android/build.sh b/android/build.sh deleted file mode 100644 index 313aa0320..000000000 --- a/android/build.sh +++ /dev/null @@ -1,71 +0,0 @@ -#! /bin/bash - -# Description: This script compiles and copy the needed files to later package the application for Android - -OpenColor="\033[" -Red="1;31m" -Yellow="1;33m" -Green="1;32m" -CloseColor="\033[0m" - -# Check function OK -checkOK() { - if [ $? != 0 ]; then - echo "${OpenColor}${Red}* ERROR. Exiting...${CloseColor}" - exit 1 - fi -} - -# Configs -BUILDDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -APPDIR="$BUILDDIR/package" -VERSION=`cut -d '"' -f2 $BUILDDIR/../version.js` -DEBUG="" -if [[ $1 = "-d" ]] -then - DEBUG="--enable-remote-debugging" -fi - -if [[ $# -eq 1 && ! $1 = "-d" ]] -then - if [ ! -f $BUILDDIR/copay.keystore ] - then - echo "${OpenColor}${Red}* Can't build production app without a keystore${CloseColor}" - exit 1 - fi - PRODUCTION="--keystore-path=$BUILDDIR/copay.keystore --keystore-alias=copay_play --keystore-passcode=$1" -fi - -# Move to the build directory -cd $BUILDDIR - -[ -z "$CROSSWALK" ] && { echo "${OpenColor}${Red}* Need to set CROSSWALK environment variable${CloseColor}"; exit 1; } - -# Create/Clean temp dir -echo "${OpenColor}${Green}* Checking temp dir...${CloseColor}" -if [ -d $APPDIR ]; then - rm -rf $APPDIR -fi - -mkdir -p $APPDIR - -# Re-compile copayBundle.js -echo "${OpenColor}${Green}* Generating copay bundle...${CloseColor}" -grunt --target=dev shell -checkOK - -# Copy all app files -echo "${OpenColor}${Green}* Copying all app files...${CloseColor}" -sed "s/APP_VERSION/$VERSION/g" manifest.json > $APPDIR/manifest.json -cd $BUILDDIR/.. -cp -af {css,font,img,js,lib,sound,config.js,version.js,index.html,./android/icon.png,./android/logo.png} $APPDIR -checkOK - -# Building the APK -echo "${OpenColor}${Green}* Building APK file...${CloseColor}" -cd $CROSSWALK -python make_apk.py --manifest=$APPDIR/manifest.json --package=com.bitpay.copay --arch=arm --target-dir=$BUILDDIR $DEBUG $PRODUCTION -checkOK -cd $BUILDDIR - -echo "${OpenColor}${Yellow}\nAwesome! We have a brand new APK, enjoy it!${CloseColor}" diff --git a/android/icon.png b/android/icon.png deleted file mode 100644 index 84f38c3b6dddfab07a5b8e5cd5c98f8f637333cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8158 zcmV<4A0gn0P)j4M~%B}*dxCpr7!Qv_y5Ea%%SuSN!M2-&> zmneb=uFC{bPz)08n*bppfdC<#NoM+cuS16+nWLwBj_#UzzhBZl-Bs1E{`Fp+uU-kD zQ%X#HtWus()Yv9MEV38_B1D5A#)zU2g}*D~UnQ~lT3G-H$M<0%;Gc9A!$c4)f+(6q zK``MnlOTvD0Q`^7N@W?NhcqFKw@DBLI{>02;#B}U0%k`H?E;8JAPNQetN`(pt{Cwq z#>__m^YMB`x);QY7%m&b<>2pZvjAC49TcP&u4IAc?5(SL{t^kRNNtTO{*41to z`k}!0#hkar8Ye7h2=EUF5dmyb0Cu55Y%-a|jZu)W-D*uL3M4}TQ-JthgSw%hkHc=r zgV?@C1~QZUTgE^DyI*-IBkNH{=Iu#I-WCY1{i*=ey*YC|V;BnjcytHR?a*8hz z@tFd&O&n3xCgv@`?#>gwWRR!D5pYBRyG1L_Lge$itV=FAK39A169q^}9Ms)r7grz? z_0%%L<8cJMK;V?wBn(fpCU5m3j?NoffD#aRdT^0L~%`PscQ9 zVSaw(uq|4~2C7?t#KaL1=f%7gxM=ujAacyV!4YtZfFP`?Aw&+hT9@2#`rgAsRSHnt z-@imNJUu+5&tG!{{Eh%lnf_=Nsy?D-T;R0=w7Y*;Tv5TzO*q(X<@cQN4{!t&B7lSA zeU`BBzQ2FJDpO$;DVSFZaBHS#D;IumAm(8Mg#al5&JcC?rX?tC8R?Q&>hs$~>h|!O z-z7-=MNknS*(4bySyjr2A_bt?9vblSKEF~}dAML9Kr%|QN;0d22SwAMxj5B{vps)N zk{}Pm5zqkwEe@n-3ppnbT0QaNaST9Pd2Kmf-BHj@B}o)*j8 zDgX_7i|m)ukYT>U8;DZl-|#g8r!1zb3GN2PZu?1O+rx$5*JZ-f3m^jZZppCAPr7UY z$f{GciB^{}`3sJKK@bqkLZT}xQl~9|G=fHxW`pF9v&j)~j{wTDt63qZ16$h6f`i^M z?o;J&IRb`3Aojq?ob;UZ1G`FdT&4w}ZH!>Izg;>Y|IHCFGy*8ol5CgCL>UE;_VDs8 zjHO`WKaGw6n(W7sY?sbQ83n+u&-l`T_-~E?3kW!q?K>2pZJ!}`<5DvB-oQd>^E{M6 zfMlCw-0{U73ShGpjdgsPdjAy8VzOV$C%V_UA6b{?Av?zBqBrCzgo6vWkvhS->z zc&!Ps(fAir10o{A(E%#fXIP?iHK8263Kzo(ReKMIo&#@+oboFHr#U)roHD^v*x?{589)0rcq7 z0Xn0=w~KEM5#ix}$#YcIDsW$~Zqgrp;CT9JSoY;QSi5mE6ciNt<(qm*v{=@Q6`-UG z)Vk-OUr+%$>xIcs;-g}P^6=n&Jz?;}_e0C3jf0wXY8h62wE>oXu@8lx+Q31G@X8)mHCgnCQo5J9S?uQ5ZbcYJ%6>nlHla4j49F-Ixq0hk1wj#h5fKwn4Ab}tKry`Y;)~M! zc=>-|!ID*Av)O&ds~!@v2&T@vQr7H{#sJtS>csp1{x6ohJGF%uNB;?0G;O5$V?{+a z*mK}8{JdiqZ2K(@1^)!xxJmBzJyCIu{^63(fo7DRd+IS5@^D|LieNICU^Kq3Te}ua zoW_=IB&svYJQOPcj(xc!TTgPM;eC9ICNSZ-r=U~2)*4a)G|{rd_SD_*%|S^%8;X{smYSmC8X z-8lFw*7*1Jq**uhl!J5kE7yE0&Ct-juW8G+-{7tHKZ18(f6-;qBZdutQyH1C`kPHI z!x-s>Ec22ANM~{xiF=*%N?nJM!v+HSt<*GcPm5JcR(%EEY)XNmTm5){WqlofW5`2& zp+iDTm!BB_%y3xueF|K^5!7S7T=M753zB&XZ>G~2uZi6J*&FcOg>6*74$PnNIy~|~ zZ>RlgcX8!+XLHWO+t@XkHtRz;c;tlC^^xEC``V|wG&|_@Gv#r$`7*97@7jCN>3f4c ztkkk${45I{MQSj{b;+(TYW=I%u1m8nOINQA%3{>7zwhygEp>%H`}}Js0)O=JmGYF8eI5!63!z*&*X9=0qpCuE zoJLK@saB&C$v%w%VvL@VVDe9M`fp7dr`lv8?{YrOnDdF$w+?1L=-X7Q7vX%r8~K-5 zY<5>eCKLcO6GNw{M@zZl|GYwgEG=JncDOWssMcPGrZfjUHC`9OPnkEHO+fv8Pt??h z3wWNs<=6Kp`xX$y7;XdS9n56AGjs9;=yf-(rFc&?pTBVFYM{j^J@uudB9&Rflj$`R zgtBiDMWGsB1y)|1v?@C9oxek)26dH3atL`T@3OS2N~^beBQlRrLNr)sfk^gg3{Z)M z%mgA29ox2o+0!RMWMy@b(e&o%SEj-VoZr_YCElZ~MWanNj8G*~fXa+y#;@7v+%6vG z&wO3=VD}i>+dqfGPdl^pNVRd7S?_z4S;HSVd|Z!NP{UJY6VB$UtIpJX&Y*F~hG!lw zZmAvYrtLcfPmTM#ZiSzU<<)Vc6s=m5W$B&+M+{n$cd|{gPn+U-3veeccl@Gm&-@v0 zD4HF)BjT+eKW4e{J6SE4)2>QP~$ddNO>-L-5L&5n!>n-Vs)s-7miSPT{7T(lK@V z8)Y9`08{`@B?v@>hryh;Ujy=*poaDyJc{%Dvvjq<<(Q8;akb!;=SL{+^UHBhqc5R< zFIz4DWaC=g0^mk?-UBKr(6=Uy2eNfhL$r~6+-q;^vX-o0Ck}=U>JLK)J^v2}`xZeIX)Pe+ zse709l5v|FAZTuU!sMAjb2mud9j2o>wm;~bO;&jSqow{xI_PPV?3+Y^97={Z#nh~h z#%(X5KTUN|B>iInDA`QnFO;7}7c2gtE!$FI%8YsbNLm+ZlI+tUSY4^>A`8A@V(P@P zP^EH3Rf(-x|6ggdx~j-Nh(t0Qd&usT} zZl?;%tn72}k9mt##r0LB*ytLn2DPrfPyUA9o%1n#@%4AEf-v)(WS`8Tu>}ZC4XA~} z^Xk}FO^6A9Fs^jvA#z25+1?bVWJv3|F zKvhYc%E$up>c)v}1ejI;IsjTN{U7d#(v$CgwfW%j+#|rO0+7XL&#oQa=ibHJf`UR= z``!OsyycHsLV#HXAU7f2cs+A0R5BILzjDp-5x-{?0cI88(Lda$y2#dUZC}T*`y3zwA^Mmq#)l0!%8vqYtXD{b`q!4UY=t6dDLHrvPO2NoLP# zi4Lsh6gmhnrvPN{UqPj(hilhwFzEv`bi~>FoHC~XN>4g;1{Ik;&=e@A&_RGb1yFf- zH5K_!eDE7Ol7B0wOesLq#tk$%h)UhPKjZ`;)HBSK0wijv{pkdE+V{&Tv=CrQ0m%4G zE$!TMKy6eW&%g*UqX4w+u~oCis*8dSv*r|f2r#1n%^KH-a^>*ESCw?+_(_#9c{C#< zz>EU4YTiUsIUG5DN>h9u*_a40qX4a&-=(?)u3Wta1%7hxnM5}XpB^N^WIo|)5v2b=B{LphqXLj4-B70{jq1TalU{LaQu6M<7BN-(Q<*cN00jjFn&h|iGQXz83>cXz zfcZ1ta608FXNPM3Uv}=1e=>7rLIH9w=4mRBP*#8{l`6u*_ole@rjeC>4&IypsV0o| z8krFVxTFbRt)>*3J|4u#l`2+%g|m{N* z9|0d>&F^U=(cDi~0Lu;om{5Q-S=n9-fMbNXn3|41nZK`6xe_e==bMnws+rroe)qqv zu=xLy-G(vxOC}WHSh_ZcRyEM*t4?f;(aTa1|J2=EI`185+q${i@cR!RgUK`Ix(&m^ zOC}WH_{r0n%c5&XHg-6<1EOKQ+OT}V3~1b-uDf86fi3Fz*WQ5}H?_^Kx&4SvUNWHo zWX(y1riHq+kJl1i_i;P6Z6($Go@TsgfAljiPJx{B7j&N|Uogmo0uT_XY5O$c(WQMG zP4V>{nKrd7nl%-wMpkjl=K0)<@aG9r;0)UPgbFdE06Tu)tEtSQs#bv(O&V!RLvN8S z=qTXLSH{5W6GnSHF_X?lBjKk5!b6FeQ2<}8Qa(PQA2Vf7U7b(oOa~>0h3Dm8foESz z3Q6zS%qRf$UH2Y1qDg@1Y+>34Xmq-_M;G{V@dqAfdMKZ#Gta_PV_$>A$I^|SZB_g; zqX3lqb>F9`0zr;M&UK$2IzawuxNBHgIe7iW(J*`ZB#6YheosW*#wVVe7?L%=j15x? zKnpjtbgzXTd$=#qLXpvk7PY=uGz*3e>aU3PFV=2^(Jv=K-sOBn;aLr2j;`N4iIvP< z$GyFEYsWxyH?}RF@=C2hP4t8LzpcM`3aX3uLL%pWP+&{fPnni2RoJ?!Lh*5fwx@&2D5fihmn73JxAQp-V$BIt=jDu_Mtxr?RyR z5o>zt^33}1Gq}!Oz}z7gLhGIbnQI5hmG|0ZbD=WYx@#eFnmg*n$-0>vr>V^`BZk7j z{(ThH_>^~AA)hjH9%x-B(SoC%<1#e{kbx%Ci2N&8q1W9VTeff>rhx&go|=`#Xq~BsG<*aCeATYuT< zIv{_e1cA^|078QXl7AllD2yHXgz8#X399}GbMew;NdEQ*`26b)ka_l;KRywPX@-^p z$R$i$0w<0e>DC9P95$HO8#iylc63F)(fSi?-29W&tqLYT41SvwU=Vg5MbGQ#4CbDE zVUBuY5OiwSS~t0)nm%RQZ?G9{k$&E>D<%|PPm&9|^eTtqDZ9*-ijapa#jxpxsZ zzC{yh1v#Nrb7+OLG+NCm96xgty(}EWxq3QYXy3tO(v?oBr&U`{!9YML5L)*dbRA0| zA{d`H!Z+*JiGv39;vg<28scizl%`ZGRwxhUBO-vjtI;u{g=k_dO?l$f=QTWVkJbsu ztHL?_%f5BZ$-MyN!Hx^Nj!In+Zde3SwDbDMb)lTh$i%t*OxFSU8^a<%vTqUvAuz@* zhJ}eU&ME>V`z8TI{}{EfiW<)sGYF9En?MxU_kYJsk@1Z96akcd6B~c0a0zO4R1n~x$K!mnu zB%eacPGZ%gB5~o57XPB9%|x^zKNc4P>*7Ho&{7?P`iXUgD}a6q zLop}eVPVpS`C`Gwnj33u>YmU!XVg`pEucy~#VP)vi+~5vahSm=-y#U&MQ)6!uVN%4 zJF2N2yCn3R1fFVfB|bp?oul3R55pSyjbX!xHfl8&mZ@6Fg9(yB!8lr+4xs-e-2KcISZHZPz}Qq%Dx3xf^)e1`?e^n zRgJtY;8IOqJjjeilWOt^Q31`VgH4z6E~8+hfM=0_TgSZZmPYD2bYdJzRY;KVlb(&un^9o zXKE5`Nx-Rl;vnp2&z%pLkJ4b`;O}pf>`M-@aAW*gY&B#2{lP${A6ccc!d%Bznv!bWV83Ad{s+o%h4X_ z2+jmCqX0A?zHGq^6n4)?2Hl3lcXu>^ES^2N-7O&@KO+fyj%I(NzT-4>Q!18uD0YW} z&A?%t2<^@a98V5@(67Qz=jxWsp4{r1oFxIrdm3;uF-6FVFu2GE$vnL(9?c1`6Q@E) zxd>~x$6?sd*Fw1$aR%j%NBp zc#Kd)czBubk#kvj2E}o4NA8}`)L}tE=u8Tf0VqTspew{3lvPOq;==2uoi572t&wav z$fCpT9)IR#c%V;lua5fPvar+Ole-cR5h-_>O`#yRLhaqV@Vzt(MB&gw93G4-c6J$u zzu*WkgMjes-Yv;pC_5!iaj{RdiJAQIjBo_pAmAwLB?^G!fQ@eA@K+oGW)N_c^%4b$ zf`sk3K$OQ!E_p^c0!|Ph87EnnUzI3;)tZFHBjS4b1;26x*hD~FUo7jzxhqis`e`;> z=Che;o-2-kjDRptzN2f&ERg&V?Sg(oyPyv8Z+_(nuz~>E|D>Y*Pe;f6+|dHi3+yA! zbqv7oIRdO8;7qp5C_wGL#7Wm*7wIXJP+Qd}(Hr!YGr#qSM^0Le1Rw6hG983fCL z;(HJ3CE7%*{F`4n0!BqZFbj!$HYcYz_0DZ1yx5ilSEr*6rxOV(X>f#etoiG#Z1F_Ko?qgrObEQjG&j)2|}z?$EN z2jC^9S(CTA!1+7f22`xOc)- zTp?Q{|K?YYfUXfhS(Ri~0h1oPKyn(1i6bI%#Y>yeOrnSUj9)nddP4xs9e%7XRPAfE zE>U#ykzxg)jJ8c2QPn2qZN>3GE4^i$^TQFqZqGg(^mgB6U84Bd8bw_o8Cpu%5*FT< zJ|sWmSB`)l5FnW(+4M&EiEpnIfFk_<{i;mTGHPn*Hz$rjun{0xB$*`H^p+Q|6@WfK zT1NdWJ}~wcZXVv}2;hL1WYOE2U*x?h22Eon}pl7sLX0wYc@V1_-F#I`3z=sH&GMj|qo))>3d{1=?;FvfuVlh=s zK#kK5} z!K7p3^YQNr#zl`JLN0@T3W)_*vW`3XfB%hjNj#*5K zGegc}Mxdd9fQmCBBI7;h`~5d(9oN}+t+n^L6Bj-2^ZZ$Bz0(@@n)g1JD5_Dd1=dgt zjF>ZN;P81<9~nM>%26#v)LbWYc({HgB$mMeVi&1ga@)gVe(-Kbe#c1zb6y=sj z(R0=MtFP9eCH0HN;->i95A*}QKyT0!bOait)GJy7-T<$I7r_+pIE}cJutsZh3lxj} zDgKKSxBVJ@w+g!Bj=JdZ!yA$o#awY0y3FEEQDKKe=1ti>Di+pTo?m{?eLW9&-{`{M zH=oO$OnQ%~81=+vNmR_;q>k36MCad&47Dd540dc{=F70V1^kf#(IT@+6U$LEYhnv< zKIjwG*Uc$L(M`p|s?kxtes4PF;$oqA-}pWQ<|N%7JZI7lb@g=@(|?9Uxmw zFmhb)fpK7o2HZ6TmclUJ1GwK`mT6TA)~; zWA@gPUpzFQuYZJ&_`7^A`g2`AH~rvwQ-<2L82;*%z4LW-kFkv!1pk&ODvToRlF#LD zHV5O5-8=0BFHhJ1OG88SrBy46+bvzbbklecAQ*Atez!%r`~|sUbk+Q~U)p3$uK^

w7NG_YRGjG{9L z_eC}c-FHj8TF~BGppfssdhX6mTv=?m_|?Vl%-pKmCPVA;`7!xo?vE6|uc|QY)u}zA zy66FB@wuy_RYNB98mujHG<@#lZn=DZWPOKj+DgAumyhCsRV)@Jj_)(*Iq4YE?G*8E z(MLv)?KMFCC8k`iZdXMLxkBp<1TyT1|I@*RAnhvaespdFcN-?;2K1{PGzNB@e`)<4Dix}P!Y zFJ0LXuOy#Hatxkgv~uP0rPEq`MWArIk<;}c9?_rV+9-A}oS)KhpKc^cVPG?veEx)* zRvJTl5;+N6X&AMz9k)O(>QCpKZ3clUDSQ9;5@c1rKAzBc)~E2Sr!j56J7Vs`gA2L* zfLxS2hAmZ3wn``8zw@vqv2Bro#h!m$&q3NrRMP50`G4-&a?qO<0`YUX89J=9HES87 zu${oK@b&}<4T49I?@a{{Y|0?8O8c-CH_>xUq!zZ{78v~EgB#JAbz{?L_GXXYhmyZN zdCNh|4*u_?jp?Y}=_mc_>T)XZU{GI*iXDoZm*h7W8j6>#T)AXcas`om z*!+7pV1Q^MuITKN)h}vT6?KjZ(!k4+JvTHRv5+Lz9Ukd5XSjd%Eguc`7=vddG{txhrE2F|sRnC0< zs&`6r_4?!b45%11x()^LgxYy|mvy2}-2UX^cTsT_`D~-#qE`wpj^Az2$Hbqa@9jB! z?v(SQLc`=-eSQGT#!sY3esRBT){4L&I168wfsh{^gioL#E&T#)Abwr6de7*R)OhWs z1>zf?D8DT3++UmZ;C3B5bi9_r?ZfE!_1(P&#qWm3^&0v{e0Ywcg9vX#K9xRKP^V^w z?>TnVr~_4@vD*xIZTP$?x?$XF#QZ7m7K_m`R*22J_G;K3@k~D9I5W!CjnCzCzhQJ? zs+VYmi&%Y*C9$b|ggUU~UZOx6QNQpitQPz)!S^X(#l9`YCRI${jQ{8qhoT1CYzM!_ zYF90g>#ySEqRuzafw!T5^r1s8jS7Wh$Mha}lU-CUhK^>}^M9qY!7=EnBhM#&wWU`q zu4*_is>}b7cLiJMJiuOP%3BL(&5_QS-upd!$V+3l&vot2Cmp%mti^9VF}?5MD-h|L zHYTl5RTCZYLX0j+F}#pM>+sy-ME;lJRPQH}^dNZ-Niu8c_SFI-=1uuUk&o>d3SB7~ zox1S!@@2(aCT=_EHD5_}o!TW|-=i*y-W;>#pbva{ZN{e)o)6OK)Yd8x8D9{{{IJ%_ zx8}Fj0_7H<1AY?}0v%DJQDuV`jNtck;5KF8q37W>HX} z1RQk%eLzQ`Z6YKLs8)#)Rb^09uC;)p1yZk1 z>1aBDe%oPdvrgo;W}(e!Mm+0)dWJlXC*Szaxf%J@Og|$nKwnnh+6L$?^G0A@pey&$ zz)u)%0^SB8`m^6d^%64rO(-*Dv%qPfb}+8KdE3-N&j{=U_5u5YgTP@x?}4f!Y}6OO z3=Rh)LBA{x(9;b#TB!9H8VM@JuEhHe^fF}lGJCz_E% zG%4tyCakIjXlPv*YYTBQ7zM5bSA$KABjR5Gw*y@l+q95Gvu@6?&x12TXa+^xh@{V3 zV!oDRl>l!x(pb$<2j0QdB^07}jmL-BXNGKz3_Y!4K3a(&)0Rm4ur&Iz$@J3{Qt7T> zFK`U_8Mvero9J9(u$v8T@f>j|_(5dhjCnt($q%H>tmD>SgP{U(OOJnpMaiT|lM8&H?d;4dk4O%wkeg(j^G z*y%RLN2egrK$-4S2=K4S(qXXI7VwFHABi3SsedX5ogYitLz?0B3&tR!bEwB&Y^~Ct z4>~9b(bG94MBhvGgSGBy((y+Ly7-3VO4w3tQBZ0J<6{=@$6E4e1Youbyu0-_XhU9{sos_h=;w-BR)D3 z!SxBDuCbph@k5h@EcC;O%GbrF=1+vt42F4${ z{|Wed$mn@PjMoA719tiQo!7xyAfQ5@2QRrQX7OGp9=zs5{##35QN6a$Oz4kI*qh`m zB4?RIDSV8ueAP!>w@exsK3Whe2u7L+7Ws@z{3Am?j0|0!VM3P+T0K+$QVKe{r0~(L zCcm^02WdN+Q`3BCmN?#55{n=I#4goYJ5-#RUn1*CuzKdZD=oim)9^M zz|Vu8ax_@{8xm#}N%Uq|y2ZI=GxN|?|-#J2Fnj|+QgpHk|gEm7KC`3LBDXF_CsL1-quH%smDu`vkE zqKM<$tl+mp==k10$o^7SS>SI8?7=2on{+{-&yrIKy|3Dao_OjtC3d}lZ=0z0?wMK` z6wuT8_FWL7-XUM+Aag)SsU%BZS~56U11kD9C3yHn{#$<6@K&H~Iy{E9g&ziNZP6hl z8twTl1^rE?BPh!puVC*yxLHd zIM6{eTu^kjD1hOl#v>|$@2mI)s+_f#bJYXZyYZ>$27F`WO9d3^YK6*XPABGS4 zj7$8xGWgIh=$=aPBk}cVz9iS-X^RYsSr084T(yeI33%P0lV3`+^$QJ$6~e( zbBOq^SKmc8-RFk~q1&iXKH8G}%x9nAAD>9uNo{ZD*$ndDnzRndA$lYvlng&=$E$&E zvveLZZA`QgJ=KU~G4ORX$^9&rD>}o)Oz_Sjy?cV^O5W{aHsVpRD?l0@*T}G)Fetdr z2KLq2r79Y{w0rJns;L70bSRq(lH{GeQ0xMpOd2H87iTF4Hff&^?40z2&EFGwxsqA7 zb*GdJwZ-ZIZgDv(@h(c1!=#aK1awU+3LS7YSiFR-zA!cKy|fbgNUK+OuOnN4;_W^! z7XKLArai?eWAY`@V3iO4TUPm9Q5_(wBAn=^BRLozgV*Tl4&DynX%HfP^Anm~%jH8a zG_c2)6-yEHhlVn?WWi4u(Ay1|PB&8SNl&xvlhNVHvY0fArVf*c3qJCe2?I?ocK)HW z*TW|7)DWj3N2Z`hraD>!3KZ_UrhuhzHen9*E~P_3a9{7L4$gEIaa}{c3SS4w5kOyd z>bli*9->}~S1(syHV{$FbM~yiu~8K^Wii z5Y8#_T)|gtA102Xxp2_8RGQJ%W@uCt6r6A!IUKTO(t(>Tg95UT#>-kV_y z2`IM?Zyx}gPLz8X``b)Md_hx+fuFM-zCtYBX#69fuw#~TV1H}CN5!}L=xHLjtE4}Z zFzvA1=zv{nLk*_qOMVo@D{V>kro~T2U0bxnP%^hn7nXcz0Q=|*u69BBT+85D;@yE( zRUdf=c_aUL$TAR4Ze+Ly8I-vPm;-Fm79~C$6CQ619Pz(bTYP-z$27@pkzQ`y1d{ty z&EEQ9OMh?`kr`2X(+n%&Kh8Z;RO%&{j;KEs}mL1im-m{(6L#^RZ}hu^)T$tAzwq&e4wMHdxex8^wkXZ zp^qUeu3Ygy0GRW@lf>)gpYV?$M6V+}1sn(N1ZE%+jmz$uokIgbc1cnvKGd!+>6epA zR(b*PW5Gq>C5taV@r@FpRu$>_$a`qF%TbQwGz z${Io1K&W^qX~o6g&rN2f@SZfAQaKJ!*xAY8X8|a#3+CAdR{UP#b*2o&HTy0p$z`*- zB|EdkZ%PoKxr{Fp;%Iu6&Mq;wCd7V1l|H0i{uYb)UIBZp8r@7@nL-S94>&X;?Kdm- zqM4kxkP>-s2V67AMED((*}yv$gy^88jW3Op?SUHBkhWp*67RDyeDrQKMu|`}Ti)oo z!ho&*@b}sVXXrVmDW#Hjm4?jM;+4Y1s(xdNUYn3`B zVIMmC+-K`%ijzS{5IT9Af@SVJnKI6(MCSW~_e>$I@FC)Q)7gmNA86^hqK7py@-Q%- zoN(|Xk7@-Qn>=_YVQZ3lu-*^Okey}}6QO3}_?-ozwgx&2nZ33K!#)*-AOWuj(7>yP zu0h#5P?7y8qqE!4E3aI3+2HFc+Pqu~xzpL=5ZhL9c&>@j_$jX(NxNVg>pP5xKzLKo zNh=5`%jv+LjZN{U5-HD$$*hs}G>V>ZRMN(k#y0uD?}pcCcJtWo<;mNyoxhPl_)TCs zx6xHN1;mGNLLF$;28KQ+(x|hTav{6RC}s$CrU=#%xo(xrdBo>Z2i!D2s;kQGBb^7g zGxabbyuLmI_!{(^8QrQv437yoHX?10`c&n(iOS@&8JK7?PJ}m;cCG|=cIZq?*xAV` zwyrCV@}WR8x1m>vly8GvHZ~94ON^l>{Aog8E6BOPH3)Pz(kl0Tpesn5=8@Rd_LYny z-x;K>3fdJMo3!<%(bcMDw-3pf=JRjn-2=M)!C%1(USoG<>?goS<=Z@? zpE<;%Mz|UxjsB9^X%iJGz!AW;6;h+0pVck8$=MuM1s&}3h1OX>1K*H3TOXgki;w>E z#yAmvP)h6O-@(8un+0Duv=NEu16klI8D>H{N8E*^z<|%+?nPCnyFAM#y;B}8bv9+hxfh}G} z3D*M$0WHTi>DqK#Z$=IQ`kUJh67dnF7bbYsCSSqea1h*jB#Varrr=0$5zvaINoSL! zUVBbc-mQR-G`*5`r{ePWjTu7o*=Xb zHTf+j;@Uds>{NB$*l31#kq&FDuQkSjD_XIctcn{j;%702D)cr!>qdQxq+IZLU z>Fbbo=F-vDqpBInE+n=(@ckLM4#TkHJ>&kiO;h6d`6|dVz?G+=$A}!zl>B6a?KtBo z5te^42wyAE`QRSlS|M~5`ZUnZi?(W6emBz8BCj=ew8ISGqd_fJ5pp;VxMoLJ<}bq3 zp~-uLV+w|juKT_OegkF$A8FY?3N(3;nLJI1ul0dmvdsZ5(vtcN_yzc~v1>|*eP^Im z(?#dFe4?nf(N?ZI*jS-UZ*AvMFRg~!+NAauS6#8&7x?I(E}N`8XJ;d)vv6=3h+orZ zaJCAa8Q@v)8dwQd0KGlc^_Q>>2;KHPkNi*ICVpup`&J?9rZa)|{3^@GU@mx_JR1m` zP5A#BPJF+L+L?U*-Rw-(LI6GZ8-ifueqS=%PXRn(PuZ zi$|urf`5V5q-8k28SK@p!nPx0>T;#0!QO`NoOs$%@mr-R)O&x>;AoczvSx_wjvgO! zdrMY7P0}L+EoI*a(?LtodpNogd=qqQQo-7>5q0vNM{aA!#ctK2(I$_ABx(D-Th@%x zose`;N-rSHbcLKXub>{8X@$59=pgAj+`(={y0Ou!at+W~LT3c$EB9dLYl)D$?E-vs z@>)`j7A+=?p)-?p5(Mm?*%eM79TAfI7Fn zO;NZ6yaBZD{($haM27?_`%pl(#zj0&otg9<)5ad?McE_ZW}a(-Fe~}qQ@okQL8+g) zUgYYWaVTZc*|OP`c_1Wnq5!H$rphF3KgDU^KzNn*n%!3Qrt@?pFIT5_@l40ha+9M~ zO&1LpRZ*7(=<4#LL&7Hhcrd}MNKy}d@vH-Ka_b|1$I_-PHo1Hz4{sH%-9iZ-nm$p` z4U~(n<)NMA5~T6)tI5iAU=y0on+%P7y)?hgkT0Mvx_Qe?)Ipy`4^0>pNpFjqa)MGi=pYmoR;8ebVa!y+G8ZN|JQe%(8OXE^G0&Yylq7q~uex()w$6K|LCj4m+s|y0xjo38&?G$o`z4FfdVkzXS88Yp=-z(u=!X(~;r~k9yb;2eQ_1qG} zGl708t9Xb$L^uXqU+wb||VTG>u+xdByi=8vnE^ z>Y@kh8U%8o{c##CMd4%6HBB+2yaB!UL9#O|t{uTMk!eHavA|6Sq6N_RqSJXg1Mq+Q!WA zIMShSEAncy1D~fHHFky;Fe^fz47#nMvI3_Sos_iQc|)C9`{*@Ip%wJP+8|idk0*Qn zW<}5;Z8`{ED|*~6gKu|cyCaJq>dd+_Tq}vyKyCFJSU*t#-PZh`L2zDzUrV;*7Km2_ z9@<|n|{66kBeMZoUd-Z-`z2%kmLo6cu|?!E=x^2`DE( - + - - - + - - - - - - - - @@ -40,7 +30,6 @@ - diff --git a/mobile/res/xml/config.xml b/cordova/android/config.xml similarity index 82% rename from mobile/res/xml/config.xml rename to cordova/android/config.xml index 1bef18ae5..c69016dfc 100644 --- a/mobile/res/xml/config.xml +++ b/cordova/android/config.xml @@ -2,39 +2,40 @@ Copay - A secure bitcoin wallet for friends and companies + A secure bitcoin wallet for friends and companies. - + Bitpay Inc. - + + - - + + - - - - - - + + + - - + + + + + diff --git a/cordova/build.sh b/cordova/build.sh new file mode 100644 index 000000000..8efe4a0c9 --- /dev/null +++ b/cordova/build.sh @@ -0,0 +1,123 @@ +#! /bin/bash + +# Usage: +# sh ./build.sh --android --reload + +OpenColor="\033[" +Red="1;31m" +Yellow="1;33m" +Green="1;32m" +CloseColor="\033[0m" + +# Check function OK +checkOK() { + if [ $? != 0 ]; then + echo "${OpenColor}${Red}* ERROR. Exiting...${CloseColor}" + exit 1 + fi +} + +# Configs +BUILDDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +PROJECT="$BUILDDIR/project" +VERSION=`cut -d '"' -f2 $BUILDDIR/../version.js` + +SKIPIOS=false +CLEAR=false + +# Check Args +if [[ $1 = "--android" || $2 = "--android" ]] +then + SKIPIOS=true +fi + +if [[ $1 = "--clear" || $2 = "--clear" ]] +then + CLEAR=true +fi + + +echo "${OpenColor}${Green}* Checking dependencies...${CloseColor}" +command -v cordova >/dev/null 2>&1 || { echo >&2 "Cordova is not present, please install it: sudo npm -g cordova."; exit 1; } +command -v xcodebuild >/dev/null 2>&1 || { echo >&2 "XCode is not present, install it or use [--android]."; exit 1; } + + +# Create project dir +if [[ CLEAR ]] +then + if [ -d $PROJECT ]; then + rm -rf $PROJECT + fi +fi + +if [ ! -d $PROJECT ]; then + cd $BUILDDIR + echo "${OpenColor}${Green}* Creating project... ${CloseColor}" + cordova create project com.bitpay.copay Copay + checkOK + + cd $PROJECT + echo "${OpenColor}${Green}* Adding Android platform... ${CloseColor}" + cordova platforms add android + checkOK + + if [[ !SKIPIOS ]]; then + echo "${OpenColor}${Green}* Adding IOS platform... ${CloseColor}" + cordova platforms add ios + checkOK + fi + + echo "${OpenColor}${Green}* Installing plugins... ${CloseColor}" + cordova plugin add https://github.com/Initsogar/cordova-webintent.git + checkOK + + cordova plugin add https://github.com/wildabeast/BarcodeScanner.git + checkOK + + cordova plugin add https://github.com/VersoSolutions/CordovaClipboard + checkOK + + cordova plugin add de.appplant.cordova.plugin.email-composer && cordova prepare + checkOK + + cordova plugin add https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git && cordova prepare + checkOK + + cordova plugin add org.apache.cordova.splashscreen + checkOK + + cordova plugin add org.apache.cordova.statusbar + checkOK +fi + +echo "${OpenColor}${Green}* Generating copay bundle...${CloseColor}" +cd $BUILDDIR/.. +grunt +checkOK + +echo "${OpenColor}${Green}* Coping files...${CloseColor}" +cd $BUILDDIR/.. +cp -af {css,font,img,js,lib,sound,views,config.js,version.js} $PROJECT/www +checkOK + +sed "s/<\!-- PLACEHOLDER: CORDOVA SRIPT -->/