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 | 92 |
1 files changed, 32 insertions, 60 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 7cdcce36f..3ba6be3d9 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java @@ -2,20 +2,19 @@ package de.danoeh.antennapod.fragment; import android.app.Activity; import android.content.ActivityNotFoundException; +import android.content.ClipboardManager; +import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.util.Log; -import androidx.appcompat.app.AppCompatActivity; -import androidx.fragment.app.Fragment; -import android.view.ContextMenu; import android.view.LayoutInflater; -import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.widget.Button; import android.widget.EditText; - +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.app.AppCompatActivity; +import androidx.fragment.app.Fragment; import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.activity.OnlineFeedViewActivity; @@ -23,16 +22,11 @@ import de.danoeh.antennapod.activity.OpmlImportActivity; import de.danoeh.antennapod.fragment.gpodnet.GpodnetMainFragment; /** - * Provides actions for adding new podcast subscriptions + * Provides actions for adding new podcast subscriptions. */ public class AddFeedFragment extends Fragment { public static final String TAG = "AddFeedFragment"; - - /** - * Preset value for url text field. - */ - private static final String ARG_FEED_URL = "feedurl"; private static final int REQUEST_CODE_CHOOSE_OPML_IMPORT_PATH = 1; private EditText combinedFeedSearchBox; @@ -45,8 +39,20 @@ public class AddFeedFragment extends Fragment { activity = (MainActivity) getActivity(); ((AppCompatActivity) getActivity()).setSupportActionBar(root.findViewById(R.id.toolbar)); - setupAdvancedSearchButtons(root); - setupSeachBox(root); + root.findViewById(R.id.btn_search_itunes).setOnClickListener(v + -> activity.loadChildFragment(new ItunesSearchFragment())); + root.findViewById(R.id.btn_search_fyyd).setOnClickListener(v + -> activity.loadChildFragment(new FyydSearchFragment())); + root.findViewById(R.id.btn_search_gpodder).setOnClickListener(v + -> activity.loadChildFragment(new GpodnetMainFragment())); + + combinedFeedSearchBox = root.findViewById(R.id.combinedFeedSearchBox); + combinedFeedSearchBox.setOnEditorActionListener((v, actionId, event) -> { + performSearch(); + return true; + }); + root.findViewById(R.id.btn_add_via_url).setOnClickListener(v + -> showAddViaUrlDialog()); View butOpmlImport = root.findViewById(R.id.btn_opml_import); butOpmlImport.setOnClickListener(v -> { @@ -63,54 +69,20 @@ public class AddFeedFragment extends Fragment { return root; } - private void setupSeachBox(View root) { - final EditText etxtFeedurl = root.findViewById(R.id.etxtFeedurl); - - Bundle args = getArguments(); - if (args != null && args.getString(ARG_FEED_URL) != null) { - etxtFeedurl.setText(args.getString(ARG_FEED_URL)); - } - - Button butConfirmAddUrl = root.findViewById(R.id.butConfirm); - butConfirmAddUrl.setOnClickListener(v -> { - addUrl(etxtFeedurl.getText().toString()); - }); - - combinedFeedSearchBox = root.findViewById(R.id.combinedFeedSearchBox); - combinedFeedSearchBox.setOnEditorActionListener((v, actionId, event) -> { - performSearch(); - return true; - }); - } - - private void setupAdvancedSearchButtons(View root) { - View butAdvancedSearch = root.findViewById(R.id.advanced_search); - registerForContextMenu(butAdvancedSearch); - butAdvancedSearch.setOnClickListener(v -> butAdvancedSearch.showContextMenu()); + private void showAddViaUrlDialog() { + AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); + builder.setTitle(R.string.add_podcast_by_url); + View content = View.inflate(getContext(), R.layout.edit_text_dialog, null); + EditText editText = content.findViewById(R.id.text); + editText.setHint(R.string.add_podcast_by_url_hint); + ClipboardManager clipboard = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE); + editText.setText(clipboard.getText()); + builder.setView(content); + builder.setPositiveButton(R.string.confirm_label, (dialog, which) -> addUrl(editText.getText().toString())); + builder.setNegativeButton(R.string.cancel_label, null); + builder.show(); } - @Override - public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { - getActivity().getMenuInflater().inflate(R.menu.advanced_search, menu); - } - - @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; - } - - private void addUrl(String url) { Intent intent = new Intent(getActivity(), OnlineFeedViewActivity.class); intent.putExtra(OnlineFeedViewActivity.ARG_FEEDURL, url); |