Focus-android: [meta] Ability to add search engines and or remove existing search engines

Created on 17 Jul 2017  Â·  23Comments  Â·  Source: mozilla-mobile/focus-android

MVP

  • [x] #1484 Update search engines to use radio buttons
  • [x] #1556 String update
  • [x] #1560 Fix UI Tests
  • [x] #1617 Add screen for manual creation of search engines (behind feature flag)
  • [x] #1660 Persist search engines (behind feature flag)
  • [x] #1671 Simplify Settings screens with enums
  • [x] #1644 Allow removing of search engines (behind feature flag)
  • [x] #1618 Engine radio buttons style polish
  • [x] #1689 Search engine polish, Screenshots UITest [seeing UI Test failures, will land on return]
  • [x] #1645 Pref on for 3.0
  • [x] #1647 search engine ordering
  • [x] #1691 sub text in edit screen
  • [x] #1705 change example text
  • [ ] #1828 Add SUMO page for search engine
  • [x] #1755 [ux] review
  • [x] #1755 UX implementation feedback
  • [x] #1856 Add telemetry

(#1498 reference to closed breakdown)


#### I have difficulties finding a way to change my default search engine

Mocks
flow - add search engine manually
flow - remove restore search engine

visual design

QANotNeeded UX addressed feature

Most helpful comment

@lime124 I've opened #1692, per your encouragement & suggestion. I'd like to delete my end of the discussion here (now duplicated there) to cleanup this meta-issue. Any objections?

All 23 comments

See also #831 and #808

Talked to legal, this should be fine to do

@bbinto I'm going to move this to Granite* since Folly is a non-UX release and already has "What's New?"

Let me know if you disagree! happy to discuss more when you're back

Also, the same feature is slated for Granite* for iOS! so that would be kind of nice to match :)

As discussed, revamping Settings will require significant level of UX/content effort. Recommendation to move to Indigo. Also impacts #1054.

@BrianNJones commented on the wrong bug...?

We can get this search effort in and are in progress on the designs. As discussed with @Sdaswani, we'll be able to finalized strings in by end of day Tuesday to pass of to Eng for export.

Hopefully some helpful input:

On Fennec there are two ways how the user can add a search engine:

  • Long-pressing an input field and selecting "Add search engine". The big advantage is that this works for a variety of sites. Can be confusing for fields that are not actually a search field and sometimes this might not work well. We'd have to investigate if we can implement this with WebView
  • The second option is to use the menu: page -> add search engine. This works for all websites that define in their metadata that they are a search and how to perform a search. The nice thing is that we get everything from the provider (name, URL, etc.) and therefore it's always working. This mechanism even supports more features like search suggestions (but we are not using this in Focus). Of course this does not work with every page. But every major search engine does support it.

Constraints:

  • The user has different search engines depending on his language.
  • The user can switch the language and this changes the search engines that are available.

Oh, and there's a third option in Fennec. You can add them via AMO, e.g.:
https://addons.mozilla.org/en-US/android/addon/metager-metasuche/

Landed strings in #1453.

For reference, since we use AppCompatActivity, nested PreferenceScreen will lack the ActionBar/Toolbar because the SupportActionBar and tho ActionBar conflict (ref). We also don't use PreferenceFragmentCompat probably because it came out in r23, though it's something we can look into at some point (but it also sounds like it's got some bugs).

Adding a comment in-code too, to be clearer why we can't just use nested PreferenceScreen.

We also don't use PreferenceFragmentCompat probably because it came out in r23, though it's something we can look into at some point (but it also sounds like it's got some bugs).

At some point I tried to migrate to the PreferenceFragment from the support library. I wanted to get rid of the additional activity and look into whether we can just have the preferences as another fragment that gets added to our MainActivity. This turned out to be more complicated than I thought. The APIs were partially different and our custom preferences didn't work either and were hard to port. In the end I stopped and moved on.

WIP progress here: https://github.com/liuche/focus-android/tree/searchengine

I think that I've got the complicated parts out of the way (understanding how our Settings Fragments work, adding new screens, showing search engines as radio buttons), and to finish the very minimum of "add a search engine", I just need to add the "Manually Add Search Engine" (which is probably a Small-Medium).

Beyond that, this will still take more work to add the other screens: tutorial, as well as some exploration regarding the "automatically add a search engine", and removing/restoring default search engines.

I would say "automatically extract and add the right search engine information" is a Large, the Tutorial is a Small-Medium (but depends on which approach we take for "automatically add"), and removing/restoring default search engines is a Medium.

@bbinto, what are your thoughts on shipping only "Manually add search engines" with this release? (It has some minimal explanation in the UI, but depending on what the user types in, could also fail with incorrect formatted input.)

Or do we need to also include 1) automatically adding the right search engine urls and name if a user chooses to add a search engine from a website (rather than manually typing in the search engine query url), 2) tutorial, and 3) remove/restore (default) search engines?

I think given the new schedule, this doesn't need to be split up into two releases. Put it behind a feature flag and land what you have now?

To me it's not ideal to just have "manually add search engine" in the next release. However, if we decide to go with that, we need to offer a way to remove the entry for sure in case the user typed in the wrong URL, or at least a way to change an invalid search engine entry.

flow - add search engine manually
flow - remove restore search engine

Made this simpler for this first version and created a ticket to iterate on it.
https://github.com/mozilla-mobile/focus-android/issues/1561

Hey @TPS - if I understand your proposal correctly, you are suggesting we list installed search engines on the homescreen (see image)? Can you summarize the problem this proposal solves? Thanks!

homescreen - keyboard - toast

Thanks for the follow up @TPS. Could you open up a new ticket for us to track that idea? Thanks!

@lime124 I've opened #1692, per your encouragement & suggestion. I'd like to delete my end of the discussion here (now duplicated there) to cleanup this meta-issue. Any objections?

go for it! thanks @TPS!

On Thu, Nov 9, 2017 at 8:53 PM TPS notifications@github.com wrote:

@lime124 https://github.com/lime124 I've opened #1692
https://github.com/mozilla-mobile/focus-android/issues/1692, per your
encouragement & suggestion. I'd like to delete my end of the discussion
here (now duplicated there) to cleanup this meta-issue. Any objections?

—
You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub
https://github.com/mozilla-mobile/focus-android/issues/961#issuecomment-343374521,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AARiWutgDZWjMcpH-hfDaV_P88d8rXpcks5s09axgaJpZM4OaEmX
.

@lime124 I landed the last piece of this, so when everything goes green you should receive a build and can do a final UX review!

Unassigning myself because all eng work is done.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Benestar picture Benestar  Â·  7Comments

callahad picture callahad  Â·  8Comments

antlam picture antlam  Â·  6Comments

facyber picture facyber  Â·  4Comments

mcomella picture mcomella  Â·  5Comments