From b6611131dbc3534a965ef88f365295d101c56a2a Mon Sep 17 00:00:00 2001 From: rfc2822 Date: Wed, 30 Oct 2013 11:37:27 +0100 Subject: [PATCH] Main activity, minor changes * Main activity with description and links * Decrease MAX_UPDATES_BEFORE_COMMIT to 25 (may fix #25) --- AndroidManifest.xml | 18 ++++-- res/drawable-hdpi/ic_action_new_account.png | Bin 0 -> 711 bytes res/drawable-hdpi/show_sync_settings.png | Bin 0 -> 2667 bytes res/drawable-hdpi/view_website.png | Bin 0 -> 3407 bytes res/drawable-mdpi/ic_action_new_account.png | Bin 0 -> 554 bytes res/drawable-mdpi/show_sync_settings.png | Bin 0 -> 1528 bytes res/drawable-mdpi/view_website.png | Bin 0 -> 2012 bytes res/drawable-xhdpi/ic_action_new_account.png | Bin 0 -> 902 bytes res/drawable-xhdpi/show_sync_settings.png | Bin 0 -> 2719 bytes res/drawable-xhdpi/view_website.png | Bin 0 -> 2703 bytes res/layout/activity_main.xml | 15 +++++ res/menu/main_activity.xml | 6 ++ res/values-de/strings.xml | 52 ++++++++++++++++ res/values/strings.xml | 56 +++++++++++++++++- res/xml/account_prefs.xml | 6 +- src/at/bitfire/davdroid/MainActivity.java | 51 ++++++++++++++++ .../davdroid/resource/LocalCalendar.java | 4 +- .../davdroid/resource/LocalCollection.java | 9 ++- .../davdroid/syncadapter/SyncManager.java | 2 +- 19 files changed, 201 insertions(+), 18 deletions(-) create mode 100644 res/drawable-hdpi/ic_action_new_account.png create mode 100644 res/drawable-hdpi/show_sync_settings.png create mode 100644 res/drawable-hdpi/view_website.png create mode 100644 res/drawable-mdpi/ic_action_new_account.png create mode 100644 res/drawable-mdpi/show_sync_settings.png create mode 100644 res/drawable-mdpi/view_website.png create mode 100644 res/drawable-xhdpi/ic_action_new_account.png create mode 100644 res/drawable-xhdpi/show_sync_settings.png create mode 100644 res/drawable-xhdpi/view_website.png create mode 100644 res/layout/activity_main.xml create mode 100644 res/menu/main_activity.xml create mode 100644 src/at/bitfire/davdroid/MainActivity.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index ec97e105..92004f4a 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -20,9 +20,9 @@ android:allowBackup="false" android:icon="@drawable/ic_launcher" android:label="@string/app_name" - android:theme="@style/AppTheme"> + android:theme="@style/AppTheme" > @@ -33,7 +33,7 @@ android:resource="@xml/account_authenticator" /> @@ -48,7 +48,7 @@ android:resource="@xml/contacts" /> @@ -61,7 +61,15 @@ + + + + + + diff --git a/res/drawable-hdpi/ic_action_new_account.png b/res/drawable-hdpi/ic_action_new_account.png new file mode 100644 index 0000000000000000000000000000000000000000..f6e902f51af97ec589c25d55b305d68f6f473e6f GIT binary patch literal 711 zcmV;&0yzDNP)3%|5ke3lQh9y#9BzQofkc;t$v*L+aQ84e-1jVhJgU67vmBD1FK9mJvp&4u z!Soul@xZ5VjR1h2gzdjfk0OK_d=@T1SHjj4{M;%5JPF%djC($WhDko+b|xpmj-*)6 zKyHCMfq!JRFB3w;NC9>dJHWp1xyiFS)g1y~I-IIJFzFT`GToP1iijF$+3ka}0^RP;?w$Mdk2yEJ*=*~+ zW_B0nB$Jt)z4tf2-}iUU_q=`=n$nb}G^Hs`Y04W^+-#YMhy*|YR8`fF`rZL){`>zM zfJDRrfvQ&R?>68>zyql2zTCB8qk)yAh{U?=L5i}?d$3UhA0BB0=KK` z?t0HRY&1Z9eSKa;J_~%rv}U54lmZ1{U3+``bA5e%FN=ul>+5^NXwZ9rF9XBl*dPzg zw->-+yU&@{wF1|u>c8tX-$Elz3z!Fd(X=2Oho*$UW}w?bfR6zkIqk0iUjeSJ*Sv#9 z@(%C?TbLgQI7Q%2Reb<>1vsdx8-YLDyuH1jA|fB2^CT@I3xQjK*Tw#faP3N2jnVfGXF`i9n10J)_Bf0N0Z}%7DpG@1%1m0AS z4R0hsYmH#X^P3f5)fjWk0653S$|M2KweVqDK`Jy5p!pNHwgPmD$b+idD&l4F2S7l+eG6PqkZ6$6Hx*BUD$I536ZnOTxHH(j0N#97&xw;;7q#)jWVmt%&d;54GV$WOuIfwtshn~P_l|*U;yt2?gIX* zs)LP+P23EbmA6ITtEyXa_nrj28#viGX1~QZyH$0-h`8=rGwlH7H0OLHrtwoF# zzV1}j?rAcsc?M2usmsarGOo-os_L)DxYv(!6P7#YhT}LslhKMsZ?rF)#{oxYfb}B%K?-E=R{G|Vj#AZ%jK$wd?HQL8@%^F1}K$E z#k!JoW*Yy)Tg|gEi@;V@y>%icwR-jHaL0}vRS|i>OvhPyq^GsD^}3;y95i%{tlR@H zXD7fWN&Ze%Ul5U>1J_!4Brr{Q(YWV6K!KMHgjV1bU=6h+H7}S3XY|qPoVy{8~r>gcl=WeylYNd82fGCQ>dIOYc$0NX>sGYue4A=_Xtf~)B zrR-_pKmkaTBnhY;Uhu%*<2Zg!MB0IGa`dog3(#(B7&5TF-__Msh~s!0&}a7xfcHKv zl}ZImdZ*vSvJ!);-hR9=U^3vWU%%cB3=EuZi~S(5KIehTcG>sLWQqpR{i=G8h9f{rJ0c=Q@BL%Ir!4%a zMp3jPj^h{2oU-FEhi&|&W^yxAlb)y~NkXAez&NGVOeo_r-__OC;=SLOi?tR7L9o<% zZK0};P&-gn%y=>k!vj$iEza>~7Tvc_R4Ha0pdbiXvSi7iMd6Q9>%Mwh$Z(}n>FVj} z={F6i0>v~9Xo$#Gl} zcq_G|y^CsAt=C0SbguXQI!iI;+XDNIn^NPi6PX74yfm5CbTHch za?Yj2V)1$4S)1S4BCs-{Cwb-X_`JAhT*XHK5@~XA!s@IHan{oCnC7hc|Mx9i3Wmw}9Fs35zXe>NWFfGrnoF3g=>uKJ=1B;|GEu zxN>-ScyQ;=opmpF)SIL+^QoHaUI_flIrl>Y1J zkR+LSXK2=u^z!A)hk-4?hm4HxP}N`b_V(^+Z*Sim1i^0a{d+ljxFIp%u2R*z`}+F! ztX#SB(KJm9)E<900DLV?(<3`~?wqhEn{^tbs#PnEZV1EhqpEtZ#YTAV!*aR2%QS^t zaqM|j-BT)+3IHP`BTiK}1wn9e5Cqq%>VN8SJZ~m>$mK}ejq(30MdV%)xkp6q7m?45 zLH2H}@#ee+Wu@2b^Kr_gF84k#`k(pxrqZY^%uyw~$8xOK%)4!&DNSigQ<~D0rZi<@ Z@?X+ugA_C{&wBs>002ovPDHLkV1jl15qkgt literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/view_website.png b/res/drawable-hdpi/view_website.png new file mode 100644 index 0000000000000000000000000000000000000000..41795172aec9dd38f734d74e23ba4d50d5ae435f GIT binary patch literal 3407 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 literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/show_sync_settings.png b/res/drawable-xhdpi/show_sync_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..a50d98471ff97422443848753304ca7b7c8d0eaa GIT binary patch literal 2719 zcmV;Q3Sjk#P)fQh;Uqv0W;yM5i$?V^j)x`bGE?k-Sv+1<7~ow@h;N6*;H z-5IuNr=4l%ev?VlIWzb1{r=AHbUb81@vL&9QQPv6H4nj&np#Bf(U1K_+xe*evR)&NBXFx7TV3$Sq+1ngYk z*ynd>S@k(w}ku^^K6!3UWSHcw}AK>vy z*B_#mEng`$QfUJeHAwz=HCTQ{1*j1DQzqM~nth=a5nvJIPXWIGlFaUso^QH3VRHPw zYS;@}Q2`c9e%Ni86|OUwT?bAwx7adaUhe~=)%sk(vI|g7@>df?O#UhtASSIgJg}7U&;%dQYjZCD@gvhvAXbU zNy*=|X;TxhrpQoBPft%pw(2J;X!*}5rAEt0?x{f#+$w~4A(zVy?%A{FgvXA8AV>kN zMZW&2TrSrF9EuKX*svj4UtfQb)_OxSnS8Lfw|AzToLLogJALJPDkYsxC$!c-HAUHl zQp&SZsni>pOlCSHP%H3N;4?)Iaf;UZXeyO@E0f9ip?f;hvaFkcuLEc1^Z8EC^IoaC zENFo~e|tG*Ku=FkGMmjlY+Q>DyH_E^JyOcOzVF`#oMjBIl-mt}JTR=3+MZ6QFVb4y zWZn<+m1$^bxMkO_T{BhTf-2n4C!5V)V1lTQ4Eb8?JAB`l!0`}~vWVdY=KXqLv*S2h zwAMb5jeJf6>$2JGdSGw0#DMvb-v{i9yjPZ8XiBM_j^muq?B?5S#9EJs{;xBC{{!p; z4x7)c1I`7`27EIM@+D4JFNAp3b=|$?GN9$!oI6p@fLla_-#Cu*Ss)d08UH5^_?r;o zw^LJ7GfhoRf!1>q=E#vFvbD7}>HGc-z-CjV6^obua$WbC6;X&Sdp<4YJwXusJY?ww zcjE~me(AdIzED7J)LOR)A+(h8!?Cfk8Q>UjzvDPB1J?teh=@78X3d)0%6;97&Vp>) zp3l?lqn_t2X{DLTWRBXleYTke1><^KYkj9u$}{n*!?x|~wbqvbUj{DGTKCwt{ke{g zj(_jpzyG-Bd7f?CLx2Oc6xtQQpZfax_N<6XxDqgFX80+a$*o(r-aI@!eAtkG4e)E= z^T0X4X~5~m|9{c<{oke2=}V1EJD5l$ZVSZ_4Rl<5@x^8L7|Y>;rdWpEZd&Veflr45 z@k96Bcc1R;?6jJjo3{bil<@5Z(z@mxQvH{l4$-254?>-pK5ae#}H%Z{eXp5lKh4`Mz(PWB!G?hc<-o`&+AV z20Z^UVWwCrug&@aD+KNWpzvZ%Edm^z@B}hK9Sd*=#d#mvKdf z@r2g;$H0wBsVT>C_A&eT>8-<~0*-7f31J0t+rP4rW5Lq(E}3 zsV^o^a;`wih10m=1Q0@qdBmi&VyE&CJYPTg0t>Cn7+?b=^KQc3x!0SwMq1 zcO$U3uC6X$Gp&e$fq_H7O`!n#C1%%o&k1Ean}Gh;Uw?htahx&0F1RkO_0^8!Y?M;o z3p52ma0hTIAMKXD5jy4OPVYSfQjd6^SGLr8 z)wCjn5U+*|%9c{50bJMpC-AHxumC@l#pp;{{@bCUp@ZiCOPTuxmjLLEdqJfI*vD+I zzmO^2(B0jgG`*eYfJY*=LbMjj3n6}`lzP$B8@AT^>d+N%Hs z95L3di@Y$i=MeB$rPSp@h`X3w+z}DJ-cBZyZaf1**tl_{NF)-s18HNyf0R-_F*G!E zJQR4>Xsxf*T3=P-Fpml$UU6MF7Ygj_wAR~z%ghXVSt+$WPD3L&c<>;$Z7ZNnO8K*V zKEHE#csLhHQ)g`3&H_D={t&?XmSsITG&D3B`Ob8Ed;74IazF@?O(YVJ?BBmXDCf1W znr$gcsbkDOMOpf06N&L$F82X*J0}YGuaxq`V&B=ldv~6>-P>hHP5o$Je}DfpAMN`W zaHPM#-><|q)#9%v21T-;$x2;Jq6P(c!Bn|9L%slBB}R-GF=E7s5hF&77%^hRh!JD; ZZh7CLyuefjH(P(yeW_M;KTl+OSPP;oh zzwiGy-^>9$_0&^OJ@wR6Pd)Y2Q%^nhbdzY~ZG36Yc?=-dzRrXYSg>f zV9&dv48U9naekv1KoUQ)1U@6v5d+vFUm%1K(-NNnGGX`Vuk9GKtI&vzj)9K>OdOnP z4&VsDHh>)ktV1D0?l9&901qupTnb>?rH|O?5d0l7H<5*XPUyNNML@A8tw&8jA`LmP zVESALv3MsKz&VcqjBBK?kmd-$2?0M;q`r(!g%ERxcNtkcQx$|0TTN?9n}NaK0Yt%;1s~z!dWMQq+e%pFecpU5c~|l_dp8&W+ zs{U_^bZ!eFW>U&jO8J5@28v+HMU=5KDdlSmKQw7Et=j-TVvIePQog#j8c+lNp%9`l zDMb#z04zxIIe?WC%Yz*3NtN@ibCLx9zGHHBN+vP5CfxD}egt5T5+L2|d@qE^IOj2A zYy#jT`u-&W{5dh?Ie=Zp7-x*Vlu~9=$`xbmF982A4ErA`Wm+Q;dk)TeCWQExlrm+E z{Q}@a0Pky>aGx>uOP$tTg$9fb6U|9-CYV@9(m}Kdp=87h87r>teQ=v-kG2Q=}fq4a(dP!kbmW)x2 zY3yirE}1$ZM9w)s2JnS8{(y77<0Dzy^Z7k0hOpZuV{BbifG6HGOtAyws9$WzxE! ziDqOPo@lLNRh>GEYOryyS#IreVM< zF!IWPs4WAk+W$y>cN^4o>VTiBc?y}5i2~LM)}3?v1}2k-0qM_*{(BJKK211hJy@O4(GN#08g*ST&f^72Gbd=HyxrirFCV{bkpxE-508J?iSGyl#LpaGO%se1RTo$#Z zHCTDkfDk?WBZS`@AjmAtN`&AH>-7ZY5rY_)*A2WD<9wKefrr?>)&bYmb}G6b3I{8& zUIRE1LOk{Tf^B@j9f}6(8lw`d8>sYk*Kr4Yo;s964wW+ds;iBCZ5Y7FaeZ5nH9juX zmUCW6)VyU$!IqqNN7h9>ob$vtV_Zy-$)?4$l4NqOj}11Hp~dQvYxo)9nT*aodn=L z*FhY!n<&GS*rHoD(s6;Z9B!QQ8J}}vAD4EL^as63?@n%@B*A@qP_;RjESvyLN`PtFTV%GGmp*H2{Ioxad zY17Dr?mI6uh-&v^4`JuPMJr8v$k3vNzHu>*OoOWy-0|oimRNT(wAKR0>xTyEKku9Y zM6TH_b8X$Lp}PS>$tvmJGT8oB8UCgRDRhl}cRey-+ru*=8=)xa;7Hq^Gv{MHVCv`; z6OURj=a6d0?DOB@ccB}ld%LiHI&SHl2`(_Q=lYr4Ui?(@CwoM>Yd zJ*#>X@6>0N)$5UEQp#71vFBJH$aLE#0+CV*2jC;d*yjk-+VVkh{24KLPn$z=f{XMy zsP{AD9GQ^WGC(=pBSAQN!5I4(>jOd%8hqbAKs84a>r=6OwXhf9hi>HEGbCEUzz@a% zjR~uk;1>x{*Gr9s!wm+0PzESWIIaj$w=BZZ5w51uYl-zvDK^iuFNHOT#^* zj)8x-4(~Q(uT{s_XIL-3EU~Vfe%Uej@9y#ShU~J7-7&UwGk(CKB%$hm!sM!{{}G>S zLjBKJT{G%`$nE+v=AHQ|!=8HTsi&TL>Zzxmdg`gCo_e}j^nV*KUpz31;^F`R002ov JPDHLkV1nww>*N3c literal 0 HcmV?d00001 diff --git a/res/layout/activity_main.xml b/res/layout/activity_main.xml new file mode 100644 index 00000000..3762dcc0 --- /dev/null +++ b/res/layout/activity_main.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/res/menu/main_activity.xml b/res/menu/main_activity.xml new file mode 100644 index 00000000..257651ea --- /dev/null +++ b/res/menu/main_activity.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 74c1f4aa..09af7149 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -25,4 +25,56 @@ Ein oder kein Adressbuch auswählen (nochmal berühren, um abzuwählen): Kalender zur Synchronisation auswählen: Präemptive Authentifizierung (empfohlen, aber nicht kompatibel mit Digest-Auth.) + + Hilfe zu DAVdroid + Sync-Konten anzeigen + DAVdroid-Website + Willkommen bei DAVdroid! + +

DAVdroid ist ein Android 4+-CalDAV/CardDAV-Sync-Adapter. Um ihn zu verwenden, müssen Sie ein DAVdroid-Konto + für Ihren Server hinzufügen. Die Kontakte/Termine werden dann automatisch in beide Richtungen synchronisiert.

+ +

Wenn Sie DAVdroid über den + Play-Store bezogen haben und Android 4.1 oder Samsung-Geräte (wie zB das Galaxy Note, Note 10.1, S2, S3, S4, …) + benutzen, müssen Sie möglicherweise den + DAVdroid JB Workaround + installieren, um Datenverlust beim Neustart zu vermeiden (dies ist ein Android-Bug).

+ +

Weitere Informationen erhalten Sie auf der DAVdroid-Homepage. + Dort finden Sie auch eine Anleitung zum Einrichten + DAVdroid ist auf den Schutz der Privatsphäre ausgelegt (siehe Datenschutzrichtlinie).

+ +

Bei Problemen lesen Sie bitte die häufig gestellten Fragen. + Im Falle eines Fehlers, der eindeutig durch DAVdroid verursacht wird, berichten Sie diesen wenn möglich auf + Github Issues, anstatt uns direkt zu kontaktieren oder die App + schlecht zu bewerten.

+ +

Open-Source

+

DAVdroid ist von Anfang an als Open-Source-Projekt ausgelegt. Der Quellcode kann jederzeit selbst kompiliert und + die App unter den Bedingungen der GPLv3 verwendet werden. Der Quellcode ist + auf Github verfügbar, die App kann auch + über F-droid bezogen werden.

+ +

Es ist jedoch viel Arbeit, die App zu entwickeln und besser zu machen. Daher haben wir uns entschlossen, sie + auch gegen eine kleine Gebühr in die Stores (Google Play, + Samsung Store) + zu stellen. Wenn Sie das Projekt unterstützen wollen, können Sie + für DAVdroid spenden oder die App kaufen.

+ +

Lizenz

+

Copyright (c) 2013 Richard Hirner (bitfire web engineering), alle Rechte + vorbehalten. Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU + General Public License Version 3, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren. + Sofern Google Play oder Samsung Store andere Bedingungen benötigen, gelten für über den jeweiligen Markt heruntergeladene + Apps diese Bedingungen.

+ +

Benutzte Bibliotheken

+

+ * iCal4j (New BSD License)
+ * iCal4j-vcard (New BSD License)
+ * Simple XML Serialization (Apache License, Version 2.0)
+ * Project Lombok (MIT License)

+ ]]>
+ \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index 988a5f2d..8c0ba930 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3,10 +3,12 @@ DAVdroid Settings + - http:// - https:// + http:// + https:// + "If you don't use encryption (HTTPS), other people may easily intercept your login details, contacts and events." User name: Password: @@ -31,5 +33,55 @@ Select up to one address book (tap again to unselect): Select your calendars: Preemptive authentication (recommended, but incompatible with Digest auth) + + DAVdroid Help + Manage sync accounts + DAVdroid Web site + Welcome to DAVdroid! + +

