From c60769b7a3c6d1478c259a4a62f290fc4d26339f Mon Sep 17 00:00:00 2001 From: Sean Hickey Date: Sun, 15 Jul 2012 00:48:06 -0400 Subject: [PATCH] committing everything FIRST POST --- AndroidManifest.xml | 23 ++ README | 1 + bin/SimpleDrawingApp.apk | Bin 0 -> 43895 bytes bin/classes.dex | Bin 0 -> 18632 bytes .../com/SimpleDrawingApp/BuildConfig.class | Bin 0 -> 349 bytes .../FirstAppSurfaceView.class | Bin 0 -> 1934 bytes bin/classes/com/SimpleDrawingApp/R$attr.class | Bin 0 -> 346 bytes .../com/SimpleDrawingApp/R$drawable.class | Bin 0 -> 413 bytes .../com/SimpleDrawingApp/R$layout.class | Bin 0 -> 400 bytes .../com/SimpleDrawingApp/R$string.class | Bin 0 -> 433 bytes bin/classes/com/SimpleDrawingApp/R.class | Bin 0 -> 501 bytes .../SimpleDrawingAppActivity.class | Bin 0 -> 1069 bytes .../SimpleDrawingAppRenderer.class | Bin 0 -> 2867 bytes bin/classes/com/SimpleDrawingApp/Square.class | Bin 0 -> 1946 bytes .../com/SimpleDrawingApp/list/DList.class | Bin 0 -> 6407 bytes .../com/SimpleDrawingApp/list/DListNode.class | Bin 0 -> 2284 bytes .../list/InvalidNodeException.class | Bin 0 -> 543 bytes .../com/SimpleDrawingApp/list/List.class | Bin 0 -> 683 bytes .../com/SimpleDrawingApp/list/ListNode.class | Bin 0 -> 1062 bytes .../com/SimpleDrawingApp/list/SList.class | Bin 0 -> 6100 bytes .../com/SimpleDrawingApp/list/SListNode.class | Bin 0 -> 2396 bytes bin/jarlist.cache | 3 + bin/res/drawable-hdpi/ic_launcher.png | Bin 0 -> 9193 bytes bin/res/drawable-ldpi/ic_launcher.png | Bin 0 -> 2658 bytes bin/res/drawable-mdpi/ic_launcher.png | Bin 0 -> 5057 bytes bin/res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 14068 bytes bin/resources.ap_ | Bin 0 -> 34320 bytes gen/com/SimpleDrawingApp/BuildConfig.java | 6 + gen/com/SimpleDrawingApp/R.java | 23 ++ proguard-project.txt | 20 ++ project.properties | 14 + res/drawable-hdpi/ic_launcher.png | Bin 0 -> 9397 bytes res/drawable-ldpi/ic_launcher.png | Bin 0 -> 2729 bytes res/drawable-mdpi/ic_launcher.png | Bin 0 -> 5237 bytes res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 14383 bytes res/layout/main.xml | 12 + res/values/strings.xml | 7 + .../SimpleDrawingAppActivity.java | 94 ++++++ .../SimpleDrawingAppRenderer.java | 56 ++++ src/com/SimpleDrawingApp/Square.java | 54 ++++ src/com/SimpleDrawingApp/list/DList.class | Bin 0 -> 5766 bytes src/com/SimpleDrawingApp/list/DList.java | 280 ++++++++++++++++++ src/com/SimpleDrawingApp/list/DListNode.class | Bin 0 -> 1952 bytes src/com/SimpleDrawingApp/list/DListNode.java | 160 ++++++++++ .../list/InvalidNodeException.class | Bin 0 -> 437 bytes .../list/InvalidNodeException.java | 19 ++ src/com/SimpleDrawingApp/list/List.class | Bin 0 -> 624 bytes src/com/SimpleDrawingApp/list/List.java | 80 +++++ src/com/SimpleDrawingApp/list/ListNode.class | Bin 0 -> 961 bytes src/com/SimpleDrawingApp/list/ListNode.java | 109 +++++++ src/com/SimpleDrawingApp/list/SList.class | Bin 0 -> 5793 bytes src/com/SimpleDrawingApp/list/SList.java | 261 ++++++++++++++++ src/com/SimpleDrawingApp/list/SListNode.class | Bin 0 -> 2127 bytes src/com/SimpleDrawingApp/list/SListNode.java | 159 ++++++++++ 54 files changed, 1381 insertions(+) create mode 100644 AndroidManifest.xml create mode 100644 README create mode 100644 bin/SimpleDrawingApp.apk create mode 100644 bin/classes.dex create mode 100644 bin/classes/com/SimpleDrawingApp/BuildConfig.class create mode 100644 bin/classes/com/SimpleDrawingApp/FirstAppSurfaceView.class create mode 100644 bin/classes/com/SimpleDrawingApp/R$attr.class create mode 100644 bin/classes/com/SimpleDrawingApp/R$drawable.class create mode 100644 bin/classes/com/SimpleDrawingApp/R$layout.class create mode 100644 bin/classes/com/SimpleDrawingApp/R$string.class create mode 100644 bin/classes/com/SimpleDrawingApp/R.class create mode 100644 bin/classes/com/SimpleDrawingApp/SimpleDrawingAppActivity.class create mode 100644 bin/classes/com/SimpleDrawingApp/SimpleDrawingAppRenderer.class create mode 100644 bin/classes/com/SimpleDrawingApp/Square.class create mode 100644 bin/classes/com/SimpleDrawingApp/list/DList.class create mode 100644 bin/classes/com/SimpleDrawingApp/list/DListNode.class create mode 100644 bin/classes/com/SimpleDrawingApp/list/InvalidNodeException.class create mode 100644 bin/classes/com/SimpleDrawingApp/list/List.class create mode 100644 bin/classes/com/SimpleDrawingApp/list/ListNode.class create mode 100644 bin/classes/com/SimpleDrawingApp/list/SList.class create mode 100644 bin/classes/com/SimpleDrawingApp/list/SListNode.class create mode 100644 bin/jarlist.cache create mode 100644 bin/res/drawable-hdpi/ic_launcher.png create mode 100644 bin/res/drawable-ldpi/ic_launcher.png create mode 100644 bin/res/drawable-mdpi/ic_launcher.png create mode 100644 bin/res/drawable-xhdpi/ic_launcher.png create mode 100644 bin/resources.ap_ create mode 100644 gen/com/SimpleDrawingApp/BuildConfig.java create mode 100644 gen/com/SimpleDrawingApp/R.java create mode 100644 proguard-project.txt create mode 100644 project.properties create mode 100644 res/drawable-hdpi/ic_launcher.png create mode 100644 res/drawable-ldpi/ic_launcher.png create mode 100644 res/drawable-mdpi/ic_launcher.png create mode 100644 res/drawable-xhdpi/ic_launcher.png create mode 100644 res/layout/main.xml create mode 100644 res/values/strings.xml create mode 100644 src/com/SimpleDrawingApp/SimpleDrawingAppActivity.java create mode 100644 src/com/SimpleDrawingApp/SimpleDrawingAppRenderer.java create mode 100644 src/com/SimpleDrawingApp/Square.java create mode 100644 src/com/SimpleDrawingApp/list/DList.class create mode 100644 src/com/SimpleDrawingApp/list/DList.java create mode 100644 src/com/SimpleDrawingApp/list/DListNode.class create mode 100644 src/com/SimpleDrawingApp/list/DListNode.java create mode 100644 src/com/SimpleDrawingApp/list/InvalidNodeException.class create mode 100644 src/com/SimpleDrawingApp/list/InvalidNodeException.java create mode 100644 src/com/SimpleDrawingApp/list/List.class create mode 100644 src/com/SimpleDrawingApp/list/List.java create mode 100644 src/com/SimpleDrawingApp/list/ListNode.class create mode 100644 src/com/SimpleDrawingApp/list/ListNode.java create mode 100644 src/com/SimpleDrawingApp/list/SList.class create mode 100644 src/com/SimpleDrawingApp/list/SList.java create mode 100644 src/com/SimpleDrawingApp/list/SListNode.class create mode 100644 src/com/SimpleDrawingApp/list/SListNode.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml new file mode 100644 index 0000000..12d460b --- /dev/null +++ b/AndroidManifest.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/README b/README new file mode 100644 index 0000000..1113c42 --- /dev/null +++ b/README @@ -0,0 +1 @@ +This is a very simple drawing app that just displays a square everywhere you drag your finger. That's it. \ No newline at end of file diff --git a/bin/SimpleDrawingApp.apk b/bin/SimpleDrawingApp.apk new file mode 100644 index 0000000000000000000000000000000000000000..1629f7e1e4772303b3997c71b2ad71edef3661d3 GIT binary patch literal 43895 zcmdqIWndh;vMxHN7-D8-W{R1anVFfHnK5Q&ika=0nK8!Ljv>aFndy$#-s_%y-g)=# z{p0<5>Zw+#Bvnb@l)5!N)e6#J;HUs7;9&}WE&%wKgaQBuIGH*#*cf`+ySgyg8d}=X zd)V5%jROFoU+d)t1Q12c>q&5+lwe?@d_Y9!l=r}he~2^Mb1GO!{y$#bT!tYPJX@hx!r8R^}PUl)K%92um!If?r*5q=%x2|5Xo-B9S z%RbMjVujfk|3=fq^rF?eo47K5+vB^Z$5KL*KB`cgEhi;&?P zgyCRk))2V!Xyl8+)V6$c;T&&IT)?+4a*EC?FJBVaoXt}+24@bk{78}O{}lf2ucuFk zamum#z-hJViumB}!|#y>;d76`uOJNxwTV;Df&>Bp1b_kn3jY^W0RTZe6DNC16Inw$ zOEXhvmk(59l?CNd1TlRZ*HY26w531<;qf^#>a4Z{JxDBqB#Fd=AQ6Tkkl30^EHM_6 za5+3~AU&=q9&uhkaybL+yK@}Nl%b~gPba%QH?!=!GvJVZyJIP62%&;rQ?8nucS`V( z>7krQz&pzMQ1~HZ43hm&=w-f)@{qoXupdO&#<&a@08}B{8o`wP903RybBG}v`}h;G z@HK{l>t>YK%a7S8dxo%+Q0EW+$i+&_Fb~qDcIi&q?uFYU+!3;Fk&{DX%?@eZ{s@vgFstw@-lNZ&)$)Gv?IBo)wQc+BNV?)y$+PQf zbcsAS_f!eLKevUxYdG4{R*+v~-9B~o`xeJc?egOVP@%^li3GN zv(NbFW#F=C)xK<@Gw>6OW%+U6Xpel-8(rs9MoL}TL`c>mt`Gr~pej-b{V@c)zp{>@ zX@MRK-`w5g?zB^O@}tX@-XNYoZliqH4N+F�vky!avq+^}XU!KSf*lVe`w|_$30a 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 VwP0XSUp}`lnQHlREF1>r{{b|uczFN- literal 0 HcmV?d00001 diff --git a/bin/classes.dex b/bin/classes.dex new file mode 100644 index 0000000000000000000000000000000000000000..1220645618b727e1842985ffe9bece45676ce3fc GIT binary patch literal 18632 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 literal 0 HcmV?d00001 diff --git a/bin/classes/com/SimpleDrawingApp/BuildConfig.class b/bin/classes/com/SimpleDrawingApp/BuildConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..6e99a03e1ddc3b97571d5d6edb2961fff7110dda GIT binary patch literal 349 zcmaivy-veG5QJy_6N7Px`Dy476;NP78-zp>ps}C`xS%^bhq=f;TaFFSMTJDc1MpCY zJ&S^lW_D+_JNowP`{NV98FoEbg#D~4qq!>ULe3iTs&sx?*U_X?#bR3NCzX3}2;ow^ zh^P=ckM7c?%vypwyP7=Q5a^LGwD8XpCx#!V zU>F03J-8Tf_1IZhjqDv-UIIOJA$`XQ%!mXVm8|1Q;edW0>80&pppM_q;r3`Teh-e*y3o>?lG4 z$&#~X6s)!NvK(^F`H^e-t1vvP9QR1*_MBmp(pdT;7g9}OWQXXm@hZ|boY#amUR|o z3=N3uIEL0H2%OXrMnvsS>u5qGiZcQi|5s=+Byd(aJSWhQ?4D81I&{R)9OLd~9k1Ym zK(igN@-8 zy#SuKJXY^Q{r;4xG=>x;9m5>%L@`fx)xG=xs^epPLjRWSN!Pz_mhK9iO6FJ14bv!_ z_OdZiT$Lp?9g1cPIzCe@ZgJ(kiuCsQ$_Xc<&hEGWXtT%?vB_tP59!rWKm0wBz>6`YD&k~vH9w&UphtF~@f{?;WGGKn^7+tSUJP0y2F6lH;~8i)RKjszNO zBgJtfOZasRBd%tjQj}5%jg=X@lNETvMr@9UM=^ z8@F*Hc%Mo=M`CUVZQE#1rJka_iu0+4DqejO_;{V~^TFM{jKknfS8$w!Zbv_-J&kS* z;0KTvVLu zIoZj0(o20>LW_T}+NY`LI^&J26!hXYt}2~0HdV!^sm^VrQ(fB_(jGIW2B?aR;{@N= zm`{e)&vGD#SmhkEAHikLV=r#v25zCifx1I<5fkt*iO(^Ghdh0R+jxw5JfXHq_Nxkx z?AB(#g3n;mj)RDwP+~__pMS(6cMZJn2lY*W##xQnw_Vu-WS8@+5fh1NfoD z+2B!R;k|t`%70!b5QarB zz&-1haG3pra6w3B^~x6NR{KTK^vv@R(mP|6os_a|RU2bO*!z18^Z8pa2J`aaU?S9aq#NJH4)%WluW(8U literal 0 HcmV?d00001 diff --git a/bin/classes/com/SimpleDrawingApp/R$drawable.class b/bin/classes/com/SimpleDrawingApp/R$drawable.class new file mode 100644 index 0000000000000000000000000000000000000000..c2606dc0f01cd0d2c5e35f371a3fd5cf73283883 GIT binary patch literal 413 zcmah_O-sW-5Pj1mO-)lR&teXy0lxin~)DZ`kOon9{d6R zC~-IFP4Mz&-t5ksH}m=R{sG_|`z{)UgCt!CQ?bq@zscFNP>bs<3noW%P1sCw7dD}{ zVoxlPOf7=@*@`D6p)Ha}$tsmBc}}1)p%bR6D48l_CM#~eGyp>LQYcYg5v=2rm|%zL zoO`g)@v#Aq(2a!Rch!2v^9M7I(2vrD$(ZHB@SmbxE=55&jQ(+ZLGY$&l_&gG7_sK$ z)L19@W2JZ=N>&uSa4{eZ{+1%NepkntUcl0~A`Ic6siUh|11+7A@vpJ1D?!ZxXY>aD iwf?fH(KG-ZbT#^Q?x2UQ`n_M{Hgmu zlsFqbikCO@X68NKe15%u064|2hX!FU$s%RCUJ#taqbZ+9*}e4PpdDZp zKA{sUBX6p7Ci6Qn(~{7Ovqb2r$d%>4L$`cT1z|t_H{=a;L)gX+2H)E?RSN(B literal 0 HcmV?d00001 diff --git a/bin/classes/com/SimpleDrawingApp/R$string.class b/bin/classes/com/SimpleDrawingApp/R$string.class new file mode 100644 index 0000000000000000000000000000000000000000..b58ae3d0902269a66301c4856cf7f153ea945e55 GIT binary patch literal 433 zcmaKo%}T>S6ot=i(x%4N)~eMC;>Lx#Fz8khq#_i8LMz?MG!E^Q$s{DHE`26ff(swO zhZ66kE?kJ4GxN>dd+yKY*ZT*6Gwgb(5cZ-Z4n`_YwY<*6voh1GG!2Fad6DtmgG*@7 z#ghoMFw@{}GM7<7sEagxFd~)&8W5WO#N>rA#aQTtbY5H#p*oXVCl)}cT_~f9OM-KF zG$y$H9Q2Z`bDpf0Qh; zNZu%GRU4kz5eSWeF*56Gk>@h^utVtnZNxdt1>lsMcX(eF^iV~O$t$VOyz+~E{vkUH rYm*~_l7Z^+8`fUSls2n105-7BYC|~y9cEi#v(zng`CQs` literal 0 HcmV?d00001 diff --git a/bin/classes/com/SimpleDrawingApp/R.class b/bin/classes/com/SimpleDrawingApp/R.class new file mode 100644 index 0000000000000000000000000000000000000000..9b9c51b0c2baa5c5205a7bc9e961e9b711a2dd5e GIT binary patch literal 501 zcmZ`#(MkeA6g^j0$IQ~KOfw0jhw7oFUW*`%AXo}Cd>_}rM%G=KU5h@er=W*EppS~~ z?ADtyaL&1N4|ndI@1M^v02k;8VhVPxfX4=iuBpdoYvDi&1dprZrGF{XprR tFLEd|+BR6NGgeYvVBSdkn<-XNWA4Ji7WcQ&!VYtTd5^ipXP@~1tzVU>bRqx% literal 0 HcmV?d00001 diff --git a/bin/classes/com/SimpleDrawingApp/SimpleDrawingAppActivity.class b/bin/classes/com/SimpleDrawingApp/SimpleDrawingAppActivity.class new file mode 100644 index 0000000000000000000000000000000000000000..c90779dad7c4c50b290fd0a3e1aeb69d5815bca8 GIT binary patch literal 1069 zcmb7?Z%-3J5XPS^EeG`gDNqCo3izij(o^1INGcX$QjFn9qrNfAb*XEvd(GWm(T`=K zl4#-w@Ix8rwykZjG4ajr&D_jyW}cm&zrOtdu!lVhDTZAyXgjWKcYN_I$omv@ z7^p~dr5oIj#T2F)mM&x%X{uUjbEztS@~!r9y&=UV!$y5jG3W@@@}1+l8;2L%6Ul#~ zPCk)J>H~&}VyVH9J`9>7iwWGcVPl42t}c~$5x37pc*f6tku(>0+;8wuCU)PM*6(D* z;MD(16RJNIsKZcjP2hZS*lgrHjaAbZ`=v(G%`F>C$Xi%tD2}ag)E8o8xGYvsNTyh4 zC=AhFptMlhAvLx5psBz#7;f9h;zpLfHf?NSn_)H*+Qg9HM#_=)y5w+-fQe?gh<8Qv zxp^E#Sd2$ibFXl9j?HO*lb2oFZ{Dm?Xk$C literal 0 HcmV?d00001 diff --git a/bin/classes/com/SimpleDrawingApp/SimpleDrawingAppRenderer.class b/bin/classes/com/SimpleDrawingApp/SimpleDrawingAppRenderer.class new file mode 100644 index 0000000000000000000000000000000000000000..54e18f5d66ade2dc7516fdf245b000336896da24 GIT binary patch literal 2867 zcmb7GTUQfT6#h;U7)VBiAmRlSuLUAR)Ou-b0VCMh1g+6n?R7|oWMncEClfBc+MB)K z`_!kt`P2uyS}b*~*603;KKD0t)qZCZBp}|x;+)Buz4zJs+uz{>J+5G-G*XpWvV%C5lnK6E@@c$c%?X@JLj|sQx^y)?W|^IG{=zNYli{1V3Y--tH-hu+eIW8S&MDe zFp4|6=IS|t3q47R?rgMZWF1@2d2vUl3XW~rY2;(Q znGm*NyMk_ko=3H>Vh45#sChGP>Y5X`P1_MrddB#X5c~3`K;MI$s4`*EUFIn3x$_XM z<*o~aY)dk8%+ZR>K>uR^R1G_#VlVpXc`Xovo+OOgO z)(Nc5n@L;CC33pu8tz=+_K!dihj2u}VY1;K%AZ$p6i<TL~8s&^;8ae5! zSFe|vaTezkq?h%U^jw)PsW=ak&96HoUwhRz!;YSD49iWsESn0-mzjw*;Z@SXu)6EmD9vip?8FLdRn-Sr zlbSgdIwl30T)Qg268)N$APTswzz}HjVq6}*iYc%Tm68O+WQ%OC(ybcSq9Yjvd^NCY z3O(*5tm(y+jLv5DQnlTNvK7Z6^{biM^(fq9k7h6IT3xit7Ir?t#P3^O=DzMwZB5$M zvQsIoRO`HT4Ya^<6y8QvG8UpUAG$ zmN!Q&IY;8AL68}nOIR9ajGS8_LVH|^2@0d zm(&k;{<)5>)X#YS7A`RCi#)s(eq|o7%_BRH{0-i_2d9uik$y@j4q*+~b^^SC5p?iu zBPF(AfB*~!A!Eoyx-t1E#6zXs(ZlZ_Nn5p7}pGW|C$56!Y@9bK@YybzQTL z1c;NU$EhPQ-4O`CsfOPQzrBEW6fpVkN5a<@@R6@BT{}EJ_0g@pOj!VNe1)&M%PMZbH~6lx`F|0t!0Z43 literal 0 HcmV?d00001 diff --git a/bin/classes/com/SimpleDrawingApp/Square.class b/bin/classes/com/SimpleDrawingApp/Square.class new file mode 100644 index 0000000000000000000000000000000000000000..06edd7481fed780d182232de4115a72abaa33979 GIT binary patch literal 1946 zcma)6X;T|V5Pc(w6-aAK+?d10#)l3-T#ggK4wq$db;bSISWr4J(l}Ev>Rp z-QCsg8G)8ln+XBcT`yXey;BzOY$pY-xUz{;p*Ru{l#65fpUs;_(WpEU@J6B;0pFsv zqx=4R`}UphAwMk;=upv&7P;zD5kQMTC}kA&)#^b`w>Pz%sSC8Fth{DsG~1B-x=@*Q zTnFGqpNeY;Ngo3$f>7n^hKegt1GtGHKW+)MpXIl3T+!Y1RNTfLfvcKnGC)ONGHi#J zp2%|aoR4$+nE>t~>PLi-F1TB>cXV4t3~_;AQL7k-x+7vzkxQN&IUU`^h>B4p1e(aE zZVSXC7h}4XmyXx#BF~SjEdC@bpp_d+CeYIuvOzN=X}PbW2}%GD@QEKElm4?j8Z1>z zgQfSDs%(OQzbzPrT@fEgt2?}OLw=4S5x@8nAvOT&Z z%gf6RT)4ElUcXWCExvQ&N(Sa_TRSGfiag?4Xex3Na*&X%l8cx(xL^vz9H$?WHfs_{ zTU9%+Ck=TogK1}ej7r)t$P#!tkQ8`ii*e54!n{aR7k>q=T@AI6lU?o+7YmzE25m3$4((-eY1t&M6QyM^7F4d-{LOJ0nFkCl9a4+d}MG78q?h8 z5R}Oby3nzJMecf##u6Sgu_W&BeazHks!!^vX6vbjnCjEmkWBS9Q$2^%=9KXszY)TT z5>BikOsF0PSo>>^NdNX(8oa|F)%KcBQ+V3%;rwpuei9aidS zvm;LW%fpFIGv02dV)EUaEOMf;w7`_%xS=D9Vvf}#)$HU%uE`+cBbl;R@nKu1^35Nr zY7fGXy(K*rK?qFL5r8&^qscmoQ8I?)P0_KZJDRFv4|lY$j{Pv5g!Zg)W6t;zd~!## z)LEsY8Z|VZj-AHyiWY&=n4Pv#&Z1PpCZOF1aZ44s3c9=InVlyK6nD9s_X~Ylz(}KB zfERTrxsuL=-D%Rw)X;EXU0M#%(SR92%*H_h94JsZbhPEH>DUbi3+zT{J2^q}dx(yD z)Jc_dB&$mK;X3AGo}?n(ZpLE~Hy7!f6=Sdfivn0EP}Z-lZB3eP)^P;BLJwN06lrsf z#S#rirDC?z=A8#aN5>gP0LKaJQ9z=SnwN>iBUUPil{g`Q;|J2LcIY?}CRyU)GuF~Bf&B)H&;nn3 zhJ#pvPMKA#!vliaTd!)Dnbjr3Wp}wZsw0Mzm``RhY1tI28<8FF06b@0z-Jgzl`T~z zcF>SByA#r!1}S-pj&>ZQfld`Gi6v#FGjZliVL|Z}krL1CEM$(Ab_yIOFnzcLbIUzB zSb)=XoUS4{k#RJ9gOx5>Uyul)DkB|DWa1H{!!o+ec-lHxo$^e1%CiLa39TqhH5Xq0 zp%&xYGSDL$)(SLGGgGHur4vmhRvV^mShnKqEP#tYV zayg(HeyoIK9~gzDOB5f&3+2qnb6zH!#taRYD}%ECjKbiR%HZ%qg$A$I@l#2x?lldo zE0MA^Tq7`>zEtgIo|+p4j$a5gjYhZ-&viPkmw3EZH@C~NQW|a$n3dD0rbdD0CV~A& zAzKLMW*xVnLM3-kVijq*O<-oSK4r<<{;`Q=)zt^!Er)qdapdzFGKOWOji#iQYF#O|& zDI>-xxG05Y&L}L4BxvRgMG`q?BPi-IV{Fb7LdWe??we)p5%`miji}J@9LbLxv9w{j zq!aW0h84GZ*w53F^A~t|uy?4MBwWKw>^G9YUc9X16-l7Rdj#(<8OGFWyep}gHX?~k zM_f{4#^ZU#iW;f?4S~>b`wX+2r;)q=LaobWoJxH?u}CCt1FP~{-{O5y9m-Cu zmU8b17X|EgZPYIm3OUJ03YyZZHY{( z(^?dhUkpL@9ak?K4yMqrett_*mAtugRLT)=^PCyOw-Y#5%;(rX1ee#;)>Ra3hJHII zd?@2@3AX_UU|0S&xf@ZA@qD9*yr!u2v6#R)pPJ*RfHF8%ejd=2kRK7Au~nYFrs~bu ztGZfL3z5Y>n=q+*qx-iBM*px<4#g%+tM+d~Xg#&Nm?jZE&`jNPi19G&jl=obF_%~9 zdDtKG6;@s0YVxo$Ur^^^IGv}Egw$2nROf7Mgh3ojd`d5C(map8qxVlKU{uR9%9=E|eC3YvXALUfNME@jcms(k zqWw@!7EMdmp{%+#i&+PVSr>#}HBPq||3gUM(m;WA1q8P34j zobBc49L}A~$n52g^I_luOvi-^L$zxs@1PK!I9+L*N>?r;4ug(r!_n0HHEJA(qR*fO zFk5d4pf$jqya{`#H*k-Pqs8UNhCSkleQF<8EU(#uuWv>Ny=P_7U4C*FJy|5fGOU)= z%DvZbf3aX+dCJ`&d2`R>M)(zcyOQa86>(gRDqdgeIi7`U3VgiSJByzmehxCkR?3W! zdFE3m(Bb{_}zB*UI&E1?xA;^(=lV=Wi{Tzn$atbY}&NLlr}%5sT2m=Q7s34n9vN6{qvL z7MI})KCi_V^zr!s9>-IBx~@14lStBa)UuAF8>s0<{LYP*Hy=T>UGjUUvvQ|qr7 z8XKv36O%AY?ROxFJ87X0XYls17Wd#H+)GRM(W&>-+JlsOh^r5C^$}WqjBnEN6L=a= z;wApdqPt9m_Ev1*2(+xx&e3$?;{2#HKRP2nx-vhyD?fTVKa!!nFUGNRv}*10XKDUN zy{aFEd#lEX;f=tH_)oluxug$b`DSc7l8md!$-0r#?S@Tmc8fcEXFi^C3%_<3?#bf* zyhQo$TrW0-nLH0kS3c}cJgO#Ce3S)Mfc!D1=kWn%`}@Nzb|&Ci9``xA?0J4{yudtv z5yz6$mDtK!`7-ZtufWEuNZ~b{iPv#4-cWQ;U`}ZK0(+8m0o;9%B3{<1r|1w>ul&ce z&ahtj8n@sXkBV@O4B!$MpBfhzjNQP_<9?R7S?WBxispD_FPb~o^IV@ua>`$1U2sdG zx3^YWku&$AH;b*sQDsEtpz?zhES?x0RCKLh6qM6Tb0V(}z*0-@%St4mM_J4M*MPnt zpi8~_o(J^$PJkpmvJvDU|Cu`mvf?JcqTtQJ#2?MezCCK$ro8OCqmx~S-6%T0{I85- z`FvlMBY}m!i9RD=UT#GV*JD7@h`5(sjun_OFs&B(m{2iy@1NOCl z;AZ@j1!o(}#)m8vAK@ANhf)49Bl#2I!>6JGpNT{9xi}mji!io}4z~6#;p0uwFM36h zI8PLdYeb2-P6WhFLKF9kG2%fH6kA29cukBIZ;EkZyV%9&7iGQ*v8&Gz<-RFmyst{^ z?wcw0P&uORfxbqf`heI=ebZI82!zGcL@2xH5#o8`tbyM*g}qo7EVmm?L&+ClvGKE| eicb-#;oo*maWMqvsqH~ zL96fjf1aJyh z3`7)0i#Kj&Clf*cwelnXag~Y!<~UGoIAJ$vh0fsZ zs8fWy`nIpoJMFlRKcldjSy;F0cCKW*Yq@L7>$>PqJulRA0g}P)K-mH%%@LkJ6sCzd z`W2#?Y+(-+UNP}1_7dRux~!1gsZ>z=OuUBuOsV|2xT28mqF)eGa_V&xJ?NFykO>35 zWLt1ty?CpB@AO<%dASOGPOV^< zoE5Pr$nqnF{w3coesN^#;W+0<5*}4AnZoNgjeJH`q zEfa?^8pkn(1JV|mY?}F&^h&zork(Im+6{^`j!7v_PGNt0!z}q8+jlBkh~p%KNGo;> zBKf;D?fJ8-zV@C9)a*P7^tQs0Hekni2HsIP*g5OK{RGb7tci1=V}`3YLhFBP&*3FB zeU}P9p4B}#kM|64Mn^g)DGg!b0%kcSHRlVqm6}&DL;o)7)rzO%$n*2i{-&d)93oGb zD|McEpWcS+F6hKk<(5~}mmQgwfo#kW zHv^pD4`45OWHrJwkzkePt|%Mk>0ZX-mzL*4H8Xq)zR%i1@*niX?nUqMXOv(NEL$f6 zDl>#Nsg48~B{>;5N}e&kkjUdfj@KDLj;5^p$lgK!BaGijPCUTzzeqFqdvI6?1_E8@ z8DoaJFSHS*o+Of_dUi{6qDho`nrM+k*GP1|JJBh;wIicnNiQDe+cP@dBuf5`GZSJU zpO$2JAMak3CkvaB>JG~0jV(;aK5bxH>Kht767|hS-fy{Ks zyIteF{7KM`EO*bbL=iNLAuliPR{Gqtq;CZU3#6w4)q(zQ((9DIK{;Pi&R3MaN$Fox z`Zq5w{Sx|jxc(D!mp*#J^~C|;%`d4ZfRYi&6bj};%!iFsmHF5ah8B@Dg8T2 j|DMkNz`p&F({u-C@iTkz7p8Extx57byYT~th+zJIBcS!D literal 0 HcmV?d00001 diff --git a/bin/classes/com/SimpleDrawingApp/list/InvalidNodeException.class b/bin/classes/com/SimpleDrawingApp/list/InvalidNodeException.class new file mode 100644 index 0000000000000000000000000000000000000000..b55d33c9509fe8a626c367d5b986741323aa34f0 GIT binary patch literal 543 zcmb7=%}&Bl5QWb`0aN)cg2K)nU_y;9F(d{w(KKw(?k{kI*Oazt3;J5FNL=^;K9q4T z5KYvLP1@3<3#w0E4-!5u(iI3 zkiAg8O8SI!tL+ku0sELpqnL+@eL~4mz8ozV6B*r!i6;q`6HM7aunqUSp^-eOm~iU+ zFG!D2YdPOR#!1B4du>;*P}3_^d4CqRenSLv94w=$yjFUx#$P|GtEF)aj;G_Ii43w_ zbKIq{$G4$l@+8lbbFRcS(^;eNvO!AxG#LX5j22PmxBM1D1r~Q&pt=+2GpX5Z=VXn8 ap9&Q=w>Ap(Ewxi%9(5dU%#Zl%6dIqxHF3uP literal 0 HcmV?d00001 diff --git a/bin/classes/com/SimpleDrawingApp/list/List.class b/bin/classes/com/SimpleDrawingApp/list/List.class new file mode 100644 index 0000000000000000000000000000000000000000..34a8565e1a0b5f9b4059e9c057c4b364902db8c4 GIT binary patch literal 683 zcmaiy%Sz-x6o&s}lD?(2z3YtQZ6mD<18x<;D-1+u(SwWGRmZX|O(!8K6@3(+!HpmY zE_?tVN<5VWY+N{-bE*92t8-4}?fvByzy_A97$PhLao_8xeiF+4RNSbjx057Zs50&O zY^tycqZi^@c%g`T-kIZ$f2DMM`fItoG^&f7y#qWdj!6CaS0rTE2?p z@m0So)4!q{a@DvW2O>NXsWN$aXzO#85tjV#8`>mPRd&!%^lg6Qzd8sLO*p6!hC5mW zmq#KgnUzpRJ$;@Fxl>m~nN0Oz8b>_BRNMbL*QObuQK)vAL~zau@k)F3KaCyp*xa1m z&FgA9?&y@aNtoo)&x?vv7B)KZRT{`cWj0bbyIwacdzt64_<jJ>oimR; zv3J&<(Rk!w2u-$?{LsZP$IU{35wtkt_rn-lQ@qXI6uWCr7{7;OKUfc(S_6o=0fbv3 zCUXs$RZn5MWPLWmEJGP=WMzQj6cqlEW-tr$L;WcIPt4`{uhP$BfjNZ5oVN4<6>5ON literal 0 HcmV?d00001 diff --git a/bin/classes/com/SimpleDrawingApp/list/ListNode.class b/bin/classes/com/SimpleDrawingApp/list/ListNode.class new file mode 100644 index 0000000000000000000000000000000000000000..687f3f0df1dc70334b5b1d05f6f3f6073887695b GIT binary patch literal 1062 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 literal 0 HcmV?d00001 diff --git a/bin/jarlist.cache b/bin/jarlist.cache new file mode 100644 index 0000000..1b5ec3f --- /dev/null +++ b/bin/jarlist.cache @@ -0,0 +1,3 @@ +# cache for current jar dependecy. DO NOT EDIT. +# format is +# Encoding is UTF-8 diff --git a/bin/res/drawable-hdpi/ic_launcher.png b/bin/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bcfa0581febfc292711358f156e856315e800cbb GIT binary patch literal 9193 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�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 QrvLx|07*qoM6N<$g4-B2hX4Qo literal 0 HcmV?d00001 diff --git a/bin/res/drawable-mdpi/ic_launcher.png b/bin/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..85848ff493b5e00585f86b37c1976f54576380d1 GIT binary patch literal 5057 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 literal 0 HcmV?d00001 diff --git a/gen/com/SimpleDrawingApp/BuildConfig.java b/gen/com/SimpleDrawingApp/BuildConfig.java new file mode 100644 index 0000000..66d9de5 --- /dev/null +++ b/gen/com/SimpleDrawingApp/BuildConfig.java @@ -0,0 +1,6 @@ +/** Automatically generated file. DO NOT MODIFY */ +package com.SimpleDrawingApp; + +public final class BuildConfig { + public final static boolean DEBUG = true; +} \ No newline at end of file diff --git a/gen/com/SimpleDrawingApp/R.java b/gen/com/SimpleDrawingApp/R.java new file mode 100644 index 0000000..ad908e5 --- /dev/null +++ b/gen/com/SimpleDrawingApp/R.java @@ -0,0 +1,23 @@ +/* AUTO-GENERATED FILE. DO NOT MODIFY. + * + * This class was automatically generated by the + * aapt tool from the resource data it found. It + * should not be modified by hand. + */ + +package com.SimpleDrawingApp; + +public final class R { + public static final class attr { + } + public static final class drawable { + public static final int ic_launcher=0x7f020000; + } + public static final class layout { + public static final int main=0x7f030000; + } + public static final class string { + public static final int app_name=0x7f040001; + public static final int hello=0x7f040000; + } +} diff --git a/proguard-project.txt b/proguard-project.txt new file mode 100644 index 0000000..f2fe155 --- /dev/null +++ b/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/project.properties b/project.properties new file mode 100644 index 0000000..22d0dca --- /dev/null +++ b/project.properties @@ -0,0 +1,14 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system edit +# "ant.properties", and override values to adapt the script to your +# project structure. +# +# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): +#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt + +# Project target. +target=android-7 diff --git a/res/drawable-hdpi/ic_launcher.png b/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..96a442e5b8e9394ccf50bab9988cb2316026245d GIT binary patch literal 9397 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 literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/ic_launcher.png b/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..359047dfa4ed206e41e2354f9c6b307e713efe32 GIT binary patch literal 5237 zcmV-*6pHJKP)!xJWW@nmR0Ns^Wrk)72_X;&VM@qLNZyn;-h1m-)j4PH{!#b7fObo=TF+Xw z)_t{JRqgNW{e9m)=MZ*rJl6A%IHK!gcqM)U)>TjF8ytMTRLpN39jns9J?@oOe47l4 z1dw7d06;*nuu_+V$6Qs4K>#PCRHVFExV^duw#+4>?(j) z*AHP%*L5@qEpM#j?*@5nOq@HlBR^5M@^_J9)U!&MV7N?QAAfFbdJaGWPgRws)6~+R z-NrZmx0V*7Od$!{dkY1w*wll3j_1b``)C%NHS6N>yBU998+?y%)4SU2YA} zA%$NKSGVi)4!sVH=l1lla~XcBLKrfnO2~CXCa>$GlX_p?dYsM`3%)hidhs()bzlDL zr7zEG>kK#SwpW`1YyR;!pa1&-`0t?)V)3FnK7V~pCo%hYIQUj+f?7Oh#@-(|a?XKA zr;?n->{Mx?{fOYn3n4;UD5a5kBx9Z>DQ1SETOzUjjZ`HF0&e`i-6T<17qM|ec7?fBc z;0k&%hz+o?+KMG>1)PSqUSqTR@!luCa_YiGo3TkPUp^w8T}r$YFf$gPyy|ZYU`={9 z3c4MNG|FgE6ETxVuw_~St-lefEMgF+NTdzZD8wWJ0s<69@frs3IxH*_A4`(dIZhJT z)TwApTxD36oOSS>-?;UKV^n{)k!mFpfWRL3*Rxl@V_bS?f`4@I!*C2lX%(H}L=`CT z0BxGtLQ@`yX#0U)3`bO@9NHBjM^*Gw64K=(1QdKEK*p+u<&qTSoUzKhfO`4Wz>@z)uK^Aw6m!k{QPq@f~bd?t)6?} z1bJ=k7!E&fDxUmP-(QVQ?F@i8a-dv4%Gg64haX`yNv^E%Ea<=YJ4SdqH4e{1~Sk?qbu|M;*f zbqpYh(szvQ9ev=Amrj8q0@9+|SbxTQw)=Lr&Hm@e_hY2mXXchai5dBmusvCYf%>!X zK>#8PKtTjx&+y*EIR|SkT*`=|2>VPq0kb=fM~F#u|GG<9sj?zc-#-8BqmC*-%N5t% z3v1um65bJjO9}`JV*qzjs9O-*vCma1qq%z0=Thg*sPtm8u4CiyU5H^JCTU0mH2?_M zGn{jci{Y)p`kvomV&MR6*th{{opqpyh3Ux4m)!GykUSWKMk@t>>SyNTwj2L%XZ{Nn z>Xv_j0zm+HA-wSFCJ4n;tqux{Z<*M!+ghP`mh}};q{({$d;y{&M#518E{~{H2e(KJ+~I! z(QA0${wLzt8F#!r1DoX%bYVIIT!6Y1 zJctN_2;>9AahjEz5Cm@p&;a2*ykj`$0UrSH$QJ^n3By@S!UCJh5jS2|HIuruyXF34 zRDv0v?9yEOYVFWR0jftU~yzAQIFKu_~N!vxLSpD zIxEmBpAwnRC3gEyg%Yon(xeEA2t*11fhfB~8i^HvMIcQOp5dF9V>l7DZ+tS31TC`?6B2!P-{Ai`NS%8sfWFCh_# z2!sJ<26G0;dxnUBNT3Wrj-j+52u(2zc*4ieoxAxfi_hFMD8$Dt*t4hHU+Z6a>y4`) z-dgRJ&wT2GICjQeJ24|X4P=?_kA+q7QY|L{F) z>E#!CslTU!sFuPzhBSJAZ4?NAGFdr600O~tQ;`JDd9Vkv#1X>KptUV8Q)hHgp)4=n zf7k1aF8a|v_e`5zKCDz~Nuz3ARYohScS~Kpws!0=fL0XBO0`T-YycqYn}yY@ZV?g2 zlnDnM86|@t(hM=mC6W&G)j}8N_Fwtr#>s`2R4qD9xuZ_o&BU=o5&`up5LX5DnnxN7 z(!|510_PdtJ9u$`Fq8(A0!#>KLogu_1c1^6@0sdRitRngzWe^er2PiAMIqpkE7Xj4 zqSD0i@PNn2cHaUJ;)tnGEM^?Y2OX%5fOPNhi#0IY;la!zy_Gm@B#Lw#(Mo_^%= znu44{7-|HeMy{k$Y%?&%Kq&>KG_*4CK85oRio&-@sE4y2Y3h;2*%j9ragC&24JaC` z`!uzlS%RjYWaMg=C2{s!Ax`QU03w3c0Yn(2{;azYNJdU3mn!CrxI&4*JCC^T#}y}2 zA`QzFa=EsmQ0RGvftbU zQ>{c90A|-98)Xj4nT0b0yyJf8t%xIraRd)QQ&z*I6o?d@PmrXe$eT_q-0f@}wCCAq zEl$Ss8*j&&jkjWZGSHg|Kx;aNPWFa9~0$jGSbWOU>XjH6xDc0w(iTEtcE6dO3#5TC{ScvW=I(b=Nv*)M5VtC-7j0@OiMO};u|K_aA+ua&Wy|G z0O?p6>sL7#>4bE^@$`cedW&;pHYGbq)cE=gVUygN~?!_hF|0teV`9}~ml+s!M!x_o7(s*;* zCVc-VU&If8em*{M)JJgGyiZ}QGSUDFC<*}~u!v@1)yzPXBMKoDa!^zNBmjHLN~pCo z86Fi-BjwE?n=_NmIA?K7liV3M;v_;xTNl23?ow=ga}EA*-%{NFA9)Ej6(HYiJs85m`CL9ANNz_7Wfw>}W{H&o zhy)^>0cdZXg2B-WvL1};5P}FJQvqpeDFK{}*W_F4Q?l}yJ$-+C<-Fxs|HfnZ?SC!9 z1CQT|j+S@fx%Cg={YRgO&z2Z>i~diz*O?*BnAkIbU{QcAP}Z33z=$xNR5+KgfMs35xDG&i*Vb0Kg44zZ^zZ& zc>uXE4-p1))`B-&1MC}R(r5-n0MAaC)!S!3D{E#4D+*c5&ME_7bO-`vnhuJ0%rG^y z*MSI{U{o_J!WqGvFVAW?BdzlmMhBQRZ2?B+Z$U21!?_gN1W=^F4PGQ^jHW1{`Cb9o zLx~8DXBkZ|AhymqMH-oHxQxU~>&7f9WD8o#QYOvxW(yKUdVH3~XXbxdwyFjxt+lAv zZaWSag=@ z=8P$&K}1lbY?iX@ee4?s0wKUBJ964=H$0STaA3T?n~R$9CTTo$W*+}*eEXdRL>ghx z0ulvhz0Z>9A)>e;5?WE{3wn~(Mxl@k5Z8vY60)g)Z7AM`NMj7L0~nqG?*MV$0cj#* zg?t%+Zb&IZs~iSLH{&P2T8vGbH$W*3fW~XQxiirODk4xy!&-;m-f<)T^zbbx6J$2bI!+g&Q(Tb>mTpfw(MhPbbX*24YD+xC~pjzlg4B?I0>ZG1eo;$GZ-@3q)Ayc(TT%9uB8CcO9K>t$rJ4+!Ga!{2blb3*{mJ?rAx;e_@g zW=}sb8SURhsg02gkr06Qo;))H{@ois2J0*E-a_ku;$#FwS}J2z^z{y5!Tf{u-m?$! zW7XmPw~xK}Y|U*DV-zVxM2Z?xn6(ROnxdy?JIXW%Qzy=WHv^~-wPRiPJ(xPPjP?m_ zU@!3AH)Mt2y@NuFGk%)cvT4gxH~;vV!~gKarE2vv&(f8P@Ag++xft8kE4o&xvN3^V zhgKTPzIFc&iMV*lvDmVC6ReMr3kzh>qKs;xT2uwI^KCQwiCuxGcI>;nX1mYH6|D_I zV?e$kJ`M5;L7M=zY84}cF$$#|Dx-Bwp4xT+U;&*D<@0j8tMo%x5%Tg?~5R?T=3cv%@lt|5rbf!U~$$KWHR3?Xk zu&I|c5%P}XIIb@4XrJ=aC`y!W*}^Y88R7A}hVa+MJ05U+?`P+M8rvjM6j3edroqA2 zxm4Kuj7oLnm$`fxbar$}K3^bGfWT*$Wd5R*hEfJ52%w-LATTp*YNZ}ksTNg7J=bnd z-Pkqa!RO=D(kYB&|Wjqg0rvF8kum{NfucTYqrP z`5U%u**G!G6{S=zQMp`3K3_yWUyzoz^2Q(tmC>3+s5Oq`4(BY=)S@2MFgiNo;u?&k zg`0}`37-~9P0%vHiA@+H2!cEy8o#>wuOImB)G_Pj7yce!TXGVt#ORn z(=jFB*q2Zp6$}lGp?}+$um^#4QjKaSEI75c$z6AAYL348>#uKEccl>fFbuUZ0R$d} zZ~}6sT!$|qC`YPurgrtQ76=RC$YS~T-}$t1r_YJ6x+vSq`|xwOl@gGLU>BhcFBv~FMie-ahi$Rz-LINpu0Hu~Za`}LYEdk2y0hQVU6k7}mB|~9e!x(}I6ii4k;VvE0 z?|KG+Oj%0Bi3m(dlp;$c5Cu`1CM@ypLV(%bX9 zr_WVSKiJ10x1!vdPr`gLXF?@f1r%~#N8UkH?XgO1p%e>?-DLnfb z=86?7j~f~sKElT8lSw^&-{|PJ_Z)D@o-cw6^yvN1aY@hS38meM!r|M7s_XW%93Aak za$IUh=gpcu=jzR`4$^18^F8_11#h4-#Jd^}{s&{CB`(>qac=+s03~!qSaf7zbY(hY za%Ew3WdJfTF)=MLIW00WR4_R@Gcr0eGA%GSIxsM(l48sN001R)MObuXVRU6WZEs|0 vW_bWIFflPLFgYzTHdHV-Ix;spGd3+SH##sdcWUue00000NkvXXu0mjfB?gph literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/ic_launcher.png b/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..71c6d760f05183ef8a47c614d8d13380c8528499 GIT binary patch literal 14383 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 literal 0 HcmV?d00001 diff --git a/res/layout/main.xml b/res/layout/main.xml new file mode 100644 index 0000000..bc12cd8 --- /dev/null +++ b/res/layout/main.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml new file mode 100644 index 0000000..0caa708 --- /dev/null +++ b/res/values/strings.xml @@ -0,0 +1,7 @@ + + + + Hello World, SimpleDrawingAppActivity! + SimpleDrawingApp + + \ No newline at end of file diff --git a/src/com/SimpleDrawingApp/SimpleDrawingAppActivity.java b/src/com/SimpleDrawingApp/SimpleDrawingAppActivity.java new file mode 100644 index 0000000..d33fa73 --- /dev/null +++ b/src/com/SimpleDrawingApp/SimpleDrawingAppActivity.java @@ -0,0 +1,94 @@ +package com.SimpleDrawingApp; + +import android.app.Activity; +//import android.content.Intent; +import android.content.Context; +import android.os.Bundle; +//import android.view.View; +import android.view.MotionEvent; +import android.opengl.GLSurfaceView; +//import android.widget.EditText; + +public class SimpleDrawingAppActivity extends Activity { + /** Called when the activity is first created. */ + public final static String EXTRA_MESSAGE = "firstApp.main.MESSAGE"; + private GLSurfaceView mGLView; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + // setContentView(R.layout.main); + mGLView = new FirstAppSurfaceView(this); + setContentView(mGLView); + } + + @Override + protected void onPause() { + super.onPause(); + mGLView.onPause(); + } + + @Override + protected void onResume() { + super.onResume(); + mGLView.onResume(); + } + + /*public void sendMessage(View view) { + Intent intent = new Intent(this, DisplayMessageActivity.class); + EditText editText = (EditText) findViewById(R.id.edit_message); + String message = editText.getText().toString(); + intent.putExtra(EXTRA_MESSAGE, message); + startActivity(intent); + }*/ +} + +class FirstAppSurfaceView extends GLSurfaceView { + private final float X_SCALE_FACTOR = 1f / (240); // determined through trial + // and error + private final float Y_SCALE_FACTOR = 1f / (240); + private SimpleDrawingAppRenderer mRenderer; + private float mPreviousX; + private float mPreviousY; + + public FirstAppSurfaceView(Context context) { + super(context); + + mRenderer = new SimpleDrawingAppRenderer(); + setRenderer(mRenderer); + setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); + } + + @Override + public boolean onTouchEvent(MotionEvent e) { + float x = e.getX(); + float y = e.getY(); + + float dx = 0; + float dy = 0; + + switch (e.getAction()) { + case MotionEvent.ACTION_MOVE: + dx = x - mPreviousX; + dx *= -1; + mRenderer.xPosition = x*X_SCALE_FACTOR*-1 + 1; + mRenderer.dx = dx*X_SCALE_FACTOR; + + dy = y - mPreviousY; + dy *= -1; + mRenderer.yPosition = y*Y_SCALE_FACTOR*-1 + 1.6f; + mRenderer.dy = dy * Y_SCALE_FACTOR; + + Square s = new Square(x*X_SCALE_FACTOR*-1 + .975f, y*Y_SCALE_FACTOR*-1 + 1.5f); + mRenderer.squareList.insertBack(s); + + requestRender(); + break; + + } + + mPreviousX = x; + mPreviousY = y; + return true; + } +} \ No newline at end of file diff --git a/src/com/SimpleDrawingApp/SimpleDrawingAppRenderer.java b/src/com/SimpleDrawingApp/SimpleDrawingAppRenderer.java new file mode 100644 index 0000000..96b08d2 --- /dev/null +++ b/src/com/SimpleDrawingApp/SimpleDrawingAppRenderer.java @@ -0,0 +1,56 @@ +package com.SimpleDrawingApp; + +import javax.microedition.khronos.egl.EGLConfig; +import javax.microedition.khronos.opengles.GL10; + +import android.opengl.GLSurfaceView; +import android.opengl.GLU; + +import com.SimpleDrawingApp.list.*; + +public class SimpleDrawingAppRenderer implements GLSurfaceView.Renderer { + public DList squareList = new DList(); + public float xPosition, dx; + public float yPosition, dy; + + public void onSurfaceCreated(GL10 gl, EGLConfig config) { + gl.glClearColor(0f, 0f, 0f, 1.0f); + } + + public void onDrawFrame(GL10 gl) { + gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); + gl.glMatrixMode(GL10.GL_MODELVIEW); + gl.glLoadIdentity(); + GLU.gluLookAt(gl, 0, 0, -5, 0f, 0f, 0f, 0f, 1.0f, 0.0f); + + try { + ListNode currentNode = squareList.front(); + while(currentNode.isValidNode()) { + Square s = (Square)currentNode.item(); + s.Draw(gl); + + currentNode = currentNode.next(); + } + } + catch (InvalidNodeException e) { + System.err.println(e + "in onDrawFrame"); + } + + } + + public void onSurfaceChanged(GL10 gl, int width, int height) { + gl.glViewport(0, 0, width, height); + + float ratio = (float) width / height; + gl.glMatrixMode(GL10.GL_PROJECTION); // set matrix to projection mode + gl.glLoadIdentity(); // reset the matrix to its default state + gl.glFrustumf(-ratio, ratio, -1, 1, 3, 7); // apply the projection + // matrix + + initShapes(); + gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); + } + + private void initShapes() { + } +} \ No newline at end of file diff --git a/src/com/SimpleDrawingApp/Square.java b/src/com/SimpleDrawingApp/Square.java new file mode 100644 index 0000000..1dcaea8 --- /dev/null +++ b/src/com/SimpleDrawingApp/Square.java @@ -0,0 +1,54 @@ +package com.SimpleDrawingApp; + +import java.nio.*; + +import javax.microedition.khronos.opengles.GL10; + +class Square { + + private FloatBuffer squareVB, squareVB2; + + static float squareCoords[] = { -0.1f, 0.1f, 0.0f, // top left + -0.1f, -0.1f, 0.0f, // bottom left + 0.1f, -0.1f, 0.0f}; // bottom right + + static float square2Coords[] = { -0.1f, 0.1f, 0.0f, // top left + 0.1f, -0.1f, 0.0f, // bottom right + 0.1f, 0.1f, 0.0f }; // top right + private float x,y; + + public Square() { + + x = 0; + y = 0; + + ByteBuffer vbb = ByteBuffer.allocateDirect(squareCoords.length * 4); + vbb.order(ByteOrder.nativeOrder()); + squareVB = vbb.asFloatBuffer(); + squareVB.put(squareCoords); + squareVB.position(0); + + ByteBuffer vbb2 = ByteBuffer.allocateDirect(square2Coords.length * 4); + vbb2.order(ByteOrder.nativeOrder()); + squareVB2 = vbb2.asFloatBuffer(); + squareVB2.put(square2Coords); + squareVB2.position(0); + } + + public Square(float x, float y) { + this(); + this.x = x; + this.y = y; + } + + public void Draw(GL10 gl) { + gl.glPushMatrix(); + gl.glTranslatef(this.x,this.y,0); + gl.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + gl.glVertexPointer(3, GL10.GL_FLOAT, 0, squareVB); + gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3); + gl.glVertexPointer(3, GL10.GL_FLOAT, 0, squareVB2); + gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3); + gl.glPopMatrix(); + } +} \ No newline at end of file diff --git a/src/com/SimpleDrawingApp/list/DList.class b/src/com/SimpleDrawingApp/list/DList.class new file mode 100644 index 0000000000000000000000000000000000000000..350f3a9a3a2c43c991d3c5c30a604b342ac23ff2 GIT binary patch literal 5766 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 literal 0 HcmV?d00001 diff --git a/src/com/SimpleDrawingApp/list/List.java b/src/com/SimpleDrawingApp/list/List.java new file mode 100644 index 0000000..33de83d --- /dev/null +++ b/src/com/SimpleDrawingApp/list/List.java @@ -0,0 +1,80 @@ +/* List.java */ + +package com.SimpleDrawingApp.list; + +/** + * A List is a mutable list ADT. No implementation is provided. + * + * DO NOT CHANGE THIS FILE. + **/ + +public abstract class List { + + /** + * size is the number of items in the list. + **/ + + protected int size; + + /** + * isEmpty() returns true if this List is empty, false otherwise. + * + * @return true if this List is empty, false otherwise. + * + * Performance: runs in O(1) time. + **/ + public boolean isEmpty() { + return size == 0; + } + + /** + * length() returns the length of this List. + * + * @return the length of this List. + * + * Performance: runs in O(1) time. + **/ + public int length() { + return size; + } + + /** + * insertFront() inserts an item at the front of this List. + * + * @param item is the item to be inserted. + **/ + public abstract void insertFront(Object item); + + /** + * insertBack() inserts an item at the back of this List. + * + * @param item is the item to be inserted. + **/ + public abstract void insertBack(Object item); + + /** + * front() returns the node at the front of this List. If the List is + * empty, return an "invalid" node--a node with the property that any + * attempt to use it will cause an exception. + * + * @return a ListNode at the front of this List. + */ + public abstract ListNode front(); + + /** + * back() returns the node at the back of this List. If the List is + * empty, return an "invalid" node--a node with the property that any + * attempt to use it will cause an exception. + * + * @return a ListNode at the back of this List. + */ + public abstract ListNode back(); + + /** + * toString() returns a String representation of this List. + * + * @return a String representation of this List. + */ + public abstract String toString(); + +} diff --git a/src/com/SimpleDrawingApp/list/ListNode.class b/src/com/SimpleDrawingApp/list/ListNode.class new file mode 100644 index 0000000000000000000000000000000000000000..0d141d57a6c26c5daf0b6d171c641341c733f8d5 GIT binary patch literal 961 zcmZuu%Wl&^6g}fi;>LEGHYA1eD&d&~(IA!-DkuV}QfL=Nkzj%3q*IuZ*pcH#w6w|?(aX}egL?Gnu7&g$->4}hsQM=*B!`V<%W%l zjjDjuvFZvG8i)SCuXp_5ReiU0sM_&{K&Jb)q5H9b+vqUXO=8OTbfDu+fmEg1B*UX{ zUkT(JI#4@D-Ij`;`K=Bsg+|!+J54{*CLa}L{95--_n2{qaI(6(-}F0r-=qok3xV8T z?6==M^?M_5u~Pk?Pv`M*TlHcc24uGTD&9_JDpls26T^Wz=1|Kdn>8VOks25;L0?7j z!-H5w0^Ts&QU_r~Yne!O!vQbOUU(F>)e~)o&6&qB-q+1TddOkXgA30?5ha1uL}@!1 z{2Os>*+Ui%@l#d=mS*=M%iQ4t7i)2cgzzSf0Am)!W07Z`S)EZZrfVk{c9oLYhVZ literal 0 HcmV?d00001 diff --git a/src/com/SimpleDrawingApp/list/ListNode.java b/src/com/SimpleDrawingApp/list/ListNode.java new file mode 100644 index 0000000..3951557 --- /dev/null +++ b/src/com/SimpleDrawingApp/list/ListNode.java @@ -0,0 +1,109 @@ +/* ListNode.java */ + +package com.SimpleDrawingApp.list; + +/** + * A ListNode is a mutable node in a list. No implementation is provided. + * + * DO NOT CHANGE THIS FILE. + **/ + +public abstract class ListNode { + + /** + * item references the item stored in the current node. + * myList references the List that contains this node. + * + * DO NOT CHANGE THE FOLLOWING FIELD DECLARATIONS. + */ + + protected Object item; + protected List myList; + + /** + * isValidNode returns true if this node is valid; false otherwise. + * By default, an invalid node is one that doesn't belong to a list (myList + * is null), but subclasses can override this definition. + * + * @return true if this node is valid; false otherwise. + * + * Performance: runs in O(1) time. + */ + public boolean isValidNode() { + return myList != null; + } + + /** + * item() returns this node's item. If this node is invalid, + * throws an exception. + * + * @return the item stored in this node. + * + * Performance: runs in O(1) time. + */ + public Object item() throws InvalidNodeException { + if (!isValidNode()) { + throw new InvalidNodeException(); + } + return item; + } + + /** + * setItem() sets this node's item to "item". If this node is invalid, + * throws an exception. + * + * Performance: runs in O(1) time. + */ + public void setItem(Object item) throws InvalidNodeException { + if (!isValidNode()) { + throw new InvalidNodeException(); + } + this.item = item; + } + + /** + * next() returns the node following this node. If this node is invalid, + * throws an exception. + * + * @return the node following this node. + * @exception InvalidNodeException if this node is not valid. + */ + public abstract ListNode next() throws InvalidNodeException; + + /** + * prev() returns the node preceding this node. If this node is invalid, + * throws an exception. + * + * @param node the node whose predecessor is sought. + * @return the node preceding this node. + * @exception InvalidNodeException if this node is not valid. + */ + public abstract ListNode prev() throws InvalidNodeException; + + /** + * insertAfter() inserts an item immediately following this node. If this + * node is invalid, throws an exception. + * + * @param item the item to be inserted. + * @exception InvalidNodeException if this node is not valid. + */ + public abstract void insertAfter(Object item) throws InvalidNodeException; + + /** + * insertBefore() inserts an item immediately preceding this node. If this + * node is invalid, throws an exception. + * + * @param item the item to be inserted. + * @exception InvalidNodeException if this node is not valid. + */ + public abstract void insertBefore(Object item) throws InvalidNodeException; + + /** + * remove() removes this node from its List. If this node is invalid, + * throws an exception. + * + * @exception InvalidNodeException if this node is not valid. + */ + public abstract void remove() throws InvalidNodeException; + +} diff --git a/src/com/SimpleDrawingApp/list/SList.class b/src/com/SimpleDrawingApp/list/SList.class new file mode 100644 index 0000000000000000000000000000000000000000..a2be36d33d072186b01c66e0eae6d7e5b1b627e1 GIT binary patch literal 5793 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 literal 0 HcmV?d00001 diff --git a/src/com/SimpleDrawingApp/list/SList.java b/src/com/SimpleDrawingApp/list/SList.java new file mode 100644 index 0000000..48554e7 --- /dev/null +++ b/src/com/SimpleDrawingApp/list/SList.java @@ -0,0 +1,261 @@ +/* SList.java */ + +package com.SimpleDrawingApp.list; + +/** + * A SList is a mutable singly-linked list ADT. Its implementation employs + * a tail reference. + * + * DO NOT CHANGE THIS FILE. + **/ + +public class SList extends List { + + /** + * (inherited) size is the number of items in the list. + * head references the first node. + * tail references the last node. + **/ + + protected SListNode head; + protected SListNode tail; + + /* SList invariants: + * 1) Either head == null and tail == null, or tail.next == null and the + * SListNode referenced by tail can be reached from the head by a + * sequence of zero or more "next" references. This implies that the + * list is not circularly linked. + * 2) The "size" field is the number of SListNodes that can be accessed + * from head (including head itself) by a sequence of "next" references. + * 3) For every SListNode x in an SList l, x.myList = l. + **/ + + /** + * newNode() calls the SListNode constructor. Use this method to allocate + * new SListNodes rather than calling the SListNode constructor directly. + * That way, only this method need be overridden if a subclass of SList + * wants to use a different kind of node. + * + * @param item the item to store in the node. + * @param next the node following this node. + **/ + protected SListNode newNode(Object item, SListNode next) { + return new SListNode(item, this, next); + } + + /** + * SList() constructs for an empty SList. + **/ + public SList() { + head = null; + tail = null; + size = 0; + } + + /** + * insertFront() inserts an item at the front of this SList. + * + * @param item is the item to be inserted. + * + * Performance: runs in O(1) time. + **/ + public void insertFront(Object item) { + head = newNode(item, head); + if (size == 0) { + tail = head; + } + size++; + } + + /** + * insertBack() inserts an item at the back of this SList. + * + * @param item is the item to be inserted. + * + * Performance: runs in O(1) time. + **/ + public void insertBack(Object item) { + if (head == null) { + head = newNode(item, null); + tail = head; + } else { + tail.next = newNode(item, null); + tail = tail.next; + } + size++; + } + + /** + * front() returns the node at the front of this SList. If the SList is + * empty, return an "invalid" node--a node with the property that any + * attempt to use it will cause an exception. + * + * @return a ListNode at the front of this SList. + * + * Performance: runs in O(1) time. + */ + public ListNode front() { + if (head == null) { + // Create an invalid node. + SListNode node = newNode(null, null); + node.myList = null; + return node; + } else { + return head; + } + } + + /** + * back() returns the node at the back of this SList. If the SList is + * empty, return an "invalid" node--a node with the property that any + * attempt to use it will cause an exception. + * + * @return a ListNode at the back of this SList. + * + * Performance: runs in O(1) time. + */ + public ListNode back() { + if (tail == null) { + // Create an invalid node. + SListNode node = newNode(null, null); + node.myList = null; + return node; + } else { + return tail; + } + } + + /** + * toString() returns a String representation of this SList. + * + * @return a String representation of this SList. + * + * Performance: runs in O(n) time, where n is the length of the list. + */ + public String toString() { + String result = "[ "; + SListNode current = head; + while (current != null) { + result = result + current.item + " "; + current = current.next; + } + return result + "]"; + } + + private static void testInvalidNode(ListNode p) { + System.out.println("p.isValidNode() should be false: " + p.isValidNode()); + try { + p.item(); + System.out.println("p.item() should throw an exception, but didn't."); + } catch (InvalidNodeException lbe) { + System.out.println("p.item() should throw an exception, and did."); + } + try { + p.setItem(new Integer(0)); + System.out.println("p.setItem() should throw an exception, but didn't."); + } catch (InvalidNodeException lbe) { + System.out.println("p.setItem() should throw an exception, and did."); + } + try { + p.next(); + System.out.println("p.next() should throw an exception, but didn't."); + } catch (InvalidNodeException lbe) { + System.out.println("p.next() should throw an exception, and did."); + } + try { + p.prev(); + System.out.println("p.prev() should throw an exception, but didn't."); + } catch (InvalidNodeException lbe) { + System.out.println("p.prev() should throw an exception, and did."); + } + try { + p.insertBefore(new Integer(1)); + System.out.println("p.insertBefore() should throw an exception, but " + + "didn't."); + } catch (InvalidNodeException lbe) { + System.out.println("p.insertBefore() should throw an exception, and did." + ); + } + try { + p.insertAfter(new Integer(1)); + System.out.println("p.insertAfter() should throw an exception, but " + + "didn't."); + } catch (InvalidNodeException lbe) { + System.out.println("p.insertAfter() should throw an exception, and did." + ); + } + try { + p.remove(); + System.out.println("p.remove() should throw an exception, but didn't."); + } catch (InvalidNodeException lbe) { + System.out.println("p.remove() should throw an exception, and did."); + } + } + + private static void testEmpty() { + List l = new SList(); + System.out.println("An empty list should be [ ]: " + l); + System.out.println("l.isEmpty() should be true: " + l.isEmpty()); + System.out.println("l.length() should be 0: " + l.length()); + System.out.println("Finding front node p of l."); + ListNode p = l.front(); + testInvalidNode(p); + System.out.println("Finding back node p of l."); + p = l.back(); + testInvalidNode(p); + l.insertFront(new Integer(10)); + System.out.println("l after insertFront(10) should be [ 10 ]: " + l); + } + + public static void main(String[] argv) { + testEmpty(); + List l = new SList(); + l.insertFront(new Integer(3)); + l.insertFront(new Integer(2)); + l.insertFront(new Integer(1)); + System.out.println("l is a list of 3 elements: " + l); + try { + ListNode n; + int i = 1; + for (n = l.front(); n.isValidNode(); n = n.next()) { + System.out.println("n.item() should be " + i + ": " + n.item()); + n.setItem(new Integer(((Integer) n.item()).intValue() * 2)); + System.out.println("n.item() should be " + 2 * i + ": " + n.item()); + i++; + } + System.out.println("After doubling all elements of l: " + l); + testInvalidNode(n); + + i = 6; + for (n = l.back(); n.isValidNode(); n = n.prev()) { + System.out.println("n.item() should be " + i + ": " + n.item()); + n.setItem(new Integer(((Integer) n.item()).intValue() * 2)); + System.out.println("n.item() should be " + 2 * i + ": " + n.item()); + i = i - 2; + } + System.out.println("After doubling all elements of l again: " + l); + testInvalidNode(n); + + n = l.front().next(); + System.out.println("Removing middle element (8) of l: " + n.item()); + n.remove(); + System.out.println("l is now: " + l); + testInvalidNode(n); + n = l.back(); + System.out.println("Removing end element (12) of l: " + n.item()); + n.remove(); + System.out.println("l is now: " + l); + testInvalidNode(n); + + n = l.front(); + System.out.println("Removing first element (4) of l: " + n.item()); + n.remove(); + System.out.println("l is now: " + l); + testInvalidNode(n); + } catch (InvalidNodeException lbe) { + System.err.println ("Caught InvalidNodeException that should not happen." + ); + System.err.println ("Aborting the testing code."); + } + } +} diff --git a/src/com/SimpleDrawingApp/list/SListNode.class b/src/com/SimpleDrawingApp/list/SListNode.class new file mode 100644 index 0000000000000000000000000000000000000000..88ca15cb861b613398f070bc68808593b6688c90 GIT binary patch literal 2127 zcmaJ>+fN*26#sp@3wvR>EZ4TSupr>F%N=YhRJ2fN!G%^SB$#MAutPg_nZ@0KUaZe* zyd-LqCXGH?UQDbBw23C#Hxd*779V_V)ZdvIcL!T}*zY@YzT59|&i?k-Prm>d#+xxT zVknAw49hSg!)T1d%VC_1;8YBiI330-F+?#I!FZJOnFwB$c_NC}@OlJiW&dOtQxTjC zV_G3(88>Z(x=hY2+5?Ljjtlv$F|JT~#P13BHgI&g9Iy0K=D`?mXI z=V;F|ubtv03bh&2G8VQrR*k}CeKp5SeI~!A=a%(?Dc@c)WM4Cj3d)rAXWrsMPC@fO z$&{rKPxiP;AL@|hJY2nK>uc}L>zm#SvFV#@#-?rNExr@lEEwC=K%vUCiblacyKWl= zg{J2ab;y{uv7r#Qj2l9bSlnZi#(KWM&&q6$zOv?7yVt%WzX3Utvx27a%zYx>V zf_@Dtv}%~ac@0fy)^Gu{3P&9WX02^KXJ+M{5@dxF;!?6FLFsZvHj%dyrn@g8bmh`H zzFW3XLmF@Jm=HbWSO(1sojwf?**lNsFcvgi#3h9;zW|3E>P818DC2VFYjgGb-*XDp z&XJ5)j8u5zmVD5#vf(VzDzmu!uUd}!Z~w={MY~{HSI5Pb(dU@!D=9%X?v+!?GCmQy zX6RW?wr;Wrqa|ES70uf;Sk0oHJ=Mq-WlsELRLNfpjxckSQ4RsF0F9}~P^t7D0;%3T z1XF!`2>r->0LM5sqk`iL+cfu_`8BnR&^}r?1)m_Q)FZ?)X+>1&hqCmLhk_2Q zR)iU+Irbusev%qQ7lsIFn3+)rUNax*;*J*yKtK(7KsyFB?4Zjd%j$GCiHkmS z+2fASj;~qznv&L%!D)Ec;W4&2@G-Ucgj#&cM*a+a_?$iU1-1B+mHHLl!q-^AU3z{G n@8dqz`UW51+fv=mu}9r%B`Z%K@wJ+ literal 0 HcmV?d00001 diff --git a/src/com/SimpleDrawingApp/list/SListNode.java b/src/com/SimpleDrawingApp/list/SListNode.java new file mode 100644 index 0000000..a86afb1 --- /dev/null +++ b/src/com/SimpleDrawingApp/list/SListNode.java @@ -0,0 +1,159 @@ +/* SListNode.java */ + +package com.SimpleDrawingApp.list; + +/** + * An SListNode is a mutable node in an SList (singly-linked list). + **/ + +public class SListNode extends ListNode { + + /** + * (inherited) item references the item stored in the current node. + * (inherited) myList references the List that contains this node. + * next references the next node in the SList. + * + * DO NOT CHANGE THE FOLLOWING FIELD DECLARATIONS. + **/ + + protected SListNode next; + + /** + * SListNode() constructor. + * @param i the item to store in the node. + * @param l the list this node is in. + * @param n the node following this node. + */ + SListNode(Object i, SList l, SListNode n) { + item = i; + myList = l; + next = n; + } + + /** + * next() returns the node following this node. If this node is invalid, + * throws an exception. + * + * @return the node following this node. + * @exception InvalidNodeException if this node is not valid. + * + * Performance: runs in O(1) time. + */ + public ListNode next() throws InvalidNodeException { + if (!isValidNode()) { + throw new InvalidNodeException("next() called on invalid node"); + } + if (next == null) { + // Create an invalid node. + SListNode node = ((SList) myList).newNode(null, null); + node.myList = null; + return node; + } else { + return next; + } + } + + /** + * prev() returns the node preceding this node. If this node is invalid, + * throws an exception. + * + * @param node the node whose predecessor is sought. + * @return the node preceding this node. + * @exception InvalidNodeException if this node is not valid. + * + * Performance: runs in O(this.size) time. + */ + public ListNode prev() throws InvalidNodeException { + if (!isValidNode()) { + throw new InvalidNodeException("prev() called on invalid node"); + } + SListNode prev = ((SList) myList).head; + if (prev == this) { + // Create an invalid node. + prev = ((SList) myList).newNode(null, null); + prev.myList = null; + } else { + while (prev.next != this) { + prev = prev.next; + } + } + return prev; + } + + /** + * insertAfter() inserts an item immediately following this node. If this + * node is invalid, throws an exception. + * + * @param item the item to be inserted. + * @exception InvalidNodeException if this node is not valid. + * + * Performance: runs in O(1) time. + */ + public void insertAfter(Object item) throws InvalidNodeException { + if (!isValidNode()) { + throw new InvalidNodeException("insertAfter() called on invalid node"); + } + SListNode newNode = ((SList) myList).newNode(item, next); + if (next == null) { + ((SList) myList).tail = newNode; + } + next = newNode; + myList.size++; + } + + /** + * insertBefore() inserts an item immediately preceding this node. If this + * node is invalid, throws an exception. + * + * @param item the item to be inserted. + * @exception InvalidNodeException if this node is not valid. + * + * Performance: runs in O(this.size) time. + */ + public void insertBefore(Object item) throws InvalidNodeException { + if (!isValidNode()) { + throw new InvalidNodeException("insertBefore() called on invalid node"); + } + SListNode newNode = ((SList) myList).newNode(item, this); + if (this == ((SList) myList).head) { + ((SList) myList).head = newNode; + } else { + SListNode prev = (SListNode) prev(); + prev.next = newNode; + } + myList.size++; + } + + /** + * remove() removes this node from its SList. If this node is invalid, + * throws an exception. + * + * @exception InvalidNodeException if this node is not valid. + * + * Performance: runs in O(this.size) time. + */ + public void remove() throws InvalidNodeException { + if (!isValidNode()) { + throw new InvalidNodeException("remove() called on invalid node"); + } + if (this == ((SList) myList).head) { + ((SList) myList).head = next; + if (next == null) { + ((SList) myList).tail = null; + } + } else { + SListNode prev = (SListNode) prev(); + prev.next = next; + if (next == null) { + ((SList) myList).tail = prev; + } + } + myList.size--; + + // Make this node an invalid node, so it cannot be used to corrupt myList. + myList = null; + // Set other reference to null to improve garbage collection. + next = null; + } + +}