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 _______________________________________________ Devel mailing list [email protected] http://lists.laptop.org/listinfo/devel
