diff options
author | ByteHamster <info@bytehamster.com> | 2020-11-01 09:58:18 +0100 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2020-11-01 15:35:39 +0100 |
commit | 1ffb9f94644b136aaf16ae13bc777485268cb247 (patch) | |
tree | c4050bbfb199f09d4a124e2853f758f6365f232b /app/src/main/java/de/danoeh/antennapod/fragment/ItemPagerFragment.java | |
parent | 4a4392e79739aeab15eb53deab1840be814f3ecf (diff) | |
download | AntennaPod-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.java | 35 |
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; } } |