ramack / ActivityDiary

Android diary for any kind of activities
GNU General Public License v3.0
73 stars 37 forks source link

Can we have multitasking please? #217

Open XilinJia opened 6 years ago

XilinJia commented 6 years ago

I just discovered this app and love it. It would be much better if it allows multitasking.

However science may discourage multitasking, it happens all the time in life: listening to podcasts while bicycling, savor wine while watching movie, listening to music while developing software, ...

I prefer combining multiple activities together (like bicycling and listening to podcasts) to creating a combined activity (like bicycling while listening to podcasts). The former can be shown with separate statistics (and hopefully combined as well, a new feature?).

ramack commented 6 years ago

You are right, I also thought about this and came up with the idea, that it might be ok to speak about one active activity and one or more background activities. As described in #17. The main difference to full multitasking is probably, the termination of an activity by selecting the next one. - which I would not do for a background activity.

The open questionsare:

So in case you have ideas how to design the UI for that pleas suggest it here, in best case with an mocked screenshot...

XilinJia commented 6 years ago

Regarding foreground vs background, my sense is that in most cases it's not distinguishable. In the case of bicycling while listening to podcasts for instance, I would say both are on a roughly equal basis: exercising and learning, which is more important? In the case of coding and listening to music, it's perhaps alluding that the music is the background, but one may also argue that he loves the music so his mind frequently switches, then it also makes both on an equal basis, and this is why he considers the music also being a current activity. I think in the case one can easily decide that an "activity" is truly a background (meaning his mind doesn't care much about it), then that "activity" is perhaps not worth being considered an activity for him at that moment. Otherwise, there can be a zillion such "activities": neighbor mowing the lawn, dogs barking, wife talking to her mother on the phone, kids running in the house, outside raining/sunny/cloudy, machine doing laundry, etc. It's tempting to record all these, but it makes life and the app unnecessarily complicated. If one really would want to add such "activities", then it might be better that he added them as a note or a photo.

In this understanding, the app can simply allow to add multiple activities (by tapping on any activity) into the current activities screen area. These current activities should be treated as independent (like turn off podcast but continue bicycling, or stop bicycling but continue on with podcasts). To stop an activity, simply tap on the activity in the current area (like one does with the single activity in the current version). To add a note or a photo, the app should then let the user choose a relevant activity and then add the note or photo.

ramack commented 6 years ago

Maybe we could introduce slots: in each slot we can set the current activity.

If only one slot is used, everyting stays as it is. If multiple slots are used it is up to the user to have a semantics for it. He might think of slot 1 being the forground and the others all background activities/states, or the could be considered equal.

When the user selects a new activity we can determine in which slot it should go manually. Or the activities have a fixed slot configured and will implicitly terminate the current activity in that slot.

As a side effect we have a nice implementation of #24 where the parent can go to one slot and the child activities into slot n+1.

ramack commented 6 years ago

Ah and other important questions would be

sesam commented 6 years ago

nice! music / podcasts / video should all share a slot. If it's a long form movie and concurrent activity is cooking/cleaning/woodworking then movie might be primary. Why is separating out what's primary important?

For statistics and charts, probably filtering is the only option. Some tasks could be determined secondary ahead, and a tristate switch to have secondaries hidden/together/hide primaries=normals.

XilinJia commented 6 years ago

I don't fully understand you about "slots". Is that easier for the user and/or for the developer? I guess from my user point of view, I don't care much about which activity goes to which slot, all I care is that there is a pool of "current activities" where I simply kick in the ones I want to do, all at once or one by one as needed. Think about bicycling and podcasting. I may start with bicycling only, and at some point, I add podcasts, then at some other point, I stop bicycling (walk into a mall) but continue with podcast, then later, restart bicycling again (together with podcasts), then later, I stop podcasts, etc. Can the operation be as easy as a tap on the activity? Hopefully, when I add an activity, I simply need to tap it to put it in the current pool, and when I stop an activity, I tap the one in the current pool to take it out.