Opened on 11/22/2016 at 02:20:36 PM

Last modified on 03/11/2018 at 01:36:15 AM

#4661 new change

Make filter list URL configurable in release builds

Reported by: mario Assignee: dzhang
Priority: P3 Milestone:
Module: Adblock-Plus-for-iOS/macOS Keywords:
Cc: jand, jeen, pavelz Blocked By:
Blocking: Platform: iOS
Ready: yes Confidential: no
Tester: Unknown Verified working: no
Review URL(s):

Description (last modified by mario)

Background

This issue is based on #3241 which introduces the possibility to load a custom filter list via URL. This feature was implemented for usage in development builds only. However, we decided to make this feature public and thus enable it for release builds. In order to make it more accessible, we need to amend the UI.

What to change

1. Remove limitation

  • Make the settings item "Configure Filter List" as shown in this screenshot and its settings page available throughout all builds (not only development builds)

2. Amend UI
Within "ABP -> Settings" apply the following changes as shown in this screenshot:

  • Change the button Configure Filter Lists to Filter Lists
  • Add a iOS default right arrow to the "Filter Lists" button
  • If the default filter list is used, display Default as secondary text of the "Filter Lists" button
  • If a custom filter list is used, display Custom as secondary text of the "Filter Lists" button

Within "ABP -> Settings -> Filter Lists" apply the following changes as shown in this screenshot:

  • Remove the control "Default Filter List"
  • Change the Headline OTHER FILTER LISTS to The default filter list used is based on EasyList. You can specify a different iOS content blocking filter list to use below
  • Change the label Custom Filter List to Use Custom Filter List
  • Add Filter List label in front of the custom filter list input field
  • Remove the button Update Filter Lists

3. Amend logic

  • "Use Custom Filter List" is turned off by default
  • If "Use Custom Filter List" is turned off (as shown in this screenshot)
    • Hide the "Filter List" input field
  • If "Switch Filter List" is turned on (as shown in this screenshot)
    • Show the "Filter List" input field

Any other logic as derived from #3241 stays in place

Attachments (8)

Configure 1.png (35.5 KB) - added by mario on 12/05/2016 at 09:48:13 AM.
Configure 2.png (42.3 KB) - added by mario on 12/05/2016 at 09:48:23 AM.
Configure 0.png (121.9 KB) - added by mario on 12/05/2016 at 09:49:38 AM.
Configure 1.0.png (68.5 KB) - added by jeen on 12/05/2016 at 06:17:41 PM.
Configure 1a.png (37.0 KB) - added by jeen on 12/05/2016 at 06:17:54 PM.
Configure 1b.png (38.9 KB) - added by jeen on 12/05/2016 at 06:18:01 PM.
Configure 1a.2.png (27.4 KB) - added by jeen on 12/06/2016 at 10:37:00 AM.
Configure 1b 2.png (29.8 KB) - added by mario on 12/12/2016 at 09:52:52 AM.

Download all attachments as: .zip

Change History (32)

comment:1 Changed on 11/22/2016 at 02:22:41 PM by mario

  • Summary changed from make filter list URL configurable in release builds to Make filter list URL configurable in release builds

comment:2 Changed on 11/25/2016 at 02:12:11 PM by pavelz

  • Cc jand added

If i understand the proposal right, without the not yet provided designs, it changes the logic from "or" (both default and custom possible) to "exclusive or" (either default or custom possible). I guess you want to avoid malfunction reports from users mixing up your stable filter list with custom questionable creations "from the wild".

Technically on the backend, it's a simplification of the existing logic, so to close the thought from weekly call: this is still not much effort on our side and could be done fast enough to not inflate ABP release schedule. Detailed design screenshots still needed though.

comment:3 Changed on 11/30/2016 at 10:41:55 AM by mario

If i understand the proposal right, without the not yet provided designs, it changes the logic from "or" (both default and custom possible) to "exclusive or" (either default or custom possible). I guess you want to avoid malfunction reports from users mixing up your stable filter list with custom questionable creations "from the wild".

