summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment/ItemPagerFragment.java
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2020-11-01 09:58:18 +0100
committerByteHamster <info@bytehamster.com>2020-11-01 15:35:39 +0100
commit1ffb9f94644b136aaf16ae13bc777485268cb247 (patch)
treec4050bbfb199f09d4a124e2853f758f6365f232b /app/src/main/java/de/danoeh/antennapod/fragment/ItemPagerFragment.java
parent4a4392e79739aeab15eb53deab1840be814f3ecf (diff)
downloadAntennaPod-1ffb9f94644b136aaf16ae13bc777485268cb247.zip
Converted second-level fragments to stand-alone toolbar
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/ItemPagerFragment.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/ItemPagerFragment.java35
1 files changed, 13 insertions, 22 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemPagerFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemPagerFragment.java
index 2425a174e..7b7a09082 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemPagerFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemPagerFragment.java
@@ -2,15 +2,12 @@ package de.danoeh.antennapod.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.Fragment;
@@ -35,7 +32,7 @@ import io.reactivex.schedulers.Schedulers;
/**
* Displays information about a list of FeedItems.
*/
-public class ItemPagerFragment extends Fragment {
+public class ItemPagerFragment extends Fragment implements Toolbar.OnMenuItemClickListener {
private static final String ARG_FEEDITEMS = "feeditems";
private static final String ARG_FEEDITEM_POS = "feeditem_pos";
private static final String KEY_PAGER_ID = "pager_id";
@@ -60,21 +57,18 @@ public class ItemPagerFragment extends Fragment {
private long[] feedItems;
private FeedItem item;
private Disposable disposable;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setHasOptionsMenu(true);
- }
+ private Toolbar toolbar;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View layout = inflater.inflate(R.layout.feeditem_pager_fragment, container, false);
- Toolbar toolbar = layout.findViewById(R.id.toolbar);
+ toolbar = layout.findViewById(R.id.toolbar);
toolbar.setTitle("");
- ((AppCompatActivity) getActivity()).setSupportActionBar(toolbar);
+ toolbar.inflateMenu(R.menu.feeditem_options);
+ toolbar.setNavigationOnClickListener(v -> getParentFragmentManager().popBackStack());
+ toolbar.setOnMenuItemClickListener(this);
feedItems = getArguments().getLongArray(ARG_FEEDITEMS);
int feedItemPos = getArguments().getInt(ARG_FEEDITEM_POS);
@@ -130,28 +124,25 @@ public class ItemPagerFragment extends Fragment {
.observeOn(AndroidSchedulers.mainThread())
.subscribe(result -> {
item = result;
- getActivity().invalidateOptionsMenu();
+ refreshToolbarState();
}, Throwable::printStackTrace);
}
- @Override
- public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- if (!isAdded() || item == null) {
+ public void refreshToolbarState() {
+ if (item == null) {
return;
}
- super.onCreateOptionsMenu(menu, inflater);
- inflater.inflate(R.menu.feeditem_options, menu);
if (item.hasMedia()) {
- FeedItemMenuHandler.onPrepareMenu(menu, item);
+ FeedItemMenuHandler.onPrepareMenu(toolbar.getMenu(), item);
} else {
// these are already available via button1 and button2
- FeedItemMenuHandler.onPrepareMenu(menu, item,
+ FeedItemMenuHandler.onPrepareMenu(toolbar.getMenu(), item,
R.id.mark_read_item, R.id.visit_website_item);
}
}
@Override
- public boolean onOptionsItemSelected(MenuItem menuItem) {
+ public boolean onMenuItemClick(MenuItem menuItem) {
if (menuItem.getItemId() == R.id.open_podcast) {
openPodcast();
return true;
@@ -164,7 +155,7 @@ public class ItemPagerFragment extends Fragment {
for (FeedItem item : event.items) {
if (this.item != null && this.item.getId() == item.getId()) {
this.item = item;
- getActivity().invalidateOptionsMenu();
+ refreshToolbarState();
return;
}
}