diff options
author | Simon Rutishauser <simon.rutishauser@web.de> | 2014-01-02 15:43:43 +0100 |
---|---|---|
committer | Simon Rutishauser <simon.rutishauser@web.de> | 2014-01-02 21:09:53 +0100 |
commit | 8c116142b89aa78f50fbf9dc08701428a6ea0b98 (patch) | |
tree | baeef2a817676efc0950689f1e8196b77ecd8dda /src/de/danoeh/antennapod/util/menuhandler | |
parent | 375aefb2bf28c2bb4cee545808fadd93c1328434 (diff) | |
download | AntennaPod-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.java | 17 | ||||
-rw-r--r-- | src/de/danoeh/antennapod/util/menuhandler/FeedMenuHandler.java | 15 |
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); |