Creating a new activity
When the user create a new activity, applications automatically prepare themselves for the new activity. Dolphin creates a new folder for storing activity resource files. Kmail creates a mail folder to store mails corresponding to the activity. Korganiser creates a tag that can be assigned to specific contacts to associate them with the activity.
Switching to an existing activity
When the user switches to a particular activity, the applications used in that activity will get automatically opened in the relevant states. And, the whole environment changes to focus the attention of the user on the related things.
Plasma widgets filter content appropriately. Applications focus their context exclusively on the activity-related items, including changing the open/save dialog to default to the folder which corresponds to the activity resources (So that needed files are always just a click away!)
use scenarios might include:
- I'm working on my book. I want the folders containing my research, my notes and the chapters I've written so far to appear on my desktop.
- I'm working on a school project in a team with 3 other class mates. When I'm working on it, I'd like the contacts widget to show just those people and their IM status.
- I'm ready to play, show my twitter and facebook widgets on my desktop and put my favourite games on the favourites panel of the application launcher.
these are all Plasma centric, but it's easy to come up with ones for kontact ("I'm working on my book, put the folders with email containing my research and publisher communications in the shortcuts area and prefer contacts related to my book work when composing an email.") or kopete ("I'm working on a school project in a team with 3 other class mates, I'd like the buddies list to promote those three people to the top of the list.") or dolphin or ... etc. =)
In this, all things created within that activity get automatically associated with it, like files created. But, (as Aaron seigo pointed previously) we would have to think of how to associate inputs that come from the outside world, like in the following scenarios
a) I am having a chat with one of the activity collaborators and the chat session is getting associated with the activity. Now, if I get an IM from a random friend, how will that be handled and associated? ( maybe, we can associate it only if it comes from one of the associated contacts; if the contact is in two different activities, then we can probably use keywords to identify the context)
b) Same situation for incoming mails (maybe we can handle it similarly)
Apart from the above situations, we would have to discuss a lot more scenarios and how to handle them...