[FFe, UIFe] New animation for adding launchers for newly installed applications

Bug #955147 reported by Bilal Akhtar
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Unity
Fix Released
Medium
Bilal Akhtar
unity (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

As decided at UDS-P, Software Center should be integrated deeper with the Unity launcher. The spec for how it should happen, is here:

https://wiki.ubuntu.com/SoftwareCenter#Learning_how_to_launch_an_application

Here's a YouTube video demonstrating this in action (It's my video running Unity from my branch, see the attached branch for it):
http://www.youtube.com/watch?v=6peOjOrcURA

Now for the implementation details. I broke down implementation into two phases. First phase involved these features:
1) An app being installed is shown in the launcher with a tooltip "Waiting to install"
2) A progress bar on the launcher item displays the download/install progress.
3) When the app gets installed, the launcher items becomes usable, and the tooltip gets changed to the app name.

First phase (bug #761851) was implemented as part of this merge request here: https://code.launchpad.net/~bilalakhtar/unity/software-center-integration-for-o/+merge/71905 . Note that this was pre-feature freeze and pre-UIF. That branch added one string, "Waiting to install", which got in before the freezes.

It shipped as part of Unity 5.2. But due to the code getting refactored, the implementation broke right afterwards, as one line got missed out; see bug #932280 and the attached branch. I didn't realize this until the freezes had passed, and I wrote a one-line change to fix it, which remains unmerged until now: https://code.launchpad.net/~bilalakhtar/unity/fix-sc-launcher-integration/+merge/93908 . The reason why it wasn't merged, was because it lacked tests. By the time it was reviewed, I completed phase 2 too, which contained these features:

1) Animate the movement of the icon from the USC window to the Unity launcher.
2) Make the launcher icon wiggle when installation is complete.
3) Ensure the launcher icon doesn't start blinking when clicked in the "Waiting to install" phase.

Phase 2 fixes the regression as well as adds the above features. So, it introduces these changes, from Unity 5.2 (since in 5.2, phase 1 was working well, phase1 broke AFTER 5.2), that need FFe and UIFe:
1) The behavior changes (flying icon) rather than just a usual icon add.
2) Launcher icon wiggles when installation finishes, unlike 5.2, where it just became usable, with no extra effect.

Phase 2, along with tests, is contained in this merge request (branch is also linked to this bug): https://code.launchpad.net/~bilalakhtar/unity/sc-integration-phase2/+merge/95795 . A UIFe and FFe is needed before that branch gets merged into trunk bound for Unity 5.8.

The YouTube video which I linked at the top of this description, is actually the above branch in action.

Do note that all changes mentioned above are needed in the unity package only. The software center side of the implementation has been in since before the freezes.

Testing: I've tested this branch thoroughly with all corner cases, etc. The linked branch also contains an autopilot test to ensure that the implementation never breaks in the future. The implementation is very stable, the few crashes I experienced last week were ironed out earlier this week, and never had issues since then.

Please review this FFe and UIFe request.

Ubuntu-doc ML posting: https://lists.ubuntu.com/archives/ubuntu-doc/2012-March/016413.html
Ubuntu-translators ML posting: https://lists.ubuntu.com/archives/ubuntu-translators/2012-March/005211.html

Related branches

description: updated
description: updated
description: updated
Revision history for this message
Bilal Akhtar (bilalakhtar) wrote :

Can anyone review this request soon? I'd like to ensure that this change lands in time for Unity 5.8 and I don't want the merge window to close before this request is approved. That might mean missing the Beta 2 deadline for this change.

Revision history for this message
Martin Pitt (pitti) wrote :

This looks like another workaround for "users are not able to use the dash to find applications". In the previous cycle we already cluttered the launcher with a control-center icon, which now causes the default launcher to already overflow by default on netbook screens. Now this proposes to stuff _all_ new applications into the Launcher, but does not teach users how to get rid of them again. This will make the launcher even less useful and more cluttered.

