Redesign vibration settings.

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
This commit is contained in:
Daniel Sandler
2010-04-21 15:24:24 -04:00
parent 8ad849ca26
commit 2c917847f5
4 changed files with 107 additions and 62 deletions

View File

@@ -388,14 +388,16 @@
<!-- New incoming call vibrate options. -->
<string-array name="vibrate_entries">
<item>Always</item>
<item>Only when silent</item>
<item>Never</item>
<item>Only in Silent mode</item>
<item>Only when not in Silent mode</item>
</string-array>
<!-- Corresponds to AudioManager.VIBRATE_SETTING_*. Do not translate. -->
<!-- Values for vibrate_entries matching constants in SoundSettings. Do not translate. -->
<string-array name="vibrate_values" translatable="false">
<item>1</item>
<item>2</item>
<item>0</item>
<item>always</item>
<item>never</item>
<item>silent</item>
<item>notsilent</item>
</string-array>
</resources>

View File

@@ -1019,9 +1019,9 @@
<!-- Sound settings screen, setting option summary text -->
<string name="vibrate_in_silent_summary">Allow vibration feedback in silent mode</string>
<!-- Sound settings screen, setting option name checkbox -->
<string name="vibrate_title">Phone vibrate</string>
<string name="vibrate_title">Vibrate</string>
<!-- Sound settings screen, setting option summary text -->
<string name="vibrate_summary">Vibrate phone for incoming calls</string>
<string name="vibrate_summary">Vibration feedback for calls and notifications</string>
<!-- Sound settings screen, setting option name -->
<string name="notification_sound_title">Notification ringtone</string>
<!-- Sound settings screen, setting option summary text -->