summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--res/layout/new_episodes_fragment.xml37
-rw-r--r--res/layout/new_episodes_listitem.xml1
-rw-r--r--res/menu/new_episodes.xml12
-rw-r--r--res/values/colors.xml3
-rw-r--r--src/de/danoeh/antennapod/fragment/NewEpisodesFragment.java30
5 files changed, 58 insertions, 25 deletions
diff --git a/res/layout/new_episodes_fragment.xml b/res/layout/new_episodes_fragment.xml
index b389d8858..b091659fa 100644
--- a/res/layout/new_episodes_fragment.xml
+++ b/res/layout/new_episodes_fragment.xml
@@ -6,23 +6,30 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
- <com.mobeta.android.dslv.DragSortListView
- android:id="@android:id/list"
- android:scrollbarStyle="outsideOverlay"
+ <android.support.v4.widget.SwipeRefreshLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
- dslv:collapsed_height="2dp"
- dslv:drag_enabled="false"
- dslv:drag_scroll_start="0.33"
- dslv:float_alpha="0.6"
- dslv:max_drag_scroll_speed="0.5"
- dslv:remove_enabled="true"
- dslv:remove_mode="flingRemove"
- dslv:slide_shuffle_speed="0.3"
- dslv:sort_enabled="false"
- dslv:track_drag_sort="false"
- dslv:float_background_color="?attr/dragview_float_background"
- dslv:use_default_controller="true"/>
+ android:id="@+id/swipeRefreshLayout">
+
+ <com.mobeta.android.dslv.DragSortListView
+ android:id="@android:id/list"
+ android:scrollbarStyle="outsideOverlay"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ dslv:collapsed_height="2dp"
+ dslv:drag_enabled="false"
+ dslv:drag_scroll_start="0.33"
+ dslv:float_alpha="0.6"
+ dslv:max_drag_scroll_speed="0.5"
+ dslv:remove_enabled="true"
+ dslv:remove_mode="flingRemove"
+ dslv:slide_shuffle_speed="0.3"
+ dslv:sort_enabled="false"
+ dslv:track_drag_sort="false"
+ dslv:float_background_color="?attr/dragview_float_background"
+ dslv:use_default_controller="true"/>
+
+ </android.support.v4.widget.SwipeRefreshLayout>
<TextView
android:id="@id/android:empty"
diff --git a/res/layout/new_episodes_listitem.xml b/res/layout/new_episodes_listitem.xml
index 955d4d046..be9348b78 100644
--- a/res/layout/new_episodes_listitem.xml
+++ b/res/layout/new_episodes_listitem.xml
@@ -26,6 +26,7 @@
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
+ android:layout_marginTop="4dp"
android:layout_alignParentTop="true"
android:layout_toRightOf="@id/imgvImage"
android:layout_alignParentRight="true"
diff --git a/res/menu/new_episodes.xml b/res/menu/new_episodes.xml
index f6973ed71..3648c5fce 100644
--- a/res/menu/new_episodes.xml
+++ b/res/menu/new_episodes.xml
@@ -4,18 +4,18 @@
xmlns:custom="http://schemas.android.com/apk/res-auto">
<item
- android:id="@+id/refresh_item"
- android:title="@string/refresh_label"
+ android:id="@+id/mark_all_read_item"
+ android:title="@string/mark_all_read_label"
android:menuCategory="container"
custom:showAsAction="ifRoom|collapseActionView"
- android:icon="?attr/navigation_refresh"/>
+ android:icon="?attr/navigation_accept"/>
<item
- android:id="@+id/mark_all_read_item"
- android:title="@string/mark_all_read_label"
+ android:id="@+id/refresh_item"
+ android:title="@string/refresh_label"
android:menuCategory="container"
custom:showAsAction="ifRoom|collapseActionView"
- android:icon="?attr/navigation_accept"/>
+ android:icon="?attr/navigation_refresh"/>
<item
android:id="@+id/episode_filter_item"
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 7ce05bc13..155f0efcf 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -28,6 +28,9 @@
<color name="status_playing">#E0EE5F52</color>
<color name="overlay_dark">#262C31</color>
<color name="overlay_light">#DDDDDD</color>
+ <color name="swipe_refresh_secondary_color_light">#EDEDED</color>
+ <color name="swipe_refresh_secondary_color_dark">#060708</color>
+
<!-- Use Gingerbread-orange -->
<color name="selection_background_color_dark">#FEBB20</color>
diff --git a/src/de/danoeh/antennapod/fragment/NewEpisodesFragment.java b/src/de/danoeh/antennapod/fragment/NewEpisodesFragment.java
index 4bf7a4b76..a420f9d26 100644
--- a/src/de/danoeh/antennapod/fragment/NewEpisodesFragment.java
+++ b/src/de/danoeh/antennapod/fragment/NewEpisodesFragment.java
@@ -7,6 +7,7 @@ import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
+import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.SearchView;
import android.view.*;
@@ -25,6 +26,7 @@ import de.danoeh.antennapod.feed.EventDistributor;
import de.danoeh.antennapod.feed.Feed;
import de.danoeh.antennapod.feed.FeedItem;
import de.danoeh.antennapod.feed.FeedMedia;
+import de.danoeh.antennapod.preferences.UserPreferences;
import de.danoeh.antennapod.service.download.DownloadService;
import de.danoeh.antennapod.service.download.Downloader;
import de.danoeh.antennapod.storage.DBReader;
@@ -53,6 +55,7 @@ public class NewEpisodesFragment extends Fragment {
private DragSortListView listView;
+ private SwipeRefreshLayout swipeRefreshLayout;
private NewEpisodesListAdapter listAdapter;
private TextView txtvEmpty;
private ProgressBar progLoading;
@@ -198,6 +201,8 @@ public class NewEpisodesFragment extends Fragment {
((MainActivity) getActivity()).getSupportActionBar().setTitle(R.string.all_episodes_label);
View root = inflater.inflate(R.layout.new_episodes_fragment, container, false);
+
+ swipeRefreshLayout = (SwipeRefreshLayout) root.findViewById(R.id.swipeRefreshLayout);
listView = (DragSortListView) root.findViewById(android.R.id.list);
txtvEmpty = (TextView) root.findViewById(android.R.id.empty);
progLoading = (ProgressBar) root.findViewById(R.id.progLoading);
@@ -214,6 +219,18 @@ public class NewEpisodesFragment extends Fragment {
}
});
+ final int secondColor = (UserPreferences.getTheme() == R.style.Theme_AntennaPod_Dark) ? R.color.swipe_refresh_secondary_color_dark : R.color.swipe_refresh_secondary_color_light;
+ swipeRefreshLayout.setColorScheme(R.color.bright_blue, secondColor, R.color.bright_blue, secondColor);
+ swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
+ @Override
+ public void onRefresh() {
+ List<Feed> feeds = ((MainActivity) getActivity()).getFeeds();
+ if (feeds != null) {
+ DBTasks.refreshAllFeeds(getActivity(), feeds);
+ }
+ }
+ });
+
if (!itemsLoaded) {
progLoading.setVisibility(View.VISIBLE);
txtvEmpty.setVisibility(View.GONE);
@@ -310,16 +327,21 @@ public class NewEpisodesFragment extends Fragment {
};
private void updateProgressBarVisibility() {
+ if (!viewsCreated) {
+ return;
+ }
+
if (DownloadService.isRunning
&& DownloadRequester.getInstance().isDownloadingFeeds()) {
- ((ActionBarActivity) getActivity())
- .setSupportProgressBarIndeterminateVisibility(true);
+ swipeRefreshLayout.setRefreshing(true);
+
} else {
+ swipeRefreshLayout.setRefreshing(false);
+
+ // if case other fragments have set this to true, this fragment should remove the progress indicator
((ActionBarActivity) getActivity())
.setSupportProgressBarIndeterminateVisibility(false);
}
- getActivity().supportInvalidateOptionsMenu();
-
}
private EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() {