Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

replace QuickSearchBox with a new minimal Search app with a configurable search engine #17

Closed
thestinger opened this issue Mar 31, 2019 · 20 comments
Labels
enhancement New feature or request priority-none

Comments

@thestinger
Copy link
Member

No description provided.

@thestinger thestinger added the enhancement New feature or request label Mar 31, 2019
@ddxor
Copy link

ddxor commented Apr 10, 2019

I noticed that this app (com.android.quicksearchbox) has the 'Modify system settings' permission granted by default. Do you happen to know if this is necessary, as it seems like quite a strong permission for a search app?

@nutts0
Copy link

nutts0 commented Apr 10, 2019

@ddxor good catch.

@thestinger
Copy link
Member Author

It's not necessary. It's a legacy app with legacy permissions. It comes from an era before a lot of things were possible and got implemented via hacks which are no longer around since it has been stripped down to near the minimum required to pass the Compatibility Test Suite.

I don't think it uses the contacts permission, etc. either since all that functionality was stripped out of it. It's open source like all the other apps so you can look and see for yourself. It doesn't particularly matter how bad it is since it's obsolete and going to be removed. There's no point in making any changes to it at this point.

@thestinger
Copy link
Member Author

It might have used it to provide a prompt for enabling location services before there was a way for apps to request it in a standard way. It's a truly ancient app predating the modern permission system and sandboxing model. I don't think it's worth worrying about why it does the things that it does. I think the only place it uses contacts is in a benchmark of contacts performance since at one point they would have returned contacts, local apps, local media files, etc. in search results but now it just does a Google search without configuration for the search provider or any local search features that actually work. It's a terrible, nearly useless app, which could be replaced by just having Chromium fulfill the intent with the configured search engine, since it doesn't currently even support local search functionality, but that's probably a desirable set of features for a replacement.

@ddxor
Copy link

ddxor commented Apr 11, 2019

it just does a Google search without configuration for the search provider or any local search features that actually work.

So am I right in thinking that this means it transmits data over the network?

@thestinger
Copy link
Member Author

Try opening the app and you'll see it's just a glorified search box hard-wired to a specific URL. It's not complicated. It used to have a bunch of functionality and it was all stripped out over the years. It solely exists to retain compatibility by implementing a standard API. The functionality is tested by the Compatibility Test Suite since it's part of the baseline Android functionality so it needs to be replaced rather than removed.

Talking about QuickSearchBox isn't productive since it just needs to be replaced. It doesn't matter how ugly and useless it is. I'm aware that no one is actually going to use it for anything. It serves no purpose beyond passing the CTS and avoiding potential (mostly theoretical) compatibility issues. Replacing it is so easy that it could have been done in the time I wrote up these 3 comments. Unless someone is planning to work on it, there isn't anything to talk about here.

@ddxor
Copy link

ddxor commented Apr 11, 2019

Try opening the app [...] It serves no purpose [...] there isn't anything to talk about here.

Yep, gotcha. Thanks for clarifying. I appreciate you taking the time to explain the history and reason behind this app's inclusion.

@thestinger thestinger added this to the 1 milestone May 12, 2019
@openffchrome
Copy link

openffchrome commented Jun 30, 2019

i'm using "just search" as replacement for the search bar on my phone
https://f-droid.org/en/packages/co.pxhouse.sas/

@renlord
Copy link

renlord commented Jul 11, 2020

co.pxhouse.sas needs to implement veniosg/JustSearch#7 before it is a viable replacement for quicksearchbox.

It currently only implements the assist intent so requires a long press on home.

@beerisgood
Copy link

beerisgood commented Jul 11, 2020

I just wonder: did we really need a search box? Everyone can manually start a browser I guess..

Edit: Also it already exist the Vanadium search widget

@thestinger
Copy link
Member Author

As explained above, what's required is providing the APIs that are made available to other apps.

@thestinger
Copy link
Member Author

This app is needed for compatibility. It can't be removed. It has to be replaced and provide the same APIs.

As an example of how this is used, apps using the WebView have a web search context menu which uses the search API provided by the search app. That's why when you do that, it currently always does a Google search in the browser. A minimal search app doesn't need to have any UI beyond search engine configuration. It just needs to implement support for the search APIs used by other apps. It would be very easy to make a completely minimal nearly non-existent implementation of this app from scratch. That's probably the best approach. We don't actually want an app providing a search UI, etc. We just need the minimal possible implementation. The search widget is part of that minimal implementation but it could just work like the Vanadium search widget.

In fact, one way of implementing this would be to make a patch for Vanadium adding the necessary intent handling to make it work as a search app.

@thestinger
Copy link
Member Author

In fact, one way of implementing this would be to make a patch for Vanadium adding the necessary intent handling to make it work as a search app.

Probably not what we should do though, since people want to be able to switch to a different browser like Bromite that's unlikely to provide those intents. So, the best implementation would be making a tiny app from scratch working similarly to QuickSearchBox. Alternatively, fork QuickSearchBox and completely strip it down + modernize it and add search engine configuration.

@renlord
Copy link

renlord commented Jul 11, 2020

Do you know which specific CTS module tests the API exposed by QuickSearchBox?

@thestinger
Copy link
Member Author

Can't remember. The content tests might be one of the modules that tests it.

@julianfairfax
Copy link

If this isn't happening anytime soon, can the app just be removed? It actually gets picked up by Lawnchair and then opens its awful interface.

@flawedworld
Copy link
Member

The app is needed for CTS tests

@thestinger
Copy link
Member Author

The interface is expected to be there. You can always install a different implementation and you'll be given the choice between them because it's not limited to system apps.

@thestinger thestinger removed this from the End-user friendly milestone Sep 6, 2022
@thestinger
Copy link
Member Author

Vanadium is now used to provide the web search intent since we noticed Brave was already doing this so there are at least 2 browser options available for that already. This app now only provides the barely used global search intent, reducing the priority of this issue.

@thestinger thestinger changed the title replace QuickSearchBox with a new minimal Search app with a configurable search engine add a new minimal Search app with a configurable search engine Feb 7, 2024
@thestinger thestinger changed the title add a new minimal Search app with a configurable search engine replace QuickSearchBox with a new minimal Search app with a configurable search engine Feb 7, 2024
@thestinger
Copy link
Member Author

Closing in favor of #3194.

@thestinger thestinger closed this as not planned Won't fix, can't repro, duplicate, stale Feb 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request priority-none
Projects
None yet
Development

No branches or pull requests

8 participants