Seriously, let's please stop adding more workarounds to the dash. If user testing showed that the dash is too hard for new users, then let's rather design a "first time" dialog/help to show how to use it properly. Like this we penalize all users all the time, instead of just asking beginner users to learn this once.

summary: - [FFe, UIFe] Add Software Center Integration to the Unity launcher
+ [FFe, UIFe] Automatically add launchers for newly installed applications
Revision history for this message
Tim Penhey (thumper) wrote : Re: [FFe, UIFe] Automatically add launchers for newly installed applications

@pitti, this is behaviour that has been explicitly asked for. Yes, by that I mean that everything that you install with the software centre gets shoved into the launcher.

Revision history for this message
Martin Pitt (pitti) wrote :

Asked for by whom? It certainly hasn't come up on any of the development lists, but these are very likely people who would be annoyed by it. Is that from user testing? Did that last for more than just 30 minutes, i. e. before people actually installed two dozen apps and then wondered how to make the launcher less crowded again?

Anyway, I stated my opinion. I'm fully aware that it won't help to prevent this, but please understand that I don't want to be the person who gives the approval for this.

Revision history for this message
Allison Karlitskaya (desrt) wrote :

It seems the problem here is that users are unable to find stuff in the dash. If we keep adding more and more icons to the launcher, soon users will be unable to find things there as well.

I think the solution is to subtly train users towards using the dash more. Here's an extremely rough suggestion from a non-designer:

 - user installs new app
 - dash icon has attention drawn to it (some glow effect, maybe even pulsing)
 - when the dash icon is clicked, the dash opens with the search field pre-filled for the newly-installed app so the icon is showing

Revision history for this message
Sebastien Bacher (seb128) wrote :

or maybe display the icon with the progress bar while installing and then move it with an animation to the dash icon? that would give the "installing" progress info available in the launcher and the animation would give a clue where it went

Revision history for this message
Matthew Paul Thomas (mpt) wrote :

To answer Martin's question, "Asked for by whom?":

Finding the application you just installed was the #1 problem identified in usability testing of Ubuntu Software Center 2.0. <http://design.canonical.com/2010/06/when-new-users-first-encounter-ubuntu-5-show-stoppers/>

So we added a "Find it in the menu:" hint, describing the path to find it in the Applications menu. But usability testing of Ubuntu Software Center 3.0 found that that didn't work <http://blog.freecalum.co.uk/post/2636771973/usability-testing>, and it would have been obsolete with Unity anyway.

So I specified that newly-installed applications should go into the launcher by default. Mark Shuttleworth directed that we should instead invite you inside USC, for each application you install, to add that application to the launcher (bug 670403). So we implemented that for 4.0, but usability testing of Ubuntu Software Center 5.0 found that that didn't work either. <http://www.omgubuntu.co.uk/2011/11/user-testing-of-unity-reveals-some-surprising-results/>

That's why we're going ahead with the launcher integration. It isn't a "workaround to the Dash", because exactly the same problem existed in Ubuntu 10.04 before Unity even existed. So while I'd also be pleased to see the Dash show newly-installed applications in the same list as recently-used applications, pulse when something new is installed, and so on, I'm under no illusions that any of that would solve the discoverability problem. Finally, I recognize the behavior may be annoying for people who install lots of applications at once, but they can turn off the automatic addition from USC ("View" > "New Applications in Launcher").

Revision history for this message
Bilal Akhtar (bilalakhtar) wrote :

Just to add to MPT's comment, here is a list of all scenarios that were considered for launching applications, complete with lists of pros/cons for each:
https://wiki.ubuntu.com/SoftwareCenter/LaunchingApplications

Revision history for this message
Bilal Akhtar (bilalakhtar) wrote :

Another VERY important thing to remember is, the freeze exceptions are NOT for the adding behavior. That has been part of Unity since before the freezes. It only lacked the adding "flying" animation and the "installation complete" wiggle, which I completed this month, and that branch needs a freeze exception.

Revision history for this message
Martin Pitt (pitti) wrote :
Download full text (3.7 KiB)

