diff --git a/app/src/main/java/com/readrops/app/repositories/FreshRSSRepository.java b/app/src/main/java/com/readrops/app/repositories/FreshRSSRepository.java index e83b8c0e..325c55a9 100644 --- a/app/src/main/java/com/readrops/app/repositories/FreshRSSRepository.java +++ b/app/src/main/java/com/readrops/app/repositories/FreshRSSRepository.java @@ -101,7 +101,15 @@ public class FreshRSSRepository extends ARepository { @Override public Completable updateFeed(Feed feed) { - return null; + FreshRSSAPI api = new FreshRSSAPI(account.toCredentials()); + + return Single.create(emitter -> { + Folder folder = feed.getFolderId() == null ? null : database.folderDao().select(feed.getFolderId()); + emitter.onSuccess(folder); + + }).flatMapCompletable(folder -> api.updateFeed(account.getWriteToken(), + feed.getUrl(), feed.getName(), folder == null ? null : folder.getRemoteId())) + .andThen(super.updateFeed(feed)); } @Override diff --git a/readropslibrary/src/main/java/com/readrops/readropslibrary/services/freshrss/FreshRSSAPI.java b/readropslibrary/src/main/java/com/readrops/readropslibrary/services/freshrss/FreshRSSAPI.java index 82ee3f72..1f0dd063 100644 --- a/readropslibrary/src/main/java/com/readrops/readropslibrary/services/freshrss/FreshRSSAPI.java +++ b/readropslibrary/src/main/java/com/readrops/readropslibrary/services/freshrss/FreshRSSAPI.java @@ -112,6 +112,10 @@ public class FreshRSSAPI extends API { return api.createOrDeleteFeed(token, "feed/" + feedUrl, "unsubscribe"); } + public Completable updateFeed(String token, String feedUrl, String title, String folderId) { + return api.updateFeed(token, "feed/" + feedUrl, title, folderId, "edit"); + } + public enum EXCLUDE_ITEMS { EXCLUDE_READ_ITEMS("user/-/state/com.google/read"); diff --git a/readropslibrary/src/main/java/com/readrops/readropslibrary/services/freshrss/FreshRSSService.java b/readropslibrary/src/main/java/com/readrops/readropslibrary/services/freshrss/FreshRSSService.java index dcca08f0..abacec3e 100644 --- a/readropslibrary/src/main/java/com/readrops/readropslibrary/services/freshrss/FreshRSSService.java +++ b/readropslibrary/src/main/java/com/readrops/readropslibrary/services/freshrss/FreshRSSService.java @@ -45,4 +45,8 @@ public interface FreshRSSService { @FormUrlEncoded @POST("reader/api/0/subscription/edit") Completable createOrDeleteFeed(@Field("T") String token, @Field("s") String feedUrl, @Field("ac") String action); + + @FormUrlEncoded + @POST("reader/api/0/subscription/edit") + Completable updateFeed(@Field("T") String token, @Field("s") String feedUrl, @Field("t") String title, @Field("a") String folderId, @Field("ac") String action); }