From 30d39f005586453891281d10ae98a2705866c8e2 Mon Sep 17 00:00:00 2001 From: Joe Moore Date: Tue, 27 Sep 2011 22:12:42 -0400 Subject: [PATCH] Working app. --- .../Android_2_3_3_Google_API_libs.xml | 3 + AndroidManifest.xml | 2 +- res/drawable-hdpi/ic_launcher.png | Bin 0 -> 3802 bytes res/drawable-ldpi/ic_launcher.png | Bin 0 -> 1485 bytes res/drawable-mdpi/ic_launcher.png | Bin 0 -> 2231 bytes res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 5822 bytes res/layout/home.xml | 144 ++++++++++++++--- res/values/strings.xml | 4 + src/com/pivot13/C2DMReceiver.java | 23 +-- src/com/pivot13/C2DeMoApplication.java | 7 + src/com/pivot13/HomeActivity.java | 107 ++++++++++++- src/com/pivotallabs/api/ApiGateway.java | 47 ++++++ src/com/pivotallabs/api/ApiRequest.java | 28 ++++ src/com/pivotallabs/api/ApiResponse.java | 45 ++++++ .../pivotallabs/api/ApiResponseCallbacks.java | 7 + .../CertificateIgnoringSSLSocketFactory.java | 74 +++++++++ src/com/pivotallabs/api/Http.java | 151 ++++++++++++++++++ .../pivotallabs/api/TrustingTrustManager.java | 23 +++ src/com/pivotallabs/api/Xmls.java | 38 +++++ submodules/robolectric | 2 +- test/java/com/pivot13/C2DMReceiverTest.java | 9 +- test/java/com/pivot13/HomeActivityTest.java | 58 +++++-- 22 files changed, 722 insertions(+), 50 deletions(-) create mode 100755 res/drawable-hdpi/ic_launcher.png create mode 100755 res/drawable-ldpi/ic_launcher.png create mode 100755 res/drawable-mdpi/ic_launcher.png create mode 100755 res/drawable-xhdpi/ic_launcher.png create mode 100644 src/com/pivotallabs/api/ApiGateway.java create mode 100644 src/com/pivotallabs/api/ApiRequest.java create mode 100644 src/com/pivotallabs/api/ApiResponse.java create mode 100644 src/com/pivotallabs/api/ApiResponseCallbacks.java create mode 100644 src/com/pivotallabs/api/CertificateIgnoringSSLSocketFactory.java create mode 100644 src/com/pivotallabs/api/Http.java create mode 100644 src/com/pivotallabs/api/TrustingTrustManager.java create mode 100644 src/com/pivotallabs/api/Xmls.java diff --git a/.idea/libraries/Android_2_3_3_Google_API_libs.xml b/.idea/libraries/Android_2_3_3_Google_API_libs.xml index 6f0978f..a7d3e50 100644 --- a/.idea/libraries/Android_2_3_3_Google_API_libs.xml +++ b/.idea/libraries/Android_2_3_3_Google_API_libs.xml @@ -7,6 +7,9 @@ + + + \ No newline at end of file diff --git a/AndroidManifest.xml b/AndroidManifest.xml index b53236b..6c25766 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -20,7 +20,7 @@ diff --git a/res/drawable-hdpi/ic_launcher.png b/res/drawable-hdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..78a9e013e97c9556fa89f7d81279639edf79108c GIT binary patch literal 3802 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 Qy8r+H07*qoM6N<$f`8mo{{R30 literal 0 HcmV?d00001 diff --git a/res/drawable-ldpi/ic_launcher.png b/res/drawable-ldpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..e1726c86bf31e4920d5c1fee71e68e28c5969666 GIT binary patch literal 1485 zcmV;;1v2`HP)8-Ut;R$*x-k-VMoD~Y zV&Z}XgoKrfMymm&QEUq;6nT_BZ0{Za|9RZ+yWhQ6TdWBSr_7z1GiT2E&CHpZ4`Z#x zm6UQ<5{y{>2l}TSDWnyQF}VXf3-_*D)AM?B=k^6ou$07#{)|Dx9ZH1ruvx#vj zv9)FWuva5(XiHYY^x2<=kN-0E#K6mQ`x(a+`cwr(QAbZ_e%JD*nclX(EkL0)sCkIW z4m*e_s{=&m5yY1=6X94bO<`*4Xy5d*!fs%06D1d8t$AM*=$M~edp<&?2 z?}REDr0pQkERc@*pRdnf|OEbXE zkATmQrKPp?jXf4`J!0|p4vWpbI!SJ0YZWQcO7HxT0W)2<+X)*29rzL0cO-EjM`>rV zy}Zq0NwY<3(Q-SyPV9?r)9pjU7JGka3|$Kp?v0_bWKcbj=tSG&jy6wGiS;N?muWE7 zzdxy8*-v~(qSP>k6bosiWd?(SSfx^q!KAv?X$mJwa}i)1r+%-a;FhlMo1U!&aYp%5 z2Plw-!O@6H85Kx%U8cMPch#^O`{UR&jATxqr4DH})dFb%b2L`3lmmCE3ntET(T z)%~f`m@Guvj_gM$H!$^63sl+LYA88~NicEChQ@$h2ifLq51-(xP?EFiRnpijpaYtB z3}seG#v*{62}m=RY~(EP#sLrXD<1&KmC^vQ9?Qz=1YI{E{4`!6D$9UUgo&kqB2;&$ z!9%xGhb#2Xm%!*b50%~`)gz2bZ#QgP0EtBnke{JN2k#b5AR5cUM5r71G(NRWTL^qN z$~SpD*|J7Zvh9q|Ys)+ZwyiItt(e0kUsX9*iV*3ttq8O?`Tix%{@6=53lk^SoVVD1 zv!MMoAl-DTSs|KYzr`(lZyxP05;2FULY75Q)VGT_O3fcrK8W9N0}Q0Npqm@~w-UJs>j zMs(u%xf5<;0qMi{h5Ie;SPQJV%3@`Ql$qzfLe6yXz@n?&qN~GTBR|rtr}YN?$CcCe zkigx2oWxR#mp%i|T#`?VJa>HSjTRfabu$N$;G<&BTXDZNE0pvFC<$0?<`%k21gTh4 zKzrTprNEAUIOos4$5Y1#S{Fw#7oG{XmCWB9xAz@EZuf>1y7lu zsb$>NXYuA>8Qa%eez5U0xi5k+F51g@ip{@Sp{SxVGaEP4WM$Hts`IvRUxm9Lws`+A zu!<{JV?&}kX`VoFWCkpX>y)}EuUl^M_*U?L7j+aGh!zNxwlY6BU6u<;*%&IHp1_&O zKNn)+@^s}xzBpRJRY}RS9|f zcCxsQc{6i2a~7DQMM?ZX#wq46n7<_huU((AK-$6%<`vBC%-JoaXi<{3Nh>qXe33wv nZL0!W6j%S!$bYp0myPuo#IBEML^l6`00000NkvXXu0mjf8qdar literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/ic_launcher.png b/res/drawable-mdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..ce1069345731b8fbe44f340eeae27cd961d3b5e4 GIT binary patch literal 2231 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 - - - -