I'm still very worried about this. This new concept essentially admits defeat that new users do not know about the dash. This started last cycle with moving the control-center icon into the launcher (thereby making it overflow on netbook screens), which already spawned a large discussion. Now this proposes to throw all limits over board and add tons of new icons to the launcher; NB that we make it very easy to install lots of new apps, and we go through great lengths to make it possible to create, find, and install third-party apps even post-release.

Now, this approach works around a temporary 5 minute question ("where does that app go"?), not by giving a 5-minute answer (quick tutorial or hint application which opens up the first couple of times), but by essentially redefining what the launcher is: a place where all applications go. This has several problems:

 * Our launcher just isn't built for that -- it's efficient and useful for up to 10 to 20 icons, depending on your screen size. But after that it folds, and exponentially gets harder to use. It doesn't have text to describe the applications, does not have a stable order, and is just one-dimensional.

 * It does not have most of the applications that are installed by default -- how do people find that?

 * It drives people further away from the dash, thereby aggravating the learning problem instead of solving it.

 * It optimizes a thing which represents 0.00005% of the workload [1] at the expense of making the other 99.99995% much worse.

So I have some questions about the user testing:

 * Did you test scenarios where Ubuntu has been preconfigured with 20 or more extra apps, a number which is certainly realistic? On a laptop with only a touchpad or a trackpoint? How did users respond to using the launcher like this?

 * How many users are able to find the app they want in an icon list of 30 or more, without complaining?

 * How many users who have not been able to find out how to keep an app in the launcher found out how to remove it from there again? (I would be very surprised if that was more than 5%, given that it goes through the exact same path: right-click on the icon in the launcher)

   Using your line of argument that you used for the autohide changes: The app went into the launcher by installing it in software-center, thus it goes out of the launcher by uninstalling it again.

 * With this change, how many more users still don't use the dash and thus never find pre-installed applications?

 * How many users found out how to disable this behaviour?

    If that bug hadn't told me, I wouldn't know how to disable it. software-center neither needs menus nor encourages to look into them in any way, and they are not even visible by default. At best I had looked in the control-center's Unity settings where all the other launcher prefs are. Also, I seriously doubt that an user who doesn't dare to click on the big Ubuntu icon in the launcher to open the dash and doesn't play with it for a minute or two to discover how that works will have the creativity and guts to find and try this option in software-center.

So in summary, this turns the launcher into something like the app launch...

Read more...

Revision history for this message
Martin Pitt (pitti) wrote :

So it was pointed out that this just changes the animation, doesn't introduce the behavior. This part is ok.

FWIW, this is point 5 of https://wiki.ubuntu.com/SoftwareCenter/LaunchingApplications, and it has both a flaw (as it teaches the completely wrong thing), as well as points out the very problem: You both do and don't epect the user to get along with adding/removing icons at the same time, so it contradicts itself.

summary: - [FFe, UIFe] Automatically add launchers for newly installed applications
+ [FFe, UIFe] New animation for adding launchers for newly installed
+ applications
Changed in unity (Ubuntu):
status: New → Confirmed
Revision history for this message
Martin Pitt (pitti) wrote :

I filed bug 960048 about this new behaviour breaking the launcher, and about the inconsistent conclusions in that spec.

Revision history for this message
Bilal Akhtar (bilalakhtar) wrote :

Thanks for the freeze exception, marking bug appropriately on the upstream task too.

Changed in unity:
assignee: nobody → Bilal Akhtar (bilalakhtar)
importance: Undecided → Medium
milestone: none → 5.8.0
status: New → In Progress
status: In Progress → Triaged
Changed in unity (Ubuntu):
status: Confirmed → Triaged
Changed in unity:
milestone: 5.8.0 → 5.10.0
Changed in unity:
status: Triaged → Fix Committed
Changed in unity (Ubuntu):
status: Triaged → Fix Committed
Changed in unity:
status: Fix Committed → Fix Released
Revision history for this message
Bilal Akhtar (bilalakhtar) wrote :

