Morgen Sagen wrote:
I'm currently scoping out the following projects for 0.7:
A) Background synchronization (let the user continue to use
Chandler while syncing)
B) User Notification framework (provide the user some way to see
that shared items have been changed)
C) Conflict resolution (let the user manually reconcile conflicting
changes that have been synced)
Below is a brief description of each, including areas in which I would
need help from other groups (Andi with some repository work, and the
Apps team for some CPIA work). Comments are welcome.
(A) Background (or "asynchronous") syncing involves moving the current
sharing operations into their own thread rather than blocking the main
UI thread as they do today. The difficulty here will mostly be in the
repository view merging code, since using a different thread requires
using a different repository view. I expect I will need some amount
of Andi's time to work through view merging issues, and we'll need
some way in CPIA to indicate (probably via some animated icon) that a
collection is currently being synced.
I'd like to be involved in some of the CPIA UI update stuff - there are
a few places we need to do coordinated status bar/animation/etc
notification back to the UI, and I'd like to make sure we do it in a
consistent way across all the modules that need to notify the UI
repository view "refresh". (2) Pick an automatic conflict resolution
policy ('local changes win' versus 'remote changes win') and when a
conflict happens follow that policy, but in addition add a special
kind of UserNotification ("ConflictNotification"?) item to the
Changes/Notification log collection, recording in it which
Item/attribute had the conflict, and what the two attribute values were. \
+1 for this for the short term -
I can imagine later wanting to alert the user, even when things happen
in the background. TrueSync, the Yahoo <-> Palm sync software, gives a
reasonable first-cut at a user interface for handling conflicts (it
prompts the user for conflicts like if you change a calendar event on
your Palm, and also on your Yahoo Calendar - who wins?) and I'm sure we
could come up with something even nicer. But that's a reasonably hard UI
problem that we shouldn't tackle yet...(mostly 'cuz we're pretty booked
for UI design & implementation already!)
Alec
I prefer (2); this would allow sharing-related changes to appear at
any time (since from the repository's standpoint, conflicts are
resolved immediately), and allow the user to review/resolve conflicts
at their leisure. Ideally reviewing a conflict would mean clicking on
a ConflictNotification item in the list view and being presented in
the detail view with a side-by-side comparison of an item -- local
changes next to remote changes -- and buttons allowing the user to
pick between the two. This project would require some CPIA work for
presenting a conflict resolution detail view.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "Dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/dev
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "Dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/dev