need a transition state for indicators reflecting laggy backends

Bug #1390136 reported by kevin gunn
56
This bug affects 10 people
Affects Status Importance Assigned to Milestone
Canonical System Image
Fix Released
High
kevin gunn
Ubuntu UX
Fix Committed
High
John Lea
indicator-network (Ubuntu)
Fix Released
Critical
Unassigned
Utopic
Confirmed
Undecided
Unassigned
Vivid
Fix Released
Critical
Unassigned
indicator-network (Ubuntu RTM)
Fix Released
Critical
Unassigned
ubuntu-system-settings (Ubuntu)
Fix Released
Critical
Unassigned
Utopic
Confirmed
Undecided
Unassigned
Vivid
Confirmed
Critical
Unassigned
ubuntu-system-settings (Ubuntu RTM)
New
Critical
Unassigned
unity8 (Ubuntu)
Fix Released
Critical
Nick Dedekind
Vivid
Fix Released
Critical
Nick Dedekind
unity8 (Ubuntu RTM)
New
Critical
Unassigned

Bug Description

spawned from efforts in bug 1336715

because the user's input toggle for airplane mode is both a reflection of user intent & the state of the backend....and the backend is unfortunately variable & lengthy to change (anywhere from 1 to ~10+ seconds sometimes) we need to have an intermediate/transition state....e.g. toggle to airplane mode on....then animate somehow that there's a transition happening, until it either fails/succeeds

comment from dizzypaty

Between the user’s action of toggling the airplane switcher on and/or off and the backend updating the state, the indicator icon displayed on the statusbar should be the following: network-idle.svg

