-
-
Notifications
You must be signed in to change notification settings - Fork 21
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
Comments
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? |
@ddxor good catch. |
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. |
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. |
So am I right in thinking that this means it transmits data over the network? |
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. |
Yep, gotcha. Thanks for clarifying. I appreciate you taking the time to explain the history and reason behind this app's inclusion. |
i'm using "just search" as replacement for the search bar on my phone |
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. |
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 |
As explained above, what's required is providing the APIs that are made available to other apps. |
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. |
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. |
Do you know which specific CTS module tests the API exposed by QuickSearchBox? |
Can't remember. The content tests might be one of the modules that tests it. |
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. |
The app is needed for CTS tests |
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. |
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. |
Closing in favor of #3194. |
No description provided.
The text was updated successfully, but these errors were encountered: