diff options
author | ByteHamster <info@bytehamster.com> | 2021-01-02 16:58:43 +0100 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2021-01-02 16:58:43 +0100 |
commit | 3ed33794327f547c8892d30958a78770dae56d45 (patch) | |
tree | 29095e84b7e8051e6e4bd58e6d7d66578807e614 /app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/GpodnetMainFragment.java | |
parent | c9635473cb69acfb883f70868f6a8e04670241b1 (diff) | |
parent | d1426f97740103d548db007e3ad2c918d90f8bf0 (diff) | |
download | AntennaPod-3ed33794327f547c8892d30958a78770dae56d45.zip |
Merge branch 'develop' into folders
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/GpodnetMainFragment.java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/GpodnetMainFragment.java | 47 |
1 files changed, 36 insertions, 11 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/GpodnetMainFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/GpodnetMainFragment.java index 641e82b5a..ad815c3c9 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/GpodnetMainFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/GpodnetMainFragment.java @@ -1,11 +1,14 @@ package de.danoeh.antennapod.fragment.gpodnet; +import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; +import androidx.appcompat.widget.SearchView; import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.Fragment; import androidx.viewpager2.adapter.FragmentStateAdapter; @@ -15,6 +18,9 @@ import com.google.android.material.tabs.TabLayout; import com.google.android.material.tabs.TabLayoutMediator; import de.danoeh.antennapod.R; +import de.danoeh.antennapod.activity.MainActivity; +import de.danoeh.antennapod.discovery.GpodnetPodcastSearcher; +import de.danoeh.antennapod.fragment.OnlineSearchFragment; /** * Main navigation hub for gpodder.net podcast directory @@ -30,9 +36,7 @@ public class GpodnetMainFragment extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); View root = inflater.inflate(R.layout.pager_fragment, container, false); - Toolbar toolbar = root.findViewById(R.id.toolbar); - toolbar.setTitle(R.string.gpodnet_main_label); - toolbar.setNavigationOnClickListener(v -> getParentFragmentManager().popBackStack()); + setupToolbar(root.findViewById(R.id.toolbar)); ViewPager2 viewPager = root.findViewById(R.id.viewpager); GpodnetPagerAdapter pagerAdapter = new GpodnetPagerAdapter(this); @@ -59,6 +63,33 @@ public class GpodnetMainFragment extends Fragment { return root; } + private void setupToolbar(Toolbar toolbar) { + toolbar.setTitle(R.string.gpodnet_main_label); + toolbar.setNavigationOnClickListener(v -> getParentFragmentManager().popBackStack()); + + toolbar.inflateMenu(R.menu.search); + MenuItem searchItem = toolbar.getMenu().findItem(R.id.action_search); + final SearchView sv = (SearchView) searchItem.getActionView(); + sv.setQueryHint(getString(R.string.gpodnet_search_hint)); + sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() { + @Override + public boolean onQueryTextSubmit(String query) { + Activity activity = getActivity(); + if (activity != null) { + searchItem.collapseActionView(); + ((MainActivity) activity).loadChildFragment( + OnlineSearchFragment.newInstance(GpodnetPodcastSearcher.class, query)); + } + return true; + } + + @Override + public boolean onQueryTextChange(String s) { + return false; + } + }); + } + public static class GpodnetPagerAdapter extends FragmentStateAdapter { GpodnetPagerAdapter(@NonNull Fragment fragment) { @@ -68,20 +99,14 @@ public class GpodnetMainFragment extends Fragment { @NonNull @Override public Fragment createFragment(int position) { - Bundle arguments = new Bundle(); - arguments.putBoolean(PodcastListFragment.ARGUMENT_HIDE_TOOLBAR, true); switch (position) { case POS_TAGS: return new TagListFragment(); case POS_TOPLIST: - PodcastListFragment topListFragment = new PodcastTopListFragment(); - topListFragment.setArguments(arguments); - return topListFragment; + return new PodcastTopListFragment(); default: case POS_SUGGESTIONS: - PodcastListFragment suggestionsFragment = new SuggestionListFragment(); - suggestionsFragment.setArguments(arguments); - return suggestionsFragment; + return new SuggestionListFragment(); } } |