mirror of
https://github.com/AntennaPod/AntennaPod.git
synced 2025-02-02 03:36:48 +01:00
Hide local menu items when nav drawer is shown
This commit is contained in:
parent
1b0ee017ce
commit
99d68b2982
@ -12,6 +12,7 @@ import android.support.v4.app.FragmentTransaction;
|
||||
import android.support.v4.app.ListFragment;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
@ -42,6 +43,8 @@ import de.danoeh.antennapod.fragment.ItemDescriptionFragment;
|
||||
import de.danoeh.antennapod.preferences.UserPreferences;
|
||||
import de.danoeh.antennapod.service.playback.PlaybackService;
|
||||
import de.danoeh.antennapod.storage.DBReader;
|
||||
import de.danoeh.antennapod.util.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.util.menuhandler.NavDrawerActivity;
|
||||
import de.danoeh.antennapod.util.playback.ExternalMedia;
|
||||
import de.danoeh.antennapod.util.playback.Playable;
|
||||
import de.danoeh.antennapod.util.playback.PlaybackController;
|
||||
@ -49,7 +52,8 @@ import de.danoeh.antennapod.util.playback.PlaybackController;
|
||||
/**
|
||||
* Activity for playing audio files.
|
||||
*/
|
||||
public class AudioplayerActivity extends MediaplayerActivity implements ItemDescriptionFragment.ItemDescriptionFragmentCallback {
|
||||
public class AudioplayerActivity extends MediaplayerActivity implements ItemDescriptionFragment.ItemDescriptionFragmentCallback,
|
||||
NavDrawerActivity {
|
||||
private static final int POS_COVER = 0;
|
||||
private static final int POS_DESCR = 1;
|
||||
private static final int POS_CHAPTERS = 2;
|
||||
@ -437,6 +441,7 @@ public class AudioplayerActivity extends MediaplayerActivity implements ItemDesc
|
||||
};
|
||||
typedArray.recycle();
|
||||
drawerToggle.setDrawerIndicatorEnabled(false);
|
||||
drawerLayout.setDrawerListener(drawerToggle);
|
||||
|
||||
navAdapter = new NavListAdapter(itemAccess, this);
|
||||
navList.setAdapter(navAdapter);
|
||||
@ -618,6 +623,29 @@ public class AudioplayerActivity extends MediaplayerActivity implements ItemDesc
|
||||
return controller;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDrawerOpen() {
|
||||
return drawerLayout != null && navList != null && drawerLayout.isDrawerOpen(navList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
if (!MenuItemUtils.isActivityDrawerOpen(this)) {
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||
if (!MenuItemUtils.isActivityDrawerOpen(this)) {
|
||||
return super.onPrepareOptionsMenu(menu);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public interface AudioplayerContentFragment {
|
||||
public void onDataSetChanged(Playable media);
|
||||
}
|
||||
|
@ -31,13 +31,14 @@ import de.danoeh.antennapod.fragment.*;
|
||||
import de.danoeh.antennapod.preferences.UserPreferences;
|
||||
import de.danoeh.antennapod.storage.DBReader;
|
||||
import de.danoeh.antennapod.util.StorageUtils;
|
||||
import de.danoeh.antennapod.util.menuhandler.NavDrawerActivity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* The activity that is shown when the user launches the app.
|
||||
*/
|
||||
public class MainActivity extends ActionBarActivity {
|
||||
public class MainActivity extends ActionBarActivity implements NavDrawerActivity{
|
||||
private static final String TAG = "MainActivity";
|
||||
private static final int EVENTS = EventDistributor.DOWNLOAD_HANDLED
|
||||
| EventDistributor.DOWNLOAD_QUEUED
|
||||
@ -64,7 +65,7 @@ public class MainActivity extends ActionBarActivity {
|
||||
private ListView navList;
|
||||
private NavListAdapter navAdapter;
|
||||
|
||||
private ActionBarDrawerToggle drawerToogle;
|
||||
private ActionBarDrawerToggle drawerToggle;
|
||||
|
||||
private CharSequence drawerTitle;
|
||||
private CharSequence currentTitle;
|
||||
@ -85,7 +86,7 @@ public class MainActivity extends ActionBarActivity {
|
||||
navList = (ListView) findViewById(R.id.nav_list);
|
||||
|
||||
TypedArray typedArray = obtainStyledAttributes(new int[]{R.attr.nav_drawer_toggle});
|
||||
drawerToogle = new ActionBarDrawerToggle(this, drawerLayout, typedArray.getResourceId(0, 0), R.string.drawer_open, R.string.drawer_close) {
|
||||
drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, typedArray.getResourceId(0, 0), R.string.drawer_open, R.string.drawer_close) {
|
||||
@Override
|
||||
public void onDrawerOpened(View drawerView) {
|
||||
super.onDrawerOpened(drawerView);
|
||||
@ -104,7 +105,7 @@ public class MainActivity extends ActionBarActivity {
|
||||
};
|
||||
typedArray.recycle();
|
||||
|
||||
drawerLayout.setDrawerListener(drawerToogle);
|
||||
drawerLayout.setDrawerListener(drawerToggle);
|
||||
FragmentManager fm = getSupportFragmentManager();
|
||||
|
||||
FragmentTransaction transaction = fm.beginTransaction();
|
||||
@ -150,6 +151,10 @@ public class MainActivity extends ActionBarActivity {
|
||||
return getSupportActionBar();
|
||||
}
|
||||
|
||||
public boolean isDrawerOpen() {
|
||||
return drawerLayout != null && navList != null && drawerLayout.isDrawerOpen(navList);
|
||||
}
|
||||
|
||||
public List<Feed> getFeeds() {
|
||||
return (navDrawerData != null) ? navDrawerData.feeds : null;
|
||||
}
|
||||
@ -247,7 +252,7 @@ public class MainActivity extends ActionBarActivity {
|
||||
@Override
|
||||
protected void onPostCreate(Bundle savedInstanceState) {
|
||||
super.onPostCreate(savedInstanceState);
|
||||
drawerToogle.syncState();
|
||||
drawerToggle.syncState();
|
||||
if (savedInstanceState != null) {
|
||||
currentTitle = savedInstanceState.getString("title");
|
||||
if (!drawerLayout.isDrawerOpen(navList)) {
|
||||
@ -260,7 +265,7 @@ public class MainActivity extends ActionBarActivity {
|
||||
@Override
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
drawerToogle.onConfigurationChanged(newConfig);
|
||||
drawerToggle.onConfigurationChanged(newConfig);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -299,7 +304,7 @@ public class MainActivity extends ActionBarActivity {
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (drawerToogle.onOptionsItemSelected(item)) {
|
||||
if (drawerToggle.onOptionsItemSelected(item)) {
|
||||
return true;
|
||||
}
|
||||
switch (item.getItemId()) {
|
||||
@ -314,7 +319,6 @@ public class MainActivity extends ActionBarActivity {
|
||||
@Override
|
||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||
super.onPrepareOptionsMenu(menu);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,11 @@ import android.support.v4.app.ListFragment;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.widget.SearchView;
|
||||
import android.util.Log;
|
||||
import android.view.*;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ListView;
|
||||
@ -20,6 +24,8 @@ import android.widget.TextView;
|
||||
|
||||
import org.apache.commons.lang3.Validate;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import de.danoeh.antennapod.BuildConfig;
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.FeedInfoActivity;
|
||||
@ -44,8 +50,7 @@ import de.danoeh.antennapod.storage.DownloadRequester;
|
||||
import de.danoeh.antennapod.util.QueueAccess;
|
||||
import de.danoeh.antennapod.util.menuhandler.FeedMenuHandler;
|
||||
import de.danoeh.antennapod.util.menuhandler.MenuItemUtils;
|
||||
|
||||
import java.util.List;
|
||||
import de.danoeh.antennapod.util.menuhandler.NavDrawerActivity;
|
||||
|
||||
/**
|
||||
* Displays a list of FeedItems.
|
||||
@ -158,31 +163,36 @@ public class ItemlistFragment extends ListFragment {
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
FeedMenuHandler.onCreateOptionsMenu(inflater, menu);
|
||||
|
||||
final SearchView sv = new SearchView(getActivity());
|
||||
MenuItemUtils.addSearchItem(menu, sv);
|
||||
sv.setQueryHint(getString(R.string.search_hint));
|
||||
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String s) {
|
||||
sv.clearFocus();
|
||||
if (itemsLoaded) {
|
||||
((MainActivity) getActivity()).loadChildFragment(SearchFragment.newInstance(s, feed.getId()));
|
||||
if (!MenuItemUtils.isActivityDrawerOpen((NavDrawerActivity) getActivity())) {
|
||||
FeedMenuHandler.onCreateOptionsMenu(inflater, menu);
|
||||
|
||||
final SearchView sv = new SearchView(getActivity());
|
||||
MenuItemUtils.addSearchItem(menu, sv);
|
||||
sv.setQueryHint(getString(R.string.search_hint));
|
||||
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String s) {
|
||||
sv.clearFocus();
|
||||
if (itemsLoaded) {
|
||||
((MainActivity) getActivity()).loadChildFragment(SearchFragment.newInstance(s, feed.getId()));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String s) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public boolean onQueryTextChange(String s) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPrepareOptionsMenu(Menu menu) {
|
||||
FeedMenuHandler.onPrepareOptionsMenu(menu, feed);
|
||||
if (!MenuItemUtils.isActivityDrawerOpen((NavDrawerActivity) getActivity())) {
|
||||
FeedMenuHandler.onPrepareOptionsMenu(menu, feed);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -34,6 +34,7 @@ import de.danoeh.antennapod.storage.DBWriter;
|
||||
import de.danoeh.antennapod.storage.DownloadRequester;
|
||||
import de.danoeh.antennapod.util.QueueAccess;
|
||||
import de.danoeh.antennapod.util.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.util.menuhandler.NavDrawerActivity;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
@ -138,31 +139,35 @@ public class NewEpisodesFragment extends Fragment {
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
inflater.inflate(R.menu.new_episodes, menu);
|
||||
if (!MenuItemUtils.isActivityDrawerOpen((NavDrawerActivity) getActivity())) {
|
||||
inflater.inflate(R.menu.new_episodes, menu);
|
||||
|
||||
final SearchView sv = new SearchView(getActivity());
|
||||
MenuItemUtils.addSearchItem(menu, sv);
|
||||
sv.setQueryHint(getString(R.string.search_hint));
|
||||
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String s) {
|
||||
sv.clearFocus();
|
||||
((MainActivity) getActivity()).loadChildFragment(SearchFragment.newInstance(s));
|
||||
return true;
|
||||
}
|
||||
final SearchView sv = new SearchView(getActivity());
|
||||
MenuItemUtils.addSearchItem(menu, sv);
|
||||
sv.setQueryHint(getString(R.string.search_hint));
|
||||
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String s) {
|
||||
sv.clearFocus();
|
||||
((MainActivity) getActivity()).loadChildFragment(SearchFragment.newInstance(s));
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String s) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public boolean onQueryTextChange(String s) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPrepareOptionsMenu(Menu menu) {
|
||||
super.onPrepareOptionsMenu(menu);
|
||||
menu.findItem(R.id.mark_all_read_item).setVisible(unreadItems != null && !unreadItems.isEmpty());
|
||||
menu.findItem(R.id.episode_filter_item).setChecked(showOnlyNewEpisodes);
|
||||
if (!MenuItemUtils.isActivityDrawerOpen((NavDrawerActivity) getActivity())) {
|
||||
menu.findItem(R.id.mark_all_read_item).setVisible(unreadItems != null && !unreadItems.isEmpty());
|
||||
menu.findItem(R.id.episode_filter_item).setChecked(showOnlyNewEpisodes);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -25,6 +25,8 @@ import de.danoeh.antennapod.service.download.Downloader;
|
||||
import de.danoeh.antennapod.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.DBWriter;
|
||||
import de.danoeh.antennapod.util.QueueAccess;
|
||||
import de.danoeh.antennapod.util.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.util.menuhandler.NavDrawerActivity;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
@ -129,17 +131,21 @@ public class PlaybackHistoryFragment extends ListFragment {
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
MenuItem clearHistory = menu.add(Menu.NONE, R.id.clear_history_item, Menu.CATEGORY_CONTAINER, R.string.clear_history_label);
|
||||
MenuItemCompat.setShowAsAction(clearHistory, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
|
||||
TypedArray drawables = getActivity().obtainStyledAttributes(new int[] {R.attr.content_discard});
|
||||
clearHistory.setIcon(drawables.getDrawable(0));
|
||||
drawables.recycle();
|
||||
if (!MenuItemUtils.isActivityDrawerOpen((NavDrawerActivity) getActivity())) {
|
||||
MenuItem clearHistory = menu.add(Menu.NONE, R.id.clear_history_item, Menu.CATEGORY_CONTAINER, R.string.clear_history_label);
|
||||
MenuItemCompat.setShowAsAction(clearHistory, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
|
||||
TypedArray drawables = getActivity().obtainStyledAttributes(new int[]{R.attr.content_discard});
|
||||
clearHistory.setIcon(drawables.getDrawable(0));
|
||||
drawables.recycle();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPrepareOptionsMenu(Menu menu) {
|
||||
super.onPrepareOptionsMenu(menu);
|
||||
menu.findItem(R.id.clear_history_item).setVisible(playbackHistory != null && !playbackHistory.isEmpty());
|
||||
if (!MenuItemUtils.isActivityDrawerOpen((NavDrawerActivity) getActivity())) {
|
||||
menu.findItem(R.id.clear_history_item).setVisible(playbackHistory != null && !playbackHistory.isEmpty());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -38,6 +38,7 @@ import de.danoeh.antennapod.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.DBWriter;
|
||||
import de.danoeh.antennapod.util.QueueAccess;
|
||||
import de.danoeh.antennapod.util.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.util.menuhandler.NavDrawerActivity;
|
||||
|
||||
/**
|
||||
* Shows all items in the queue
|
||||
@ -136,22 +137,24 @@ public class QueueFragment extends Fragment {
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
final SearchView sv = new SearchView(getActivity());
|
||||
MenuItemUtils.addSearchItem(menu, sv);
|
||||
sv.setQueryHint(getString(R.string.search_hint));
|
||||
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String s) {
|
||||
sv.clearFocus();
|
||||
((MainActivity) getActivity()).loadChildFragment(SearchFragment.newInstance(s));
|
||||
return true;
|
||||
}
|
||||
if (!MenuItemUtils.isActivityDrawerOpen((NavDrawerActivity) getActivity())) {
|
||||
final SearchView sv = new SearchView(getActivity());
|
||||
MenuItemUtils.addSearchItem(menu, sv);
|
||||
sv.setQueryHint(getString(R.string.search_hint));
|
||||
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String s) {
|
||||
sv.clearFocus();
|
||||
((MainActivity) getActivity()).loadChildFragment(SearchFragment.newInstance(s));
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String s) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public boolean onQueryTextChange(String s) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -20,6 +20,8 @@ import de.danoeh.antennapod.feed.*;
|
||||
import de.danoeh.antennapod.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.FeedSearcher;
|
||||
import de.danoeh.antennapod.util.QueueAccess;
|
||||
import de.danoeh.antennapod.util.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.util.menuhandler.NavDrawerActivity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -131,26 +133,28 @@ public class SearchFragment extends ListFragment {
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
MenuItem item = menu.add(Menu.NONE, R.id.search_item, Menu.NONE, R.string.search_label);
|
||||
MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
|
||||
final SearchView sv = new SearchView(getActivity());
|
||||
sv.setQueryHint(getString(R.string.search_hint));
|
||||
sv.setQuery(getArguments().getString(ARG_QUERY), false);
|
||||
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String s) {
|
||||
getArguments().putString(ARG_QUERY, s);
|
||||
itemsLoaded = false;
|
||||
startSearchTask();
|
||||
return true;
|
||||
}
|
||||
if (!MenuItemUtils.isActivityDrawerOpen((NavDrawerActivity) getActivity())) {
|
||||
MenuItem item = menu.add(Menu.NONE, R.id.search_item, Menu.NONE, R.string.search_label);
|
||||
MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
|
||||
final SearchView sv = new SearchView(getActivity());
|
||||
sv.setQueryHint(getString(R.string.search_hint));
|
||||
sv.setQuery(getArguments().getString(ARG_QUERY), false);
|
||||
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String s) {
|
||||
getArguments().putString(ARG_QUERY, s);
|
||||
itemsLoaded = false;
|
||||
startSearchTask();
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String s) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
MenuItemCompat.setActionView(item, sv);
|
||||
@Override
|
||||
public boolean onQueryTextChange(String s) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
MenuItemCompat.setActionView(item, sv);
|
||||
}
|
||||
}
|
||||
|
||||
private final EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() {
|
||||
|
@ -21,6 +21,7 @@ import de.danoeh.antennapod.gpoddernet.GpodnetService;
|
||||
import de.danoeh.antennapod.gpoddernet.GpodnetServiceException;
|
||||
import de.danoeh.antennapod.gpoddernet.model.GpodnetPodcast;
|
||||
import de.danoeh.antennapod.util.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.util.menuhandler.NavDrawerActivity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -44,22 +45,24 @@ public abstract class PodcastListFragment extends Fragment {
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
final android.support.v7.widget.SearchView sv = new android.support.v7.widget.SearchView(getActivity());
|
||||
MenuItemUtils.addSearchItem(menu, sv);
|
||||
sv.setQueryHint(getString(R.string.gpodnet_search_hint));
|
||||
sv.setOnQueryTextListener(new android.support.v7.widget.SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String s) {
|
||||
sv.clearFocus();
|
||||
((MainActivity) getActivity()).loadChildFragment(SearchListFragment.newInstance(s));
|
||||
return true;
|
||||
}
|
||||
if (!MenuItemUtils.isActivityDrawerOpen((NavDrawerActivity) getActivity())) {
|
||||
final android.support.v7.widget.SearchView sv = new android.support.v7.widget.SearchView(getActivity());
|
||||
MenuItemUtils.addSearchItem(menu, sv);
|
||||
sv.setQueryHint(getString(R.string.gpodnet_search_hint));
|
||||
sv.setOnQueryTextListener(new android.support.v7.widget.SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String s) {
|
||||
sv.clearFocus();
|
||||
((MainActivity) getActivity()).loadChildFragment(SearchListFragment.newInstance(s));
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String s) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public boolean onQueryTextChange(String s) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -7,15 +7,14 @@ import android.view.MenuInflater;
|
||||
|
||||
import org.apache.commons.lang3.Validate;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.fragment.SearchFragment;
|
||||
import de.danoeh.antennapod.gpoddernet.GpodnetService;
|
||||
import de.danoeh.antennapod.gpoddernet.GpodnetServiceException;
|
||||
import de.danoeh.antennapod.gpoddernet.model.GpodnetPodcast;
|
||||
import de.danoeh.antennapod.util.menuhandler.MenuItemUtils;
|
||||
|
||||
import java.util.List;
|
||||
import de.danoeh.antennapod.util.menuhandler.NavDrawerActivity;
|
||||
|
||||
/**
|
||||
* Performs a search on the gpodder.net directory and displays the results.
|
||||
@ -47,22 +46,24 @@ public class SearchListFragment extends PodcastListFragment {
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
final SearchView sv = new SearchView(getActivity());
|
||||
MenuItemUtils.addSearchItem(menu, sv);
|
||||
sv.setQueryHint(getString(R.string.gpodnet_search_hint));
|
||||
sv.setQuery(query, false);
|
||||
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String s) {
|
||||
sv.clearFocus();
|
||||
changeQuery(s);
|
||||
return true;
|
||||
}
|
||||
if (!MenuItemUtils.isActivityDrawerOpen((NavDrawerActivity) getActivity())) {
|
||||
MenuItemUtils.addSearchItem(menu, sv);
|
||||
sv.setQueryHint(getString(R.string.gpodnet_search_hint));
|
||||
sv.setQuery(query, false);
|
||||
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String s) {
|
||||
sv.clearFocus();
|
||||
changeQuery(s);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String s) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public boolean onQueryTextChange(String s) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -18,6 +18,7 @@ import de.danoeh.antennapod.gpoddernet.GpodnetService;
|
||||
import de.danoeh.antennapod.gpoddernet.GpodnetServiceException;
|
||||
import de.danoeh.antennapod.gpoddernet.model.GpodnetTag;
|
||||
import de.danoeh.antennapod.util.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.util.menuhandler.NavDrawerActivity;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -35,22 +36,24 @@ public class TagListFragment extends ListFragment {
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
final SearchView sv = new SearchView(getActivity());
|
||||
MenuItemUtils.addSearchItem(menu, sv);
|
||||
sv.setQueryHint(getString(R.string.gpodnet_search_hint));
|
||||
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String s) {
|
||||
sv.clearFocus();
|
||||
((MainActivity) getActivity()).loadChildFragment(SearchListFragment.newInstance(s));
|
||||
return true;
|
||||
}
|
||||
if (!MenuItemUtils.isActivityDrawerOpen((NavDrawerActivity) getActivity())) {
|
||||
final SearchView sv = new SearchView(getActivity());
|
||||
MenuItemUtils.addSearchItem(menu, sv);
|
||||
sv.setQueryHint(getString(R.string.gpodnet_search_hint));
|
||||
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String s) {
|
||||
sv.clearFocus();
|
||||
((MainActivity) getActivity()).loadChildFragment(SearchListFragment.newInstance(s));
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String s) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public boolean onQueryTextChange(String s) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -4,6 +4,7 @@ import android.support.v4.view.MenuItemCompat;
|
||||
import android.support.v7.widget.SearchView;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import de.danoeh.antennapod.R;
|
||||
|
||||
/**
|
||||
@ -17,4 +18,14 @@ public class MenuItemUtils {
|
||||
MenuItemCompat.setActionView(item, searchView);
|
||||
return item;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the navigation drawer of the DrawerActivity is opened. This can be useful for Fragments
|
||||
* that hide their menu if the navigation drawer is open.
|
||||
*
|
||||
* @return True if the drawer is open, false otherwise (also if the parameter is null)
|
||||
*/
|
||||
public static boolean isActivityDrawerOpen(NavDrawerActivity activity) {
|
||||
return activity != null && activity.isDrawerOpen();
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,9 @@
|
||||
package de.danoeh.antennapod.util.menuhandler;
|
||||
|
||||
/**
|
||||
* Defines useful methods for activities that have a navigation drawer
|
||||
*/
|
||||
public interface NavDrawerActivity {
|
||||
|
||||
public boolean isDrawerOpen();
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user