summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment
diff options
context:
space:
mode:
authorH. Lehmann <ByteHamster@users.noreply.github.com>2020-03-16 22:41:05 +0100
committerGitHub <noreply@github.com>2020-03-16 22:41:05 +0100
commit21c617cc74495d834948d303aa981aab9ebb29fc (patch)
treef803cab0ea55c0078980f4b6d9bdec1f7033d81a /app/src/main/java/de/danoeh/antennapod/fragment
parent1837cdd5767dc1b8caa9eb5d707aecb4645de2fb (diff)
parente4fa92b8b98ea15ea49daf05b474e7bbdb626fac (diff)
downloadAntennaPod-21c617cc74495d834948d303aa981aab9ebb29fc.zip
Merge pull request #3936 from ByteHamster/add-feed-page
Made add feed page more white
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java92
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/QuickFeedDiscoveryFragment.java31
2 files changed, 52 insertions, 71 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);
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QuickFeedDiscoveryFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QuickFeedDiscoveryFragment.java
index 7e217cde4..d8d0f41c5 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/QuickFeedDiscoveryFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/QuickFeedDiscoveryFragment.java
@@ -2,6 +2,7 @@ package de.danoeh.antennapod.fragment;
import android.content.Intent;
import android.os.Bundle;
+import android.util.DisplayMetrics;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import android.util.Log;
@@ -26,11 +27,12 @@ import java.util.List;
public class QuickFeedDiscoveryFragment extends Fragment implements AdapterView.OnItemClickListener {
private static final String TAG = "FeedDiscoveryFragment";
+ private static final int NUM_SUGGESTIONS = 12;
private ProgressBar progressBar;
private Disposable disposable;
private FeedDiscoverAdapter adapter;
- private GridView subscriptionGridLayout;
+ private GridView discoverGridLayout;
private TextView errorTextView;
@Override
@@ -41,24 +43,31 @@ public class QuickFeedDiscoveryFragment extends Fragment implements AdapterView.
discoverMore.setOnClickListener(v ->
((MainActivity) getActivity()).loadChildFragment(new ItunesSearchFragment()));
- subscriptionGridLayout = root.findViewById(R.id.discover_grid);
+ discoverGridLayout = root.findViewById(R.id.discover_grid);
progressBar = root.findViewById(R.id.discover_progress_bar);
errorTextView = root.findViewById(R.id.discover_error);
adapter = new FeedDiscoverAdapter((MainActivity) getActivity());
- subscriptionGridLayout.setAdapter(adapter);
- subscriptionGridLayout.setOnItemClickListener(this);
+ discoverGridLayout.setAdapter(adapter);
+ discoverGridLayout.setOnItemClickListener(this);
+
+ DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
+ float screenWidthDp = displayMetrics.widthPixels / displayMetrics.density;
+ if (screenWidthDp > 600) {
+ discoverGridLayout.setNumColumns(6);
+ } else {
+ discoverGridLayout.setNumColumns(4);
+ }
// Fill with dummy elements to have a fixed height and
// prevent the UI elements below from jumping on slow connections
List<PodcastSearchResult> dummies = new ArrayList<>();
- for (int i = 0; i < 8; i++) {
+ for (int i = 0; i < NUM_SUGGESTIONS; i++) {
dummies.add(PodcastSearchResult.dummy());
}
- adapter.updateData(dummies);
+ adapter.updateData(dummies);
loadToplist();
-
return root;
}
@@ -72,22 +81,22 @@ public class QuickFeedDiscoveryFragment extends Fragment implements AdapterView.
private void loadToplist() {
progressBar.setVisibility(View.VISIBLE);
- subscriptionGridLayout.setVisibility(View.INVISIBLE);
+ discoverGridLayout.setVisibility(View.INVISIBLE);
errorTextView.setVisibility(View.GONE);
ItunesTopListLoader loader = new ItunesTopListLoader(getContext());
- disposable = loader.loadToplist(8)
+ disposable = loader.loadToplist(NUM_SUGGESTIONS)
.subscribe(podcasts -> {
errorTextView.setVisibility(View.GONE);
progressBar.setVisibility(View.GONE);
- subscriptionGridLayout.setVisibility(View.VISIBLE);
+ discoverGridLayout.setVisibility(View.VISIBLE);
adapter.updateData(podcasts);
}, error -> {
Log.e(TAG, Log.getStackTraceString(error));
errorTextView.setText(error.getLocalizedMessage());
errorTextView.setVisibility(View.VISIBLE);
progressBar.setVisibility(View.GONE);
- subscriptionGridLayout.setVisibility(View.INVISIBLE);
+ discoverGridLayout.setVisibility(View.INVISIBLE);
});
}