summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorsilansuslu <72400543+silansuslu@users.noreply.github.com>2021-12-14 14:02:49 -0800
committerGitHub <noreply@github.com>2021-12-14 23:02:49 +0100
commit12be830f217fe9e179bf053665337af39f48aa9e (patch)
tree7577ae581167424665e47c3733c23dadabb13276 /app
parent20e8b3ed6c3207ff640d0c2274df9ce69408efc7 (diff)
downloadantennapod-12be830f217fe9e179bf053665337af39f48aa9e.zip
Add keyboard shortcuts for going to the top and bottom of podcast list (#5588)
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java1
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java18
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java20
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java18
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java18
5 files changed, 74 insertions, 1 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
index 17411c7ce..3e4782f1f 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
@@ -624,6 +624,7 @@ public class MainActivity extends CastEnabledActivity {
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
Integer customKeyCode = null;
+ EventBus.getDefault().post(event);
switch (keyCode) {
case KeyEvent.KEYCODE_P:
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 37d77d31f..7eb0847eb 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
@@ -2,6 +2,7 @@ package de.danoeh.antennapod.fragment;
import android.content.DialogInterface;
import android.os.Bundle;
+import android.view.KeyEvent;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;
@@ -321,6 +322,23 @@ public abstract class EpisodesListFragment extends Fragment {
}
}
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onKeyUp(KeyEvent event) {
+ if (!isAdded() || !isVisible() || !isMenuVisible()) {
+ return;
+ }
+ switch (event.getKeyCode()) {
+ case KeyEvent.KEYCODE_T:
+ recyclerView.smoothScrollToPosition(0);
+ break;
+ case KeyEvent.KEYCODE_B:
+ recyclerView.smoothScrollToPosition(listAdapter.getItemCount() - 1);
+ break;
+ default:
+ break;
+ }
+ }
+
protected boolean shouldUpdatedItemRemainInList(FeedItem item) {
return true;
}
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 aa50c346c..d74981b7f 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
@@ -24,7 +24,6 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.appcompat.widget.Toolbar;
-import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
@@ -88,6 +87,8 @@ import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
+import android.view.KeyEvent;
+import androidx.fragment.app.Fragment;
/**
* Displays a list of FeedItems.
@@ -644,6 +645,23 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
return feed;
}
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onKeyUp(KeyEvent event) {
+ if (!isAdded() || !isVisible() || !isMenuVisible()) {
+ return;
+ }
+ switch (event.getKeyCode()) {
+ case KeyEvent.KEYCODE_T:
+ recyclerView.smoothScrollToPosition(0);
+ break;
+ case KeyEvent.KEYCODE_B:
+ recyclerView.smoothScrollToPosition(adapter.getItemCount() - 1);
+ break;
+ default:
+ break;
+ }
+ }
+
private static class FeedItemListAdapter extends EpisodeItemListAdapter {
public FeedItemListAdapter(MainActivity mainActivity) {
super(mainActivity);
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java
index e1fa5eeb6..54c98c0ce 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java
@@ -2,6 +2,7 @@ package de.danoeh.antennapod.fragment;
import android.os.Bundle;
import android.util.Log;
+import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
@@ -181,6 +182,23 @@ public class PlaybackHistoryFragment extends Fragment implements Toolbar.OnMenuI
}
@Subscribe(threadMode = ThreadMode.MAIN)
+ public void onKeyUp(KeyEvent event) {
+ if (!isAdded() || !isVisible() || !isMenuVisible()) {
+ return;
+ }
+ switch (event.getKeyCode()) {
+ case KeyEvent.KEYCODE_T:
+ recyclerView.smoothScrollToPosition(0);
+ break;
+ case KeyEvent.KEYCODE_B:
+ recyclerView.smoothScrollToPosition(adapter.getItemCount() - 1);
+ break;
+ default:
+ break;
+ }
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
public void onHistoryUpdated(PlaybackHistoryEvent event) {
loadItems();
refreshToolbarState();
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
index b308db0f6..c145642b9 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
@@ -7,6 +7,7 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
+import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
@@ -234,6 +235,23 @@ public class QueueFragment extends Fragment implements Toolbar.OnMenuItemClickLi
}
}
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onKeyUp(KeyEvent event) {
+ if (!isAdded() || !isVisible() || !isMenuVisible()) {
+ return;
+ }
+ switch (event.getKeyCode()) {
+ case KeyEvent.KEYCODE_T:
+ recyclerView.smoothScrollToPosition(0);
+ break;
+ case KeyEvent.KEYCODE_B:
+ recyclerView.smoothScrollToPosition(recyclerAdapter.getItemCount() - 1);
+ break;
+ default:
+ break;
+ }
+ }
+
@Override
public void onDestroyView() {
super.onDestroyView();