[Dash] [design] Scopes should have a pull-to-refresh functionality

Bug #1368336 reported by Michał Sawicz
18
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Ubuntu UX
Fix Released
Critical
James Mulholland
unity-scopes-shell (Ubuntu)
Opinion
Undecided
Unassigned
unity8 (Ubuntu)
Fix Released
Critical
Michael Terry

Bug Description

It should be possible to use the SDK's pull-to-refresh functionality in the dash. I've yet to find out how it works there, it's likely that we'll need to rewrite it in our dash listview.

Related branches

Michał Sawicz (saviq)
tags: added: rtm14
kevin gunn (kgunn72)
summary: - Scopes should have a pull-to-refresh functionality
+ [Dash] [design] Scopes should have a pull-to-refresh functionality
Changed in ubuntu-ux:
assignee: nobody → James Mulholland (jamesjosephmulholland)
Changed in ubuntu-ux:
status: New → Confirmed
Changed in unity8 (Ubuntu):
status: New → Confirmed
importance: Undecided → Critical
Revision history for this message
James Mulholland (jamesmulholland) wrote :

Function:
Refreshes the content of the scope/feed (checks for new content & updates scope/feed content as required when new content is available)

User input & visual feedback:
1. Beginning the swipe-down should reveal an expanded Suru bar area (beneath the pagination markers for scopes/feeds that are part of the Dash) as per current build. Newly revealed expanded Suru bar area should contain the instruction - "Pull down to refresh".

2.At the limit of the down-swipe (before swipe reaches bottom edge of display area and when the 'hidden' portion of the Suru bar beneath the pagination markers is entirely revealed), instruction text should change to read- "Release to refresh".
(Allowing the user to reverse the swipe direction in order to abandon the action before refreshing)

