summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-01-15 16:12:14 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-01-15 16:12:14 -0800
commit84fcb199226c44328bd339114f214f260133701c (patch)
treecad97c4818847f5a962533c9911bc0ae9c10d133
parent6e40ecff9f134ae9a4f13d0e3b74eb57a996dbac (diff)
downloadGoogleSubscribedFeedsProvider-84fcb199226c44328bd339114f214f260133701c.tar.gz
auto import from //branches/cupcake/...@126645
-rw-r--r--src/com/android/providers/subscribedfeeds/SubscribedFeedsSyncAdapter.java50
1 files changed, 22 insertions, 28 deletions
diff --git a/src/com/android/providers/subscribedfeeds/SubscribedFeedsSyncAdapter.java b/src/com/android/providers/subscribedfeeds/SubscribedFeedsSyncAdapter.java
index 355b95e..06a75ce 100644
--- a/src/com/android/providers/subscribedfeeds/SubscribedFeedsSyncAdapter.java
+++ b/src/com/android/providers/subscribedfeeds/SubscribedFeedsSyncAdapter.java
@@ -44,6 +44,7 @@ import android.os.Bundle;
import android.provider.Settings;
import android.provider.SubscribedFeeds;
import android.util.Log;
+import android.text.TextUtils;
/**
* Implements a SyncAdapter for SubscribedFeeds
@@ -80,39 +81,32 @@ public class SubscribedFeedsSyncAdapter extends AbstractGDataSyncAdapter {
* Takes the entry, casts it to a SubscribedFeedsEntry and executes the
* appropriate actions on the ContentProvider to represent the entry.
*/
- @Override
- protected void updateProvider(Feed feed,
- long syncLocalId,
- boolean forceDelete, Entry baseEntry,
- ContentProvider provider,
- Object syncInfo) throws ParseException {
-
+ protected void updateProvider(Feed feed, Long syncLocalId,
+ Entry baseEntry, ContentProvider provider, Object syncInfo)
+ throws ParseException {
+ ContentValues values = new ContentValues();
+ values.put(SubscribedFeeds.Feeds._SYNC_ACCOUNT, getAccount());
+ values.put(SubscribedFeeds.Feeds._SYNC_LOCAL_ID, syncLocalId);
final SubscribedFeedsEntry entry = (SubscribedFeedsEntry) baseEntry;
+ final String id = entry.getId();
final String editUri = entry.getEditUri();
-
- if (forceDelete) {
- final String serverId =
- editUri.substring(editUri.lastIndexOf('/') + 1);
- // Store the info about the subscribed feed
- ContentValues values = new ContentValues();
+ String version = null;
+ if (!TextUtils.isEmpty(id) && !TextUtils.isEmpty(editUri)) {
+ final String serverId = id.substring(id.lastIndexOf('/') + 1);
+ version = editUri.substring(editUri.lastIndexOf('/') + 1);
values.put(SubscribedFeeds.Feeds._SYNC_ID, serverId);
+ values.put(SubscribedFeeds.Feeds._SYNC_VERSION, version);
+ }
+ if (baseEntry.isDeleted()) {
provider.insert(SubscribedFeeds.Feeds.DELETED_CONTENT_URI, values);
- return;
+ } else {
+ values.put(SubscribedFeeds.Feeds.FEED, entry.getSubscribedFeed().getFeed());
+ if (!TextUtils.isEmpty(version)) {
+ values.put(SubscribedFeeds.Feeds._SYNC_TIME, version);
+ }
+ values.put(SubscribedFeeds.Feeds._SYNC_DIRTY, "0");
+ provider.insert(SubscribedFeeds.Feeds.CONTENT_URI, values);
}
-
- final String serverId = entry.getId().substring(entry.getId().lastIndexOf('/') + 1);
- final String version = editUri.substring(editUri.lastIndexOf('/') + 1);
-
- // Store the info about the person
- ContentValues values = new ContentValues();
- values.put(SubscribedFeeds.Feeds.FEED, entry.getSubscribedFeed().getFeed());
- values.put(SubscribedFeeds.Feeds._SYNC_ACCOUNT, getAccount());
- values.put(SubscribedFeeds.Feeds._SYNC_ID, serverId);
- values.put(SubscribedFeeds.Feeds._SYNC_DIRTY, "0");
- values.put(SubscribedFeeds.Feeds._SYNC_LOCAL_ID, syncLocalId);
- values.put(SubscribedFeeds.Feeds._SYNC_TIME, version);
- values.put(SubscribedFeeds.Feeds._SYNC_VERSION, version);
- provider.insert(SubscribedFeeds.Feeds.CONTENT_URI, values);
}
@Override