From 73f65385cb87c498eaaab6f237d9926149e46620 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 27 Oct 2011 11:50:19 -0700 Subject: [PATCH 01/15] Fixed a bug where failed autosync logs wouldn't be recorded --- .../src/com/todoroo/astrid/activity/FilterListActivity.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/astrid/src/com/todoroo/astrid/activity/FilterListActivity.java b/astrid/src/com/todoroo/astrid/activity/FilterListActivity.java index 3e7c9798f..067fc4f34 100644 --- a/astrid/src/com/todoroo/astrid/activity/FilterListActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/FilterListActivity.java @@ -467,9 +467,13 @@ public class FilterListActivity extends ExpandableListActivity { } catch (IOException e) { if (manual) exceptionService.displayAndReportError(FilterListActivity.this, "refresh-tags-io", e); + else + exceptionService.reportError("refresh-tags-io", e); } catch (JSONException e) { if (manual) exceptionService.displayAndReportError(FilterListActivity.this, "refresh-tags-json", e); + else + exceptionService.reportError("refresh-tags-io", e); } finally { if (manual) DialogUtilities.dismissDialog(FilterListActivity.this, progressDialog); From 386c6fc7236707b2cf926a9210775a16640de39a Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 27 Oct 2011 14:06:25 -0700 Subject: [PATCH 02/15] Fixed a bug that could cause task duplicates and web overwriting due dates when adding from widget --- .../todoroo/astrid/actfm/sync/ActFmSyncService.java | 10 +++++++--- astrid/res/drawable/{icon.png => icon_old.png} | Bin .../todoroo/astrid/activity/TaskEditActivity.java | 4 +++- astrid/src/com/todoroo/astrid/dao/TaskDao.java | 5 ++++- 4 files changed, 14 insertions(+), 5 deletions(-) rename astrid/res/drawable/{icon.png => icon_old.png} (100%) diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java index 606f5b2e3..d3b42222a 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java @@ -55,7 +55,6 @@ import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Update; import com.todoroo.astrid.service.MetadataService; -import com.todoroo.astrid.service.StartupService; import com.todoroo.astrid.service.StatisticsConstants; import com.todoroo.astrid.service.StatisticsService; import com.todoroo.astrid.service.TagDataService; @@ -292,8 +291,13 @@ public final class ActFmSyncService { if(newlyCreated) { if(task.getValue(Task.TITLE).length() == 0) return; - if(task.getId() <= StartupService.INTRO_TASK_SIZE) - return; + for(int taskTitle : new int[] { R.string.intro_task_1_summary, + R.string.intro_task_2_summary, R.string.intro_task_3_summary }) { + String title = ContextManager.getString(taskTitle); + if(task.getValue(Task.TITLE).equals(title)) + return; + } + values = task.getMergedValues(); } if(values.containsKey(Task.TITLE.name)) { diff --git a/astrid/res/drawable/icon.png b/astrid/res/drawable/icon_old.png similarity index 100% rename from astrid/res/drawable/icon.png rename to astrid/res/drawable/icon_old.png diff --git a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java index ab0e13d0e..b5db00239 100755 --- a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java @@ -506,8 +506,10 @@ public final class TaskEditActivity extends TabActivity { if(!onPause && peopleControlSet != null && !peopleControlSet.saveSharingSettings(processedToast)) return; - if (!onPause) // Saving during on pause could cause a double finish + if (!onPause) { // Saving during on pause could cause a double finish + shouldSaveState = false; finish(); + } } @Override diff --git a/astrid/src/com/todoroo/astrid/dao/TaskDao.java b/astrid/src/com/todoroo/astrid/dao/TaskDao.java index e1abaccb9..d19daa6f4 100644 --- a/astrid/src/com/todoroo/astrid/dao/TaskDao.java +++ b/astrid/src/com/todoroo/astrid/dao/TaskDao.java @@ -6,6 +6,7 @@ package com.todoroo.astrid.dao; import android.content.ContentValues; +import android.util.Log; import com.timsu.astrid.R; import com.todoroo.andlib.data.DatabaseDao; @@ -169,10 +170,12 @@ public class TaskDao extends DatabaseDao { */ public boolean save(Task task) { boolean saveSuccessful; - + Log.e("SAVING", "SAVING - " + task.getSetValues().toString(), new Throwable()); if (task.getId() == Task.NO_ID) { + System.err.println("Creating new"); saveSuccessful = createNew(task); } else { + System.err.println("Saving existing"); saveSuccessful = saveExisting(task); } From 979b7b5e7f8b4506f5308d2ccd8790818664eb17 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 27 Oct 2011 14:44:46 -0700 Subject: [PATCH 03/15] Updated a bunch of icons to use the new astrid smile --- astrid/res/drawable-hdpi/header_logo_new.png | Bin 11855 -> 11662 bytes astrid/res/drawable/astrid_com_logo.png | Bin 22460 -> 16718 bytes astrid/res/drawable/header_logo_new.png | Bin 7983 -> 7915 bytes astrid/res/drawable/icon.png | Bin 0 -> 7760 bytes .../src/com/todoroo/astrid/dao/TaskDao.java | 4 ---- 5 files changed, 4 deletions(-) create mode 100644 astrid/res/drawable/icon.png diff --git a/astrid/res/drawable-hdpi/header_logo_new.png b/astrid/res/drawable-hdpi/header_logo_new.png index b9b33f305482c7aab19c2db83c29f86ae6165f25..f47916337932e47081711f522f5ef2751360d97d 100644 GIT binary patch literal 11662 zcmW++WmFtZv!2D>-QC^YgS)%CJG>BJf#3uQ?(UZ0?(UM{PH;<*;Bfc5ea=k(o0;ye zsz+*K)K%qBk%*8006Z%s;uOo;CC23`PwjQzh01Z3wD005Gj zgS51|y1kpXo0q+tJB5O@G=;mTo2`Sh4FLGB=V{q#Yn|eWK5XAfDMf=*mE1IO5hygJ z;=nk`bWD_p7>d!9MQgYk1DKya!4QuZMnfkgfa7sBSWse-R^fkB7AJ(4M8{6P>;;xM zEq6a0&Ahj)h#lA7<~7a1_amUB%X4e+f>ElZ$S`-q$A(AuezQr0BGI@57zj<)lwNPt zAmA}rM1+~DAHEj=`7a?O0R1XC{Tw7wALwUNS;ipn7f`=Dj8Z9aL50Zx1-4DJ3}7z|)XwR~eggD4 z032JTVL@P(72r_Nvy}(Fw*mdL7|4wP0t&#P5gow@zyt#3vAI{adO8~&0ckseH3wsk0SQrlM@?K1P1!HfD zT}Y3k4$k#V;j_IM-z2Nf3`r#A7JPX zMTC(YN5HnAT#p7>#_CfiAmC?3JW>wG!(heHP)tPQXizC7^U8B-#%fdO$dlfPdO`_C z8OwGi3y%X_VXu+ha-6B5jT)jqQCg%sD*1`N$QC2dTYGb6C*l?6%zHKyiN^C49naU; zqpv55Nsn>#pAf)v4?A3u-fHfL9}HILr+!2} z7(Xcr3o=Q0ePw;sRryK^5*i-Nbwqwd=r0==R3(!=~TSTWLE^c_i13O`D<7qJ#)7hN@}Pg$yRc;tzwQzq7}of_c7&*@gXW~8BHg{S|om-tL?Zhfmt)O~Y9d50ID#V}ZH9FOK>gQU-T6R^!l~L7pm2TSNrNIVo zF>nS$%0p_>r5c4l%nrIoDUhuQoBUZQolt8ceL{JM>3+H*RPSU(WsF- z@8PSztjH_x`P60b5{f1{rbus0FK3rH3!8VWwWhUIfmDH~A}VxW&sObJMqJb-ctMqNfr=-}um>6BE?RIai$RXWNU%Y~JN zmB(hLXNqT*vv_kvIaj!jbB=RXa(3Fx4gC#SS}R-IZ4?@R8FXGp zG|ATG)zL0@)pb>1R&=PQsMh2!+YNpH+d9!&)kgUJa20N&zSX5Q$imJN->z+>e&{Nt zCncye=*p;Zm;>Fap_%+!v%5Vf;0}No!VeEX|+(hmSbvmEB0i)x|Q#3Wq#EU7T5S< z|HM2C4#W;b__w*X4a}zb``gCbrqqVq^35W4q(i7btUm%i7Jv#cEyxZ!CR8%i2Hb;?l{!X4w z@liHggXv%TdHM>@N+g18O!a)O&b>RYm$y;-dHcu*f%uv1<0kI^70nLbMO5Hbv0BZxbkL59eSvQwdR5w(iA?oIo=GL(+eLCW?|(ES z++{3>9bf3HlDd^qmA7()^6|2LDO|Wjg?c!{za=MmNL5p+q_oQj&IZ_v{R-`?)mC5CoTFs?iMtyJ(U4V*H zsOi9D*gy-&=^R-H=`bSbd~@Z}L`|RFV5i06IWmt}3^yjW9%lnT12<%qVblMRILd9Z zFKaWkxvFNk!+Oqk(f0Icn>F7EExkJ9C@kzHjKI--oz$)H*`QcD!*)h z*}N#cG(Cvd$5fv_roXtD)Tz37T#i96LchUNqqVMd{QO0_D5|ZQxXgSmhc-su`<{30 z$BN2_s`E8>bf4N?=D**k4~RPtWT-;xzVU&zd+~jWVuFJE;+}7( zuNBgB)^l|E`0vHn{@-iHz};-HB|s0 zfEED2;Q;XT0hvz$z=s0>&ddQoC=&qi-M*QP$N~UWhk}fxw*UG?P~d0n!V*qXdO*O7bwCK~6!#>D?_x*U_ImAQW_`}| z+HlVB9F>#1ep07H^OLd8fKCU}e2u40J=9(GD{E}<#10Krt+B$_uU`kb#Uxe{mH+v- zV@jZc^Fjeo|K96ooj%*IgF1E()y7EEY)Jev&E>tOKcV~2e%)BI{nR(AajSLEX4d`Q zS^clZQv-16IA2ai3&oJI?fR+{wvo_0-$ut3<*Fu=x$o)?k&Dwwsg>@L@*(MmFmf(apFkx&AG?YKSdY|e!-$xzq z1RJ+*J&w3h$G5Alm)4r)JFBGArHa7){r$z_1^eRq^U~C_n7BCM9@ni-AOxXa-^j?w z#@6;|W@2IjF}ob~(&_AZ4%Gdh1~4_zJ zq~euaUiD#j)G&5*;3&K4Ob~6?*qV{QM{u-X7^wEmu!rwqWVIDxF$_kN;r*+^p{hV?XmFu? z)u~wEd6*y-g|y+qm;Zlj$X{Y1p9dGcl2>#yTO54+xtfLsKU`c~Nd(S$c<-F@4iOSG z@dpdwPV-QNjOX~Ho~{;VEUd7=QD#N1>tdVsk~(3_6fKWYqHwk*-Wf4m(X9pU|g{piYxiHYpcyX~5zpSN*# z^tDR9&ZycAw3|u(BA^Qe!Et&x|D)S)`j-M~6l1PE5}6X{P*}BT2OD(igDx2*o@he#&fTCIyrRO0G9wKwJ5LqZH)eIpr51oCaru zcg8~gnU1-oviyfeF{bxT{b5Lo)|*wLC>;?oaYVU8jA9jGXFWSrvC*ch-)92@gTltf zo1#Q>f@^<~d~BIi(dl;za31hnuZ(P{RRU5^5>dlEX3#CKf;zC{}c_M{{&= zhUEq>Yrr)B09cPs0s|XIfUnO;0yq2nXH`nJLC^dsbqoXDuASU(nwYxrqpiM^5C5@0 zr!JMND0v9wi7}P|K+X&vV$=}5SuGX691O5XM-AY#T_hri!9y9Cm@^WE)eLV>9#nzza?(4M}iu_Y+&~(I5HVOi7x%MRuIUvJ@bBElO zkasLMn1!(Ub>u}u0k){pq!Fh79j1K<*iA3RoS2sV#A#SLpPrb|n0`Ia;&LMr zOSfC}c|$*6X%P1X$1yLD#k#bq1XO)rMfkLpM>fIr8OtlZ}T^ z&^kHIh$$^NdK8B6Km;TatzXJ!kFm<3$e#)lKy*J5DlWx9kQgrgjirKku8;2nSQY0a{p#TdDo0^se+qEV3b7eG7$fr7BrQQTRBR&19zOL?VFcOux z^{XtWkB`sOVv-rXWSep($AF2E5i^}yzVh0dG#5_vMVP z&C*ml>r3j`0SJ>)R5WNZ%R$ktvL8Em{CZ7utD(BJPmj?*19zvhwC4VG|pm&2>e6_Bfr2%+wtMl zSg@WpsCjyN;RhC5hSJaFWwZ{ru>?}#a^}Kx=cKQF6DH{~h($$g5)aTjdO9{g%7+(w0Otz% zoWbv-+}_@rh!tG#1-<-pIA5-N+3WuAHXstpPFHss`}TN_J&WIs>|06-`x#Mod7gWR zaTI$+L7UwinQ}Id!|I!fiHS#5Rh5#LmzVhc+FbB*uxtKXxIBbxjZUYTHavu={nVtgF#Ue~f4Bo%{^=*G3PM)KN>?*qAOck?$;k5ALr(>d7aMk{I(Gb=KL092aj*p z;$mZ+GX~#cgKNr^Wetsp8B=JL&={m86<}!zow-u0DAJ&qBQc1!1$|LM0$yCc1ilKa z{({v7B=7YSa@V2>F_(s0>IGQTlt#S?{OzSUN87g$i0MjGNn)77t%5m}VEJ%T)swPY z2qXXggVf#Gy6?$=A>a)9a|3pv2V)LgxC@M0+t{$0Hrs0~gL5cJ(B$5JPoz}L=8Faj zxGMs3Am><(kYr`I(aPsokcF9mD^--CcPan%01%mgv>Bx`-( z9wy8>)3qw|O*c4?1wToGh&we^eL6ZD>q#NzaV1-AIE-3ql?VRQKWTw)Nt0j9BP|p& zV+WAbV{sK67!uz8R^YxSu9+WUR31CiYWw*;d}8Y@zHX?k*ee4L$~o!s_uQ%+_l`cp^v?~{d+gs`x% z9gzIh<)uqpVq%m-_J>2$nl5zz%XJ@l$o_ClnO3! z=ZoQhegBP_|A=20G3@Ef5%927wXvaxQWBUTDqWsIX$bGy-P9QnN*ZX&rxMAz_?F=piKA-2s zx*4F8P$;b1Hjp*7v|1pzxA)3P*hP4(ASo$HbL84QJT`_6IB$1%AWPr_B7gd!^Q)_w z;sJHIc~arAvd38Hx4{Q1@Y63qFWfSq>&fu{p7vQb=t}Stn(UJY5Uyd4_)ha<053rlz92_U|!Hv;OooVv2qxmUK;o5o9Sg1wz$M)em6C#r+G3`J4sN zGZRJsW%|F}uefL`Ze2e(@#UycQ&lXTvUmuPur2Y3Lg1n3?#_FTV@Zn&2#hb3m695i z2Z4n!SgXLUdelZS8d65GsHC zojNbb-%;S)SW64L_q066^l5#i_n#C5>4rvH19Rc$xs$>BXq4k5%>{LLG&yw5r8w54*rFxwatl%=j}M6zxCNM)Y|W7c zoD^LKK3s{uEh@3!|4IA7FyaC1^pWhwpZ;gy>Ut$FnL*g}liD^mKji(1npwAYb^ks9 zAA-KiK0i?UDZs6~e4f4rynr{rf%siB?=6p5S$z*dMwZSQ*-c8nX#kfTy^XFPh<8Wm zbO;;5WS|5pu=z5O7j32e%n&SwWJ=j#OqlMvH&9gNVWNy^@32bTx`6;3TXq9E;vHjq ztuCo*E-o{;jV(Jz87C*F6bM>qlsT+#LKbNN;b{k6o}SL9r>79zL{ReGr?QV5l-Bue&H45Z&-F)00Lr{hL!&fVC zdy{EZrl_Q(Bqt;T^*Cie+XB%mvmIW?&ka5Q3|BY^`xZdWWV>~`qm^-4C6*NHSpzhM zQXqz{1a%64TNHas6x5#UOE6iSf`x^(E3YW4MuD)zV}bmS5(`ZlpQw~=*R!MWaxJ{x z4}D0)hiEdW?&qMznjU4+Ox=Fj3cey@hw@TOhr&cXdE{W|R*kRjYW|y|lo)1^n7DX| z0|fC^H8e0iJw20hb3YsS_d!CoGB!50fR~?NFD*Tt?yF2jJTd=ldPWBSDFl;JAS+R0 zH|_SnedvAYF>_n}zBhtz>QDK|3GiScZ>yTsV`FJ-!y-Ic0YY+ty{)Z$1d*ZWF!RA5 zReBTK{wnAN51CA`0=dz?&C?6u=KYb*iFgWT+XtU-vv{>gwW&kj)+PN>0D7S|##AlJS*+0Og&%Z9|kwso`Ac zf6GrvNg+dkah;u-%F))*xp$V99%9#PFnzm{Lz%Y^k?=N;jNB3oW zHQ`Two5dZBWGAt6Q)pP^a668SlFusNjKS)%i&%EDr%J>|Rv2{!TH@)c=)0k5(dF*& zw}@Y;1&)Q&@fu}oubi-SKs#K?g{EuCB>(9qO+V&+NFz_?)prsMT&mH*Jj>s80i=Wpyt(I^DbHt|7HSX`0}AKU-zn@4(^ zyQG7uMH#(3RRf?jv3z_5k)LLyUz(=My_RnTQK>{lv8P3}OG&@ze0~W8HZ1RA7dAIV zmM(oiybKN3SNGD51y^FRG+wT@x;{QFHNWxYTw-=@nZ{~(3u0l?($M(t9~`)SEN1k2 z|LJ|XdigsS^6queKv-0=uqKBzUuW~n_*ZjGYr2jS$MdWcrL6>Gq&kZ47__3Kub*_j z>!lr@q*P)Hg_C(sG;R(;|0xtqXy(8oKqIZ6$=?}#($(8!5Ao*jL?@a6UzLD2Byg?o53{X^KBDw(U{ ztFuHWw2)eKS;yW2au1uWFnY$f`hIg;uG4%G4UP2;P{Z2&2Xta{4S=Xk;Bi86LkBox z6{SXyR0|2_!S%|%`QLMPRKF_a8D^hHO#PbCXv#qldhL5aFO0Dy z{ffSv*vOA8|DAjmGg1f?%2Qi4lXg(3Pd%qU4BU%9KT`h*v7qH~mA!Qr{_(o>H1Pl^!{h```g{=Qi``pK@w!xH?6UO3T2vGYK34WX!{Fj=hftQH)Q1F zTi}<>8}sW_n7;q!CPsD=q8$^&F)KefopM^rh%YLp*)l_or zxnH(0(qU#|a^}l%F$@k4zCSqDL~={!GLeFB?MH( z5c9;8-|J|45SjEPrQo&H=2x{&g|M(NyUbgqerf|iLJXQ0;#Om2XYZ>jD%y($s+LYS zy>5O_yy4FqBy3y;dp}%lc{w^c!FPOt@TCAtOUt^A%Xd!|m6`ShJVA6q8pI>jsQE=2 zKq0+A0j&N;1Xl~lLF;oV|1z_&PD?()I*Ef%u!bhIYD~IrDN-XFqel+%U$d^wc@(oH zR<*vs_7BM&HcBB#B}_a$STrxj9&p);-eJUG#Jpfn!O;{Ty};x5AydnQ{=-#lvDFj{ z=^KwW}*JfK}7OP z@zd>b0YZcn9heIE_>ySRk|zG~G?zR^9`d@ANG|^V29Yp(qqTx039<3<@gZF=S6#&T zEc)N62~gl-#!<~ZA#^ex;=Cjlhz7Q%CndR`0%P($);eGNE;_0o0Tmzv)21r!Q zAl`!|%zafDp@3bn>cXCh+|Du8R1U*mbjg0v?_0b$awG zabO0-b=kOn=!30UAIF29xr4Bu1mdE{J%-xN_IQvs*1~LkeLZm$Gy}lO#>VD0n=2@2 zV`DQ4X~PH-eH~59$oO!d_(tnO9)*hTKW&p~`PY zZarmG$Yg$Ug4r;EaUG9Y2^V4TztWHGzfpTNX zYzhR6I&RC#RVZ`L26d=%H~}b$=L8@j0NR}{$DJCj&LsE?HIh%6;A33XA3G1MvR-Xv z_CLk^n}{JafF&xLiR2p27v%Av4OS-pvWSu_sJ;_{Kdn30JNQTu)sf6ki#)6jdxH^8 z5E{+V^y3F6T9h=zY>9#R<#VjkT}i*`=;#tynV5=GQ*km@&V6)rbU+dV5aFLrD&P(d zAE3xprTuZy}g6A;Pn(_x%&bK@yzV6Y~E{1Q6W5S~>NUHPM2*2|m0 zOErrN48% zXb%)#S_646;p99=X|+n?ydF>zo4GtJ7p^7`RT)kk%--qEWLY+<+guR)L*3;@n;V(1 z@5OL?@;XKg13SCgd0!Q@3|jQJC@aqAz|-SLt{{lA^sM)+>h8{sWVRMdJo*lP5`p`f zz{SmO&{*10UF}%skR9i3Qi1&Ft0z;~9B_YjV&b=T9|Z}ziXgEaJ06uL6Z=i+_&m@> zh9;TCQB`)iiS|6xGh%>T6qlLvI*lrijXj_Ub6{ltS;_#vg+U#W4sj7jJ`;sNSDI8Q z(h`;%Z9L#>(k*z^n`Q%?gTw#CnmRzUFb3P=m zDq!4!{zRZw-0%2)#Vmvg2T9cDV)cg~`vcJ*^72bCQ~1KC1^uj=?UsGp9|W5slVaW|T)*-Z z_k6zLUBWof#+Swk+A*JG=W+Q@x=n5;QAzT-UY?EAOOLsCG6Pze0YlTt)O0q^$*KQI zgqA4t<;k?OuMb7)*Py_5-=e(@X1rdp2mg(8dwzT8{k~2vYc(Qdse4hg(dzQjke;62 zYoW-8ZNa*#*jfJo3DZ{N{h$k&KlFfEl+Hx(_E59s2-5vU(_F8tOrmVb!q;h%S0~UZ ze(#@%a_J~E(Z%iU_h!wrlm68wDD(?7-~(k>yzk@fx! z2;ozlh*nu4;a}xdAyAaGN=jv78gOHrcfk~7kN9tyGCac342Qb%fkQTDm z=l6FtCBXmn@7T_N`!V#r&*&e2(2bOrav?gH89>o-yk)C3esuy&VcZ`BcV6<(!KG9jn5C|ZSw*MSos+Rb*3|m*v5xMqTtCp_~`p{V(k?J!?tgaoU3^I5|CY5K< zf>b(4z-_zx2*NLKx*%PoUA(fNpDUIOU@6Ft@%NiYu7=?B?~6A8f~~EsOHonL22QVA zjuljtG?k^fA0imp2bt>o%vg??oC*r7)Ivwaac#z zq3Lf1r#Epq8A7c{Wvy@}&gjH98px%?3(->1S@8&MOl`UaK_Z(zOiQNLDL*l17=m8L%Hb!Fm1&kI5Gi9TQ!|mVoe{#!#@$Ogyd#yt$c!^<+=Q48Vn7r1VUY}+Amg*??!!OI*^2l5rz63MypG<9A-nL?-y^FOw1_^7twLxB(GS&* z>oSlNlhceag~*`Bsp>=1+P#ZLUBUypr5C;XW=_PV)IedL&(MHwZL{y|)G?6)<8uH< zZSNML_6h3LzpKjb15BEK-F)McV7U-wJ7ALTCqU@@DJ0k1Apt6$E`B#I+KT!y( u!?lJKttPO?y9WFs68sr&1?I1F04rw4w{R{R$dA4Tx0C)kNmUmPX*B8g%%xo{TU6vwc>AklFq%OTkl_mFQv@x1^BM1TV}0C2duqR=S6Xn?LjUp6xrb&~O43j*Nv zEr418u3H3zGns$s|L;SQD-ufpfWpxLJ03rmi*g~#S@{x?OrJ!Vo{}kJ7$ajbnjp%m zGEV!%=70KpVow?KvV}a4moSaFCQKV= zXBIPnpP$8-NG!rR+)R#`$7JVZi#Wn10DSspSrkx`)s~4C+0n+?(b2-z5-tDd^^cpM zz5W?wz5V3zGUCskL5!X++LzcbT23thtSPiMTfS&1I{|204}j|3FPi>70OSh+Xzlyz zdl<5LNtZ}OE>>3g`T3RtKG#xK(9i3CI(+v0d-&=+OWAp!Ysd8Ar*foO5~i%E+?=c& zshF87;&Ay)i~kOm zCIB-Z!^JGdti+UJsxgN!t(Y#%b<8kk67vyD#cE*9urAm@Y#cTXn~yERR$}Y1E!Yd# zo7hq8Ya9;8z!~A3Z~?e@Tn26#t`xT$*Ni)h>&K1Yrto;Y8r}@=h7ZGY@Dh9xekcA2 z{tSKqKZ<`tAQQ9+wgf*y0zpVvOQ<9qCY&Y=5XJ~ILHOG0j2XwBQ%7jM`P2tv~{#P+6CGu9Y;5!2hua>CG_v;z4S?CC1rc%807-x z8s$^ULkxsr$OvR)G0GUn7`GVjR5Vq*RQM{JRGL%DRgX~5SKp(4L49HleU9rK?wsN|$L8GCfHh1tA~lw29MI^|n9|hJ z^w$(=?$kW5IibbS^3=-Es?a*EHLgw5cGnhYS7@Kne#%s4dNH$@Rm?8tq>hG8fR0pW zzfP~tjINRHeBHIW&AJctNO~;2RJ{tlPQ6KeZT(RF<@$~KcMXUJEQ54|9R}S7(}qTd zv4$HA+YFx=sTu_uEj4O1x^GN1_Ap*-Tx)#81ZToB$u!w*a?KPrbudjgtugI0gUuYx z1ZKO<`pvQC&gMe%TJu2*iiMX&o<*a@uqDGX#B!}=o8@yWeX9hktybMuAFUm%v#jf^ z@7XBX1lg>$>9G0T*3_13TVs2}j%w#;x5}>F?uEUXJ>Pzh{cQ)DL#V?BhfaqNj!uqZ z$0o;dCw-@6r(I5iEIKQkRm!^LjCJ;QUgdn!`K^nii^S!a%Wtk0u9>cfU7yS~n#-SC zH+RHM*Nx-0-)+d9>7MMq&wa>4$AjZh>+#4_&y(j_?>XjW;+5fb#Ot}YwYS*2#e16V z!d}5X>x20C`xN{1`YQR(_pSDQ=%?$K=GW*q>F?mb%>QfvHXt})YrtTjW*|4PA#gIt zDQHDdS1=_wD!4lMQHW`XIHV&K4h;(37J7f4!93x-wlEMD7`83!LAX));_x3Ma1r4V zH4%>^Z6cRPc1O{olA;bry^i*dE{nc5-*~=serJq)Okzw!%yg_zYWi`#ol25V;v^kU#wN!mA5MPH z3FFjqrcwe^cBM>m+1wr6XFN|{1#g`1#xLiOrMjh-r#?w@OWT$Wgg6&&5F%x&L(6hXP*!%2{VOVIa)adIsGCtQITk9vCHD^izmgw;`&@D zcVTY3gpU49^+=7S>!rha?s+wNZ}MaEj~6Hw2n%|am@e70WNfM5(r=exmT{MLF4tMU zX8G_6uNC`OLMu~NcCOM}Rk&(&wg2ivYe;J{*Zj2BdTsgISLt?eJQu}$~QLORDCnMIdyYynPb_W zEx0YhEw{FMY&}%2SiZD;WLxOA)(U1tamB0cN!u@1+E?z~LE0hRF;o>&)xJ}I=a!xC ztJAA*)_B)6@6y<{Y1i~_-tK`to_m`1YVIxB`);3L-|hYW`&(-bYby`n4&)tpTo+T< z{VnU;hI;k-lKKw^g$IWYMIP#EaB65ctZ}%k5pI+=jvq-pa_u{x@7kLzn)Wv{noEv? zqtc^Kzfb=D*0JDYoyS?nn|?6(VOI;SrMMMpUD7()mfkkh9^c-7BIrbChiga6kCs0k zJgIZC=9KcOveTr~g{NoFEIl)IR&;jaT-v#j&ZN$J=i|=b=!)p-y%2oi(nY_E=exbS z&s=i5bn>#xz3Ke>~2=f&N;yEFGz-^boBexUH6@}b7V+Mi8+ZXR+R zIyLMw-18{v(Y+Dw$g^K^e|bMz_?Y^*a!h-y;fd{&ljDBl*PbqTI{HlXY-Xb9SH)j< zJvV;-!*8Cy^-RW1j=m7TnEk!l2#D%=3d`O~NC z)1{M_UNT$LSMkJ&?ga(KR#A~{wWeNs*?(;gv>c!_X1JPyvTVkTbd~At9a5^hWm?_+ zZcm!6tRx^93M!*i)2$u;fPZ7kv(N5pV6(K-E>RoU@vm?)gLi)L;6YCy5OB0=tY_}o zvuE(77((xuDt@k}=|ywqG)T+?*UapzJg!M@rA@HYy~8z2>#l2dhS%*xWu54}apT6NCMPF%4hDni zZns;rEUS|118=_hW)&LsxW^p<=b7EQb-O$>Gc(QQ0vs_C<9M3v&zs{Zd+0nxr| zzB$D0R<~;&_oY6Us}mNe08kkgGLvVjGs4fMIaj*eRxVxhK-pf8o*lCEZvw;>3PluXjd|9z8D3%gY;q6DC~!wXc26-=|L>)ul@p@n7=~95^tjva+(%*T4St2Pt#Z zBs)&M=jP_BGtWFzrKF^^s>Rq6bgqVE3(ul`*IoHUiraIm!JMiH1VW%uLR08-#e;Fy zpb-S6P5K6vl4DaxKwB9Mh1|O4P4>7RJ8=D#SzUhr{QV9{1>|t4N$vK_xp|{bJolA-XVy*9k3|--v6c-e@M4Iipdd39w^PH+W zd~{4rvfS7SfDrADaE)Nm6rk2)(s>w1X7UG|AEoeP3SO0^xh>l?f>g9j`&Sh=&pcx~ z-kXG>!lnMT{uUM%j)v|jC@7eCqMsZQ;l=KB;}9k4N_22+PbN{V6LhaJD0qSb+cu;x z%hYE3@bHcpL4#~}Sf++ChxI8X9F;CO)Y1B)#2s5SqUWVZL#n?JAd{!rx;tPRM!Lt_ zq0TaIC+ph<#l@xwS(zLS)&3uy%*EE0MGd^zbSC-)q}3E2_X=#X4#S2GtHM4LKAh;Z zCN(v6H~sdE(@{0~EV-zfIQLI_c4L5w^i;~&am5uQb&pn9Lo^dl2v0{8ba-qIdI%>8 zmIRa%Hi&@pn4=dAOFIBuw{)$}G!^dC_=DG8+pRM~TS<%*-|Cp{{2wcjpP%pP*s7+vQwu{>3#e5RY)_(aS&dfjKsuPuy*a*CGPA%Jh2s+VpD2Ghhob?{&t z8f$ImC%-(Q6(3H>gI8X8r4nEg;!#OSC*RCluwcQiJMX;nr^G>naA6eG84`^tPSMBE zZ=jvfDU%ui$}HCAptp+{nqioOJ#PGN(>6hj z7z@3f?9QG4U#fR`w(RU|g@e-Y^#81rM<0E3)e}!Vam#JD-F6mZ7z72NmC!2alu_-B z#YqhSb&ydXpe1bC)kJQJLxeJqQt!C%NKNb~yg)G*Bh9q&DDsjv=&y|pv{!2j2LNX! z_1>$ewls0l>NEf}x<_#7W^Endh^-kxA$B96bh{Cuu1F|8x>n218+176#=Hfe94%8+ zjw(jQ7qqOIMy1X^`|K>VXm`^zov4Jz;|UPY+xyW+A5}Ff_!TcMy6B>$s;a6!#1A9- zxx8!Ft|hV7kiTMA$EErO7hI46A9C>%f~*wn{p6ER1enJ)U2@4K{v$_@^n&+Z8m>Eh z`0$R^t5-Yk^LTU=6QH4x5%M89ZOaTx$$BH+<@P8Y3Hnu%BP#(X?yRhlYO+kqB9s$3 zXi2+lJn$Ymbm&~1{c)5Z!LbkaTq=gY7bnEQKh}y>TU#51c_jd9Da`xZqD6~7rEFxj zwWKSj4683gIhjn=b7?mZCnpITQfIl438op0B}kcdlv&AjG3Azi_~D0j=bd-nB%G4| z(g7KUOOYvk(?q$MJ-2?BLSU@2H6<772{|t zFZL@gk_1+r`!Erk*C5y$-bd+>m7rrgg9`u1g)UG@!Lk^tFRQjArxKF>#)Z;l;1_DUvM(_(X$ELpOHb{=OO zP4CHd=`+tf^X5%A-L#i6r^Cx1llL9ss_8Rl&J_Mc>U3t(j2$y(%uiW%>?~$loV1zz zm;e=N$%Ma=`*Yw!>eQ)Ib+nfjW6T5AuU~)B+i$B>|7E% z)UvB2v?Sn(B=OdT(cuKR_+PZW#&Vf~IUqniR>E;t2W#rYLQt8>J_#{FfZw(qfX1uO z%zwCNub#K&4aiI8C8!Z2MyPn34w|$f;1$wYV;;42>(=+@&71dNMn=Z3S?)X1q^xr( zA)&Oiv`Nr|!-o$ahQwBb2M><9@)A{FV+m2nH*MOqZfq+{r9WM^nIT!Cip4)A?4vUY zVis6VVzY%y#u6iW$m>B}8_?ay66OupUw^%qjTw%w5M7?ht&JZ)UI)Cc1i|{qOKzx2 z+ioV@05sLZJmcgGFTBvjBy6}J<3xjJ9>y|~N%EWLo_lT;W>K3|Zv#LXyggr=;RsB2 zc^okWaHhp>I!-{Qn4%O3kA(xflvHIXq^eoA>$|h<%3HpBi^=Sdnj~?H$Gw5%@H5+IuUogy#n!UN zV00s!ECNmd{V?|CVD2lnh{bI$)(z~v-GFUttb1+E!=_UsM~;kJy{xP(nKATd1_Ra8{Olz0iM#k_^&$Uxm+jU>1T z)hN=ZA+f5H-MMq;d)o?58WNSW6WR`)tfb?Z3}d_9ho$qw#0rL0km^{pd9>Fm;e$lUXu_IfK`?NRn7sQ8}EBp zWub+dYP(^eH?yOWrwB6y=IEO}WRLd2fy_o{QZtWmRad#jOMIy)-fFbyjZ zv=Rao{CfGi=p?UNS5jnf*D5jK}ueNn(9GWC-E+H@~2~Gj*)m}9LXtt z?tm6T(&tj>AQVZ}oNR;|N#@AS6Lj=ppI&v=S!a!Eh3V6xp zN5i(Lqw1p@;~dvYg#dS6r;h4(mrVuWN~L;}Y_VMhr5qiA7E`tWYMSuC%WycBBSlAG zKknlGYtRa4HzWXwgf(P}_yP1V0QW6yvU9j@Bqh0)o5e7O9q}G3l z83+c;-GmfbE+-!}YBv9&zfkoe9c76!m8H7xj2fw~IeoZFCyEkwl$_FW2P3fX1!Jjq>vHzwX$vV>vJ5BQ8anRzUJ%o25;gHhn>CZW}h)&#}$M z$bNyQ2>^G8WQkQIVJ+To4`Q0RI7Us2I@f@$hVu7vvAJmh#+8J(Ea1(g--D<`iA?+n z(7q&P_w3ozVfXIc({OZ}R*hWCI{1G>FGez=juK+(8Fk(4ln91fCRGdoi8hfWOqUg- zRwc&&Eu5`hve7t!*T0`ee+x+n>i{GZS5hZTj|-9R_cFd_p^0#jWB+Xg(1zlMr&NMW z1Sy@ppRyXy%c)oKmJ@O^0I=8NRlX#oqj>v(Po$@#-WwX?MDpYhIJX0JDo_T$YipFt z-$ALgOet>G217A{7TpX0c^_v$vW{664>CA^{`>`>e){RhmtTH)K1O}4=j46rB0qGKG)8GZ@J}`RMe$P08rSV%In+U z(7Gh=MyNjR;V6LlBNQ<;MtNwufSqJ|g zmC#^|JB}*Y=*3m>UAx@#dW|ZyZ!H%c(Cg$N>jYqODrz2kLXvUh2vRk`U7lYUBqY&< zh_?oCZG@v;jY$})Q+kg+$}?nya&_*i>_dl?wRRQo)D5L29aDl5zib9f*}}GT=~53N z5I5>y)HabU4b9{mj6LZ`ilq`FsYSY^#*i-Z2*Nb4oQQ-Vv=sfKB|AE$5O%xg<(FUn zIpD8NuzKY1FuEd=L>!x22o~+(jbZi%ut$88{gN#*(ZM%>_MX%0ThsFFWJ-ewQ9ay6rL85Q3!x^mhdw8BC#`o8Ne(*8{_?Sg4o$e z!GT;mV3Pp3sCGc=#B<{Sv_B0yGaEo}W)h03jb}3@5#N+8bK{7`K6U%;w=W|wf8f3M z-m9cuGf*}R_~f04ZT<-KmBA@PhR>H}XJ;phH;cd!Ngc5{rCPJ}$}6vI=L5;byrYZR z$>pcrW@Qp(Gy>?s;^GLSt5E9zl*ZT&Dhk`giOKU;q5_e7@TQa~ zKt=D~z5NK0NOp^kjQ~m*R321Pm0?*mKGby-a!`gIWo}uk(r@{#@)w?`%F4=BGR{(p zKUviUgQ~VJp!`ToFY2-;5LCQujE4-tB@!CtTar=@M1I~@le3tKd;fHCt%)ajt=bMHE>m|Wx!0CW8j&uw^ zNelm?wk-hn)Rrw<#`0n^;#I?pQ2qP&_vGZ{jNH3-??}oXUYfb(tSsrMR+lvx$MFp)`pCSHC4TQwRYph&;KBG z5MQ6n9zOi^ue0Xtti6j0Kb}dXHa2ZB_TuAg-1s-_C2^kOCb3y%fUbLSAy~h(zXQmj@zw95;W2(@5)*}Y`l1tM-$rKMoOw4y;aR~ z&#GipdD1!Kl*gZ<48Z9_y2`33MxP4Q;H8T?uc=m6dAYI=98hJucPeAkCS`3}uk6x8 z%5_>Ff}xmyN6HM|uXvZjz%=MIC}sC24eHGFkB6b1*S(d-&mp zGk@`mU(CJdo_k_?{L%GJ@pCUxjeq(OV**r0h4d_MWY2;<;z>9hELx_dshaQeLET zogJLy$*cO)f(!1bsx*H(sK+ohptsj7tzPE#r}VMT=sQR)soSml{Beb#tlZoVEr1+b zmZOtyxZ#HKE3UZ0lr`j*ngsIbR2IO$z%HEEu`jP8g!dD!MRW^Cns9}jsDwS72C%36 z>Q}##2@_dWiYoDc=5!^j$d4fmA`dX06W(ChER19(I7-=8r=!efBaB1zs|7^Fy2B&CfLr4iHA`t(&=?_8y!w(aiSl%AZWbQ~vHfMlUvnRPWp<7*x7 zUL>%@Q)Lm=3fanYL<_v|Sm}Mc_tri-xcg9*m+di+1UB$(ev+yU?6A@@4y*iuBQYUl zF@)6kF-yp~A8H0pDf(3tyKt%j=To%P3%hg*$7kTd4yZO!+t{bWkfgm6m5Fih=(~t< z^JHfMhm!5vwm8GvYg3Nu9-p@r%8OXlF0RtJ~#Iy;MX_X+aD zU=chx-O#@C!wux~KcP+o@C6+32>^{yt`gL`O`8x48d30`3qU0X=LH2#QTCT3J;`G5qU*z`lM)b^QaV8gqmQP(7+0efx@*dJqt>2q6cJ2#--?pEU+n>!52>9r15ZqVf?BrQu1)ftv&+pb_u2kl0ck=o0t z*94q0BGOde&O1sV) z=BL9ZT()f3_{A<;UuapOw+POkACz70eA^S~Mqz3R%LXR7p$J=8yP5391#0#cEr>?y@Da^pvB9UD-ubgEPZc|+`h*&cg$)du|t zyQ4#VYf>GsJlppK_J8_O$G806&P)hd|8FEYBg5*+NlaIh**_5QP9k2K(Gte+LbSrd z!Vyqjr15yiC!c(>guSE(N=p-l0mboi_=o)~$DIiP?Pk)CVWY~WOsrD^q%2mfCeFJ) z9uFiRmi0oj+=Ej&iA9t~s~cRqF^?v4|4x=X`yV5w8n+uq1+jF~JHz803w%_7g(DN` z=+Sk4D2z}MoI^l@4>ry5twvaQHo~oAQ+h02eVJXQwr8cODS7>rFRfCIPU)rsL0kPT zxJ6AhvQ*Z`j3Z4`o5zIIiybS}G$H^4dM0T*$~Gz2Zel^znpu@=xDHmCd#lRzD@u2z zO+q$b#_DFg2gqkb?KCze>|zh6gqHZp(YgBj@4r73iS-k6A&Hs zeFH00BksQY?vIu&TUJaPOZkAzX}6&uC%l+ZNS7g~`RMHEa{=cL$Pux`NiEERod9~! zX{Sllt9hbLF$sRgj`b;QnBEPT4Xy`5_d#(x;@$~KZ@lqF;DHAo_}#8uyB?8vZ>+?a zT?m1ER@VOG`s=SR<};V&*y`2fr%-+rYJCDu<^bM}OZGXmB{=}iU%l|xpA0>B3wt`J zfzcepHnZqNzWV6K@if7x?&TMlyexG(2&F3#XrkUZ%J)j4BOw*^r>epseF1W*+O%h@ z%1r61CJfEyM{X_km%1%#=9yWl+;6BqXH}`0!-lH*2oS3LM6m?wau ziNuN6rVO zVlQF5Jof8mGw$hMeDQ^aU!ViX6vm#Eot^FMhHA+>h}8%2qOc7*X7!@iDe(GSZK8WZ zw%(y&+lS@Lhfh48y~J~?g{c1gG_u<{@kXEWv zyy@y7G0?ie7F9Sj$1w|@4s7P4R0@(>!WJ34wc7pM160opmAGLb&u=>a*{7 zuS>P8^6H1HzXTlXVAR-nTfT_ZW$@+T`D_*`EG{mVpOn$rBBsgj9?7G%f-%{sq`sI0 zgln_>0N*cL*L?SH}^QB(_TiS|jXIq;{3k0N<&$_y9`ZU{}N? zom?vAuNA68xv92|_o~cv!}4ifwZFVluM2Hc6NdF+k;zouGW;sLhgYrMxtSkq;3st0 z34Iu+DV04XMxALTWw<((bu*`ADz#>^%KidXyNF#dr}N_C+GdPEq@OGDQllO)q8j6Q z@?twU;*};Qb???)!0A-yIs$GD#tTI?8~0RniU9K!Xn&-XunQ@;1;D???y4zxwN9Ur z`%RD1_oX4jW|ic&nV&uyIFC0q0zd zJ&A=%>nnzxdmTW0(BRu*-OEpUvKh(3t#<`1m#5ZpYgO!8stReLYT3O6lyQDS>1_Re z$E~s#n%03sre0plo_xz|?LAzf*6-S;3P<)-y}Ko;6`MD+;KT-KL$?lAn^whM({>#M z{z;e>&M%3}w;)PgQ;;2G1I9cyoxF+1D0W?I63bU=F=}!Z%!#+6)0HxgaS!7z$nBfk zn)aKPmB}D(@8i(BO>drY#u@w21W)YTxl^|FH8$d#7CwcppXFa@S-g1h6Wg|J`#bNT zs+B{N=iCE5g`oL6Ur*O2*cU6fYc?~(0Ilz}h@-?pmyQ^JIWhF7q;-&KXdyruwB4Sd zrPoylORB3w^MV2M@=(zFqmF7fSpwC>n?n5uGiMBk4(b1JhO}ml_UfyzZvOr6 ze}6x!em;3EVUWz&!;na^yZG4dMO14IqvNt!VoE77BsHX3C2G5*S&5cqh&%s3&`+R0 zLd_-#5)eKisD64%QHsRN7Jsy`-w`*U#L%KpX(IVtCjyvh!D3Y8WWq+Wg3(>>HA$Pf{sj6MdI#FdHaP$H zzyJOBu%Y5PTGEH^%kbTY8hZ-{j=~)r%3RJNU&2_9gyq;YNfdiK>|Vhvhd1g2Xj{`l z(buTVTEa-L5Te=yKrh5zJ`2DOpo|3RWh1MMMZkUplF70Y+UK>r1m>J?r#Qq+5)0lQ z^G;MIHm;d332}{`~QB+(Yq^fOt%-Q|6f4tt|vVLp?Qtn=?D z@OcNHFb8$peW=nX@mJ|H2dxP1+ubv1kjK!g0%gYML*M;d1q_r;%Z;YmU3c9j%zY9` z`Yv9hFh;;5AQihvZ03E?UPzcD=LRHu5Iy_tU+0JnXQsOlnq+Xm0 zXgWgD{y-?gJlTk{8xn@f2G;Fzgj$s9KNVStL$?8&vsFBW6&Yyqh8cp=3^LdHz9XU~>CUS^SEF~2L&m-8NgwI}V# z*d>YJ+5?IGy&h^wb8xD!5^@4V#c&V^$N3?Dx? zS<~-FSDEN>D@AjAYC@r>&RV(fyL0D;gO^1`wspsE$KT*_x#y+%#PQHoX_c`b_+9+y ztsjaCXq<>+w(#FhauXWz0ameF#Kx3|i#ztlowWL@12v={NdkN)zUf^3YyT0Rhy;~M zEJ^s{2nOfsIQ)r71*a*%>bzjbQ39=wcaO9bi7Dr@UsJvl5^zcdv~`|LU4&gQ#dLXU z0-=?MUC!nWRWwIRNYb>&zPs>uRW;`IhpTP1uRM65ENEUN;Jo>ne2@I>x3pj1M@zve z4I6+{q>V^2kvJy`oHXr7HR(sF9h}0Ea1x#i?<2f9uHcj|{ukF434@9ctEm70002ov JPDHLkV1gPVDLMcE diff --git a/astrid/res/drawable/astrid_com_logo.png b/astrid/res/drawable/astrid_com_logo.png index 933d4448d4c1ef1abb30594f9b31a44f99008df6..f7e1d30934f977bb281f37e214919a7e980b0286 100644 GIT binary patch literal 16718 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 literal 22460 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 diff --git a/astrid/res/drawable/icon.png b/astrid/res/drawable/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f3f1d6ba8c314eeda9c809da26ec15e9e65051b0 GIT binary patch literal 7760 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 WYEtZSaY_gP0000 { */ public boolean save(Task task) { boolean saveSuccessful; - Log.e("SAVING", "SAVING - " + task.getSetValues().toString(), new Throwable()); if (task.getId() == Task.NO_ID) { - System.err.println("Creating new"); saveSuccessful = createNew(task); } else { - System.err.println("Saving existing"); saveSuccessful = saveExisting(task); } From 11e8e5fa0b0b0852d9c87e4ad71c162324aa43e8 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 27 Oct 2011 15:09:57 -0700 Subject: [PATCH 04/15] Remove AB testing of things we've decided on --- .../astrid/service/UpgradeService.java | 4 -- .../astrid/service/abtesting/ABOptions.java | 50 +++++++++---------- .../astrid/welcome/SplashScreenLauncher.java | 38 +++----------- .../astrid/welcome/WelcomeGraphic.java | 15 +----- 4 files changed, 31 insertions(+), 76 deletions(-) diff --git a/astrid/src/com/todoroo/astrid/service/UpgradeService.java b/astrid/src/com/todoroo/astrid/service/UpgradeService.java index 68583c91a..58e027410 100644 --- a/astrid/src/com/todoroo/astrid/service/UpgradeService.java +++ b/astrid/src/com/todoroo/astrid/service/UpgradeService.java @@ -33,7 +33,6 @@ import com.todoroo.astrid.gtasks.GtasksPreferenceService; import com.todoroo.astrid.notes.NoteMetadata; import com.todoroo.astrid.producteev.sync.ProducteevDataService; import com.todoroo.astrid.service.abtesting.ABChooser; -import com.todoroo.astrid.service.abtesting.ABOptions; import com.todoroo.astrid.tags.TagCaseMigrator; import com.todoroo.astrid.utility.AstridPreferences; @@ -114,9 +113,6 @@ public final class UpgradeService { Preferences.setInt(AstridPreferences.P_UPGRADE_FROM, from); - if (from <= V3_8_3_1) // This needs to happen synchronously - abChooser.setChoiceForOption(ABOptions.AB_OPTION_FIRST_ACTIVITY, 0); - new Thread(new Runnable() { @Override public void run() { diff --git a/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java b/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java index 0f4ea9438..8df0fef67 100644 --- a/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java +++ b/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java @@ -4,8 +4,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import com.todoroo.astrid.service.StatisticsConstants; - /** * Helper class to define options with their probabilities and descriptions * @author Sam Bosley @@ -168,29 +166,29 @@ public class ABOptions { } private void initialize() { // Set up - addOption(AB_OPTION_FIRST_ACTIVITY, AB_OPTION_FIRST_ACTIVITY_PROBS, - AB_OPTION_FIRST_ACTIVITY_DESCRIPTIONS, AB_OPTION_FIRST_ACTIVITY_RELEVANT_EVENTS); - - addOption(AB_OPTION_WELCOME_LOGIN, AB_OPTION_WELCOME_LOGIN_PROBS, - AB_OPTION_WELCOME_LOGIN_DESCRIPTIONS, AB_OPTION_WELCOME_LOGIN_RELEVANT_EVENTS); +// addOption(AB_OPTION_FIRST_ACTIVITY, AB_OPTION_FIRST_ACTIVITY_PROBS, +// AB_OPTION_FIRST_ACTIVITY_DESCRIPTIONS, AB_OPTION_FIRST_ACTIVITY_RELEVANT_EVENTS); +// +// addOption(AB_OPTION_WELCOME_LOGIN, AB_OPTION_WELCOME_LOGIN_PROBS, +// AB_OPTION_WELCOME_LOGIN_DESCRIPTIONS, AB_OPTION_WELCOME_LOGIN_RELEVANT_EVENTS); } - - - public static final String AB_OPTION_FIRST_ACTIVITY = "ab_first_activity"; - private static final int[] AB_OPTION_FIRST_ACTIVITY_PROBS = { 9, 1 }; - private static final String[] AB_OPTION_FIRST_ACTIVITY_DESCRIPTIONS = { "ab-show-tasks-first", "ab-show-lists-first" }; - private static final String[] AB_OPTION_FIRST_ACTIVITY_RELEVANT_EVENTS = { StatisticsConstants.CREATE_TASK, - StatisticsConstants.TASK_CREATED_TASKLIST, - StatisticsConstants.USER_FIRST_TASK, - StatisticsConstants.ACTFM_LIST_SHARED, - StatisticsConstants.ACTFM_NEW_USER };//*/ - - public static final String AB_OPTION_WELCOME_LOGIN = "ab_welcome_login"; - private static final int[] AB_OPTION_WELCOME_LOGIN_PROBS = { 9, 1 }; - private static final String[] AB_OPTION_WELCOME_LOGIN_DESCRIPTIONS = { "ab-welcome-login-show", "ab-welcome-login-skip" }; - private static final String[] AB_OPTION_WELCOME_LOGIN_RELEVANT_EVENTS = { StatisticsConstants.CREATE_TASK, - StatisticsConstants.TASK_CREATED_TASKLIST, - StatisticsConstants.USER_FIRST_TASK, - StatisticsConstants.ACTFM_LIST_SHARED, - StatisticsConstants.ACTFM_NEW_USER };//*/ +// +// +// public static final String AB_OPTION_FIRST_ACTIVITY = "ab_first_activity"; +// private static final int[] AB_OPTION_FIRST_ACTIVITY_PROBS = { 9, 1 }; +// private static final String[] AB_OPTION_FIRST_ACTIVITY_DESCRIPTIONS = { "ab-show-tasks-first", "ab-show-lists-first" }; +// private static final String[] AB_OPTION_FIRST_ACTIVITY_RELEVANT_EVENTS = { StatisticsConstants.CREATE_TASK, +// StatisticsConstants.TASK_CREATED_TASKLIST, +// StatisticsConstants.USER_FIRST_TASK, +// StatisticsConstants.ACTFM_LIST_SHARED, +// StatisticsConstants.ACTFM_NEW_USER };//*/ +// +// public static final String AB_OPTION_WELCOME_LOGIN = "ab_welcome_login"; +// private static final int[] AB_OPTION_WELCOME_LOGIN_PROBS = { 9, 1 }; +// private static final String[] AB_OPTION_WELCOME_LOGIN_DESCRIPTIONS = { "ab-welcome-login-show", "ab-welcome-login-skip" }; +// private static final String[] AB_OPTION_WELCOME_LOGIN_RELEVANT_EVENTS = { StatisticsConstants.CREATE_TASK, +// StatisticsConstants.TASK_CREATED_TASKLIST, +// StatisticsConstants.USER_FIRST_TASK, +// StatisticsConstants.ACTFM_LIST_SHARED, +// StatisticsConstants.ACTFM_NEW_USER };//*/ } diff --git a/astrid/src/com/todoroo/astrid/welcome/SplashScreenLauncher.java b/astrid/src/com/todoroo/astrid/welcome/SplashScreenLauncher.java index a5b59404a..696e39f75 100644 --- a/astrid/src/com/todoroo/astrid/welcome/SplashScreenLauncher.java +++ b/astrid/src/com/todoroo/astrid/welcome/SplashScreenLauncher.java @@ -9,13 +9,11 @@ import com.timsu.astrid.R; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.astrid.activity.FilterListActivity; import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.service.AstridDependencyInjector; import com.todoroo.astrid.service.StartupService; import com.todoroo.astrid.service.StatisticsService; import com.todoroo.astrid.service.abtesting.ABChooser; -import com.todoroo.astrid.service.abtesting.ABOptions; import com.todoroo.astrid.utility.AstridPreferences; public class SplashScreenLauncher extends Activity { @@ -43,46 +41,22 @@ public class SplashScreenLauncher extends Activity { private void finishAndShowNext(boolean isNewUser) { if (isNewUser) { - int welcomeLoginChoice = abChooser.getChoiceForOption(ABOptions.AB_OPTION_WELCOME_LOGIN); - welcomeLoginPath(welcomeLoginChoice); + welcomeLoginPath(); } else { - int tasksOrListsChoice = abChooser.getChoiceForOption(ABOptions.AB_OPTION_FIRST_ACTIVITY); - mainActivityPath(tasksOrListsChoice); + mainActivityPath(); } } - private void welcomeLoginPath(int welcomeLoginChoice) { + private void welcomeLoginPath() { Intent intent = new Intent(); - switch(welcomeLoginChoice) { - case 0: // Show welcome login, then welcome screen - intent.setClass(this, WelcomeLogin.class); - break; - case 1: // Go straight to welcome screen - intent.setClass(this, WelcomeGraphic.class); - intent.putExtra(WelcomeGraphic.KEY_SHOW_EULA, true); - break; - default: - intent.setClass(this, WelcomeLogin.class); - break; - } + intent.setClass(this, WelcomeLogin.class); startActivity(intent); finish(); } - private void mainActivityPath(int tasksOrListsChoice) { + private void mainActivityPath() { Intent intent = new Intent(); - switch (tasksOrListsChoice) { - case 0: - intent.setClass(this, TaskListActivity.class); // Go to task list activity - break; - case 1: - intent.setClass(this, FilterListActivity.class); // Go to filter list activity - intent.putExtra(FilterListActivity.SHOW_BACK_BUTTON, false); - break; - default: - intent.setClass(this, TaskListActivity.class); - break; - } + intent.setClass(this, TaskListActivity.class); // Go to task list activity startActivity(intent); finish(); } diff --git a/astrid/src/com/todoroo/astrid/welcome/WelcomeGraphic.java b/astrid/src/com/todoroo/astrid/welcome/WelcomeGraphic.java index a5cffa569..aeb06369e 100644 --- a/astrid/src/com/todoroo/astrid/welcome/WelcomeGraphic.java +++ b/astrid/src/com/todoroo/astrid/welcome/WelcomeGraphic.java @@ -15,12 +15,10 @@ import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.astrid.actfm.sync.ActFmSyncProvider; import com.todoroo.astrid.activity.Eula; -import com.todoroo.astrid.activity.FilterListActivity; import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.service.StartupService; import com.todoroo.astrid.service.StatisticsService; import com.todoroo.astrid.service.abtesting.ABChooser; -import com.todoroo.astrid.service.abtesting.ABOptions; public class WelcomeGraphic extends Activity { @@ -99,18 +97,7 @@ public class WelcomeGraphic extends Activity { private Intent getNextIntent() { Intent intent = new Intent(); - int choice = abChooser.getChoiceForOption(ABOptions.AB_OPTION_FIRST_ACTIVITY); - switch (choice) { - case 0: - intent.setClass(this, TaskListActivity.class); - break; - case 1: - intent.setClass(this, FilterListActivity.class); - intent.putExtra(FilterListActivity.SHOW_BACK_BUTTON, false); - break; - default: - intent.setClass(this, TaskListActivity.class); - } + intent.setClass(this, TaskListActivity.class); return intent; } } From 94c49f02f77a0ece5e1411e05f33c3f63ae0296b Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 27 Oct 2011 17:57:51 -0700 Subject: [PATCH 05/15] Fixed a small bug with cancelling quickadded tasks --- astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java index b5db00239..f1b703e16 100755 --- a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java @@ -34,6 +34,7 @@ import android.content.IntentFilter; import android.content.res.Resources; import android.os.Bundle; import android.speech.RecognizerIntent; +import android.text.TextUtils; import android.text.format.DateUtils; import android.util.Log; import android.view.KeyEvent; @@ -601,7 +602,7 @@ public final class TaskEditActivity extends TabActivity { shouldSaveState = false; // abandon editing in this case - if(title.getText().length() == 0) { + if(title.getText().length() == 0 || TextUtils.isEmpty(model.getValue(Task.TITLE))) { if(isNewTask) taskService.delete(model); } From 5c9f3ddbf61898712d754e9e11d850856e37acd0 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 27 Oct 2011 18:43:11 -0700 Subject: [PATCH 06/15] Fixed some more bugs with task duplicates and autosync fails --- .../com/todoroo/astrid/actfm/sync/ActFmSyncService.java | 4 ++-- astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java index d3b42222a..67419d244 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java @@ -275,9 +275,9 @@ public final class ActFmSyncService { */ public void pushTaskOnSave(Task task, ContentValues values) { long remoteId; - if(task.containsValue(Task.REMOTE_ID)) + if(task.containsValue(Task.REMOTE_ID)) { remoteId = task.getValue(Task.REMOTE_ID); - else { + } else { Task taskForRemote = taskService.fetchById(task.getId(), Task.REMOTE_ID); if(taskForRemote == null) return; diff --git a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java index f1b703e16..8742882d8 100755 --- a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java @@ -433,6 +433,7 @@ public final class TaskEditActivity extends TabActivity { database.openForReading(); if(idParam > -1L) { model = taskService.fetchById(idParam, Task.PROPERTIES); + model.clearValue(Task.REMOTE_ID); // Having this can screw up autosync } // not found by id or was never passed an id From 43439d835d364b9a4d48a1414a7ed3a20d09d6af Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 27 Oct 2011 20:37:12 -0700 Subject: [PATCH 07/15] Reschedule alarms in repeat task complete listener --- .../todoroo/astrid/repeats/RepeatTaskCompleteListener.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java b/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java index 996f56a7a..e2352fa77 100644 --- a/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java +++ b/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java @@ -34,6 +34,7 @@ import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.core.PluginServices; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.gcal.GCalHelper; +import com.todoroo.astrid.reminders.ReminderService; import com.todoroo.astrid.service.StatisticsConstants; import com.todoroo.astrid.service.StatisticsService; import com.todoroo.astrid.utility.Flags; @@ -82,6 +83,8 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver { task.setValue(Task.HIDE_UNTIL, hideUntil); Flags.set(Flags.ACTFM_REPEATED_TASK); PluginServices.getTaskService().save(task); + ReminderService.getInstance().clearAllAlarms(task); + ReminderService.getInstance().scheduleAlarm(task); return; } @@ -114,6 +117,9 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver { GCalHelper.deleteTaskEvent(task); PluginServices.getTaskService().save(task); + ReminderService.getInstance().clearAllAlarms(task); + ReminderService.getInstance().scheduleAlarm(clone); + // send a broadcast Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_EVENT_TASK_REPEATED); broadcastIntent.putExtra(AstridApiConstants.EXTRAS_TASK_ID, clone.getId()); From a547762dda2585c961da0cf8683edfba8bf576d0 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 27 Oct 2011 21:16:34 -0700 Subject: [PATCH 08/15] Undid previous change --- .../todoroo/astrid/repeats/RepeatTaskCompleteListener.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java b/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java index e2352fa77..996f56a7a 100644 --- a/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java +++ b/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java @@ -34,7 +34,6 @@ import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.core.PluginServices; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.gcal.GCalHelper; -import com.todoroo.astrid.reminders.ReminderService; import com.todoroo.astrid.service.StatisticsConstants; import com.todoroo.astrid.service.StatisticsService; import com.todoroo.astrid.utility.Flags; @@ -83,8 +82,6 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver { task.setValue(Task.HIDE_UNTIL, hideUntil); Flags.set(Flags.ACTFM_REPEATED_TASK); PluginServices.getTaskService().save(task); - ReminderService.getInstance().clearAllAlarms(task); - ReminderService.getInstance().scheduleAlarm(task); return; } @@ -117,9 +114,6 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver { GCalHelper.deleteTaskEvent(task); PluginServices.getTaskService().save(task); - ReminderService.getInstance().clearAllAlarms(task); - ReminderService.getInstance().scheduleAlarm(clone); - // send a broadcast Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_EVENT_TASK_REPEATED); broadcastIntent.putExtra(AstridApiConstants.EXTRAS_TASK_ID, clone.getId()); From 4b2724396372b91c6e770b40d1213d892aaa1654 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Fri, 28 Oct 2011 13:20:21 -0700 Subject: [PATCH 09/15] gtasks api library version bump --- astrid/.classpath | 6 +++--- ...api-services-tasks-v1-1.2.2-beta-sources.jar | Bin 15775 -> 0 bytes .../google-api-services-tasks-v1-1.2.2-beta.jar | Bin 33329 -> 0 bytes ...api-services-tasks-v1-1.2.5-beta-sources.jar | Bin 0 -> 15847 bytes .../google-api-services-tasks-v1-1.2.5-beta.jar | Bin 0 -> 33450 bytes 5 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 astrid/libs/google-api-services-tasks-v1-1.2.2-beta-sources.jar delete mode 100644 astrid/libs/google-api-services-tasks-v1-1.2.2-beta.jar create mode 100644 astrid/libs/google-api-services-tasks-v1-1.2.5-beta-sources.jar create mode 100644 astrid/libs/google-api-services-tasks-v1-1.2.5-beta.jar diff --git a/astrid/.classpath b/astrid/.classpath index a84395ed4..37ef4fe40 100644 --- a/astrid/.classpath +++ b/astrid/.classpath @@ -17,9 +17,6 @@ - - - @@ -30,5 +27,8 @@ + + + diff --git a/astrid/libs/google-api-services-tasks-v1-1.2.2-beta-sources.jar b/astrid/libs/google-api-services-tasks-v1-1.2.2-beta-sources.jar deleted file mode 100644 index afe7b02aa42a69c943b01c4443a5480cf571304a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15775 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 Tk3Rs+@AoVS06-JlAHV(&*X^%U diff --git a/astrid/libs/google-api-services-tasks-v1-1.2.2-beta.jar b/astrid/libs/google-api-services-tasks-v1-1.2.2-beta.jar deleted file mode 100644 index ed071e8f1d8e45cef27af1466dcca616fd5228eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33329 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 C)RjvB diff --git a/astrid/libs/google-api-services-tasks-v1-1.2.5-beta-sources.jar b/astrid/libs/google-api-services-tasks-v1-1.2.5-beta-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..b2214dfa95586b9d81e729fb7ffb2081f5c6cf26 GIT binary patch literal 15847 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 literal 0 HcmV?d00001 diff --git a/astrid/libs/google-api-services-tasks-v1-1.2.5-beta.jar b/astrid/libs/google-api-services-tasks-v1-1.2.5-beta.jar new file mode 100644 index 0000000000000000000000000000000000000000..ef1ed074429fc6ed5be61e4f4c4e193c45b757ff GIT binary patch literal 33450 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 N0G5m9aQyM#{{fgy;MM>D literal 0 HcmV?d00001 From 2863a2810e18d4478cce329951f54a826e973217 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Fri, 28 Oct 2011 14:30:57 -0700 Subject: [PATCH 10/15] Fixed some bugs with simultaneous syncing --- astrid/plugin-src/com/timsu/astrid/C2DMReceiver.java | 4 ++-- .../com/todoroo/astrid/actfm/sync/ActFmSyncService.java | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/astrid/plugin-src/com/timsu/astrid/C2DMReceiver.java b/astrid/plugin-src/com/timsu/astrid/C2DMReceiver.java index bd034e572..1979531bb 100644 --- a/astrid/plugin-src/com/timsu/astrid/C2DMReceiver.java +++ b/astrid/plugin-src/com/timsu/astrid/C2DMReceiver.java @@ -74,8 +74,8 @@ public class C2DMReceiver extends BroadcastReceiver { new Thread(new Runnable() { @Override public void run() { - if(intent.hasExtra("web_update")) - if (DateUtilities.now() - actFmPreferenceService.getLastSyncDate() > MIN_MILLIS_BETWEEN_FULL_SYNCS) + if(intent.hasExtra("web_update") && actFmPreferenceService.isLoggedIn()) + if (DateUtilities.now() - actFmPreferenceService.getLastSyncDate() > MIN_MILLIS_BETWEEN_FULL_SYNCS && !actFmPreferenceService.isOngoing()) new ActFmSyncProvider().synchronize(ContextManager.getContext()); else handleWebUpdate(intent); diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java index 67419d244..967b91994 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java @@ -118,6 +118,8 @@ public final class ActFmSyncService { public void onModelUpdated(final Task model) { if(Flags.checkAndClear(Flags.ACTFM_SUPPRESS_SYNC)) return; + if (actFmPreferenceService.isOngoing()) + return; final ContentValues setValues = model.getSetValues(); if(setValues == null || !checkForToken() || setValues.containsKey(RemoteModel.REMOTE_ID_PROPERTY_NAME)) return; @@ -144,6 +146,8 @@ public final class ActFmSyncService { public void onModelUpdated(final Update model) { if(Flags.checkAndClear(Flags.ACTFM_SUPPRESS_SYNC)) return; + if (actFmPreferenceService.isOngoing()) + return; final ContentValues setValues = model.getSetValues(); if(setValues == null || !checkForToken() || model.getValue(Update.REMOTE_ID) > 0) return; @@ -162,6 +166,8 @@ public final class ActFmSyncService { public void onModelUpdated(final TagData model) { if(Flags.checkAndClear(Flags.ACTFM_SUPPRESS_SYNC)) return; + if (actFmPreferenceService.isOngoing()) + return; final ContentValues setValues = model.getSetValues(); if(setValues == null || !checkForToken() || setValues.containsKey(RemoteModel.REMOTE_ID_PROPERTY_NAME)) return; From 1afe1a51ffcd7b052ab25355d4f27c0492deb4c5 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Fri, 28 Oct 2011 16:19:18 -0700 Subject: [PATCH 11/15] Fixed a race condition where multiple syncs could be started simultaneously --- .../todoroo/astrid/sync/SyncBackgroundService.java | 14 +++++++++++--- api/src/com/todoroo/astrid/sync/SyncProvider.java | 4 ++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/api/src/com/todoroo/astrid/sync/SyncBackgroundService.java b/api/src/com/todoroo/astrid/sync/SyncBackgroundService.java index 533808fd0..f15794569 100644 --- a/api/src/com/todoroo/astrid/sync/SyncBackgroundService.java +++ b/api/src/com/todoroo/astrid/sync/SyncBackgroundService.java @@ -1,5 +1,7 @@ package com.todoroo.astrid.sync; +import java.util.concurrent.atomic.AtomicBoolean; + import android.app.AlarmManager; import android.app.PendingIntent; import android.app.Service; @@ -45,12 +47,15 @@ abstract public class SyncBackgroundService extends Service { DependencyInjectionService.getInstance().inject(this); } + private final AtomicBoolean started = new AtomicBoolean(false); + /** Receive the alarm - start the synchronize service! */ @Override public void onStart(Intent intent, int startId) { try { - if(intent != null) + if(intent != null && !started.getAndSet(true)) { startSynchronization(this); + } } catch (Exception e) { exceptionService.reportError(getSyncUtilities().getIdentifier() + "-bg-sync", e); //$NON-NLS-1$ } @@ -67,8 +72,6 @@ abstract public class SyncBackgroundService extends Service { return; getSyncProvider().synchronize(context); - - stopSelf(); } @Override @@ -76,6 +79,11 @@ abstract public class SyncBackgroundService extends Service { return null; } + public synchronized void stop() { + started.set(false); + stopSelf(); + } + // --- alarm management /** diff --git a/api/src/com/todoroo/astrid/sync/SyncProvider.java b/api/src/com/todoroo/astrid/sync/SyncProvider.java index 53cded1d1..7894d3917 100644 --- a/api/src/com/todoroo/astrid/sync/SyncProvider.java +++ b/api/src/com/todoroo/astrid/sync/SyncProvider.java @@ -11,7 +11,6 @@ import java.util.HashMap; import android.app.Activity; import android.app.Notification; -import android.app.Service; import android.content.Context; import android.widget.Toast; @@ -162,7 +161,7 @@ public abstract class SyncProvider { }); } initiateManual((Activity)context); - } else if(context instanceof Service) { + } else if(context instanceof SyncBackgroundService) { // display notification final int notificationId = updateNotification(context, notification); final NotificationManager nm = new NotificationManager.AndroidNotificationManager(context); @@ -175,6 +174,7 @@ public abstract class SyncProvider { initiateBackground(); } finally { nm.cancel(notificationId); + ((SyncBackgroundService)context).stop(); } } }).start(); From ed310f7e5faf215a2b86adbda93c38dba6d9c591 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Tue, 1 Nov 2011 09:43:02 -0700 Subject: [PATCH 12/15] Cleaned up unused code --- .../astrid/service/abtesting/ABOptions.java | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java b/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java index 8df0fef67..683d152e7 100644 --- a/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java +++ b/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java @@ -166,14 +166,10 @@ public class ABOptions { } private void initialize() { // Set up -// addOption(AB_OPTION_FIRST_ACTIVITY, AB_OPTION_FIRST_ACTIVITY_PROBS, -// AB_OPTION_FIRST_ACTIVITY_DESCRIPTIONS, AB_OPTION_FIRST_ACTIVITY_RELEVANT_EVENTS); -// -// addOption(AB_OPTION_WELCOME_LOGIN, AB_OPTION_WELCOME_LOGIN_PROBS, -// AB_OPTION_WELCOME_LOGIN_DESCRIPTIONS, AB_OPTION_WELCOME_LOGIN_RELEVANT_EVENTS); + //Calls to addOption go here } -// -// + +// Declare AB options like this: // public static final String AB_OPTION_FIRST_ACTIVITY = "ab_first_activity"; // private static final int[] AB_OPTION_FIRST_ACTIVITY_PROBS = { 9, 1 }; // private static final String[] AB_OPTION_FIRST_ACTIVITY_DESCRIPTIONS = { "ab-show-tasks-first", "ab-show-lists-first" }; @@ -182,13 +178,5 @@ public class ABOptions { // StatisticsConstants.USER_FIRST_TASK, // StatisticsConstants.ACTFM_LIST_SHARED, // StatisticsConstants.ACTFM_NEW_USER };//*/ -// -// public static final String AB_OPTION_WELCOME_LOGIN = "ab_welcome_login"; -// private static final int[] AB_OPTION_WELCOME_LOGIN_PROBS = { 9, 1 }; -// private static final String[] AB_OPTION_WELCOME_LOGIN_DESCRIPTIONS = { "ab-welcome-login-show", "ab-welcome-login-skip" }; -// private static final String[] AB_OPTION_WELCOME_LOGIN_RELEVANT_EVENTS = { StatisticsConstants.CREATE_TASK, -// StatisticsConstants.TASK_CREATED_TASKLIST, -// StatisticsConstants.USER_FIRST_TASK, -// StatisticsConstants.ACTFM_LIST_SHARED, -// StatisticsConstants.ACTFM_NEW_USER };//*/ + } From a158192c7f550fcec9aff1a137294c78f7853054 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Tue, 1 Nov 2011 12:02:37 -0700 Subject: [PATCH 13/15] Put in some basic recovery options for failed gtasks pushes. Hopefully this will reduce the number of failed syncs --- .../todoroo/astrid/gtasks/api/CreateRequest.java | 6 ++++++ .../todoroo/astrid/gtasks/api/MoveListRequest.java | 5 +++++ .../com/todoroo/astrid/gtasks/api/MoveRequest.java | 6 ++++++ .../com/todoroo/astrid/gtasks/api/PushRequest.java | 13 ++++++++++++- .../todoroo/astrid/gtasks/api/UpdateRequest.java | 5 +++++ .../astrid/gtasks/sync/GtasksSyncOnSaveService.java | 2 +- .../astrid/gtasks/sync/GtasksSyncProvider.java | 10 +++++----- 7 files changed, 40 insertions(+), 7 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/CreateRequest.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/CreateRequest.java index 2d922d24f..77e4fe304 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/CreateRequest.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/CreateRequest.java @@ -24,6 +24,12 @@ public class CreateRequest extends PushRequest { return service.createGtask(listId, toPush, parent, priorSiblingId); } + @Override + protected void recover() { + parent = null; + priorSiblingId = null; + } + public String getParent() { return parent; } diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveListRequest.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveListRequest.java index 70016fe4b..67ca106e7 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveListRequest.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveListRequest.java @@ -29,6 +29,11 @@ public class MoveListRequest extends PushRequest { return service.createGtask(dstList, toPush); } + @Override + protected void recover() { + //If there's a good way to recover, put it here + } + private void transferProperties(Task local) { toPush.setCompleted(local.getCompleted()); toPush.setDeleted(local.getDeleted()); diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveRequest.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveRequest.java index 6e3580902..e481d0437 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveRequest.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveRequest.java @@ -34,6 +34,12 @@ public class MoveRequest extends PushRequest { return service.moveGtask(super.listId, taskId, parentId, priorSiblingId); } + @Override + protected void recover() { + parentId = null; + priorSiblingId = null; + } + public String getParentId() { return parentId; } diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/PushRequest.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/PushRequest.java index 0d46e5a80..0b7cd23c6 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/PushRequest.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/PushRequest.java @@ -41,5 +41,16 @@ public abstract class PushRequest { this.service = service; } - public abstract Task executePush() throws IOException; + public Task push() throws IOException { + try { + return executePush(); + } catch (IOException e) { + recover(); + return executePush(); + } + } + + protected abstract Task executePush() throws IOException; + + protected abstract void recover(); } diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/UpdateRequest.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/UpdateRequest.java index c25cc1cdf..5bbe95c48 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/UpdateRequest.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/UpdateRequest.java @@ -20,4 +20,9 @@ public class UpdateRequest extends PushRequest { return service.updateGtask(listId, toPush); } + @Override + protected void recover() { + //If there's a good way to recover, put it here + } + } diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncOnSaveService.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncOnSaveService.java index 4243f0047..33094dc4f 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncOnSaveService.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncOnSaveService.java @@ -292,7 +292,7 @@ public final class GtasksSyncOnSaveService { } MoveRequest move = new MoveRequest(gtasksService, taskId, listId, parent, priorSibling); - move.executePush(); + move.push(); } private boolean syncOnSaveEnabled() { diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java index 9e9207e60..32b623c76 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java @@ -294,7 +294,7 @@ public class GtasksSyncProvider extends SyncProvider { String remoteSibling = gtasksMetadataService.getRemoteSiblingId(listId, t.gtaskMetadata); MoveRequest move = new MoveRequest(taskService, toMove, listId, remoteParent, remoteSibling); - move.executePush(); + move.push(); } } @@ -435,7 +435,7 @@ public class GtasksSyncProvider extends SyncProvider { CreateRequest createRequest = new CreateRequest(taskService, listId, createdTask, local.parentId, local.priorSiblingId); //updateTaskHelper(local, null, createRequest); localPropertiesToModel(local, null, createRequest.getToPush()); - com.google.api.services.tasks.model.Task createResult = createRequest.executePush(); + com.google.api.services.tasks.model.Task createResult = createRequest.push(); createdWithoutId.add(local); createdWithoutOrder.add(local); String newIdTask = createResult.getId(); @@ -499,11 +499,11 @@ public class GtasksSyncProvider extends SyncProvider { Log.e("gtasks-debug", "ACTION: move(1) - " + newIdTask + ", " + local.parentId + ", " + local.priorSiblingId); //This case basically defaults to whatever local settings are. Future versions could try and merge better MoveRequest moveRequest = new MoveRequest(taskService, newIdTask, idList, local.parentId, local.priorSiblingId); - moveRequest.executePush(); + moveRequest.push(); } if (request instanceof UpdateRequest) { - request.executePush(); + request.push(); } //Strategy--delete, migrate properties, recreate, update local AND remote ids; happens in MoveListRequest @@ -513,7 +513,7 @@ public class GtasksSyncProvider extends SyncProvider { Log.e("gtasks-debug", "ACTION: moveTask(5), " + newIdTask + ", " + idList + " to " + remote.gtaskMetadata.getValue(GtasksMetadata.LIST_ID)); MoveListRequest moveList = new MoveListRequest(taskService, newIdTask, remote.gtaskMetadata.getValue(GtasksMetadata.LIST_ID), idList, null); - com.google.api.services.tasks.model.Task result = moveList.executePush(); + com.google.api.services.tasks.model.Task result = moveList.push(); local.gtaskMetadata.setValue(GtasksMetadata.ID, result.getId()); remote.gtaskMetadata.setValue(GtasksMetadata.ID, result.getId()); } From bbdc7457317d7e6155cf333a815fe129f1a01a74 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Tue, 1 Nov 2011 13:10:51 -0700 Subject: [PATCH 14/15] Generate random passwords for new users as we do on iphone --- .../astrid/actfm/ActFmLoginActivity.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java b/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java index 724d8f21e..731624e1c 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java @@ -24,6 +24,7 @@ import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.security.NoSuchAlgorithmException; +import java.util.Random; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; @@ -63,6 +64,7 @@ import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.ExceptionService; +import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.actfm.sync.ActFmInvoker; @@ -91,6 +93,7 @@ public class ActFmLoginActivity extends Activity implements AuthListener { @Autowired protected ActFmPreferenceService actFmPreferenceService; private final ActFmInvoker actFmInvoker = new ActFmInvoker(); + private Random rand; private Facebook facebook; private AsyncFacebookRunner facebookRunner; @@ -134,6 +137,8 @@ public class ActFmLoginActivity extends Activity implements AuthListener { setContentView(getContentViewResource()); setTitle(getTitleResource()); + rand = new Random(DateUtilities.now()); + noSync = getIntent().getBooleanExtra(EXTRA_DO_NOT_SYNC, false); facebook = new Facebook(APP_ID); @@ -233,6 +238,7 @@ public class ActFmLoginActivity extends Activity implements AuthListener { isNew.set(!isNew.get()); int nameIndex = body.indexOfChild(name); int visibility = isNew.get() ? View.VISIBLE : View.GONE; + int passwordVisibility = isNew.get() ? View.GONE : View.VISIBLE; toggleNew.setText(isNew.get() ? R.string.actfm_ALA_pw_returning : R.string.actfm_ALA_pw_new); dialog.get().setTitle( @@ -240,6 +246,12 @@ public class ActFmLoginActivity extends Activity implements AuthListener { : R.string.actfm_ALA_login_title); body.getChildAt(nameIndex - 1).setVisibility(visibility); body.getChildAt(nameIndex).setVisibility(visibility); + + EditText password = (EditText) body.getChildAt(nameIndex + 4); + String passwordText = isNew.get() ? generateRandomPassword() : ""; //$NON-NLS-1$ + password.setText(passwordText); + body.getChildAt(nameIndex + 3).setVisibility(passwordVisibility); + body.getChildAt(nameIndex + 4).setVisibility(passwordVisibility); } }); toggleNew.setText(R.string.actfm_ALA_pw_returning); @@ -259,6 +271,10 @@ public class ActFmLoginActivity extends Activity implements AuthListener { R.string.actfm_ALA_password_label); password.setTransformationMethod(new PasswordTransformationMethod()); + password.setText(generateRandomPassword()); + body.getChildAt(body.indexOfChild(password) - 1).setVisibility(View.GONE); + password.setVisibility(View.GONE); + dialog.set(new AlertDialog.Builder(ActFmLoginActivity.this).setView( body).setIcon(R.drawable.icon_32).setTitle( R.string.actfm_ALA_signup_title).setPositiveButton( @@ -282,6 +298,16 @@ public class ActFmLoginActivity extends Activity implements AuthListener { } }; + private String generateRandomPassword() { + String acceptable = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*(),."; //$NON-NLS-1$ + char[] chars = new char[8]; + for (int i = 0; i < chars.length; i++) { + char r = acceptable.charAt(rand.nextInt(acceptable.length())); + chars[i] = r; + } + return new String(chars); + } + private EditText addEditField(LinearLayout body, int hint) { TextView label = new TextView(ActFmLoginActivity.this); label.setText(hint); From 61434b7b749eb4ecd89cbc9bd882f481d3b3fdbd Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Wed, 2 Nov 2011 17:15:03 -0700 Subject: [PATCH 15/15] Cleaned up code, better random password generation --- .../astrid/actfm/ActFmLoginActivity.java | 19 +++++++++++++++++++ .../astrid/gtasks/api/MoveListRequest.java | 1 + .../astrid/gtasks/api/UpdateRequest.java | 2 +- .../astrid/service/abtesting/ABOptions.java | 10 ---------- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java b/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java index 731624e1c..7386f05cf 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java @@ -301,13 +301,32 @@ public class ActFmLoginActivity extends Activity implements AuthListener { private String generateRandomPassword() { String acceptable = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*(),."; //$NON-NLS-1$ char[] chars = new char[8]; + char last = 'a'; for (int i = 0; i < chars.length; i++) { char r = acceptable.charAt(rand.nextInt(acceptable.length())); + while (checkSimilar(last, r)) + r = acceptable.charAt(rand.nextInt(acceptable.length())); + last = r; chars[i] = r; } return new String(chars); } + @SuppressWarnings("nls") + private boolean checkSimilar(char last, char check) { + String iSimilar = "ijl1!"; + String oSimilar = "oO0"; + String puncSimilar = ".,"; + + boolean match = (iSimilar.indexOf(last) > 0 && iSimilar.indexOf(check) > 0) + || (oSimilar.indexOf(last) > 0 && oSimilar.indexOf(check) > 0) + || (puncSimilar.indexOf(last) > 0 && puncSimilar.indexOf(check) > 0); + + if (match) + return false; + return true; + } + private EditText addEditField(LinearLayout body, int hint) { TextView label = new TextView(ActFmLoginActivity.this); label.setText(hint); diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveListRequest.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveListRequest.java index 67ca106e7..d2a00174b 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveListRequest.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveListRequest.java @@ -32,6 +32,7 @@ public class MoveListRequest extends PushRequest { @Override protected void recover() { //If there's a good way to recover, put it here + //Since MoveListRequest isn't actually used at the moment, it's probably fine for now } private void transferProperties(Task local) { diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/UpdateRequest.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/UpdateRequest.java index 5bbe95c48..5ee27f300 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/UpdateRequest.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/UpdateRequest.java @@ -22,7 +22,7 @@ public class UpdateRequest extends PushRequest { @Override protected void recover() { - //If there's a good way to recover, put it here + //Figure out a good way to recover! } } diff --git a/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java b/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java index 683d152e7..b037f6215 100644 --- a/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java +++ b/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java @@ -169,14 +169,4 @@ public class ABOptions { //Calls to addOption go here } -// Declare AB options like this: -// public static final String AB_OPTION_FIRST_ACTIVITY = "ab_first_activity"; -// private static final int[] AB_OPTION_FIRST_ACTIVITY_PROBS = { 9, 1 }; -// private static final String[] AB_OPTION_FIRST_ACTIVITY_DESCRIPTIONS = { "ab-show-tasks-first", "ab-show-lists-first" }; -// private static final String[] AB_OPTION_FIRST_ACTIVITY_RELEVANT_EVENTS = { StatisticsConstants.CREATE_TASK, -// StatisticsConstants.TASK_CREATED_TASKLIST, -// StatisticsConstants.USER_FIRST_TASK, -// StatisticsConstants.ACTFM_LIST_SHARED, -// StatisticsConstants.ACTFM_NEW_USER };//*/ - }