summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java10
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java15
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java10
-rw-r--r--app/src/main/res/layout/all_episodes_fragment.xml27
-rw-r--r--app/src/main/res/layout/feed_item_list_fragment.xml19
-rw-r--r--app/src/main/res/layout/fragment_subscriptions.xml29
-rw-r--r--app/src/main/res/values/integers.xml1
7 files changed, 84 insertions, 27 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
index 44f6c8827..0669dcbeb 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
@@ -6,6 +6,9 @@ import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.SimpleItemAnimator;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+
+import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -214,6 +217,13 @@ public abstract class EpisodesListFragment extends Fragment {
((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
}
+ SwipeRefreshLayout swipeRefreshLayout = root.findViewById(R.id.swipeRefresh);
+ swipeRefreshLayout.setOnRefreshListener(() -> {
+ AutoUpdateManager.runImmediate(requireContext());
+ new Handler().postDelayed(() -> swipeRefreshLayout.setRefreshing(false),
+ getResources().getInteger(R.integer.swipe_to_refresh_duration_in_ms));
+ });
+
progLoading = root.findViewById(R.id.progLoading);
progLoading.setVisibility(View.VISIBLE);
loadingMoreView = root.findViewById(R.id.loadingMore);
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
index 965cfdc86..0837e6a3f 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
@@ -6,6 +6,7 @@ import android.content.res.Configuration;
import android.content.Intent;
import android.graphics.LightingColorFilter;
import android.os.Bundle;
+import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -26,6 +27,8 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.android.material.appbar.AppBarLayout;
@@ -205,6 +208,18 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
});
EventBus.getDefault().register(this);
+
+ SwipeRefreshLayout swipeRefreshLayout = root.findViewById(R.id.swipeRefresh);
+ swipeRefreshLayout.setOnRefreshListener(() -> {
+ try {
+ DBTasks.forceRefreshFeed(requireContext(), feed, true);
+ } catch (DownloadRequestException e) {
+ e.printStackTrace();
+ }
+ new Handler().postDelayed(() -> swipeRefreshLayout.setRefreshing(false),
+ getResources().getInteger(R.integer.swipe_to_refresh_duration_in_ms));
+ });
+
loadItems();
return root;
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
index 3837c5025..fd3409927 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
@@ -5,10 +5,13 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
+import android.os.Handler;
import android.widget.ProgressBar;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+
import android.util.Log;
import android.view.ContextMenu;
import android.view.LayoutInflater;
@@ -103,6 +106,13 @@ public class SubscriptionFragment extends Fragment {
feedsFilteredMsg = root.findViewById(R.id.feeds_filtered_message);
feedsFilteredMsg.setOnClickListener((l) -> FeedFilterDialog.showDialog(requireContext()));
+
+ SwipeRefreshLayout swipeRefreshLayout = root.findViewById(R.id.swipeRefresh);
+ swipeRefreshLayout.setOnRefreshListener(() -> {
+ AutoUpdateManager.runImmediate(requireContext());
+ new Handler().postDelayed(() -> swipeRefreshLayout.setRefreshing(false),
+ getResources().getInteger(R.integer.swipe_to_refresh_duration_in_ms));
+ });
return root;
}
diff --git a/app/src/main/res/layout/all_episodes_fragment.xml b/app/src/main/res/layout/all_episodes_fragment.xml
index 353e4f1d0..3b560967c 100644
--- a/app/src/main/res/layout/all_episodes_fragment.xml
+++ b/app/src/main/res/layout/all_episodes_fragment.xml
@@ -16,19 +16,26 @@
android:visibility="gone"
tools:text="(i) Information" />
- <de.danoeh.antennapod.view.EpisodeItemListRecyclerView
- android:id="@android:id/list"
+ <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+ android:id="@+id/swipeRefresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/txtvInformation"
- android:layout_marginTop="0dp"
- android:layout_marginBottom="0dp"
- android:paddingTop="@dimen/list_vertical_padding"
- android:paddingBottom="@dimen/list_vertical_padding"
- android:paddingHorizontal="@dimen/additional_horizontal_spacing"
- android:layout_above="@id/loadingMore"
- tools:itemCount="13"
- tools:listitem="@layout/feeditemlist_item" />
+ android:layout_above="@id/loadingMore">
+
+ <de.danoeh.antennapod.view.EpisodeItemListRecyclerView
+ android:id="@android:id/list"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="0dp"
+ android:layout_marginBottom="0dp"
+ android:paddingTop="@dimen/list_vertical_padding"
+ android:paddingBottom="@dimen/list_vertical_padding"
+ android:paddingHorizontal="@dimen/additional_horizontal_spacing"
+ tools:itemCount="13"
+ tools:listitem="@layout/feeditemlist_item" />
+
+ </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<ProgressBar
android:id="@+id/progLoading"
diff --git a/app/src/main/res/layout/feed_item_list_fragment.xml b/app/src/main/res/layout/feed_item_list_fragment.xml
index b995ff28f..6dc484e2f 100644
--- a/app/src/main/res/layout/feed_item_list_fragment.xml
+++ b/app/src/main/res/layout/feed_item_list_fragment.xml
@@ -48,12 +48,19 @@
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
- <de.danoeh.antennapod.view.EpisodeItemListRecyclerView
- android:id="@+id/recyclerView"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingHorizontal="@dimen/additional_horizontal_spacing"
- app:layout_behavior="@string/appbar_scrolling_view_behavior" />
+ <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+ android:id="@+id/swipeRefresh"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ app:layout_behavior="@string/appbar_scrolling_view_behavior">
+
+ <de.danoeh.antennapod.view.EpisodeItemListRecyclerView
+ android:id="@+id/recyclerView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingHorizontal="@dimen/additional_horizontal_spacing" />
+
+ </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<ProgressBar
android:id="@+id/progLoading"
diff --git a/app/src/main/res/layout/fragment_subscriptions.xml b/app/src/main/res/layout/fragment_subscriptions.xml
index a1a5a26f2..d08e0c501 100644
--- a/app/src/main/res/layout/fragment_subscriptions.xml
+++ b/app/src/main/res/layout/fragment_subscriptions.xml
@@ -28,17 +28,24 @@
android:textColor="?android:attr/textColorSecondary"
android:textSize="@dimen/text_size_small" />
- <GridView
- android:layout_below="@id/feeds_filtered_message"
- android:id="@+id/subscriptions_grid"
- android:layout_width="match_parent"
- android:numColumns="3"
- android:horizontalSpacing="2dp"
- android:verticalSpacing="2dp"
- android:layout_height="match_parent"
- android:layout_gravity="center_horizontal"
- android:paddingBottom="88dp"
- android:clipToPadding="false"/>
+ <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+ android:id="@+id/swipeRefresh"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@id/feeds_filtered_message">
+
+ <GridView
+ android:id="@+id/subscriptions_grid"
+ android:layout_width="match_parent"
+ android:numColumns="3"
+ android:horizontalSpacing="2dp"
+ android:verticalSpacing="2dp"
+ android:layout_height="match_parent"
+ android:layout_gravity="center_horizontal"
+ android:paddingBottom="88dp"
+ android:clipToPadding="false"/>
+
+ </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<ProgressBar
android:id="@+id/progLoading"
diff --git a/app/src/main/res/values/integers.xml b/app/src/main/res/values/integers.xml
index a7a7ead7b..cb8f9e082 100644
--- a/app/src/main/res/values/integers.xml
+++ b/app/src/main/res/values/integers.xml
@@ -2,4 +2,5 @@
<resources>
<integer name="subscriptions_default_num_of_columns">3</integer>
<integer name="nav_drawer_screen_size_percent">80</integer>
+ <integer name="swipe_to_refresh_duration_in_ms">750</integer>
</resources> \ No newline at end of file