← Back to team overview

touch-packages team mailing list archive

[Bug 1499845] Re: Expose whether an app has a visible BottomEdge

 

Assigning to bzoltan for opinion on approach.

** Changed in: ubuntu-ui-toolkit (Ubuntu)
     Assignee: (unassigned) => Zoltan Balogh (bzoltan)

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to ubuntu-ui-toolkit in
Ubuntu.
https://bugs.launchpad.net/bugs/1499845

Title:
  Expose whether an app has a visible BottomEdge

Status in ubuntu-ui-toolkit package in Ubuntu:
  New

Bug description:
  == The Design ==

  The edge tutorial that is shown during the first-boot is getting a
  redesign [1].

  As part of it, the bottom edge tutorial screen is intended to only
  appear after a certain amount of time and only if a user is opening or
  switching to an app with a bottom edge to drag up.

  When that happens, a page appears covering the whole screen, pointing
  to the bottom and saying "Swipe from the bottom edge to manage the
  app".  Then when the user does swipe up, it fades out as the bottom is
  swiped.   I've attached a screenshot of an early mockup for this (back
  when it was designed for the App scope, not an actual app).

  Since it must cover the entire screen (and turn off the launcher and
  panel during it), it should probably be rendered by the shell (which
  is rendering the rest of the tutorial anyway).  So we have to
  coordinate between the app and the shell.

  There are two main technical difficulties in implementing this, the
  way I see it.  Detecting if the current page has a valid BottomEdge
  and synchronizing the fade-out with the bottom-edge drag.

  [1] https://docs.google.com/document/d/1pZ-Ro--
  2eaRzjZKNRoYAeDvQHMkCuyvVuPFWFQfPW4s

  == Detecting BottomEdge ==

  We need:
  1) A BottomEdge SDK component
  2) That is enabled
  3) That is attached to the bottom edge of the app
  4) That is currently being rendered (might be in a Page that isn't on top right now)
  5) That isn't obscured by some other widget or MouseArea

  #5 is going to be hard to detect in the wild west of apps from the
  store.  But one thing we could do restrict this to known-well-behaved
  apps that are shipped by default anyway.  The user is most likely to
  be in one of those early on in their phone experience anyway.

  Once the SDK can detect this situation, it needs to signal it somehow.
  Maybe the "valid-bottom-edge" state can bubble up to qtmir's
  ApplicationManager and then the shell.  Any ideas on the best way to
  do that?

  == Synchronizing fade transition ==

  I'm thinking there are two ways:

  1) Communicate from the app to the shell how far the bottom edge has
  been dragged, as it is being dragged.  Presumably via the same channel
  as we communicate that there is a valid bottom edge in the first
  place.

  2) Fake it and have the shell track the drag itself.  It then needs to
  mirror the input to the app so that it also receives the drag.

  #2 is probably easier.  Slightly brittle in case for whatever reason
  the app interferes with the drag or does something on its own that
  would desynchronize the animation.  But again, if we limit this to
  well-known apps, we can avoid that.

  == Open tasks ==

  1) Get general feedback on these ideas
  2) Determine how feasible it is for the SDK to detect a valid BottomEdge
  3) Determine the best way to signal that state from the SDK up to the shell
  4) Implement it

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-ui-toolkit/+bug/1499845/+subscriptions


References