Under the hood there remain three axes:
1. Are we in silent mode now? | RINGER_MODE_{VIBRATE,SILENT}
2. Do we vibrate in silent mode? | VIBRATE_IN_SILENT == 1
3. Do calls vibrate: | getVibrateSetting(VIBRATE_TYPE_RINGER)
- always | == VIBRATE_SETTING_ON
- never | == VIBRATE_SETTING_OFF
- only in silent | == VIBRATE_SETTING_ONLY_SILENT
We now expose this to the user much more simply by
collapsing (2) and (3) above, and discarding states that
don't make sense:
- VIBRATE_SETTING_OFF + VIBRATE_IN_SILENT
- VIBRATE_SETTING_ONLY_SILENT + !VIBRATE_IN_SILENT
Now we offer the user four choices:
Phone vibrate:
* "Never"
--> VIBRATE_IN_SILENT=0, VIBRATE_SETTING_OFF
* "Always"
--> VIBRATE_IN_SILENT=1, VIBRATE_SETTING_ON
* "Only in silent mode"
--> VIBRATE_IN_SILENT=1, VIBRATE_SETTING_ONLY_SILENT
* "Only when not in silent mode"
--> VIBRATE_IN_SILENT=0, VIBRATE_SETTING_ON
This should make it easier to choose exactly the behavior
the user wants as well as avoid nonsensical combinations of
settings.
Bug: 2598014
Change-Id: I9244d25ec97a3e2b572b71b521049debd22fa4e0
The updated settings tree looks like this:
[ ] Silent mode (unchanged)
[ ] Allow vibration in silent mode (new)
Phone vibrate: (changed from boolean)
( ) Always
( ) Only in silent mode
( ) Never
See change I14cf91b0 for explanation & framework support.
Change-Id: I22ba7bcfa5ddf4e545800083c6e80fb655f211e5
Bug:2362077 Bug:2312836 Bug:2166486
Split Sound and Display into separate top-level settings.
All volume settings (including Alarm volume) now in one Volume dialog.
Remove some sub-texts to reduce clutter.