From 9b850f91e60eccc180d3977a0269407d105ac27e Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Tue, 10 Apr 2018 14:30:30 -0500 Subject: [PATCH] Remove redundant propfind --- .../CaldavCalendarSettingsActivity.java | 5 +-- .../java/org/tasks/caldav/CaldavClient.java | 8 +++++ .../org/tasks/caldav/CaldavSynchronizer.java | 36 +++++-------------- 3 files changed, 17 insertions(+), 32 deletions(-) diff --git a/app/src/main/java/org/tasks/caldav/CaldavCalendarSettingsActivity.java b/app/src/main/java/org/tasks/caldav/CaldavCalendarSettingsActivity.java index 72ab282c2..000984d3c 100644 --- a/app/src/main/java/org/tasks/caldav/CaldavCalendarSettingsActivity.java +++ b/app/src/main/java/org/tasks/caldav/CaldavCalendarSettingsActivity.java @@ -354,10 +354,7 @@ public class CaldavCalendarSettingsActivity extends ThemedInjectingAppCompatActi R.string.delete, (dialog, which) -> { CaldavClient caldavClient = - new CaldavClient( - caldavCalendar.getUrl(), - caldavAccount.getUsername(), - encryption.decrypt(caldavAccount.getPassword())); + new CaldavClient(caldavAccount, caldavCalendar, encryption); ProgressDialog progressDialog = dialogBuilder.newProgressDialog(R.string.contacting_server); progressDialog.show(); caldavClient diff --git a/app/src/main/java/org/tasks/caldav/CaldavClient.java b/app/src/main/java/org/tasks/caldav/CaldavClient.java index 58b267f64..3061d8e79 100644 --- a/app/src/main/java/org/tasks/caldav/CaldavClient.java +++ b/app/src/main/java/org/tasks/caldav/CaldavClient.java @@ -33,6 +33,7 @@ import okhttp3.HttpUrl; import okhttp3.OkHttpClient; import org.tasks.R; import org.tasks.data.CaldavAccount; +import org.tasks.data.CaldavCalendar; import org.tasks.security.Encryption; import org.tasks.ui.DisplayableException; import org.xmlpull.v1.XmlSerializer; @@ -50,6 +51,13 @@ class CaldavClient { encryption.decrypt(caldavAccount.getPassword())); } + CaldavClient(CaldavAccount caldavAccount, CaldavCalendar caldavCalendar, Encryption encryption) { + this( + caldavCalendar.getUrl(), + caldavAccount.getUsername(), + encryption.decrypt(caldavAccount.getPassword())); + } + CaldavClient(String url, String username, String password) { BasicDigestAuthHandler basicDigestAuthHandler = new BasicDigestAuthHandler(null, username, password); diff --git a/app/src/main/java/org/tasks/caldav/CaldavSynchronizer.java b/app/src/main/java/org/tasks/caldav/CaldavSynchronizer.java index d16ecb4ec..8ad379574 100644 --- a/app/src/main/java/org/tasks/caldav/CaldavSynchronizer.java +++ b/app/src/main/java/org/tasks/caldav/CaldavSynchronizer.java @@ -11,7 +11,6 @@ import static com.google.common.collect.Sets.newHashSet; import static org.tasks.time.DateTimeUtils.currentTimeMillis; import android.content.Context; -import at.bitfire.dav4android.BasicDigestAuthHandler; import at.bitfire.dav4android.DavCalendar; import at.bitfire.dav4android.DavResource; import at.bitfire.dav4android.PropertyCollection; @@ -38,11 +37,9 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.Reader; import java.io.StringReader; -import java.net.URI; import java.util.ArrayList; import java.util.List; import java.util.Set; -import java.util.concurrent.TimeUnit; import javax.inject.Inject; import net.fortuna.ical4j.model.property.ProdId; import okhttp3.HttpUrl; @@ -127,34 +124,19 @@ public class CaldavSynchronizer { calendar.setId(caldavDao.insert(calendar)); localBroadcastManager.broadcastRefreshList(); } - sync(account, calendar); + sync(calendar, resource); } } } - private void sync(CaldavAccount account, CaldavCalendar caldavCalendar) { + private void sync(CaldavCalendar caldavCalendar, DavResource resource) { Timber.d("sync(%s)", caldavCalendar); - BasicDigestAuthHandler basicDigestAuthHandler = - new BasicDigestAuthHandler(null, account.getUsername(), encryption.decrypt(account.getPassword())); - OkHttpClient httpClient = - new OkHttpClient() - .newBuilder() - .addNetworkInterceptor(basicDigestAuthHandler) - .authenticator(basicDigestAuthHandler) - .cookieJar(new MemoryCookieStore()) - .followRedirects(false) - .followSslRedirects(false) - .readTimeout(30, TimeUnit.SECONDS) - .build(); - URI uri = URI.create(caldavCalendar.getUrl()); - HttpUrl httpUrl = HttpUrl.get(uri); - DavCalendar davCalendar = new DavCalendar(httpClient, httpUrl); + OkHttpClient httpClient = resource.getHttpClient(); + HttpUrl httpUrl = resource.getLocation(); try { pushLocalChanges(caldavCalendar, httpClient, httpUrl); - davCalendar.propfind(0, GetCTag.NAME, DisplayName.NAME); - - PropertyCollection properties = davCalendar.getProperties(); + PropertyCollection properties = resource.getProperties(); String remoteName = properties.get(DisplayName.class).getDisplayName(); if (!caldavCalendar.getName().equals(remoteName)) { Timber.d("%s -> %s", caldavCalendar.getName(), remoteName); @@ -171,6 +153,8 @@ public class CaldavSynchronizer { return; } + DavCalendar davCalendar = new DavCalendar(httpClient, httpUrl); + davCalendar.calendarQuery("VTODO", null, null); Set remoteObjects = @@ -298,7 +282,7 @@ public class CaldavSynchronizer { Task task, CaldavCalendar caldavCalendar, OkHttpClient httpClient, HttpUrl httpUrl) throws IOException { Timber.d("pushing %s", task); - List deleted = getDeleted(task.getId(), caldavCalendar); + List deleted = caldavDao.getDeleted(task.getId(), caldavCalendar.getUuid()); if (!deleted.isEmpty()) { for (CaldavTask entry : deleted) { deleteRemoteResource(httpClient, httpUrl, entry); @@ -354,10 +338,6 @@ public class CaldavSynchronizer { Timber.d("SENT %s", caldavTask); } - private List getDeleted(long taskId, CaldavCalendar caldavCalendar) { - return caldavDao.getDeleted(taskId, caldavCalendar.getUuid()); - } - private void processVTodo( String fileName, CaldavCalendar caldavCalendar, String eTag, String vtodo) throws IOException {