Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#4403 closed enhancement (invalid)

Swipe left - right on the top side of the frame to change zoom?

Reported by: manuq Owned by: erikos
Priority: Unspecified by Maintainer Milestone:
Component: Sugar Version: Unspecified
Severity: Unspecified Keywords:
Cc: garycmartin, sridhar Distribution/OS: Unspecified
Bug Status: Unconfirmed

Description

This is more a question, do we want this behaviour? I have coded it so we can test. Patch attached.

Attachments (4)

swipe.patch (3.3 KB) - added by manuq 8 years ago.
Patch.
0001-Views-add-a-gesture-handler-that-let-s-you-swipe-thr.patch (3.5 KB) - added by erikos 8 years ago.
Views: add a gesture handler that let's you swipe through the views
swipe2.patch (2.8 KB) - added by manuq 8 years ago.
Adds swipe gesture in the zoom views (Neighborhood, Group, and Home)
swipe3.patch (2.9 KB) - added by manuq 8 years ago.
Use zoom gesture for switching zoom views (Neighborhood, Group, Home)

Download all attachments as: .zip

Change History (18)

Changed 8 years ago by manuq

Patch.

comment:1 Changed 8 years ago by garycmartin

For the Sugar zoom views (Neighbourhood, Group and Home), both a horizontal swipe or pinch zoom in/out gesture anywhere on the display would work well for moving between them. Ideally we would have a hardware accelerated zoom transition (with a slight left/right motion if a horizontal swipe is being used) but hardware support didn't get there in time to investigate (apparently os28 now has gfx hardware supported to some extent). The Activity zoom view level is more tricky and should probably be left out of the swipe navigation as the activity should have ownership of the canvas swipes, and swiping into the current Activity would be a dead end (the user could not swipe back out to the home view unfortunately)

On the mail list it was raised to use screen edge swipes for activity switching, but we had blocker bugs last time we tested edge swipes (for raising the Frame) over some Activities (bad behaviours and at least one crash bug).

Can we _reliably_ catch two finger swipes? I'm not convinced this would solve the issue either, it's not discoverable and still probably too easy to accidentally trigger if we used it globally to switch between all zoom views/activities.

comment:2 Changed 8 years ago by sridhar

  • Cc sridhar added

Thanks for your input, Manuel and Gary.

For OLPC Australia and One Education deployments, user experience is key. My idea is to reserve the toolbar area for Sugar platform level gestures. We can alternatively use the frame for this, but that adds the extra step of revealing the frame first.

A lot of users struggle with the zooming UI concept, particularly at the beginning. A pinch accompanied by a zoom transition would go a huge way towards alleviating this and building familiarity with Sugar. Preferably the transition would be hardware accelerated, but maybe there's something simpler we can use in the interim?

I don't see a big problem in using gestures to zoom out of the activity, unless we have a good reason for the activity to have gesture (not just tap) control on its toolbars. My belief is that consistency is more important: if you can zoom into an activity by using gestures, you should be able to get out of it in the same way.

Discoverability is an issue, but we have the same problem with other touch actions like long-press/hover. I've even witnessed a lot of users struggling with a right-click.

comment:3 Changed 8 years ago by sridhar

Changed 8 years ago by erikos

Views: add a gesture handler that let's you swipe through the views

comment:4 follow-ups: Changed 8 years ago by erikos

As Gary pointed out, the gesture should be available in all the view, not only in the upper 'toolbar area'. The patch above does add a gesture handler that does so.

comment:5 in reply to: ↑ 4 Changed 8 years ago by erikos

Replying to erikos:

As Gary pointed out, the gesture should be available in all the view, not only in the upper 'toolbar area'. The patch above does add a gesture handler that does so.

The patch has an issue in that it consumes the touch events. Test with Paint for example. You can not draw with the finger anymore.

comment:6 in reply to: ↑ 4 ; follow-up: Changed 8 years ago by sridhar

Replying to erikos:

As Gary pointed out, the gesture should be available in all the view, not only in the upper 'toolbar area'. The patch above does add a gesture handler that does so.

Understood; that sounds like a good idea. As Gary has pointed out, that does mean that Sugar Shell gestures shouldn't work when inside an activity (leaving the activity to implement its own touch events). On further consideration, I think that's fine for our users.

comment:7 in reply to: ↑ 6 Changed 8 years ago by erikos

Replying to sridhar:

