Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/DataPropagationHelper.java')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/DataPropagationHelper.java119
1 files changed, 66 insertions, 53 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/DataPropagationHelper.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/DataPropagationHelper.java
index 9590f5abd..782b6d951 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/DataPropagationHelper.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/DataPropagationHelper.java
@@ -34,27 +34,31 @@ public class DataPropagationHelper {
entity.setLocalId(newID);
boolean connected = serverAdapter.hasInternetConnection();
if (connected) {
- provider.createOnServer(serverAdapter, dataBaseAdapter, accountId, new IResponseCallback<T>(new Account(accountId)) {
- @Override
- public void onResponse(T response) {
- new Thread(() -> {
- response.setAccountId(accountId);
- response.setLocalId(newID);
- if (actionOnResponse!= null) {
- actionOnResponse.onResponse(entity, response);
- }
- response.setStatus(DBStatus.UP_TO_DATE.getId());
- provider.updateInDB(dataBaseAdapter, accountId, response, false);
- callback.onResponse(response);
- }).start();
- }
+ try {
+ provider.createOnServer(serverAdapter, dataBaseAdapter, accountId, new IResponseCallback<T>(new Account(accountId)) {
+ @Override
+ public void onResponse(T response) {
+ new Thread(() -> {
+ response.setAccountId(accountId);
+ response.setLocalId(newID);
+ if (actionOnResponse != null) {
+ actionOnResponse.onResponse(entity, response);
+ }
+ response.setStatus(DBStatus.UP_TO_DATE.getId());
+ provider.updateInDB(dataBaseAdapter, accountId, response, false);
+ callback.onResponse(response);
+ }).start();
+ }
- @Override
- public void onError(Throwable throwable) {
- super.onError(throwable);
- new Thread(() -> callback.onError(throwable)).start();
- }
- }, entity);
+ @Override
+ public void onError(Throwable throwable) {
+ super.onError(throwable);
+ new Thread(() -> callback.onError(throwable, entity)).start();
+ }
+ }, entity);
+ } catch (Throwable t) {
+ callback.onError(t, entity);
+ }
} else {
callback.onResponse(entity);
}
@@ -71,24 +75,28 @@ public class DataPropagationHelper {
}
boolean connected = serverAdapter.hasInternetConnection();
if (entity.getId() != null && connected) {
- provider.updateOnServer(serverAdapter, dataBaseAdapter, accountId, new IResponseCallback<T>(new Account(accountId)) {
- @Override
- public void onResponse(T response) {
- new Thread(() -> {
- entity.setStatus(DBStatus.UP_TO_DATE.getId());
- provider.updateInDB(dataBaseAdapter, accountId, entity, false);
- callback.onResponse(entity);
- }).start();
- }
+ try {
+ provider.updateOnServer(serverAdapter, dataBaseAdapter, accountId, new IResponseCallback<T>(new Account(accountId)) {
+ @Override
+ public void onResponse(T response) {
+ new Thread(() -> {
+ entity.setStatus(DBStatus.UP_TO_DATE.getId());
+ provider.updateInDB(dataBaseAdapter, accountId, entity, false);
+ callback.onResponse(entity);
+ }).start();
+ }
- @Override
- public void onError(Throwable throwable) {
- super.onError(throwable);
- new Thread(() -> {
- callback.onError(throwable);
- }).start();
- }
- }, entity);
+ @Override
+ public void onError(Throwable throwable) {
+ super.onError(throwable);
+ new Thread(() -> {
+ callback.onError(throwable, entity);
+ }).start();
+ }
+ }, entity);
+ } catch (Throwable t) {
+ callback.onError(t, entity);
+ }
} else {
callback.onResponse(entity);
}
@@ -98,23 +106,28 @@ public class DataPropagationHelper {
provider.deleteInDB(dataBaseAdapter, accountId, entity);
boolean connected = serverAdapter.hasInternetConnection();
if (entity.getId() != null && connected) {
- provider.deleteOnServer(serverAdapter, accountId, new IResponseCallback<Void>(new Account(accountId)) {
- @Override
- public void onResponse(Void response) {
- new Thread(() -> {
- provider.deletePhysicallyInDB(dataBaseAdapter, accountId, entity);
- callback.onResponse(null);
- }).start();
- }
+ try {
+ provider.deleteOnServer(serverAdapter, accountId, new IResponseCallback<Void>(new Account(accountId)) {
+ @Override
+ public void onResponse(Void response) {
+ new Thread(() -> {
+ provider.deletePhysicallyInDB(dataBaseAdapter, accountId, entity);
+ callback.onResponse(null);
+ }).start();
+ }
+
+ @Override
+ public void onError(Throwable throwable) {
+ super.onError(throwable);
+ new Thread(() -> {
+ callback.onError(throwable);
+ }).start();
+ }
+ }, entity, dataBaseAdapter);
+ } catch (Throwable t) {
+ callback.onError(t);
+ }
- @Override
- public void onError(Throwable throwable) {
- super.onError(throwable);
- new Thread(() -> {
- callback.onError(throwable);
- }).start();
- }
- }, entity, dataBaseAdapter);
} else {
callback.onResponse(null);
}