diff --git a/app/src/main/java/com/readrops/app/database/dao/FeedDao.java b/app/src/main/java/com/readrops/app/database/dao/FeedDao.java index 74c228ab..34eabff9 100644 --- a/app/src/main/java/com/readrops/app/database/dao/FeedDao.java +++ b/app/src/main/java/com/readrops/app/database/dao/FeedDao.java @@ -65,7 +65,7 @@ public abstract class FeedDao implements BaseDao { @Query("Select remoteId From Feed Where account_id = :accountId") public abstract List getFeedRemoteIdsOfAccount(int accountId); - @Query("Delete from Feed Where id in (:ids)") + @Query("Delete from Feed Where remoteId in (:ids)") abstract void deleteByIds(List ids); @Query("Select id From Folder Where remoteId = :remoteId And account_id = :accountId") diff --git a/app/src/main/java/com/readrops/app/database/dao/FolderDao.java b/app/src/main/java/com/readrops/app/database/dao/FolderDao.java index 014ba9f2..341c8ed0 100644 --- a/app/src/main/java/com/readrops/app/database/dao/FolderDao.java +++ b/app/src/main/java/com/readrops/app/database/dao/FolderDao.java @@ -32,7 +32,7 @@ public abstract class FolderDao implements BaseDao { @Query("Select remoteId From Folder Where account_id = :accountId") public abstract List getFolderRemoteIdsOfAccount(int accountId); - @Query("Delete From Folder Where id in (:ids)") + @Query("Delete From Folder Where remoteId in (:ids)") abstract void deleteByIds(List ids); /** diff --git a/app/src/main/java/com/readrops/app/repositories/NextNewsRepository.java b/app/src/main/java/com/readrops/app/repositories/NextNewsRepository.java index 8f95a311..ef218180 100644 --- a/app/src/main/java/com/readrops/app/repositories/NextNewsRepository.java +++ b/app/src/main/java/com/readrops/app/repositories/NextNewsRepository.java @@ -205,10 +205,16 @@ public class NextNewsRepository extends ARepository { NextNewsAPI api = new NextNewsAPI(account.toCredentials()); try { - NextNewsFolders folders = api.createFolder(new NextNewsFolder(Integer.parseInt(folder.getRemoteId()), folder.getName())); + int folderRemoteId = folder.getRemoteId() == null ? 0 : Integer.parseInt(folder.getRemoteId()); + NextNewsFolders folders = api.createFolder(new NextNewsFolder(folderRemoteId, folder.getName())); - if (folders != null) - insertFolders(folders.getFolders()); + if (folders != null) { + NextNewsFolder nextNewsFolder = folders.getFolders().get(0); // always only one item returned by the server, see doc + + folder.setName(nextNewsFolder.getName()); + folder.setRemoteId(String.valueOf(nextNewsFolder.getId())); + database.folderDao().insert(folder); + } else emitter.onError(new Exception("Unknown error")); } catch (Exception e) {