(https://drive.google.com/drive/#folders/0BzbnWoHmYF3aZTA4WHNPYW1jeUE/0BzbnWoHmYF3aS2pVejVicktrdm8/0BzbnWoHmYF3ablBITVByRnpzdEk).

----------------------------
Desired resolution

Summary: the interface should immediately respond to user input confirming the action, even if the backend takes up to 20 seconds to actually change state. Having the UI and backend out of sync for up to 30 seconds is not a problem, as long as it always goes back into sync after this delay.

1. When the user changes the flight mode toggle switch it should instantly change state.

2. The backend should then be informed of the state change.

3. Up to 30 seconds later the backend completes the state change

Note: The cellular connection indicator should always display the backend state, not the current flight mode toggle switch state

Variation - user switches the flight mode toggle on and off rapidly.

Once a flight mode state change request has been sent to the backend but before a conformation that the state change is complete is received, all further user interactions should be buffered on the client. When the client receives conformation of the state change from the backend it should check to see if the state is in sync with its buffer. If it is in sync nothing happens and the buffer is cleared. If it is not in sync another state change signal is sent to the backend and the buffer is cleared.

Related branches

kevin gunn (kgunn72)
tags: added: ota1
Changed in ubuntu-system-settings (Ubuntu RTM):
importance: Undecided → Critical
Changed in unity8 (Ubuntu RTM):
importance: Undecided → Critical
Changed in unity8 (Ubuntu):
importance: Undecided → Critical
Changed in ubuntu-system-settings (Ubuntu):
importance: Undecided → Critical
kevin gunn (kgunn72)
Changed in unity8 (Ubuntu):
assignee: nobody → Nick Dedekind (nick-dedekind)
Changed in unity8 (Ubuntu RTM):
assignee: nobody → Nick Dedekind (nick-dedekind)
tags: added: ota-1
removed: ota1
tags: added: rtm14
Revision history for this message
Antti Kaijanmäki (kaijanmaki) wrote :

any changes to the icons displayed require modifications on the indicator-network-service.

Changed in indicator-network (Ubuntu Vivid):
importance: Undecided → Critical
Changed in indicator-network (Ubuntu RTM):
importance: Undecided → Critical
Revision history for this message
Antti Kaijanmäki (kaijanmaki) wrote :

system-settings is not affected.

Revision history for this message
Antti Kaijanmäki (kaijanmaki) wrote :

oh, ignore comment #2. if we indeed do modify the switch items then it affects system-settings as well.

Revision history for this message
kevin gunn (kgunn72) wrote :

iiuc, what design wants is the user toggle for airplane mode to stand alone as a reflection of user intent.
And the icons in the top bar to be reflective of the networks connection state.

e.g.
user toggles airplane mode off/on
- the toggle itself does not change ever until the user changes it
- the icon shows the transition (...) until it disconnects (airplane) or connects (radio bars)
- and in the case of user turning airplane mode off & fails to reconnect, the the radio bars would just show empty after some time is the search is given up

Now, there is a question, do we want to prevent the user from interacting with the toggle during the transition time ? as i realize this may be easier to deal with technically (forcing a response to the request, and not allowing the client request state to change)

kevin gunn (kgunn72)
Changed in unity8 (Ubuntu RTM):
status: New → Opinion
Changed in unity8 (Ubuntu Utopic):
status: New → Opinion
Changed in unity8 (Ubuntu Vivid):
status: New → Opinion
Changed in ubuntu-ux:
assignee: nobody → Vesa Rautiainen (vesar)
importance: Undecided → Medium
status: New → Triaged
Revision history for this message
Pat McGowan (pat-mcgowan) wrote :

From a dupe:

Ben says: When the user switches to airplane mode, if the mode change fails, pop up a system dialog that says "Unable to switch to Airplane mode. Please try again." [OK] and the switch reverts to airplane off state.

Changed in canonical-devices-system-image:
importance: Undecided → Critical
milestone: none → ww51-2014
status: New → Confirmed
Michał Sawicz (saviq)
no longer affects: unity8 (Ubuntu Utopic)
Revision history for this message
John Lea (johnlea) wrote :

Description updated with details of the desired resolution. Design solution signed off by John and Ben.

description: updated
Changed in ubuntu-ux:
assignee: Vesa Rautiainen (vesar) → John Lea (johnlea)
importance: Medium → High
status: Triaged → Fix Committed
kevin gunn (kgunn72)
Changed in unity8 (Ubuntu Vivid):
status: Opinion → Triaged
Changed in unity8 (Ubuntu RTM):
assignee: Nick Dedekind (nick-dedekind) → nobody
status: Opinion → New
Bill Filler (bfiller)
tags: added: settings-ww51
Revision history for this message
Nick Dedekind (nick-dedekind) wrote :

We're probably going to need a more complex mechanism for indicator related actions than what we have now if we want popups and such things.
At the moment we are using dbus modelled gactions; as far as i know, there is no feedback available for this as to indicating success/failure other than "not changing the setting".

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

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in indicator-network (Ubuntu Utopic):
status: New → Confirmed
Changed in indicator-network (Ubuntu):
status: New → Confirmed
Changed in ubuntu-system-settings (Ubuntu Utopic):
status: New → Confirmed
Changed in ubuntu-system-settings (Ubuntu):
status: New → Confirmed
Revision history for this message
Michał Sawicz (saviq) wrote :

Need design input and some rearch here, ww05-2015 would be the earliest this could happen.

Changed in canonical-devices-system-image:
status: Confirmed → New
Changed in canonical-devices-system-image:
milestone: ww51-2014 → ww03-2015
status: New → Confirmed
tags: added: settings-ww03
removed: settings-ww51
Revision history for this message
Brendan Donegan (brendan-donegan) wrote :

The fix for https://bugs.launchpad.net/ubuntu/+source/indicator-network/+bug/1393488 improves the visual behaviour but the recommendation is that this still gets redesigned to provide a more robust solution

Revision history for this message
kevin gunn (kgunn72) wrote :

setting to new for the canonical system image product team.
I would propose we either close this "critical" bug out & spawn a new one.
Or downgrade the criticality "high".
(personally i'd vote for the downgrade to keep continuity in the bug)
We've delivered some measure of change to make this better.

But everyone is in agreement that we need to take a closer look to redesign this frontend/backend flow, which will take longer than ww03.

Changed in canonical-devices-system-image:
status: Confirmed → New
Revision history for this message
Pat McGowan (pat-mcgowan) wrote :

lower priority based on comments

Changed in canonical-devices-system-image:
importance: Critical → Medium
Revision history for this message
Pat McGowan (pat-mcgowan) wrote :

May move out further for final fixes

Changed in canonical-devices-system-image:
milestone: ww03-2015 → ww05-2015
status: New → Confirmed
Revision history for this message
Antti Kaijanmäki (kaijanmaki) wrote :

As nick stated in comment #7 we need more detailed API than the current GAction based one. I'm thinking something along the line of having QML API's that return a progress object when you call methods such as "enableFlightMode". The caller would then use the object to track the status of the operation.

Once we do have the ability to track the progress of an Operation in the UI level we can either "disable" the switches for the duration of the ongoing operation or animate them with a "progress spinner" or something.

Changed in canonical-devices-system-image:
milestone: ww05-2015 → ww09-2015
Revision history for this message
Nick Dedekind (nick-dedekind) wrote :

Hm, i didn't see the new description before I posted. Based on the new one from John, it doesn't look like we need to change the API if we don't need to track the transition.

The current method we use in Unity8 should suffice with a little tweaking. Currently we only wait 1.5 seconds for the server state to "re-assert" itself, which is why the switch "flips out" a bit if it takes longer.
Increasing this to 30 seconds, adding a "currently in transition" animation and buffering other changes until the state change is confirmed or 30 seconds is up should suffice.

Revision history for this message
Nick Dedekind (nick-dedekind) wrote :

And while indicator-network waits for the flight mode change request to be applied, it can change to the network-idle.svg icon.

Revision history for this message
Tim Peeters (tpeeters) wrote :

Alternatively, instead of buffering the interactions with the Switch, you could disable the Switch (grey it out) while the operation is in progress

Changed in canonical-devices-system-image:
assignee: nobody → Kevin Gunn (kgunn)
Revision history for this message
Michał Sawicz (saviq) wrote :

Since we don't have a clear idea for fixing this yet, I'd say this should be dropped off the RTM list.

Revision history for this message
Pat McGowan (pat-mcgowan) wrote :

track on later milestone as this experience needs a solution

Changed in canonical-devices-system-image:
milestone: ww09-2015 → ww13-2015
kevin gunn (kgunn72)
Changed in canonical-devices-system-image:
assignee: Kevin Gunn (kgunn) → kevin gunn (kgunn72)
Changed in canonical-devices-system-image:
importance: Medium → High
Pete Woods (pete-woods)
tags: added: connectivity
Revision history for this message
Pete Woods (pete-woods) wrote :

The upcoming Qt port for the indicator disables the GActions for the wifi and flight mode toggles for the duration of the transition.

There is currently no way for the unity8 side to know if the transition is still going on and whether it succeeded or failed, so I think the fix for this firmly stands in the court of the indicator.

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

This bug was fixed in the package indicator-network - 0.5.1+15.04.20150401~rtm-0ubuntu1

---------------
indicator-network (0.5.1+15.04.20150401~rtm-0ubuntu1) 14.09; urgency=medium

  [ Pete Woods ]
  * Port all dbus interactions to QDBus (LP: #1390136, #1427064,
    #1245951)
 -- CI Train Bot <email address hidden> Wed, 01 Apr 2015 15:31:25 +0000

Changed in indicator-network (Ubuntu RTM):
status: New → Fix Released
Revision history for this message
Selene ToyKeeper (toykeeper) wrote :

Fixed in silo ubuntu/landing-006 today for vivid. At least, the checkbox stays in one state and won't respond or change until the transition is complete, which seems acceptable.

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

This bug was fixed in the package indicator-network - 0.5.1+15.04.20150401.2-0ubuntu1

---------------
indicator-network (0.5.1+15.04.20150401.2-0ubuntu1) vivid; urgency=medium

  [ Marcus Tomlinson ]
  * Add integration tests for indicator
  * Port all D-Bus interactions over to QDBus (LP: #1390136, #1427064,
    #1245951)

  [ Pete Woods ]
  * Add integration tests for indicator
  * Port all D-Bus interactions over to QDBus (LP: #1390136, #1427064,
    #1245951)
 -- CI Train Bot <email address hidden> Wed, 01 Apr 2015 15:31:55 +0000

Changed in indicator-network (Ubuntu Vivid):
status: Confirmed → Fix Released
Changed in canonical-devices-system-image:
milestone: ww13-2015 → ww17-2015
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unity8 - 8.02+15.04.20150409.1-0ubuntu1

---------------
unity8 (8.02+15.04.20150409.1-0ubuntu1) vivid; urgency=medium

  [ Albert Astals Cid ]
  * Focus the shutdown dialog (LP: #1417991)
  * Make url-dispatching scope activation when the dash is not on the
    main scopes (LP: #1364306)
  * We use autopilot3 now

  [ CI Train Bot ]
  * New rebuild forced.
  * Resync trunk. added: po/or.po

  [ Daniel d'Andrada ]
  * Make tst_PreviewListView and tst_GenericScopeView work in out-of-
    source builds
  * MouseArea that shows the indicators panel should cover the
    indicators bar only (LP: #1439318)
  * Surface gets active focus also with mouse clicks

  [ Josh Arenson ]
  * Add a mode option to unity8 for selecting greeter mode in the future
  * Remove PkgConfig include from Launcher plugin to fix cross-compile
    (LP: #1437702)

  [ Leo Arias ]
  * Fixed the check for string in the lock screen test. (LP: #1434518)

  [ Michael Terry ]
  * Make sure the edge tutorial is destroyed when we receive a call
    during the wizard. (LP: #1436349)
  * Skip parts of the edge tutorial that require a touch device (like
    spread and bottom edge). (LP: #1434712)

  [ Michael Zanetti ]
  * Don't hide stages just because they're empty (LP: #1439615)
  * [Launcher] fix bug where an item would disappear even though the app
    is running (LP: #1438172)

  [ Nick Dedekind ]
  * Fixed autopilot test failures related to udev input failure for
    power button.
  * Made improvements for laggy indicator backends (lp#1390136). (LP:
    #1390136)

  [ Pete Woods ]
  * GPS only goes active when the Dash is in the foreground (LP:
    #1434379)

  [ handsome_feng<email address hidden> ]
  * Modified the wrong time format in ScreenGrabber (LP: #1436006)
 -- CI Train Bot <email address hidden> Thu, 09 Apr 2015 14:01:11 +0000

Changed in unity8 (Ubuntu Vivid):
status: Triaged → Fix Released
Changed in canonical-devices-system-image:
status: Confirmed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubuntu-system-settings - 0.3+15.04.20150430.1-0ubuntu1

---------------
ubuntu-system-settings (0.3+15.04.20150430.1-0ubuntu1) vivid; urgency=medium

  [ CI Train Bot ]
  * New rebuild forced.
  * Resync trunk.

  [ Ken VanDine ]
  * Include supported frameworks and arch when checking for updates (LP:
    #1449582)

 -- CI Train Bot <email address hidden> Thu, 30 Apr 2015 19:38:05 +0000

Changed in ubuntu-system-settings (Ubuntu):
status: Confirmed → 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.