public static void StartDownloadingImages( Context context, long highestItemIdBeforeSync, boolean favIconsExclusive) { DatabaseConnection dbConn = new DatabaseConnection(context); try { Intent service = new Intent(context, DownloadImagesService.class); service.putExtra(DownloadImagesService.LAST_ITEM_ID, highestItemIdBeforeSync); if (favIconsExclusive) service.putExtra(DownloadImagesService.DOWNLOAD_FAVICONS_EXCLUSIVE, true); context.startService(service); } finally { dbConn.closeDatabase(); } }
@Override protected Exception doInBackground(Object... params) { DatabaseConnection dbConn = new DatabaseConnection(context); try { // String authKey = AuthenticationManager.getGoogleAuthKey(username, password); // SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(context); // int maxItemsInDatabase = // Integer.parseInt(mPrefs.getString(SettingsActivity.SP_MAX_ITEMS_SYNC, "200")); long lastModified = dbConn.getLastModified(); // dbConn.clearDatabaseOverSize(); // List<RssFile> files; long offset = dbConn.getLowestItemId(false); int requestCount; int maxSyncSize = Integer.parseInt(OwnCloudReaderMethods.maxSizePerSync); highestItemIdBeforeSync = dbConn.getHighestItemId(); SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(context); if (lastModified == 0) // Only on first sync { int maxItemsInDatabase = Constants.maxItemsCount; int totalCount = 0; do { requestCount = api.GetItems(TAGS.ALL, context, String.valueOf(offset), false, "0", "3", api); if (requestCount > 0) offset = dbConn.getLowestItemId(false); totalCount += requestCount; } while (requestCount == maxSyncSize); mPrefs.edit().putInt(Constants.LAST_UPDATE_NEW_ITEMS_COUNT_STRING, totalCount).commit(); do { offset = dbConn.getLowestItemId(true); requestCount = api.GetItems(TAGS.ALL_STARRED, context, String.valueOf(offset), true, "0", "2", api); // if(requestCount > 0) // offset = dbConn.getLowestItemId(true); totalCount += requestCount; } while (requestCount == maxSyncSize && totalCount < maxItemsInDatabase); } else { int[] result = api.GetUpdatedItems(TAGS.ALL, context, lastModified + 1, api); mPrefs.edit().putInt(Constants.LAST_UPDATE_NEW_ITEMS_COUNT_STRING, result[1]).commit(); // OwnCloudReaderMethods.GetUpdatedItems(TAGS.ALL, context, lastModified, api); } } catch (Exception ex) { return ex; } finally { dbConn.closeDatabase(); } return null; }