2009年3月2日星期一

AutoSettings Design Doc


AutoSettings Design Doc

source - http://code.google.com/p/autosettings/
----
20081101 Goal

Goal:
- a simple replacement to Locale that actually works for _me_.

Locale pros & cons:
- Pros: it's free and it's already there.
- Cons: it should be in the platform, not a separate app.
- Cons: non-standard UI for tabs, deletion and time picker.
- Cons: does many things I don't care yet doesn't do stuff I need.

Non-goal:
- complete feature set of Locale, most of which is not useful to me.


Desired Features (rating number: 1=important to me, 2=less important, 3=useless):
- Location triggers:
[1] cell-id (coarse loc) vs [2] gps (fine loc), made explicit + update rate.
- Time trigger:
[1] start/end.
- Date trigger:
[2] week-of-day
- Settings:
[1] silent (what power>sound off does)
[1] ring volume
[1] vibrate
[1] brightness
[2] wifi on/off

For each trigger type (location, time, date), users create instances of
these triggers (i.e. home via cell id, home via gps, night time, week-end).

Triggers have an implicit "next event" timestamp. E.g. for a timer, it's the end
of the timer, for day it's 24 hours and for cell/gps it's the update rate.

A profile is composed of:
- a list of 0 or more trigger instances (add, edit, delete)
- a list of settings to set (add, edit, delete)
- trigger mode: or (any) or and (all)
- activated flag
- exclusive flag: only one flag can be exclusive and thus only this one is
activated. This is for manual activation.

Profile list:
- profile can only be activated if it has 1 or more settings.
- profile list: add, edit, delete, up, down
- when more than one profile works, apply in the profile order.
- when marked as exclusive, gray all other profiles

There's a list of profiles, with a "default" one (cannot be deleted).
Another default profile should be "silent".

Implementation:
- list of triggers { id, type, user-name, *value, curr-value, value-ts }
- list of settings { id, type, *proc }
- list of profiles { id, user-name, list trigger-id, list settings-id, activated }
- global: exclusive profile-id

- check service:
- for all triggers, update if value too old
- compute next check timestamp
- check profiles, if match, apply settings
- alarm/sleep till next check ts

----
20090120 Misc Ideas/suggestions

- conditions: time range and/or cellid/gps (+rate check)
- profile group of setting with same condition) vs (condition per setting).
- toggles: led, gps, cellid, wifi, 2g/3g
- levels: media/ringer volumes, brightness
- settings for weekends vs weekdays or weekly
- home icons for profiles

没有评论:

发表评论