3. On releasing, instruction text should be replaced with an activity indicator which animates while the scope/feed source is polled. (Activity indicator can be seen on Page 28, Section 10.2 of the U.I components doc found here: https://docs.google.com/a/canonical.com/document/d/1nFm8xiYhKXXuEO_IvMXoD0lASbYzYXva1BWMVanU3iw/edit?pli=1#)

4. Expanded Suru bar remains partially open while source is polled and activity indicator animation plays, when polling is complete then either:
    - New content is available, the scope/feed is updated with new content and the Suru bar collapses to its original size.
    - No new content is available, the Suru bar collapses to its original size and scope/feed remains unchanged.

Revision history for this message
James Mulholland (jamesmulholland) wrote :

Correction:
The appropriate activity indicator in step 3 above can be found in section 10.1 (animated horizontal bar, used at foot of scope/feed when loading content).

Page 28, Section 10.1 of the U.I components doc found here: https://docs.google.com/a/canonical.com/document/d/1nFm8xiYhKXXuEO_IvMXoD0lASbYzYXva1BWMVanU3iw/edit?pli=1#)

kevin gunn (kgunn72)
Changed in unity8 (Ubuntu):
assignee: nobody → Albert Astals Cid (aacid)
tags: added: touch-2014-10-30
Changed in ubuntu-ux:
status: Confirmed → Fix Committed
Revision history for this message
Albert Astals Cid (aacid) wrote :

For future reference
   Q_INVOKABLE void Scope::refresh()
is what we want to call

Revision history for this message
Victor Tuson Palau (vtuson) wrote :

I think this needs to be pull to 16/10

Changed in ubuntu-ux:
importance: Undecided → Critical
Revision history for this message
Michael Terry (mterry) wrote :

@vtuson, what do you mean in comment 4?

Changed in unity8 (Ubuntu):
assignee: Albert Astals Cid (aacid) → Michael Terry (mterry)
Revision history for this message
Paweł Stołowski (stolowski) wrote :

If I got the description from James right, it's more complicated than just calling refresh().

Refresh() will re-execute last search, clear current results and replace them with new results, even if they are the same. What I think is expected now is to only update the view when new content is available. This new requirement means substantial change to how scopes plugin handles results: currently it clears old results and displays new results incrementally as they arrive from scope; instead it will have to buffer incoming results up till the decision can be made whether this is same result set as before, or new (in many cases it means delaying them till search finishes).

Revision history for this message
Joe Odukoya (jodukoya) wrote :

Sorry but I believe what is required is a follows:

The main usage for this is to ensure that what you are seeing in the scope is up to date and complete. You would use the pull to refresh action:

 - To ensure that you have the latest default content on the scope page (i.e. no search term entered)

- To trigger a refresh when coverage is patchy and the default content has not fully loaded (i.e. again no search term entered)

- To retrigger a search that has returned incomplete results (likely due to patchy coverage etc) in this case there will be a search term entered and carrying out a refresh action should use the entered search term.

Updating only when new content is available does not seem to cover the cases above...

Revision history for this message
James Mulholland (jamesmulholland) wrote :

Design doc has been updated to reflect Joe's comment above:

Page 10:
https://docs.google.com/a/canonical.com/document/d/1LsjdqKDVcFN8Zxb_Oe-Zk1X_DiqviXr8D7-ELt2LEFI/edit?usp=sharing

"User releases and ‘Suru bar’ snaps shut again, the same activity indicator shown when first loading a Feed is visible at the bottom of the screen (01) indicating a refresh is ongoing and the system is polling for content. When polling is complete, the feed is refreshed with showing new content (when available), the same content (when no new content is available) or the correct content if any problems occurred when previously loading."

Revision history for this message
James Mulholland (jamesmulholland) wrote :

i.e. A manual refresh simply causes a feeds automated/timed refresh to occur immediately and utilises the same refresh behaviour.

kevin gunn (kgunn72)
tags: added: touch-2014-10-16
removed: touch-2014-10-30
Changed in unity-scopes-shell (Ubuntu):
status: New → Opinion
Changed in unity8 (Ubuntu):
status: Confirmed → In Progress
Revision history for this message
Michael Terry (mterry) wrote :

@James, the MP https://code.launchpad.net/~mterry/unity8/pull-to-refresh-scope/+merge/236184 should have debs shortly for testing. I'd love a confirmation that it's what you'd like.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unity8 - 8.00+14.10.20141006-0ubuntu1

---------------
unity8 (8.00+14.10.20141006-0ubuntu1) utopic; urgency=low

  [ Andrea Cimitan ]
  * Tweak card header to match the spec
  * Add preview image slideshow (LP: #1351537)

  [ Michał Sawicz ]
  * Cache more things in memory, so flicking scopes should be faster
    (LP: #1336724)
  * Tweak card header to match the spec
  * Save texture memory by limiting sourceSize (LP: #1338430)

  [ Ying-Chun Liu ]
  * Add attributes to Preview. (LP: #1282460)

  [ Albert Astals ]
  * Update pot
  * Cache more things in memory, so flicking scopes should be faster
    (LP: #1336724)
  * Save texture memory by limiting sourceSize (LP: #1338430)
  * Clip the settings list
  * Fix unlocking from the left again
  * Add wait_ makes tests more reliable

  [ Michael Zanetti ]
  * fix fading out the launcher instead of sliding it out on left-edge
    minimizing an app.
  * Make the DashCommunicator async and more flexible to handle a
    lifecycle-suspended dash (LP: #1339883)

  [ Michael Terry ]
  * Retry unlock-device script if it fails, as there is always a risk of
    a small race with boot-up. (LP: #1370644)
  * Add pull-to-refresh functionality to scopes. (LP: #1368336)

  [ CI bot ]
  * Resync trunk
 -- Ubuntu daily release <email address hidden> Mon, 06 Oct 2014 08:03:23 +0000

Changed in unity8 (Ubuntu):
status: In Progress → Fix Released
Changed in ubuntu-ux:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.