|
6 | 6 | */ |
7 | 7 | package it.niedermann.owncloud.notes.persistence; |
8 | 8 |
|
| 9 | +import static java.net.HttpURLConnection.HTTP_NOT_FOUND; |
| 10 | +import static java.net.HttpURLConnection.HTTP_NOT_MODIFIED; |
| 11 | +import static java.net.HttpURLConnection.HTTP_UNAVAILABLE; |
| 12 | +import static it.niedermann.owncloud.notes.shared.model.DBStatus.LOCAL_DELETED; |
| 13 | +import static it.niedermann.owncloud.notes.shared.util.NoteUtil.generateNoteExcerpt; |
| 14 | + |
9 | 15 | import android.content.Context; |
10 | 16 | import android.util.Log; |
11 | 17 |
|
12 | 18 | import androidx.annotation.NonNull; |
13 | 19 |
|
14 | 20 | import com.nextcloud.android.sso.AccountImporter; |
15 | | -import com.nextcloud.android.sso.api.ParsedResponse; |
16 | 21 | import com.nextcloud.android.sso.exceptions.NextcloudApiNotRespondingException; |
17 | 22 | import com.nextcloud.android.sso.exceptions.NextcloudFilesAppAccountNotFoundException; |
18 | 23 | import com.nextcloud.android.sso.exceptions.NextcloudHttpRequestFailedException; |
| 24 | +import com.nextcloud.android.sso.exceptions.NextcloudNetworkException; |
19 | 25 | import com.nextcloud.android.sso.exceptions.TokenMismatchException; |
20 | 26 | import com.nextcloud.android.sso.model.SingleSignOnAccount; |
| 27 | +import com.owncloud.android.lib.common.utils.Log_OC; |
21 | 28 |
|
22 | 29 | import java.util.ArrayList; |
23 | 30 | import java.util.Calendar; |
|
26 | 33 | import java.util.HashSet; |
27 | 34 | import java.util.List; |
28 | 35 | import java.util.Map; |
29 | | -import java.util.Set; |
30 | 36 |
|
31 | 37 | import it.niedermann.owncloud.notes.BuildConfig; |
32 | 38 | import it.niedermann.owncloud.notes.persistence.entity.Account; |
|
36 | 42 | import it.niedermann.owncloud.notes.shared.model.ISyncCallback; |
37 | 43 | import it.niedermann.owncloud.notes.shared.model.SyncResultStatus; |
38 | 44 | import it.niedermann.owncloud.notes.shared.util.ApiVersionUtil; |
39 | | -import retrofit2.Response; |
40 | | - |
41 | | -import static it.niedermann.owncloud.notes.shared.model.DBStatus.LOCAL_DELETED; |
42 | | -import static it.niedermann.owncloud.notes.shared.util.NoteUtil.generateNoteExcerpt; |
43 | | -import static java.net.HttpURLConnection.HTTP_NOT_FOUND; |
44 | | -import static java.net.HttpURLConnection.HTTP_NOT_MODIFIED; |
45 | | -import static java.net.HttpURLConnection.HTTP_UNAVAILABLE; |
46 | 45 |
|
47 | 46 |
|
48 | 47 | /** |
@@ -221,6 +220,11 @@ private boolean pullRemoteChanges() { |
221 | 220 | } |
222 | 221 | localAccount.setModified(accountFromDatabase.getModified()); |
223 | 222 | localAccount.setETag(accountFromDatabase.getETag()); |
| 223 | + final var modified = localAccount.getModified(); |
| 224 | + if (modified == null) { |
| 225 | + Log_OC.e(TAG, "modified is null cannot fetch notes"); |
| 226 | + return false; |
| 227 | + } |
224 | 228 |
|
225 | 229 | final var fetchResponse = notesAPI.getNotes(localAccount.getModified(), localAccount.getETag()).blockingSingle(); |
226 | 230 | final var remoteNotes = fetchResponse.getResponse(); |
@@ -289,7 +293,11 @@ private boolean pullRemoteChanges() { |
289 | 293 | } else if (cause.getClass() == NextcloudApiNotRespondingException.class || cause instanceof NextcloudApiNotRespondingException) { |
290 | 294 | apiProvider.invalidateAPICache(ssoAccount); |
291 | 295 | } |
| 296 | + } else if (t.getClass() == NextcloudNetworkException.class) { |
| 297 | + Log.w(TAG, "Network connectivity issue during sync"); |
| 298 | + return true; |
292 | 299 | } |
| 300 | + |
293 | 301 | exceptions.add(t); |
294 | 302 | return false; |
295 | 303 | } |
|
0 commit comments