Replying to erikos:

As Gary pointed out, the gesture should be available in all the view, not only in the upper 'toolbar area'. The patch above does add a gesture handler that does so.

Understood; that sounds like a good idea. As Gary has pointed out, that does mean that Sugar Shell gestures shouldn't work when inside an activity (leaving the activity to implement its own touch events). On further consideration, I think that's fine for our users.

You need to get out of the activity view as well. The activity view is just another zoom level. Currently the patch would display the current focused activity when swiping to the activity view.

I think Gary meant the case where you switch from one open activity to another open activity (what you would normally do with tab). Handling those two cases cleanly (a) switching the zoom levels and (b) switching between open activities gets even more tricky.

From the technical point of view, the current patch is a global gesture handler. It will listen for all the gestures and change the zoom level accordingly (a). This works fine in activities like Memorize but in Paint, some events do not get through and drawing is laggy. We came across this when implementing #3981 already. We should check the root cause of that issue.

comment:8 follow-up: Changed 8 years ago by erikos

To add some more information, here is what iOS is doing:

(a) you can use a one finger swipe to go through the list of available apps and to get to the search page (inside the Home Screen), you can use a four finger upwards swipe to get to the list of currently 'open' apps (resume) and you can use a four finger zoom to get into the Home Screen from an App

(b) switching between open apps: you can use a four finger horizontal swipe to move from App to App

comment:9 in reply to: ↑ 8 Changed 8 years ago by garycmartin

Replying to erikos:

To add some more information, here is what iOS is doing:

(a) you can use a one finger swipe to go through the list of available apps and to get to the search page (inside the Home Screen), you can use a four finger upwards swipe to get to the list of currently 'open' apps (resume) and you can use a four finger zoom to get into the Home Screen from an App

(b) switching between open apps: you can use a four finger horizontal swipe to move from App to App

Also note that under Android there is no support for switching between apps via touch swipe gestures. They implement switching via the system bar using the 'Recent Apps' button that pops up a list of recent app thumbnails. There are some 3rd party apps you can install, though comments suggest they shorten battery life.

Changed 8 years ago by manuq

Adds swipe gesture in the zoom views (Neighborhood, Group, and Home)

Changed 8 years ago by manuq

Use zoom gesture for switching zoom views (Neighborhood, Group, Home)

comment:10 follow-up: Changed 8 years ago by manuq

The previous two patches add gestures in the three zoom views, not interfering with activities. The first adds swipe gesture, the other adds zoom gesture.

I can see two issues with them:

  • As Gary expected, when the zoom goes to Activity level, the user reaches a dead end.
  • There are accidental presses while doing the gesture: activities can be started in home favs view, scroll takes precedence in home list view, palettes can be raised by accident.

comment:11 in reply to: ↑ 10 Changed 8 years ago by erikos

Replying to manuq:

The previous two patches add gestures in the three zoom views, not interfering with activities. The first adds swipe gesture, the other adds zoom gesture.

I can see two issues with them:

  • As Gary expected, when the zoom goes to Activity level, the user reaches a dead end.

If it is a global gesture it would not, see your first patch, you can cycle in and out of the ZOOM_ACTIVITY level.

In your patch you are including the Activity View:

_ZOOM_LEVELS = [ZOOM_MESH, ZOOM_GROUP, ZOOM_HOME, ZOOM_ACTIVITY] 

If you take 'ZOOM_ACTIVITY' out you can just cycle through the other views.

  • There are accidental presses while doing the gesture: activities can be started in home favs view, scroll takes precedence in home list view, palettes can be raised by accident.

Right, especially with the zoom gesture. I say, this is an issue of the code. There could be fine tuning to make that better to nearly perfect. Not too easy I am sure. Easier if you use a multi-finger gesture of course (e.g. two finger swipe).

comment:12 follow-up: Changed 8 years ago by dnarvaez

Doesn't seem to have landed. Manuel, what's the plan?

comment:13 in reply to: ↑ 12 Changed 8 years ago by manuq

  • Resolution set to invalid
  • Status changed from new to closed

Replying to dnarvaez:

Doesn't seem to have landed. Manuel, what's the plan?

Many objections to continue. So, closing it.

comment:14 Changed 8 years ago by dnarvaez

  • Milestone 1.0 deleted

Milestone 1.0 deleted

Note: See TracTickets for help on using tickets.