package fr.ydelouis.selfoss.sync; import org.androidannotations.annotations.EBean; import org.androidannotations.annotations.OrmLiteDao; import org.androidannotations.annotations.rest.RestService; import fr.ydelouis.selfoss.model.ArticleSyncActionDao; import fr.ydelouis.selfoss.model.DatabaseHelper; import fr.ydelouis.selfoss.rest.SelfossRest; @EBean public class Uploader { @OrmLiteDao(helper = DatabaseHelper.class, model = ArticleSyncAction.class) protected ArticleSyncActionDao articleSyncActionDao; @RestService protected SelfossRest selfossRest; public void performSync() { syncArticle(); } private void syncArticle() { syncMarkRead(); syncOtherActions(); } private void syncMarkRead() { String ids = ""; for (ArticleSyncAction markReadAction : articleSyncActionDao.queryForMarkRead()) { ids += "ids[]="+markReadAction.getArticleId()+"&"; } if (!ids.isEmpty()) { ids = ids.substring(0, ids.length()-1); selfossRest.markRead(ids); articleSyncActionDao.deleteMarkRead(); } } private void syncOtherActions() { for (ArticleSyncAction syncAction : articleSyncActionDao.queryForAll()) { syncAction.execute(selfossRest); articleSyncActionDao.delete(syncAction); } } }