summaryrefslogtreecommitdiff
path: root/src/de
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2014-04-13 20:06:42 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2014-04-13 20:06:42 +0200
commit628103de45194d7bb126b6fbaffda07b1b0a0ae7 (patch)
tree6916560113169bd1b9d2d3836b6663edb547b366 /src/de
parentb22c8be8459467cde8ac4e18fb9a06f8cd15878a (diff)
downloadAntennaPod-628103de45194d7bb126b6fbaffda07b1b0a0ae7.zip
Sorting via drag and drop was interrupted by download observer
Diffstat (limited to 'src/de')
-rw-r--r--src/de/danoeh/antennapod/asynctask/DownloadObserver.java2
-rw-r--r--src/de/danoeh/antennapod/fragment/QueueFragment.java49
2 files changed, 36 insertions, 15 deletions
diff --git a/src/de/danoeh/antennapod/asynctask/DownloadObserver.java b/src/de/danoeh/antennapod/asynctask/DownloadObserver.java
index adcac1569..1e4234aaa 100644
--- a/src/de/danoeh/antennapod/asynctask/DownloadObserver.java
+++ b/src/de/danoeh/antennapod/asynctask/DownloadObserver.java
@@ -23,7 +23,7 @@ public class DownloadObserver {
/**
* Time period between update notifications.
*/
- public static final int WAITING_INTERVAL_MS = 1000;
+ public static final int WAITING_INTERVAL_MS = 3000;
private volatile Activity activity;
private final Handler handler;
diff --git a/src/de/danoeh/antennapod/fragment/QueueFragment.java b/src/de/danoeh/antennapod/fragment/QueueFragment.java
index a18994af5..73764df36 100644
--- a/src/de/danoeh/antennapod/fragment/QueueFragment.java
+++ b/src/de/danoeh/antennapod/fragment/QueueFragment.java
@@ -7,6 +7,7 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Parcelable;
import android.support.v4.app.Fragment;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -54,12 +55,16 @@ public class QueueFragment extends Fragment {
private DownloadObserver downloadObserver = null;
+ /**
+ * Download observer updates won't result in an upate of the list adapter if this is true.
+ */
+ private boolean blockDownloadObserverUpdate = false;
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
-
startItemLoader();
}
@@ -98,6 +103,7 @@ public class QueueFragment extends Fragment {
undoBarController = null;
activity.set(null);
viewsCreated = false;
+ blockDownloadObserverUpdate = false;
if (downloadObserver != null) {
downloadObserver.onPause();
}
@@ -112,16 +118,6 @@ public class QueueFragment extends Fragment {
progLoading = (ProgressBar) root.findViewById(R.id.progLoading);
listView.setEmptyView(txtvEmpty);
- listView.setDropListener(new DragSortListView.DropListener() {
- @Override
- public void drop(int from, int to) {
- stopItemLoader();
- final FeedItem item = queue.remove(from);
- queue.add(to, item);
- listAdapter.notifyDataSetChanged();
- DBWriter.moveQueueItem(getActivity(), from, to, true);
- }
- });
listView.setRemoveListener(new DragSortListView.RemoveListener() {
@Override
@@ -131,7 +127,8 @@ public class QueueFragment extends Fragment {
DBWriter.removeQueueItem(getActivity(), item.getId(), true);
undoBarController.showUndoBar(false,
getString(R.string.removed_from_queue), new FeedItemUndoToken(item,
- which));
+ which)
+ );
}
});
@@ -148,6 +145,30 @@ public class QueueFragment extends Fragment {
}
});
+ listView.setDragSortListener(new DragSortListView.DragSortListener() {
+ @Override
+ public void drag(int from, int to) {
+ Log.d(TAG, "drag");
+ blockDownloadObserverUpdate = true;
+ }
+
+ @Override
+ public void drop(int from, int to) {
+ Log.d(TAG, "drop");
+ blockDownloadObserverUpdate = false;
+ stopItemLoader();
+ final FeedItem item = queue.remove(from);
+ queue.add(to, item);
+ listAdapter.notifyDataSetChanged();
+ DBWriter.moveQueueItem(getActivity(), from, to, true);
+ }
+
+ @Override
+ public void remove(int which) {
+
+ }
+ });
+
if (!itemsLoaded) {
progLoading.setVisibility(View.VISIBLE);
txtvEmpty.setVisibility(View.GONE);
@@ -175,7 +196,7 @@ public class QueueFragment extends Fragment {
private DownloadObserver.Callback downloadObserverCallback = new DownloadObserver.Callback() {
@Override
public void onContentChanged() {
- if (listAdapter != null) {
+ if (listAdapter != null && !blockDownloadObserverUpdate) {
listAdapter.notifyDataSetChanged();
}
}
@@ -183,7 +204,7 @@ public class QueueFragment extends Fragment {
@Override
public void onDownloadDataAvailable(List<Downloader> downloaderList) {
QueueFragment.this.downloaderList = downloaderList;
- if (listAdapter != null) {
+ if (listAdapter != null && !blockDownloadObserverUpdate) {
listAdapter.notifyDataSetChanged();
}
}