diff options
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java | 100 |
1 files changed, 79 insertions, 21 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java index ad8849a3e..35bcaa76e 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java @@ -2,13 +2,20 @@ package de.danoeh.antennapod.fragment; import android.content.Intent; import android.os.Bundle; +import android.provider.MediaStore; import android.support.v4.app.Fragment; +import android.view.ContextMenu; +import android.view.KeyEvent; import android.view.LayoutInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.view.inputmethod.EditorInfo; import android.widget.Button; import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.activity.OnlineFeedViewActivity; @@ -27,11 +34,28 @@ public class AddFeedFragment extends Fragment { */ private static final String ARG_FEED_URL = "feedurl"; + private EditText combinedFeedSearchBox; + private MainActivity activity; + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); View root = inflater.inflate(R.layout.addfeed, container, false); + activity = (MainActivity) getActivity(); + activity.getSupportActionBar().setTitle(R.string.add_feed_label); + + setupAdvancedSearchButtons(root); + setupSeachBox(root); + + View butOpmlImport = root.findViewById(R.id.btn_opml_import); + butOpmlImport.setOnClickListener(v -> startActivity(new Intent(getActivity(), + OpmlImportFromPathActivity.class))); + + return root; + } + + private void setupSeachBox(View root) { final EditText etxtFeedurl = root.findViewById(R.id.etxtFeedurl); Bundle args = getArguments(); @@ -39,35 +63,69 @@ public class AddFeedFragment extends Fragment { etxtFeedurl.setText(args.getString(ARG_FEED_URL)); } - Button butSearchITunes = root.findViewById(R.id.butSearchItunes); - Button butBrowserGpoddernet = root.findViewById(R.id.butBrowseGpoddernet); - Button butSearchFyyd = root.findViewById(R.id.butSearchFyyd); - Button butSearchCombined = root.findViewById(R.id.butSearchCombined); - Button butOpmlImport = root.findViewById(R.id.butOpmlImport); - Button butConfirm = root.findViewById(R.id.butConfirm); + Button butConfirmAddUrl = root.findViewById(R.id.butConfirm); + butConfirmAddUrl.setOnClickListener(v -> { + addUrl(etxtFeedurl.getText().toString()); + }); - final MainActivity activity = (MainActivity) getActivity(); - activity.getSupportActionBar().setTitle(R.string.add_feed_label); + combinedFeedSearchBox = root.findViewById(R.id.combinedFeedSearchBox); + combinedFeedSearchBox.setOnEditorActionListener((v, actionId, event) -> { + if (actionId == EditorInfo.IME_ACTION_SEARCH) { + performSearch(); + return true; + } + return false; + }); + } - butSearchITunes.setOnClickListener(v -> activity.loadChildFragment(new ItunesSearchFragment())); + private void setupAdvancedSearchButtons(View root) { + View butAdvancedSearch = root.findViewById(R.id.advanced_search); + registerForContextMenu(butAdvancedSearch); + butAdvancedSearch.setOnClickListener(v -> butAdvancedSearch.showContextMenu()); + } - butBrowserGpoddernet.setOnClickListener(v -> activity.loadChildFragment(new GpodnetMainFragment())); + @Override + public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { + getActivity().getMenuInflater().inflate(R.menu.advanced_search, menu); + } - butSearchFyyd.setOnClickListener(v -> activity.loadChildFragment(new FyydSearchFragment())); + @Override + public boolean onContextItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.search_fyyd: + activity.loadChildFragment(new FyydSearchFragment()); + return true; + case R.id.search_gpodder: + activity.loadChildFragment(new GpodnetMainFragment()); + return true; + case R.id.search_itunes: + activity.loadChildFragment(new ItunesSearchFragment()); + return true; + } + return false; + } - butSearchCombined.setOnClickListener(v -> activity.loadChildFragment(new CombinedSearchFragment())); - butOpmlImport.setOnClickListener(v -> startActivity(new Intent(getActivity(), - OpmlImportFromPathActivity.class))); + private void addUrl(String url) { + Intent intent = new Intent(getActivity(), OnlineFeedViewActivity.class); + intent.putExtra(OnlineFeedViewActivity.ARG_FEEDURL, url); + intent.putExtra(OnlineFeedViewActivity.ARG_TITLE, getString(R.string.add_feed_label)); + startActivity(intent); + } - butConfirm.setOnClickListener(v -> { - Intent intent = new Intent(getActivity(), OnlineFeedViewActivity.class); - intent.putExtra(OnlineFeedViewActivity.ARG_FEEDURL, etxtFeedurl.getText().toString()); - intent.putExtra(OnlineFeedViewActivity.ARG_TITLE, getString(R.string.add_feed_label)); - startActivity(intent); - }); + private void performSearch() { + String query = combinedFeedSearchBox.getText().toString(); - return root; + if (query.startsWith("http")) { + addUrl(query); + return; + } + + Bundle bundle = new Bundle(); + bundle.putString(CombinedSearchFragment.ARGUMENT_QUERY, query); + CombinedSearchFragment fragment = new CombinedSearchFragment(); + fragment.setArguments(bundle); + activity.loadChildFragment(fragment); } @Override |