Exactly. I'm not so much concerned about mixing filter lists but rather about the fact, that we'd easily exceed the 50k rules when we allow to enable two lists at the same time.

Detailed design screenshots still needed though.

I'll be able to provide screenshots asap.

Changed on 12/05/2016 at 09:48:13 AM by mario

Changed on 12/05/2016 at 09:48:23 AM by mario

Changed on 12/05/2016 at 09:49:38 AM by mario

comment:4 Changed on 12/05/2016 at 09:50:55 AM by mario

  • Description modified (diff)

comment:5 Changed on 12/05/2016 at 10:55:54 AM by mario

  • Description modified (diff)

comment:6 Changed on 12/05/2016 at 03:20:08 PM by pavelz

Sorry but this design is overcomplicated and breaks several ios design rules.

  1. Misuses checkmark element. Applied correctly to "one of many" idiom, but the options are not grouped together AND one option is not even visible all the time, so the idiom is lost. See e.g.

https://developer.apple.com/ios/human-interface-guidelines/ui-views/tables/

  1. Checkmarks are supposed to be active - clickable (it's called "disclosure indicator"). You can expect users clicking it and be confused about it not doing anything. If the switching task is taken by the extra switch, the table rows with checkmarks are technically just labels. Is there a reason for it to be designed as active elements?
  1. The switch is called "Switch X" where X does not imply either of the available states. What does it mean when such switch is off? That the switching cannot happen? Why the switch cannot be named "Use Custom Filter List" ? That's what is getting switched, isn't it?

Proposal, default state:
Line 1: The Default Filter List is based ... [plain text label]
Line 2: Last Update: XXX [plain text label]
Line 3: Use Custom Filter List [switch]
Line 4: Update Filter List [clickable]

Upon switching:
Line 1 and 2 greyed out
After line 3 inserted
Line 4: Filter List [textfield entry]
Line 5: Last Update: XXXX [plain text label]
Line 6: Update Filter List [clickable]

Changed on 12/05/2016 at 06:17:41 PM by jeen

Changed on 12/05/2016 at 06:17:54 PM by jeen

Changed on 12/05/2016 at 06:18:01 PM by jeen

comment:7 Changed on 12/05/2016 at 06:22:06 PM by jeen

Hi, I've modified the design based on your suggestions. Before proceeding I have some questions:

  • Configure 1.0.png: Is it possible to add text stating which filter list is active - i.e. 'Default' or 'Custom'?
  • Configure 1a.png: @lisabielik can you please review the description text at the top of the screen: 'The default filter list used is based on EasyList. You can specify a different iOS content blocking filter list to use below.'

Some context for you @lisabielik: A user on the ABP content blocker app for Safari can only use one filter list at a time. The default filter list is a based on a version of EasyList. We have added a new feature which allows power users to use a different iOS content blocking filter list (e.g. one from Crystal instead of the one provided by us)

comment:8 Changed on 12/06/2016 at 08:42:39 AM by pavelz

Configure 1.0.png: Is it possible to add text stating which filter list is active - i.e. 'Default' or 'Custom'?

Sure, that is a common iOS UI pattern.

Two more issues though:

  1. The button "Update Filter Lists" and label "Last Filterlist update" is duplicated, in the main menu and in the filterlists submenu. Since there can be only one filterlist at a time now, the two occurences do the same thing and display the same thing. Decide a single place where it should be now. The two places had a purpose previously, when there could be the default list at the same time as the custom one - added together. So the main menu button was updating both, and filterlist submenu just the custom one. This separation is gone now.
  1. Regarding custom filterlist URL entry field: do not stuff any additional labels in there. The field needs to be as long as possible. Follow the original design, i.e.

https://issues.adblockplus.org/attachment/ticket/3241/Adblock%20Plus%20iOS%20settings%20configure%20filter%20list%2020-1-1.png
https://issues.adblockplus.org/attachment/ticket/3241/Adblock%20Plus%20iOS%20settings%202%20layers%20step%203%2020-1-1.png
The initial grey hint text is called "placeholder" and is a standard iOS feature.

comment:9 Changed on 12/06/2016 at 08:43:35 AM by pavelz

  • Cc jeen added

comment:10 Changed on 12/06/2016 at 10:36:38 AM by jeen

In that case, I would:

  • Remove the update filter list from the "Configure Filter List" screens, and just keep it on the main menu.
  • Remove the text label within the custom filterlist URL entry field.

Lisa is still going to review the final version of the text, but the UI elements should now be resolved. The latest designs can be seen here: https://invis.io/JS9M6A3TD.

Last edited on 12/06/2016 at 10:38:17 AM by jeen

Changed on 12/06/2016 at 10:37:00 AM by jeen

comment:11 Changed on 12/06/2016 at 01:14:10 PM by mario

  • Description modified (diff)

Changed the description to reflect the discussed changes and added the new mockups.
@jeen, @pavelz, LGTM?

comment:12 Changed on 12/06/2016 at 01:14:44 PM by mario

  • Description modified (diff)

comment:13 Changed on 12/06/2016 at 01:15:59 PM by mario

  • Description modified (diff)

comment:14 Changed on 12/06/2016 at 01:27:28 PM by mario

  • Cc pavelz added

comment:15 Changed on 12/06/2016 at 03:52:22 PM by pavelz

@mario @jeen LGTM though i would prefer having the Update button and the timestamp label inside the filterlist dialog - there is enough space, while the main menu is quite long already. But i'm not going to argue over your decision.

Now i'm going to wait for Lisa's approval of the texting.

comment:16 Changed on 12/08/2016 at 02:55:36 PM by mario

LGTM from Lisa via InVision regarding text changes. Ready from our side. @pavelz, @jand, feel free to mark this issue ready if no further information is missing.

comment:17 Changed on 12/12/2016 at 09:50:01 AM by mario

  • Description modified (diff)

Updated the description to reflect further text changes.

comment:18 Changed on 12/12/2016 at 09:51:55 AM by mario

  • Description modified (diff)

Changed on 12/12/2016 at 09:52:52 AM by mario

comment:19 Changed on 12/12/2016 at 09:54:24 AM by mario

  • Description modified (diff)

comment:20 Changed on 12/12/2016 at 02:15:02 PM by jeen

I have updated the following elements in the design which can be found here: https://invis.io/JS9M6A3TD

Updates:

  • Moved 'Update Filter List" and "Last filter update..." to the Filter List screen.
  • Separated out BLOCKING and FILTER LIST into 2 sections.
  • Included a text description under the BLOCKING setting.
  • Still finalising copy for the "Blocking" setting.

comment:21 Changed on 12/12/2016 at 02:52:11 PM by mario

@Jeen, as separating the filter list section form the BLOCKING group is not necessarily bound to this feature, I'd separate this into a separate issue.

Moved 'Update Filter List" and "Last filter update..." to the Filter List screen.

Updated issue & screenshot. Both options have been available from the settings overview before, so no changes needed there.

Separated out BLOCKING and FILTER LIST into 2 sections
Included a text description under the BLOCKING setting.
Still finalising copy for the "Blocking" setting.

Will be handled in a separate issue as soon as the copy is ready.

comment:22 Changed on 12/14/2016 at 03:20:34 PM by mario

Ready from our side.

comment:23 Changed on 12/14/2016 at 03:21:03 PM by pavelz

  • Ready set

comment:24 Changed on 03/11/2018 at 01:36:15 AM by dzhang

  • Owner set to dzhang

Add Comment

Modify Ticket

Change Properties
Action
as new .
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from dzhang.
Next status will be 'reviewing'.
 
Note: See TracTickets for help on using tickets.