/** * Android ownCloud News * * @author David Luhmer * @copyright 2013 David Luhmer david-dev@live.de * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE * License as published by the Free Software Foundation; either * version 3 of the License, or any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU AFFERO GENERAL PUBLIC LICENSE for more details. * * You should have received a copy of the GNU Affero General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. * */ package de.luhmer.owncloudnewsreader.reader; import android.util.Log; import java.util.ArrayList; import java.util.List; import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm; import de.luhmer.owncloudnewsreader.database.model.Feed; import de.luhmer.owncloudnewsreader.database.model.Folder; public class InsertIntoDatabase { private static final String TAG = "InsertIntoDatabase"; public static void InsertFoldersIntoDatabase(List<Folder> folderList, DatabaseConnectionOrm dbConn) { dbConn.deleteOldAndInsertNewFolders(folderList.toArray(new Folder[folderList.size()])); /* List<Feed> feeds = dbConn.getListOfFeeds(); List<String> tagsAvailable = new ArrayList<String>(feeds.size()); for(int i = 0; i < feeds.size(); i++) tagsAvailable.add(feeds.get(i).getFeedTitle()); if(folderList != null) { int addedCount = 0; int removedCount = 0; for(Folder folder : folderList) { if(!tagsAvailable.contains(folder.getLabel())) { addedCount++; dbConn.insertNewFolder(folder); } } Log.d("ADD", ""+ addedCount); Log.d("REMOVE", ""+ removedCount++); } */ } public static void InsertFeedsIntoDatabase(ArrayList<Feed> feeds, DatabaseConnectionOrm dbConn) { List<Feed> oldFeeds = dbConn.getListOfFeeds(); if(feeds != null) { dbConn.insertNewFeed(feeds.toArray(new Feed[feeds.size()])); //for(Feed feed : newFeeds) // dbConn.insertNewFeed(feed); for(Feed oldFeed : oldFeeds) { boolean found = false; for(Feed newFeed : feeds) { if(oldFeed.getId() == newFeed.getId()) { found = true; //Set the avg color after sync again. newFeed.setAvgColour(oldFeed.getAvgColour()); dbConn.updateFeed(newFeed); break; } } if(!found) { dbConn.removeFeedById(oldFeed.getId()); Log.d(TAG, "Remove Subscription: " + oldFeed.getFeedTitle()); } } } } }