diff --git a/app/build.gradle b/app/build.gradle
index b96b96677..4de998537 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -70,7 +70,6 @@ dependencies {
implementation project(':net:download:service')
implementation project(':net:ssl')
implementation project(':net:sync:service')
- implementation project(':net:sync:model')
implementation project(':parser:feed')
implementation project(':playback:base')
implementation project(':playback:cast')
diff --git a/app/src/main/java/de/danoeh/antennapod/ui/episodeslist/FeedItemMenuHandler.java b/app/src/main/java/de/danoeh/antennapod/ui/episodeslist/FeedItemMenuHandler.java
index 55f865ef6..e1974940c 100644
--- a/app/src/main/java/de/danoeh/antennapod/ui/episodeslist/FeedItemMenuHandler.java
+++ b/app/src/main/java/de/danoeh/antennapod/ui/episodeslist/FeedItemMenuHandler.java
@@ -27,7 +27,7 @@ import de.danoeh.antennapod.ui.share.ShareUtils;
import de.danoeh.antennapod.ui.share.ShareDialog;
import de.danoeh.antennapod.model.feed.FeedItem;
import de.danoeh.antennapod.model.feed.FeedMedia;
-import de.danoeh.antennapod.net.sync.model.EpisodeAction;
+import de.danoeh.antennapod.net.sync.serviceinterface.EpisodeAction;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.ui.appstartintent.MediaButtonStarter;
import de.danoeh.antennapod.ui.view.LocalDeleteModal;
diff --git a/net/download/service/build.gradle b/net/download/service/build.gradle
index f74550c05..cebffc75c 100644
--- a/net/download/service/build.gradle
+++ b/net/download/service/build.gradle
@@ -14,7 +14,6 @@ dependencies {
implementation project(':model')
implementation project(':net:common')
implementation project(':net:download:service-interface')
- implementation project(':net:sync:model')
implementation project(':net:sync:service-interface')
implementation project(':parser:media')
implementation project(':parser:feed')
diff --git a/net/download/service/src/main/java/de/danoeh/antennapod/net/download/service/episode/MediaDownloadedHandler.java b/net/download/service/src/main/java/de/danoeh/antennapod/net/download/service/episode/MediaDownloadedHandler.java
index 6ed16aa80..406149100 100644
--- a/net/download/service/src/main/java/de/danoeh/antennapod/net/download/service/episode/MediaDownloadedHandler.java
+++ b/net/download/service/src/main/java/de/danoeh/antennapod/net/download/service/episode/MediaDownloadedHandler.java
@@ -23,7 +23,7 @@ import de.danoeh.antennapod.storage.database.DBWriter;
import de.danoeh.antennapod.model.download.DownloadError;
import de.danoeh.antennapod.model.feed.FeedItem;
import de.danoeh.antennapod.model.feed.FeedMedia;
-import de.danoeh.antennapod.net.sync.model.EpisodeAction;
+import de.danoeh.antennapod.net.sync.serviceinterface.EpisodeAction;
/**
* Handles a completed media download.
diff --git a/net/sync/gpoddernet/build.gradle b/net/sync/gpoddernet/build.gradle
index ff1fc2f00..3eec12b58 100644
--- a/net/sync/gpoddernet/build.gradle
+++ b/net/sync/gpoddernet/build.gradle
@@ -8,7 +8,7 @@ android {
}
dependencies {
- implementation project(':net:sync:model')
+ implementation project(':net:sync:service-interface')
annotationProcessor "androidx.annotation:annotation:$annotationVersion"
implementation "androidx.appcompat:appcompat:$appcompatVersion"
diff --git a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/GpodnetService.java b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/GpodnetService.java
index c65e654aa..b04e9bdc9 100644
--- a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/GpodnetService.java
+++ b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/GpodnetService.java
@@ -5,6 +5,12 @@ import android.util.Log;
import androidx.annotation.NonNull;
import de.danoeh.antennapod.net.sync.HostnameParser;
+import de.danoeh.antennapod.net.sync.serviceinterface.EpisodeAction;
+import de.danoeh.antennapod.net.sync.serviceinterface.EpisodeActionChanges;
+import de.danoeh.antennapod.net.sync.serviceinterface.ISyncService;
+import de.danoeh.antennapod.net.sync.serviceinterface.SubscriptionChanges;
+import de.danoeh.antennapod.net.sync.serviceinterface.SyncServiceException;
+import de.danoeh.antennapod.net.sync.serviceinterface.UploadChangesResponse;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@@ -27,12 +33,6 @@ import de.danoeh.antennapod.net.sync.gpoddernet.model.GpodnetDevice;
import de.danoeh.antennapod.net.sync.gpoddernet.model.GpodnetEpisodeActionPostResponse;
import de.danoeh.antennapod.net.sync.gpoddernet.model.GpodnetPodcast;
import de.danoeh.antennapod.net.sync.gpoddernet.model.GpodnetUploadChangesResponse;
-import de.danoeh.antennapod.net.sync.model.EpisodeAction;
-import de.danoeh.antennapod.net.sync.model.EpisodeActionChanges;
-import de.danoeh.antennapod.net.sync.model.ISyncService;
-import de.danoeh.antennapod.net.sync.model.SubscriptionChanges;
-import de.danoeh.antennapod.net.sync.model.SyncServiceException;
-import de.danoeh.antennapod.net.sync.model.UploadChangesResponse;
import okhttp3.Credentials;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
diff --git a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/GpodnetServiceException.java b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/GpodnetServiceException.java
index 298c59073..5f16afbd1 100644
--- a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/GpodnetServiceException.java
+++ b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/GpodnetServiceException.java
@@ -1,6 +1,6 @@
package de.danoeh.antennapod.net.sync.gpoddernet;
-import de.danoeh.antennapod.net.sync.model.SyncServiceException;
+import de.danoeh.antennapod.net.sync.serviceinterface.SyncServiceException;
public class GpodnetServiceException extends SyncServiceException {
private static final long serialVersionUID = 1L;
diff --git a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/mapper/ResponseMapper.java b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/mapper/ResponseMapper.java
index c8e607d74..2d2409eac 100644
--- a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/mapper/ResponseMapper.java
+++ b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/mapper/ResponseMapper.java
@@ -2,6 +2,9 @@ package de.danoeh.antennapod.net.sync.gpoddernet.mapper;
import androidx.annotation.NonNull;
+import de.danoeh.antennapod.net.sync.serviceinterface.EpisodeAction;
+import de.danoeh.antennapod.net.sync.serviceinterface.EpisodeActionChanges;
+import de.danoeh.antennapod.net.sync.serviceinterface.SubscriptionChanges;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@@ -10,10 +13,6 @@ import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
-import de.danoeh.antennapod.net.sync.model.EpisodeAction;
-import de.danoeh.antennapod.net.sync.model.EpisodeActionChanges;
-import de.danoeh.antennapod.net.sync.model.SubscriptionChanges;
-
public class ResponseMapper {
public static SubscriptionChanges readSubscriptionChangesFromJsonObject(@NonNull JSONObject object)
diff --git a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/model/GpodnetEpisodeActionPostResponse.java b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/model/GpodnetEpisodeActionPostResponse.java
index 6d573ebfc..74e77ff44 100644
--- a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/model/GpodnetEpisodeActionPostResponse.java
+++ b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/model/GpodnetEpisodeActionPostResponse.java
@@ -2,7 +2,7 @@ package de.danoeh.antennapod.net.sync.gpoddernet.model;
import androidx.collection.ArrayMap;
-import de.danoeh.antennapod.net.sync.model.UploadChangesResponse;
+import de.danoeh.antennapod.net.sync.serviceinterface.UploadChangesResponse;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.json.JSONArray;
diff --git a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/model/GpodnetUploadChangesResponse.java b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/model/GpodnetUploadChangesResponse.java
index 7b09531a5..7d3f36fe4 100644
--- a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/model/GpodnetUploadChangesResponse.java
+++ b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/gpoddernet/model/GpodnetUploadChangesResponse.java
@@ -3,7 +3,7 @@ package de.danoeh.antennapod.net.sync.gpoddernet.model;
import androidx.collection.ArrayMap;
import de.danoeh.antennapod.net.sync.gpoddernet.GpodnetService;
-import de.danoeh.antennapod.net.sync.model.UploadChangesResponse;
+import de.danoeh.antennapod.net.sync.serviceinterface.UploadChangesResponse;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
diff --git a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudSyncService.java b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudSyncService.java
index eaee76baf..e98976c81 100644
--- a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudSyncService.java
+++ b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudSyncService.java
@@ -3,12 +3,12 @@ package de.danoeh.antennapod.net.sync.nextcloud;
import de.danoeh.antennapod.net.sync.HostnameParser;
import de.danoeh.antennapod.net.sync.gpoddernet.mapper.ResponseMapper;
import de.danoeh.antennapod.net.sync.gpoddernet.model.GpodnetUploadChangesResponse;
-import de.danoeh.antennapod.net.sync.model.EpisodeAction;
-import de.danoeh.antennapod.net.sync.model.EpisodeActionChanges;
-import de.danoeh.antennapod.net.sync.model.ISyncService;
-import de.danoeh.antennapod.net.sync.model.SubscriptionChanges;
-import de.danoeh.antennapod.net.sync.model.SyncServiceException;
-import de.danoeh.antennapod.net.sync.model.UploadChangesResponse;
+import de.danoeh.antennapod.net.sync.serviceinterface.EpisodeAction;
+import de.danoeh.antennapod.net.sync.serviceinterface.EpisodeActionChanges;
+import de.danoeh.antennapod.net.sync.serviceinterface.ISyncService;
+import de.danoeh.antennapod.net.sync.serviceinterface.SubscriptionChanges;
+import de.danoeh.antennapod.net.sync.serviceinterface.SyncServiceException;
+import de.danoeh.antennapod.net.sync.serviceinterface.UploadChangesResponse;
import okhttp3.Credentials;
import okhttp3.HttpUrl;
import okhttp3.MediaType;
diff --git a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudSynchronizationServiceException.java b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudSynchronizationServiceException.java
index d907c229e..db66abce6 100644
--- a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudSynchronizationServiceException.java
+++ b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudSynchronizationServiceException.java
@@ -1,6 +1,6 @@
package de.danoeh.antennapod.net.sync.nextcloud;
-import de.danoeh.antennapod.net.sync.model.SyncServiceException;
+import de.danoeh.antennapod.net.sync.serviceinterface.SyncServiceException;
public class NextcloudSynchronizationServiceException extends SyncServiceException {
public NextcloudSynchronizationServiceException(Throwable e) {
diff --git a/net/sync/model/README.md b/net/sync/model/README.md
deleted file mode 100644
index 21d842914..000000000
--- a/net/sync/model/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# :net:sync:model
-
-This module contains the basic interfaces for implementing a sync backend.
diff --git a/net/sync/model/build.gradle b/net/sync/model/build.gradle
deleted file mode 100644
index 8520b0a49..000000000
--- a/net/sync/model/build.gradle
+++ /dev/null
@@ -1,14 +0,0 @@
-plugins {
- id("com.android.library")
-}
-apply from: "../../../common.gradle"
-
-android {
- namespace "de.danoeh.antennapod.net.sync.model"
-}
-
-dependencies {
- implementation project(':model')
-
- annotationProcessor "androidx.annotation:annotation:$annotationVersion"
-}
diff --git a/net/sync/service-interface/build.gradle b/net/sync/service-interface/build.gradle
index c1a559da3..fd170b36a 100644
--- a/net/sync/service-interface/build.gradle
+++ b/net/sync/service-interface/build.gradle
@@ -9,9 +9,7 @@ android {
dependencies {
implementation project(':model')
- implementation project(':net:sync:model')
implementation project(':storage:preferences')
- implementation project(':ui:i18n')
annotationProcessor "androidx.annotation:annotation:$annotationVersion"
implementation "io.reactivex.rxjava2:rxandroid:$rxAndroidVersion"
diff --git a/net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/EpisodeAction.java b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/EpisodeAction.java
similarity index 99%
rename from net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/EpisodeAction.java
rename to net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/EpisodeAction.java
index 0efa2b847..3c3bd1418 100644
--- a/net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/EpisodeAction.java
+++ b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/EpisodeAction.java
@@ -1,4 +1,4 @@
-package de.danoeh.antennapod.net.sync.model;
+package de.danoeh.antennapod.net.sync.serviceinterface;
import android.text.TextUtils;
import android.util.Log;
diff --git a/net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/EpisodeActionChanges.java b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/EpisodeActionChanges.java
similarity index 93%
rename from net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/EpisodeActionChanges.java
rename to net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/EpisodeActionChanges.java
index 570e012c5..d2b17b492 100644
--- a/net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/EpisodeActionChanges.java
+++ b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/EpisodeActionChanges.java
@@ -1,4 +1,4 @@
-package de.danoeh.antennapod.net.sync.model;
+package de.danoeh.antennapod.net.sync.serviceinterface;
import androidx.annotation.NonNull;
diff --git a/net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/ISyncService.java b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/ISyncService.java
similarity index 91%
rename from net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/ISyncService.java
rename to net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/ISyncService.java
index 9c75e5dac..29632ed1e 100644
--- a/net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/ISyncService.java
+++ b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/ISyncService.java
@@ -1,4 +1,4 @@
-package de.danoeh.antennapod.net.sync.model;
+package de.danoeh.antennapod.net.sync.serviceinterface;
import java.util.List;
diff --git a/net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/SubscriptionChanges.java b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SubscriptionChanges.java
similarity index 94%
rename from net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/SubscriptionChanges.java
rename to net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SubscriptionChanges.java
index 2fbc8b45e..c0c9f131d 100644
--- a/net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/SubscriptionChanges.java
+++ b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SubscriptionChanges.java
@@ -1,4 +1,4 @@
-package de.danoeh.antennapod.net.sync.model;
+package de.danoeh.antennapod.net.sync.serviceinterface;
import androidx.annotation.NonNull;
diff --git a/net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/SyncServiceException.java b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SyncServiceException.java
similarity index 82%
rename from net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/SyncServiceException.java
rename to net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SyncServiceException.java
index 57262db17..5ccedd785 100644
--- a/net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/SyncServiceException.java
+++ b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SyncServiceException.java
@@ -1,4 +1,4 @@
-package de.danoeh.antennapod.net.sync.model;
+package de.danoeh.antennapod.net.sync.serviceinterface;
public class SyncServiceException extends Exception {
private static final long serialVersionUID = 1L;
diff --git a/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SynchronizationProvider.java b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SynchronizationProvider.java
new file mode 100644
index 000000000..8c4047b6c
--- /dev/null
+++ b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SynchronizationProvider.java
@@ -0,0 +1,25 @@
+package de.danoeh.antennapod.net.sync.serviceinterface;
+
+public enum SynchronizationProvider {
+ GPODDER_NET("GPODDER_NET"),
+ NEXTCLOUD_GPODDER("NEXTCLOUD_GPODDER");
+
+ public static SynchronizationProvider fromIdentifier(String provider) {
+ for (SynchronizationProvider synchronizationProvider : SynchronizationProvider.values()) {
+ if (synchronizationProvider.getIdentifier().equals(provider)) {
+ return synchronizationProvider;
+ }
+ }
+ return null;
+ }
+
+ private final String identifier;
+
+ SynchronizationProvider(String identifier) {
+ this.identifier = identifier;
+ }
+
+ public String getIdentifier() {
+ return identifier;
+ }
+}
diff --git a/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SynchronizationProviderViewData.java b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SynchronizationProviderViewData.java
deleted file mode 100644
index 19624a95a..000000000
--- a/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SynchronizationProviderViewData.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package de.danoeh.antennapod.net.sync.serviceinterface;
-
-public enum SynchronizationProviderViewData {
- GPODDER_NET(
- "GPODDER_NET",
- R.string.gpodnet_description,
- R.drawable.gpodder_icon
- ),
- NEXTCLOUD_GPODDER(
- "NEXTCLOUD_GPODDER",
- R.string.synchronization_summary_nextcloud,
- R.drawable.nextcloud_logo
- );
-
- public static SynchronizationProviderViewData fromIdentifier(String provider) {
- for (SynchronizationProviderViewData synchronizationProvider : SynchronizationProviderViewData.values()) {
- if (synchronizationProvider.getIdentifier().equals(provider)) {
- return synchronizationProvider;
- }
- }
- return null;
- }
-
- private final String identifier;
- private final int iconResource;
- private final int summaryResource;
-
- SynchronizationProviderViewData(String identifier, int summaryResource, int iconResource) {
- this.identifier = identifier;
- this.iconResource = iconResource;
- this.summaryResource = summaryResource;
- }
-
- public String getIdentifier() {
- return identifier;
- }
-
- public int getIconResource() {
- return iconResource;
- }
-
- public int getSummaryResource() {
- return summaryResource;
- }
-}
diff --git a/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SynchronizationQueueSink.java b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SynchronizationQueueSink.java
index 8c94c44e7..ad235130a 100644
--- a/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SynchronizationQueueSink.java
+++ b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SynchronizationQueueSink.java
@@ -4,7 +4,6 @@ import android.content.Context;
import de.danoeh.antennapod.storage.preferences.SynchronizationSettings;
import de.danoeh.antennapod.model.feed.FeedMedia;
-import de.danoeh.antennapod.net.sync.model.EpisodeAction;
public class SynchronizationQueueSink {
// To avoid a dependency loop of every class to SyncService, and from SyncService back to every class.
diff --git a/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SynchronizationQueueStorage.java b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SynchronizationQueueStorage.java
index 0ae794ac8..55dc07ae8 100644
--- a/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SynchronizationQueueStorage.java
+++ b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/SynchronizationQueueStorage.java
@@ -9,7 +9,6 @@ import org.json.JSONException;
import java.util.ArrayList;
import de.danoeh.antennapod.storage.preferences.SynchronizationSettings;
-import de.danoeh.antennapod.net.sync.model.EpisodeAction;
public class SynchronizationQueueStorage {
diff --git a/net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/UploadChangesResponse.java b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/UploadChangesResponse.java
similarity index 82%
rename from net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/UploadChangesResponse.java
rename to net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/UploadChangesResponse.java
index 7503f429b..64bddc260 100644
--- a/net/sync/model/src/main/java/de/danoeh/antennapod/net/sync/model/UploadChangesResponse.java
+++ b/net/sync/service-interface/src/main/java/de/danoeh/antennapod/net/sync/serviceinterface/UploadChangesResponse.java
@@ -1,4 +1,4 @@
-package de.danoeh.antennapod.net.sync.model;
+package de.danoeh.antennapod.net.sync.serviceinterface;
public abstract class UploadChangesResponse {
diff --git a/net/sync/service/build.gradle b/net/sync/service/build.gradle
index 7fa19d320..03b81a39c 100644
--- a/net/sync/service/build.gradle
+++ b/net/sync/service/build.gradle
@@ -13,7 +13,6 @@ dependencies {
implementation project(':model')
implementation project(':net:common')
implementation project(':net:sync:gpoddernet')
- implementation project(':net:sync:model')
implementation project(':net:sync:service-interface')
implementation project(':storage:database')
implementation project(':storage:preferences')
diff --git a/net/sync/service/src/main/java/de/danoeh/antennapod/net/sync/service/EpisodeActionFilter.java b/net/sync/service/src/main/java/de/danoeh/antennapod/net/sync/service/EpisodeActionFilter.java
index 42fc1b7b9..17ea15ae8 100644
--- a/net/sync/service/src/main/java/de/danoeh/antennapod/net/sync/service/EpisodeActionFilter.java
+++ b/net/sync/service/src/main/java/de/danoeh/antennapod/net/sync/service/EpisodeActionFilter.java
@@ -8,7 +8,7 @@ import androidx.core.util.Pair;
import java.util.List;
import java.util.Map;
-import de.danoeh.antennapod.net.sync.model.EpisodeAction;
+import de.danoeh.antennapod.net.sync.serviceinterface.EpisodeAction;
public class EpisodeActionFilter {
diff --git a/net/sync/service/src/main/java/de/danoeh/antennapod/net/sync/service/SyncService.java b/net/sync/service/src/main/java/de/danoeh/antennapod/net/sync/service/SyncService.java
index f52c2b81d..97921e7f8 100644
--- a/net/sync/service/src/main/java/de/danoeh/antennapod/net/sync/service/SyncService.java
+++ b/net/sync/service/src/main/java/de/danoeh/antennapod/net/sync/service/SyncService.java
@@ -29,7 +29,7 @@ import de.danoeh.antennapod.model.feed.FeedItemFilter;
import de.danoeh.antennapod.model.feed.SortOrder;
import de.danoeh.antennapod.net.download.serviceinterface.FeedUpdateManager;
import de.danoeh.antennapod.net.sync.serviceinterface.LockingAsyncExecutor;
-import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationProviderViewData;
+import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationProvider;
import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationQueueStorage;
import de.danoeh.antennapod.storage.database.DBWriter;
import de.danoeh.antennapod.storage.database.FeedDatabaseWriter;
@@ -55,12 +55,12 @@ import de.danoeh.antennapod.model.feed.Feed;
import de.danoeh.antennapod.model.feed.FeedItem;
import de.danoeh.antennapod.model.feed.FeedMedia;
import de.danoeh.antennapod.net.sync.gpoddernet.GpodnetService;
-import de.danoeh.antennapod.net.sync.model.EpisodeAction;
-import de.danoeh.antennapod.net.sync.model.EpisodeActionChanges;
-import de.danoeh.antennapod.net.sync.model.ISyncService;
-import de.danoeh.antennapod.net.sync.model.SubscriptionChanges;
-import de.danoeh.antennapod.net.sync.model.SyncServiceException;
-import de.danoeh.antennapod.net.sync.model.UploadChangesResponse;
+import de.danoeh.antennapod.net.sync.serviceinterface.EpisodeAction;
+import de.danoeh.antennapod.net.sync.serviceinterface.EpisodeActionChanges;
+import de.danoeh.antennapod.net.sync.serviceinterface.ISyncService;
+import de.danoeh.antennapod.net.sync.serviceinterface.SubscriptionChanges;
+import de.danoeh.antennapod.net.sync.serviceinterface.SyncServiceException;
+import de.danoeh.antennapod.net.sync.serviceinterface.UploadChangesResponse;
import de.danoeh.antennapod.net.sync.nextcloud.NextcloudSyncService;
public class SyncService extends Worker {
@@ -369,7 +369,7 @@ public class SyncService extends Worker {
private ISyncService getActiveSyncProvider() {
String selectedSyncProviderKey = SynchronizationSettings.getSelectedSyncProviderKey();
- SynchronizationProviderViewData selectedService = SynchronizationProviderViewData
+ SynchronizationProvider selectedService = SynchronizationProvider
.fromIdentifier(selectedSyncProviderKey);
if (selectedService == null) {
return null;
diff --git a/net/sync/service-interface/src/main/res/values/ids.xml b/net/sync/service/src/main/res/values/ids.xml
similarity index 100%
rename from net/sync/service-interface/src/main/res/values/ids.xml
rename to net/sync/service/src/main/res/values/ids.xml
diff --git a/net/sync/service/src/test/java/de/danoeh/antennapod/net/sync/service/EpisodeActionFilterTest.java b/net/sync/service/src/test/java/de/danoeh/antennapod/net/sync/service/EpisodeActionFilterTest.java
index 22ea316d4..38f5bdc4a 100644
--- a/net/sync/service/src/test/java/de/danoeh/antennapod/net/sync/service/EpisodeActionFilterTest.java
+++ b/net/sync/service/src/test/java/de/danoeh/antennapod/net/sync/service/EpisodeActionFilterTest.java
@@ -12,7 +12,7 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
-import de.danoeh.antennapod.net.sync.model.EpisodeAction;
+import de.danoeh.antennapod.net.sync.serviceinterface.EpisodeAction;
public class EpisodeActionFilterTest extends TestCase {
diff --git a/settings.gradle b/settings.gradle
index 184df07f2..8cf8baf3e 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -25,7 +25,6 @@ include ':net:download:service-interface'
include ':net:download:service'
include ':net:ssl'
include ':net:sync:gpoddernet'
-include ':net:sync:model'
include ':net:sync:service-interface'
include ':net:sync:service'
diff --git a/storage/database/build.gradle b/storage/database/build.gradle
index 60b57828a..60f385505 100644
--- a/storage/database/build.gradle
+++ b/storage/database/build.gradle
@@ -16,7 +16,6 @@ dependencies {
implementation project(':event')
implementation project(':model')
implementation project(':net:download:service-interface')
- implementation project(':net:sync:model')
implementation project(':net:sync:service-interface')
implementation project(':storage:preferences')
implementation project(':ui:app-start-intent')
diff --git a/storage/database/src/main/java/de/danoeh/antennapod/storage/database/DBWriter.java b/storage/database/src/main/java/de/danoeh/antennapod/storage/database/DBWriter.java
index 3866b7ec1..a9c4f4dc3 100644
--- a/storage/database/src/main/java/de/danoeh/antennapod/storage/database/DBWriter.java
+++ b/storage/database/src/main/java/de/danoeh/antennapod/storage/database/DBWriter.java
@@ -36,7 +36,6 @@ import java.util.concurrent.TimeUnit;
import de.danoeh.antennapod.event.FavoritesEvent;
import de.danoeh.antennapod.event.FeedItemEvent;
import de.danoeh.antennapod.event.FeedListUpdateEvent;
-import de.danoeh.antennapod.event.MessageEvent;
import de.danoeh.antennapod.event.playback.PlaybackHistoryEvent;
import de.danoeh.antennapod.event.QueueEvent;
import de.danoeh.antennapod.event.UnreadItemsUpdateEvent;
@@ -50,7 +49,7 @@ import de.danoeh.antennapod.model.feed.FeedMedia;
import de.danoeh.antennapod.model.feed.FeedPreferences;
import de.danoeh.antennapod.model.feed.SortOrder;
import de.danoeh.antennapod.model.playback.Playable;
-import de.danoeh.antennapod.net.sync.model.EpisodeAction;
+import de.danoeh.antennapod.net.sync.serviceinterface.EpisodeAction;
/**
* Provides methods for writing data to AntennaPod's database.
@@ -114,8 +113,7 @@ public class DBWriter {
// Local feed
DocumentFile documentFile = DocumentFile.fromSingleUri(context, Uri.parse(media.getLocalFileUrl()));
if (documentFile == null || !documentFile.exists() || !documentFile.delete()) {
- EventBus.getDefault().post(new MessageEvent(context.getString(R.string.delete_local_failed)));
- return false;
+ Log.d(TAG, "Deletion of local file failed.");
}
media.setLocalFileUrl(null);
localDelete = true;
@@ -123,9 +121,7 @@ public class DBWriter {
// delete downloaded media file
File mediaFile = new File(media.getLocalFileUrl());
if (mediaFile.exists() && !mediaFile.delete()) {
- MessageEvent evt = new MessageEvent(context.getString(R.string.delete_failed));
- EventBus.getDefault().post(evt);
- return false;
+ Log.d(TAG, "Deletion of downloaded file failed.");
}
media.setDownloaded(false);
media.setLocalFileUrl(null);
diff --git a/storage/database/src/main/java/de/danoeh/antennapod/storage/database/FeedDatabaseWriter.java b/storage/database/src/main/java/de/danoeh/antennapod/storage/database/FeedDatabaseWriter.java
index 6429c3cb5..0a61007aa 100644
--- a/storage/database/src/main/java/de/danoeh/antennapod/storage/database/FeedDatabaseWriter.java
+++ b/storage/database/src/main/java/de/danoeh/antennapod/storage/database/FeedDatabaseWriter.java
@@ -11,7 +11,7 @@ import de.danoeh.antennapod.model.feed.FeedItem;
import de.danoeh.antennapod.model.feed.FeedItemFilter;
import de.danoeh.antennapod.model.feed.FeedPreferences;
import de.danoeh.antennapod.model.feed.SortOrder;
-import de.danoeh.antennapod.net.sync.model.EpisodeAction;
+import de.danoeh.antennapod.net.sync.serviceinterface.EpisodeAction;
import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationQueueSink;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import org.greenrobot.eventbus.EventBus;
diff --git a/ui/i18n/src/main/res/values/strings.xml b/ui/i18n/src/main/res/values/strings.xml
index 8b7f8b9ea..6242d229f 100644
--- a/ui/i18n/src/main/res/values/strings.xml
+++ b/ui/i18n/src/main/res/values/strings.xml
@@ -218,8 +218,6 @@
Pause
Stream
Delete
- Unable to delete file. Rebooting the device could help.
- Unable to delete file. Try re-connecting the local folder from the podcast info screen.
Delete episode
- 1 downloaded episode deleted.
diff --git a/ui/preferences/build.gradle b/ui/preferences/build.gradle
index eb595da58..fd9684e56 100644
--- a/ui/preferences/build.gradle
+++ b/ui/preferences/build.gradle
@@ -25,7 +25,6 @@ android {
dependencies {
implementation project(":event")
implementation project(":net:common")
- implementation project(":net:sync:model")
implementation project(":net:sync:gpoddernet")
implementation project(":storage:preferences")
implementation project(":storage:importexport")
diff --git a/ui/preferences/src/main/java/de/danoeh/antennapod/ui/preferences/screen/synchronization/GpodderAuthenticationFragment.java b/ui/preferences/src/main/java/de/danoeh/antennapod/ui/preferences/screen/synchronization/GpodderAuthenticationFragment.java
index 204287207..a2f210f2e 100644
--- a/ui/preferences/src/main/java/de/danoeh/antennapod/ui/preferences/screen/synchronization/GpodderAuthenticationFragment.java
+++ b/ui/preferences/src/main/java/de/danoeh/antennapod/ui/preferences/screen/synchronization/GpodderAuthenticationFragment.java
@@ -20,7 +20,7 @@ import androidx.fragment.app.DialogFragment;
import com.google.android.material.button.MaterialButton;
import de.danoeh.antennapod.net.common.AntennapodHttpClient;
import de.danoeh.antennapod.net.sync.service.SyncService;
-import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationProviderViewData;
+import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationProvider;
import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationQueueSink;
import de.danoeh.antennapod.storage.preferences.SynchronizationCredentials;
import de.danoeh.antennapod.storage.preferences.SynchronizationSettings;
@@ -257,7 +257,7 @@ public class GpodderAuthenticationFragment extends DialogFragment {
throw new IllegalStateException("Device must not be null here");
} else {
SynchronizationSettings.setSelectedSyncProvider(
- SynchronizationProviderViewData.GPODDER_NET.getIdentifier());
+ SynchronizationProvider.GPODDER_NET.getIdentifier());
SynchronizationCredentials.setUsername(username);
SynchronizationCredentials.setPassword(password);
SynchronizationCredentials.setDeviceId(selectedDevice.getId());
diff --git a/ui/preferences/src/main/java/de/danoeh/antennapod/ui/preferences/screen/synchronization/NextcloudAuthenticationFragment.java b/ui/preferences/src/main/java/de/danoeh/antennapod/ui/preferences/screen/synchronization/NextcloudAuthenticationFragment.java
index c503ccef1..5df85efe2 100644
--- a/ui/preferences/src/main/java/de/danoeh/antennapod/ui/preferences/screen/synchronization/NextcloudAuthenticationFragment.java
+++ b/ui/preferences/src/main/java/de/danoeh/antennapod/ui/preferences/screen/synchronization/NextcloudAuthenticationFragment.java
@@ -10,7 +10,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import androidx.fragment.app.DialogFragment;
import de.danoeh.antennapod.net.common.AntennapodHttpClient;
import de.danoeh.antennapod.net.sync.service.SyncService;
-import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationProviderViewData;
+import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationProvider;
import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationQueueSink;
import de.danoeh.antennapod.storage.preferences.SynchronizationCredentials;
import de.danoeh.antennapod.storage.preferences.SynchronizationSettings;
@@ -89,7 +89,7 @@ public class NextcloudAuthenticationFragment extends DialogFragment
@Override
public void onNextcloudAuthenticated(String server, String username, String password) {
SynchronizationSettings.setSelectedSyncProvider(
- SynchronizationProviderViewData.NEXTCLOUD_GPODDER.getIdentifier());
+ SynchronizationProvider.NEXTCLOUD_GPODDER.getIdentifier());
SynchronizationCredentials.clear();
SynchronizationQueueSink.clearQueue(getContext());
SynchronizationCredentials.setPassword(password);
diff --git a/ui/preferences/src/main/java/de/danoeh/antennapod/ui/preferences/screen/synchronization/SynchronizationPreferencesFragment.java b/ui/preferences/src/main/java/de/danoeh/antennapod/ui/preferences/screen/synchronization/SynchronizationPreferencesFragment.java
index c8c993cbc..709f3e43b 100644
--- a/ui/preferences/src/main/java/de/danoeh/antennapod/ui/preferences/screen/synchronization/SynchronizationPreferencesFragment.java
+++ b/ui/preferences/src/main/java/de/danoeh/antennapod/ui/preferences/screen/synchronization/SynchronizationPreferencesFragment.java
@@ -12,7 +12,9 @@ import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.TextView;
+import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import androidx.core.text.HtmlCompat;
@@ -22,7 +24,7 @@ import androidx.preference.PreferenceFragmentCompat;
import com.google.android.material.snackbar.Snackbar;
import de.danoeh.antennapod.net.sync.service.SyncService;
-import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationProviderViewData;
+import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationProvider;
import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationQueueSink;
import de.danoeh.antennapod.ui.preferences.R;
import org.greenrobot.eventbus.EventBus;
@@ -114,11 +116,11 @@ public class SynchronizationPreferencesFragment extends PreferenceFragmentCompat
final boolean loggedIn = SynchronizationSettings.isProviderConnected();
Preference preferenceHeader = findPreference(PREFERENCE_SYNCHRONIZATION_DESCRIPTION);
if (loggedIn) {
- SynchronizationProviderViewData selectedProvider =
- SynchronizationProviderViewData.fromIdentifier(getSelectedSyncProviderKey());
+ SynchronizationProvider selectedProvider =
+ SynchronizationProvider.fromIdentifier(getSelectedSyncProviderKey());
preferenceHeader.setTitle("");
- preferenceHeader.setSummary(selectedProvider.getSummaryResource());
- preferenceHeader.setIcon(selectedProvider.getIconResource());
+ preferenceHeader.setSummary(getProviderSummary(selectedProvider));
+ preferenceHeader.setIcon(getProviderIcon(selectedProvider));
preferenceHeader.setOnPreferenceClickListener(null);
} else {
preferenceHeader.setTitle(R.string.synchronization_choose_title);
@@ -131,7 +133,7 @@ public class SynchronizationPreferencesFragment extends PreferenceFragmentCompat
}
Preference gpodnetSetLoginPreference = findPreference(PREFERENCE_GPODNET_SETLOGIN_INFORMATION);
- gpodnetSetLoginPreference.setVisible(isProviderSelected(SynchronizationProviderViewData.GPODDER_NET));
+ gpodnetSetLoginPreference.setVisible(isProviderSelected(SynchronizationProvider.GPODDER_NET));
gpodnetSetLoginPreference.setEnabled(loggedIn);
findPreference(PREFERENCE_SYNC).setEnabled(loggedIn);
findPreference(PREFERENCE_FORCE_FULL_SYNC).setEnabled(loggedIn);
@@ -153,9 +155,8 @@ public class SynchronizationPreferencesFragment extends PreferenceFragmentCompat
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getContext());
builder.setTitle(R.string.dialog_choose_sync_service_title);
- SynchronizationProviderViewData[] providers = SynchronizationProviderViewData.values();
- ListAdapter adapter = new ArrayAdapter(
- getContext(), R.layout.alertdialog_sync_provider_chooser, providers) {
+ SynchronizationProvider[] providers = SynchronizationProvider.values();
+ ListAdapter adapter = new ArrayAdapter<>(getContext(), R.layout.alertdialog_sync_provider_chooser, providers) {
ViewHolder holder;
@@ -177,9 +178,9 @@ public class SynchronizationPreferencesFragment extends PreferenceFragmentCompat
} else {
holder = (ViewHolder) convertView.getTag();
}
- SynchronizationProviderViewData synchronizationProviderViewData = getItem(position);
- holder.title.setText(synchronizationProviderViewData.getSummaryResource());
- holder.icon.setImageResource(synchronizationProviderViewData.getIconResource());
+ SynchronizationProvider synchronizationProvider = getItem(position);
+ holder.title.setText(getProviderSummary(synchronizationProvider));
+ holder.icon.setImageResource(getProviderIcon(synchronizationProvider));
return convertView;
}
};
@@ -203,7 +204,7 @@ public class SynchronizationPreferencesFragment extends PreferenceFragmentCompat
builder.show();
}
- private boolean isProviderSelected(@NonNull SynchronizationProviderViewData provider) {
+ private boolean isProviderSelected(@NonNull SynchronizationProvider provider) {
String selectedSyncProviderKey = getSelectedSyncProviderKey();
return provider.getIdentifier().equals(selectedSyncProviderKey);
}
@@ -219,4 +220,26 @@ public class SynchronizationPreferencesFragment extends PreferenceFragmentCompat
lastTime, DateUtils.MINUTE_IN_MILLIS, DateUtils.WEEK_IN_MILLIS, DateUtils.FORMAT_SHOW_TIME));
((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(status);
}
+
+ private @StringRes int getProviderSummary(SynchronizationProvider provider) {
+ switch (provider) {
+ case GPODDER_NET:
+ return R.string.gpodnet_description;
+ case NEXTCLOUD_GPODDER:
+ return R.string.synchronization_summary_nextcloud;
+ default:
+ return R.string.sync_status_error;
+ }
+ }
+
+ private @DrawableRes int getProviderIcon(SynchronizationProvider provider) {
+ switch (provider) {
+ case GPODDER_NET:
+ return R.drawable.gpodder_icon;
+ case NEXTCLOUD_GPODDER:
+ return R.drawable.nextcloud_logo;
+ default:
+ return R.drawable.ic_error;
+ }
+ }
}
diff --git a/net/sync/service-interface/src/main/res/drawable-nodpi/gpodder_icon.png b/ui/preferences/src/main/res/drawable-nodpi/gpodder_icon.png
similarity index 100%
rename from net/sync/service-interface/src/main/res/drawable-nodpi/gpodder_icon.png
rename to ui/preferences/src/main/res/drawable-nodpi/gpodder_icon.png
diff --git a/net/sync/service-interface/src/main/res/drawable-nodpi/nextcloud_logo.png b/ui/preferences/src/main/res/drawable-nodpi/nextcloud_logo.png
similarity index 100%
rename from net/sync/service-interface/src/main/res/drawable-nodpi/nextcloud_logo.png
rename to ui/preferences/src/main/res/drawable-nodpi/nextcloud_logo.png