I can confirm this is fixed with the version of Unity in -proposed.

bilal@bilal-dell:~$ apt-cache policy unity
unity:
  Installed: 5.10.0-0ubuntu1
  Candidate: 5.10.0-0ubuntu1
  Version table:
 *** 5.10.0-0ubuntu1 0
        500 http://mirror.csclub.uwaterloo.ca/ubuntu/ precise-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     5.8.0+bzr2275ubuntu0+677 0
        500 http://ppa.launchpad.net/unity-team/ppa/ubuntu/ precise/main amd64 Packages
     5.8.0-0ubuntu2 0
        500 http://mirror.csclub.uwaterloo.ca/ubuntu/ precise/main amd64 Packages

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (9.2 KiB)

This bug was fixed in the package unity - 5.10.0-0ubuntu3

---------------
unity (5.10.0-0ubuntu3) precise-proposed; urgency=low

  [ Oliver Grawert ]
  * Enable subarch specific quilt support
  * add linaros disable_standalone-clients.patch to make unity build with GLES

  [ Didier Roche ]
  * remove a symlink and replace with a real file for
    debian/patches/series.<arch> as not supported in non v3 (and we don't
    want v3 format with full source upstream derived branch)

unity (5.10.0-0ubuntu2) precise-proposed; urgency=low

  [ Ricardo Salveti de Araujo ]
  * Enabling build with OpenGL ES2.0 support for ARM and disable maintainer
     mode on that arch to avoid -Werror failure (LP: #980544)

unity (5.10.0-0ubuntu1) precise-proposed; urgency=low

  * New upstream release:
    - bamfdaemon crashed with SIGABRT in g_assertion_message() (LP: #926208)
    - We are using 1 bad hack for compiz hanging on startup (LP: #963264)
    - GConf backend steals glib events from compiz (LP: #965220)
    - when I closed QupZill brawser it crashed and then and then I sow
      worrning that compiz crashed but fire fox and chrome is estle working.
      gtk-window-decorator crashed with SIGSEGV in max_window_name_width()
      (LP: #948580)
    - compiz crashed with SIGSEGV in std::basic_string<...>::basic_string()
      from unity::launcher::HudLauncherIcon::HudLauncherIcon()::{lambda} from
      unity::UBusManager::OnCallback (LP: #964897)
    - unity-panel-service crashed due to heap corruption in g_free() from
      service_proxy_name_changed() [libindicator/indicator-service-
      manager.c:574] (LP: #969360)
    - Opening dash while an application is maximized makes unity completely
      useless, have to relogin (LP: #975103)
    - unity crash on alt-tab (LP: #975168)
    - Top bar - Menus should be condensed to fit panel/overlay of appmenu
      (LP: #655184)
    - Topbar - window controls for maximised windows in the top bar should
      conform to Fitts's law (LP: #839690)
    - [FFe, UIFe] Dash - When the Dash is open and there is a maximised app in
      the background, the top bar background should not disappear
      (LP: #839480)
    - Dash - The inner bottom left, bottom right and top right corners of the
      desktop dash border are rendered incorrectly (LP: #839476)
    - Showdesktoped window contents invisible in window spread (LP: #877778)
    - Maximized windows can be accidentally closed from wrong monitor.
      (LP: #865701)
    - Unity launcher on-screen corruption on resume from suspend with nVidia
      proprietary driver (LP: #915265)
    - Launcher - Inserting items into launcher makes unnecessary animations on
      other monitors (LP: #925021)
    - Far left character in panel (and launcher popups) distorted
      (LP: #927441)
    - Jenkins build failure: SetAcceptKeyNavFocusOnMouseEnter not declared
      (LP: #938037)
    - super+<unbound key> and sometimes super+<number> keys now cause launch
      to wedge with the key hints shown and retains focus instead of selecting
      the requested window (LP: #934084)
    - three-finger move does not move (Precise) (LP: #940612)
    - compiz crashed with SIGSEGV in std::__de...

Read more...

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

Other bug subscribers

Remote bug watches

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