DAVdroid is an Android 4+ sync adapter for CalDAV/CardDAV. To use it, just add a DAVdroid account + for your CalDAV/CardDAV server and your contacts/events will be synchronized in both directions.

+ +

If you have bought DAVdroid via + Play Store and use Android 4.1 or Samsung devices (for instance, Galaxy Note, Note 10.1, S2, S3, S4, …) + you may have to install the + DAVdroid JB Workaround + to prevent data-loss on reboot (it\'s an Android bug).

+ +

For more information, please see the DAVdroid homepage. + There\'s a Setup guide, too. DAVdroid respects + your privacy, see our Privacy Policy.

+ +

In case of problems, please read the FAQ first. + If you encounter a bug that is clearly related to DAVdroid, enter it on + Github issues instead of contacting us directly or giving a poor + rating for the app.

+ +

Open-source

+

DAVdroid is designed to be an open-source project from the very first beginning. It is always possible to compile the + app yourself and use it for free without any obligations. The source code is + available on Github, and you can + download the app on F-droid.

+ +

However, it was much work to create this app, so we have decided to put it into the stores (Google Play, + Samsung Store) for a small fee. + If you want to support this project, please consider donating to DAVdroid + or purchasing it.

+ +

License

+

Copyright (c) 2013 Richard Hirner (bitfire web engineering). All rights reserved. + This program and the accompanying materials are made available under the terms of the GNU Public License v3.0 which + accompanies this distribution, and is available at http://www.gnu.org/licenses/gpl.html. As far as Google Play or Samsung + Store Store require other terms, the respective terms apply for versions that are downloaded via these services.

+ +

Used third-party libraries

+

+ * iCal4j (New BSD License)
+ * iCal4j-vcard (New BSD License)
+ * Simple XML Serialization (Apache License, Version 2.0)
+ * Project Lombok (MIT License)

+ ]]>
diff --git a/res/xml/account_prefs.xml b/res/xml/account_prefs.xml index b23cf78e..a86402ae 100644 --- a/res/xml/account_prefs.xml +++ b/res/xml/account_prefs.xml @@ -1,10 +1,10 @@ - + + android:targetPackage="at.bitfire.davdroid" + android:targetClass="at.bitfire.davdroid.MainActivity" /> diff --git a/src/at/bitfire/davdroid/MainActivity.java b/src/at/bitfire/davdroid/MainActivity.java new file mode 100644 index 00000000..fd276fba --- /dev/null +++ b/src/at/bitfire/davdroid/MainActivity.java @@ -0,0 +1,51 @@ +package at.bitfire.davdroid; + +import android.app.Activity; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.provider.Settings; +import android.text.Html; +import android.text.method.LinkMovementMethod; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.widget.TextView; + +public class MainActivity extends Activity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.activity_main); + + TextView tv = (TextView)findViewById(R.id.text_info); + tv.setText(Html.fromHtml(getString(R.string.html_info))); + tv.setMovementMethod(LinkMovementMethod.getInstance()); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.main_activity, menu); + return true; + } + + + public void addAccount(MenuItem item) { + Intent intent = new Intent(Settings.ACTION_ADD_ACCOUNT); + startActivity(intent); + } + + public void showSyncSettings(MenuItem item) { + Intent intent = new Intent(Settings.ACTION_SYNC_SETTINGS); + startActivity(intent); + } + + public void showWebsite(MenuItem item) { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setData(Uri.parse(Constants.WEB_URL_HELP + "&pk_kwd=main-activity")); + startActivity(intent); + } +} diff --git a/src/at/bitfire/davdroid/resource/LocalCalendar.java b/src/at/bitfire/davdroid/resource/LocalCalendar.java index 614815f9..44551f45 100644 --- a/src/at/bitfire/davdroid/resource/LocalCalendar.java +++ b/src/at/bitfire/davdroid/resource/LocalCalendar.java @@ -336,9 +336,9 @@ public class LocalCalendar extends LocalCollection { where = StringUtils.join(terms, " AND "); } else where = entryColumnRemoteName() + " IS NOT NULL"; - + Builder builder = ContentProviderOperation.newDelete(entriesURI()) - .withSelection(Events.CALENDAR_ID + "=? AND (" + where + ")", new String[] { String.valueOf(id) }); + .withSelection(entryColumnParentID() + "=? AND (" + where + ")", new String[] { String.valueOf(id) }); pendingOperations.add(builder .withYieldAllowed(true) .build()); diff --git a/src/at/bitfire/davdroid/resource/LocalCollection.java b/src/at/bitfire/davdroid/resource/LocalCollection.java index b9bf6fb8..8e242e1d 100644 --- a/src/at/bitfire/davdroid/resource/LocalCollection.java +++ b/src/at/bitfire/davdroid/resource/LocalCollection.java @@ -166,12 +166,11 @@ public abstract class LocalCollection { } public void commit() throws RemoteException, OperationApplicationException { - Log.i(TAG, "Committing " + pendingOperations.size() + " operations"); - - if (!pendingOperations.isEmpty()) + if (!pendingOperations.isEmpty()) { + Log.i(TAG, "Committing " + pendingOperations.size() + " operations"); providerClient.applyBatch(pendingOperations); - - pendingOperations.clear(); + pendingOperations.clear(); + } } diff --git a/src/at/bitfire/davdroid/syncadapter/SyncManager.java b/src/at/bitfire/davdroid/syncadapter/SyncManager.java index 8b4e4a6e..9dd90beb 100644 --- a/src/at/bitfire/davdroid/syncadapter/SyncManager.java +++ b/src/at/bitfire/davdroid/syncadapter/SyncManager.java @@ -28,7 +28,7 @@ import at.bitfire.davdroid.webdav.PreconditionFailedException; public class SyncManager { private static final String TAG = "davdroid.SyncManager"; - private static final int MAX_UPDATES_BEFORE_COMMIT = 100; + private static final int MAX_UPDATES_BEFORE_COMMIT = 25; protected Account account; protected AccountManager accountManager;