diff options
-rw-r--r-- | res/layout/new_episodes_fragment.xml | 37 | ||||
-rw-r--r-- | res/layout/new_episodes_listitem.xml | 1 | ||||
-rw-r--r-- | res/menu/new_episodes.xml | 12 | ||||
-rw-r--r-- | res/values/colors.xml | 3 | ||||
-rw-r--r-- | src/de/danoeh/antennapod/fragment/NewEpisodesFragment.java | 30 |
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() { |