[sugar] Choosing "defaults" for the activity ring

Eben Eliason eben.eliason
Fri Apr 4 12:46:29 EDT 2008


The new Home design contains a ring of a child's favorite activities.
It's a shocking experience to find oneself at a home screen with no
activities at all in the ring, and ensuring that some proper subset of
all the activities available are shown in the ring by default will aid
in discoverability of the favorites system.  For this reason, we need
to institute a policy for declaring activities as favorites by
default, which will, in general, occur through the installation of
activity packs such that countries can choose their own set of
favorites in addition to choosing their larger set of installed
activities.  That is, activity packs will contain a file which
indicates which of the activities they contain are to be favorited by
default. Hopefully what I've stated thus far is not controversial.

There's on key question regarding the method of application we use
when installing a new activity pack.  Note that this only becomes a
question after the user has interacted with their laptop, and has
chosen to add (and more importantly remove) favorites from their ring.
 The two options are:

1. Set the USER_FAVORITES file to a boolean OR or of USER_FAVORITES
and PACK_FAVORITES.  In other words, retain the users favorites, and
*add* any favorites that the pack specifies to them, and therefore to
their ring.  Once a pack is installed, we can completely forget about
the PACK_FAVORITES file.

2. Store the USER_FAVORITES as a diff from a stored copy of the
OLD_PACK_FAVORITES file. This allows us to know what files the user
has added and removed since the last pack was installed.  We then
create an updated USER_FAVORITES by applying the diff to the
NEW_PACK_FAVORITES file.  This means that we add new favorites to the
USER_FAVORITES, and hence the child's ring, but *only* if the child
has not previously declared it to be a non-favorite.

Option (2) is somewhat more complex, but ensures that the user doesn't
have to repeatedly un-favorite activities which they don't want in
their ring.  Option (1) is rather simple, but allows the activity pack
to enforce that all of its default favorites appear in the users ring,
even if the user has previously stated (via un-favoriting) that they
don't like it.  This, from the perspective of the countries/schools,
may actually be a benefit, as it could allow them to ensure that, at a
minimum, a particular set of activities appears in every child's ring
at the beginning of a given semester, year, etc.  We'd like some
feedback on which perspective is the most rational so we can implement
the solution as soon as possible to prevent the "empty ring"
phenomenon.

- Eben



More information about the Sugar-devel mailing list