From d2dc20c5510360c846243924530fce8cf7c3f1eb Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Wed, 7 May 2025 10:09:02 +0200 Subject: [PATCH 1/3] SearchFragment: show service name in search hint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The only hint (haha) which service one is searching in is currently the color of the background. This is super confusing, yesterday a friend tried to search for a video on youtube and the app was set to Bandcamp, and they were super confused why nothing turned up. So let’s put the name of the service in the hint! The `updateService()` thing is a little confused, but I didn’t want to refactor to improve the logic. It’s not doing anything computationally intensive anyway. For PeerTube, the sidebar calls it FramaTube but the service name is PeerTube, I’m not sure why that is the case. Looks like the string depends on the name of the instance? Hm, can be improved later I think. --- .../newpipe/fragments/list/search/SearchFragment.java | 9 +++++++++ app/src/main/res/values/strings.xml | 1 + 2 files changed, 10 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java index 18c60400b47..4c7bb15a8f2 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java @@ -219,6 +219,15 @@ public View onCreateView(final LayoutInflater inflater, @Nullable final ViewGrou public void onViewCreated(@NonNull final View rootView, final Bundle savedInstanceState) { searchBinding = FragmentSearchBinding.bind(rootView); super.onViewCreated(rootView, savedInstanceState); + + updateService(); + // Add the service name to search string hint + // to make it more obvious which platform is being searched. + if (service != null) { + searchEditText.setHint( + getString(R.string.search_with_service_name, + service.getServiceInfo().getName())); + } showSearchOnStart(); initSearchListeners(); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2232ddafff0..afb0b74dcb9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -17,6 +17,7 @@ Download Download stream file Search + Search %1$s Settings Did you mean \"%1$s\"? Showing results for: %s From 769e98acd08cd1baf51ac14f11422521d0a54e99 Mon Sep 17 00:00:00 2001 From: Stypox Date: Wed, 4 Jun 2025 11:54:31 +0200 Subject: [PATCH 2/3] Show search filter in search bar hint --- .../newpipe/fragments/list/search/SearchFragment.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java index 4c7bb15a8f2..8e46716a81e 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java @@ -945,6 +945,15 @@ private void changeContentFilter(final MenuItem item, final List theCont filterItemCheckedId = item.getItemId(); item.setChecked(true); + if ((theContentFilter.isEmpty() || "all".equals(theContentFilter.get(0))) + && service != null) { + searchEditText.setHint( + getString(R.string.search_with_service_name, + service.getServiceInfo().getName())); + } else { + searchEditText.setHint(getString(R.string.search_with_service_name, item.getTitle())); + } + contentFilter = theContentFilter.toArray(new String[0]); if (!TextUtils.isEmpty(searchString)) { From 16e32dfc9655a2901c2b8c9010f286ff0a2ede0f Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Thu, 5 Jun 2025 14:30:04 +0200 Subject: [PATCH 3/3] SearchFragment: show filter in brackets behind service name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is still not perfect, but it will show the selected search filter in addition to the service name, like: “Search YouTube (Playlists)”. It will not distinguish between a YouTube Music and Youtube filter, so it will display the same thing. Could be improved, but then the text gets too long! :( --- .../fragments/list/search/SearchFragment.java | 19 ++++++++++++------- app/src/main/res/values/strings.xml | 1 + 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java index 8e46716a81e..fa166909320 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java @@ -945,13 +945,18 @@ private void changeContentFilter(final MenuItem item, final List theCont filterItemCheckedId = item.getItemId(); item.setChecked(true); - if ((theContentFilter.isEmpty() || "all".equals(theContentFilter.get(0))) - && service != null) { - searchEditText.setHint( - getString(R.string.search_with_service_name, - service.getServiceInfo().getName())); - } else { - searchEditText.setHint(getString(R.string.search_with_service_name, item.getTitle())); + if (service != null) { + final boolean isNotFiltered = theContentFilter.isEmpty() + || "all".equals(theContentFilter.get(0)); + if (isNotFiltered) { + searchEditText.setHint( + getString(R.string.search_with_service_name, + service.getServiceInfo().getName())); + } else { + searchEditText.setHint(getString(R.string.search_with_service_name_and_filter, + service.getServiceInfo().getName(), + item.getTitle())); + } } contentFilter = theContentFilter.toArray(new String[0]); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index afb0b74dcb9..40a9b78339d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -18,6 +18,7 @@ Download stream file Search Search %1$s + Search %1$s (%2$s) Settings Did you mean \"%1$s\"? Showing results for: %s