summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/util/menuhandler
diff options
context:
space:
mode:
authorSimon Rutishauser <simon.rutishauser@web.de>2014-01-02 15:43:43 +0100
committerSimon Rutishauser <simon.rutishauser@web.de>2014-01-02 21:09:53 +0100
commit8c116142b89aa78f50fbf9dc08701428a6ea0b98 (patch)
treebaeef2a817676efc0950689f1e8196b77ecd8dda /src/de/danoeh/antennapod/util/menuhandler
parent375aefb2bf28c2bb4cee545808fadd93c1328434 (diff)
downloadAntennaPod-8c116142b89aa78f50fbf9dc08701428a6ea0b98.zip
* directly update Feed/FeedItem FlattrStatus instead of writing back entire Feed/FeedItem to database
* fix race condition when fetching FlattrStatus * fix missing copy of Flattr status in Feed.updateFromOther() * fix feed reading from db, was missing FlattrStatus followup on #331
Diffstat (limited to 'src/de/danoeh/antennapod/util/menuhandler')
-rw-r--r--src/de/danoeh/antennapod/util/menuhandler/FeedItemMenuHandler.java17
-rw-r--r--src/de/danoeh/antennapod/util/menuhandler/FeedMenuHandler.java15
2 files changed, 28 insertions, 4 deletions
diff --git a/src/de/danoeh/antennapod/util/menuhandler/FeedItemMenuHandler.java b/src/de/danoeh/antennapod/util/menuhandler/FeedItemMenuHandler.java
index 53316f9a4..3c662f794 100644
--- a/src/de/danoeh/antennapod/util/menuhandler/FeedItemMenuHandler.java
+++ b/src/de/danoeh/antennapod/util/menuhandler/FeedItemMenuHandler.java
@@ -3,6 +3,8 @@ package de.danoeh.antennapod.util.menuhandler;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
+import android.util.Log;
+
import de.danoeh.antennapod.AppConfig;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.asynctask.FlattrClickWorker;
@@ -17,9 +19,13 @@ import de.danoeh.antennapod.util.ShareUtils;
import de.danoeh.antennapod.util.flattr.FlattrStatus;
import java.util.List;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
/** Handles interactions with the FeedItemMenu. */
public class FeedItemMenuHandler {
+ private static final String TAG = "FeedItemMenuHandler";
+
private FeedItemMenuHandler() {
}
@@ -160,8 +166,15 @@ public class FeedItemMenuHandler {
break;
case R.id.support_item:
selectedItem.getFlattrStatus().setFlattrQueue();
- DBWriter.setFlattredStatus(context, selectedItem);
- new FlattrClickWorker(context).executeAsync();
+ Future<?> future = DBWriter.setFlattredStatus(context, selectedItem);
+ try {
+ synchronized (future) {
+ future.wait(10);
+ }
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ new FlattrClickWorker(context).executeAsync();
break;
case R.id.share_link_item:
ShareUtils.shareFeedItemLink(context, selectedItem);
diff --git a/src/de/danoeh/antennapod/util/menuhandler/FeedMenuHandler.java b/src/de/danoeh/antennapod/util/menuhandler/FeedMenuHandler.java
index 1559ae1c4..04620af49 100644
--- a/src/de/danoeh/antennapod/util/menuhandler/FeedMenuHandler.java
+++ b/src/de/danoeh/antennapod/util/menuhandler/FeedMenuHandler.java
@@ -8,6 +8,10 @@ import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
+
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+
import de.danoeh.antennapod.AppConfig;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.FeedInfoActivity;
@@ -81,8 +85,15 @@ public class FeedMenuHandler {
break;
case R.id.support_item:
selectedFeed.getFlattrStatus().setFlattrQueue();
- DBWriter.setFlattredStatus(context, selectedFeed);
- new FlattrClickWorker(context).executeAsync();
+ Future<?> future = DBWriter.setFlattredStatus(context, selectedFeed);
+ try {
+ synchronized (future) {
+ future.wait(10);
+ }
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ new FlattrClickWorker(context).executeAsync();
break;
case R.id.share_link_item:
ShareUtils.shareFeedlink(context, selectedFeed);