Sound settings screen and volumes dialog reconfiguration.
Removed the "Notifications use ring volume" checkbox. Show the current ringtones in the summary area. Bug: 5032308 Change-Id: I17e63f32c1775dd2097904df1aa6aaf699bd8ae2
This commit is contained in:
@@ -32,34 +32,36 @@
|
|||||||
android:paddingTop="20dip"
|
android:paddingTop="20dip"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
|
|
||||||
<TextView
|
<!-- Dummy -->
|
||||||
android:id="@+id/ringtone_label"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/incoming_call_volume_title"
|
|
||||||
android:paddingTop="10dip"
|
|
||||||
android:paddingLeft="20dip"
|
|
||||||
android:paddingRight="20dip" />
|
|
||||||
|
|
||||||
<!-- Used for the ring volume. This is what the superclass VolumePreference uses. -->
|
|
||||||
<!-- TODO - is this used? -->
|
|
||||||
<SeekBar android:id="@*android:id/seekbar"
|
<SeekBar android:id="@*android:id/seekbar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="0dip"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingTop="2dip"
|
android:layout_weight="1"
|
||||||
android:paddingLeft="20dip"
|
android:visibility="gone" />
|
||||||
android:paddingRight="20dip" />
|
|
||||||
|
<TextView
|
||||||
|
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="16dip"
|
||||||
|
android:layout_gravity="left"
|
||||||
|
android:text="@string/volume_media_description"
|
||||||
|
/>
|
||||||
|
|
||||||
<!-- Used for the media volume -->
|
<!-- Used for the media volume -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="8dip"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:gravity="center_vertical">
|
android:gravity="center_vertical">
|
||||||
|
|
||||||
<ImageView android:id="@+id/volume_mute_button"
|
<ImageView android:id="@+id/media_mute_button"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"/>
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="8dip"
|
||||||
|
android:background="?android:attr/selectableItemBackground"
|
||||||
|
/>
|
||||||
|
|
||||||
<SeekBar android:id="@+id/media_volume_seekbar"
|
<SeekBar android:id="@+id/media_volume_seekbar"
|
||||||
android:layout_width="0dip"
|
android:layout_width="0dip"
|
||||||
@@ -70,61 +72,119 @@
|
|||||||
android:paddingRight="20dip" />
|
android:paddingRight="20dip" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<!-- TODO - is this used? -->
|
<!-- Used for the ringer/notification volume -->
|
||||||
<CheckBox android:id="@+id/same_notification_volume"
|
<LinearLayout
|
||||||
|
android:id="@+id/ringer_section"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/checkbox_notification_same_as_incoming_call"
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/ringer_description_text"
|
||||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||||
android:layout_marginTop="6dip"
|
android:layout_width="wrap_content"
|
||||||
android:layout_marginLeft="20dip"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginRight="20dip" />
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="1px"
|
|
||||||
android:background="#1bffffff"
|
|
||||||
android:layout_marginTop="16dip"
|
android:layout_marginTop="16dip"
|
||||||
android:layout_marginBottom="16dip"/>
|
android:paddingLeft="16dip"
|
||||||
|
android:layout_gravity="left"
|
||||||
|
android:text="@string/volume_ring_description"
|
||||||
|
/>
|
||||||
|
|
||||||
<!-- Used for the notification volume -->
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal">
|
android:paddingLeft="8dip"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:gravity="center_vertical">
|
||||||
|
|
||||||
<ImageView android:id="@+id/notification_mute_button"
|
<ImageView android:id="@+id/ringer_mute_button"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"/>
|
|
||||||
|
|
||||||
<SeekBar android:id="@+id/notification_volume_seekbar"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="8dip"
|
||||||
|
android:background="?android:attr/selectableItemBackground"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<SeekBar android:id="@+id/ringer_volume_seekbar"
|
||||||
|
android:layout_width="0dip"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
android:paddingTop="2dip"
|
android:paddingTop="2dip"
|
||||||
android:paddingLeft="20dip"
|
android:paddingLeft="20dip"
|
||||||
android:paddingRight="20dip" />
|
android:paddingRight="20dip" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<View
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Used for the notification volume -->
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/notification_section"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1px"
|
android:layout_height="wrap_content"
|
||||||
android:background="#1bffffff"
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/notification_description_text"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dip"
|
android:layout_marginTop="16dip"
|
||||||
android:layout_marginBottom="16dip"/>
|
android:paddingLeft="16dip"
|
||||||
|
android:layout_gravity="left"
|
||||||
|
android:text="@string/volume_notification_description"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="8dip"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:gravity="center_vertical">
|
||||||
|
|
||||||
|
<ImageView android:id="@+id/notification_mute_button"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="8dip"
|
||||||
|
android:background="?android:attr/selectableItemBackground"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<SeekBar android:id="@+id/notification_volume_seekbar"
|
||||||
|
android:layout_width="0dip"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:paddingTop="2dip"
|
||||||
|
android:paddingLeft="20dip"
|
||||||
|
android:paddingRight="20dip" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="16dip"
|
||||||
|
android:paddingLeft="16dip"
|
||||||
|
android:layout_gravity="left"
|
||||||
|
android:text="@string/volume_alarm_description"
|
||||||
|
/>
|
||||||
|
|
||||||
<!-- Used for the alarm volume -->
|
<!-- Used for the alarm volume -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="8dip"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<ImageView android:id="@+id/alarm_mute_button"
|
<ImageView android:id="@+id/alarm_mute_button"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"/>
|
|
||||||
|
|
||||||
<SeekBar android:id="@+id/alarm_volume_seekbar"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="8dip"
|
||||||
|
android:background="?android:attr/selectableItemBackground"
|
||||||
|
/>
|
||||||
|
<SeekBar android:id="@+id/alarm_volume_seekbar"
|
||||||
|
android:layout_width="0dip"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
android:paddingTop="2dip"
|
android:paddingTop="2dip"
|
||||||
android:paddingLeft="20dip"
|
android:paddingLeft="20dip"
|
||||||
android:paddingRight="20dip" />
|
android:paddingRight="20dip" />
|
||||||
|
@@ -1399,38 +1399,24 @@
|
|||||||
<string name="sound_settings">Sound</string>
|
<string name="sound_settings">Sound</string>
|
||||||
<!-- Sound settings screen, setting option name checkbox -->
|
<!-- Sound settings screen, setting option name checkbox -->
|
||||||
<string name="silent_mode_title">Silent mode</string>
|
<string name="silent_mode_title">Silent mode</string>
|
||||||
<!-- Sound settings screen, setting option summary text when going into silent mode. Media and alarms sounds WILL NOT be silenced in silent mode. -->
|
|
||||||
<string name="silent_mode_summary">Silence all sounds except media & alarms</string>
|
|
||||||
<!-- Sound settings screen, setting option summary text when going into silent mode. Media WILL NOT be silenced in silent mode, but alarms WILL be silenced. -->
|
|
||||||
<string name="silent_mode_incl_alarm_summary">All sounds except media are silenced</string>
|
|
||||||
<!-- Sound settings screen, setting option name to pick ringtone (a list dialog comes up)-->
|
<!-- Sound settings screen, setting option name to pick ringtone (a list dialog comes up)-->
|
||||||
<string name="ringtone_title">Incoming call ringtone</string>
|
<string name="ringtone_title">Phone ringtone</string>
|
||||||
<!-- Sound settings screen, setting option summary text -->
|
<!-- Sound settings screen, setting option summary text -->
|
||||||
<string name="ringtone_summary">""</string>
|
<string name="ringtone_summary">""</string>
|
||||||
<!-- Sound settings screen, volume title -->
|
<!-- Sound settings screen, volume title -->
|
||||||
<string name="all_volume_title">Volume</string>
|
<string name="all_volume_title">Volumes</string>
|
||||||
<!-- Sound settings screen, music effects title [CHAR LIMIT=30]-->
|
<!-- Sound settings screen, music effects title [CHAR LIMIT=30]-->
|
||||||
<string name="musicfx_title">Music Effects</string>
|
<string name="musicfx_title">Music Effects</string>
|
||||||
<!-- Sound settings screen, setting option name -->
|
<!-- Sound settings screen, setting option name -->
|
||||||
<string name="ring_volume_title">Ringer volume</string>
|
<string name="ring_volume_title">Ringer volume</string>
|
||||||
<!-- Sound settings screen, setting option summary text -->
|
|
||||||
<string name="ring_volume_summary">""</string>
|
|
||||||
<!-- Sound settings screen, setting option name checkbox -->
|
<!-- Sound settings screen, setting option name checkbox -->
|
||||||
<string name="vibrate_in_silent_title">Vibrate when silent</string>
|
<string name="vibrate_in_silent_title">Vibrate when silent</string>
|
||||||
<!-- 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 -->
|
<!-- Sound settings screen, setting option name checkbox -->
|
||||||
<string name="vibrate_title">Vibrate</string>
|
<string name="vibrate_title">Vibrate</string>
|
||||||
<!-- Sound settings screen, setting option summary text -->
|
|
||||||
<string name="vibrate_summary">Vibration feedback for calls and notifications</string>
|
|
||||||
<!-- Sound settings screen, setting option name -->
|
<!-- Sound settings screen, setting option name -->
|
||||||
<string name="notification_sound_title">Notification ringtone</string>
|
<string name="notification_sound_title">Default notification</string>
|
||||||
<!-- Sound settings screen, setting option summary text -->
|
|
||||||
<string name="notification_sound_summary">""</string>
|
|
||||||
<!-- Sound settings screen, notification light repeat pulsing title -->
|
<!-- Sound settings screen, notification light repeat pulsing title -->
|
||||||
<string name="notification_pulse_title">Pulse notification light</string>
|
<string name="notification_pulse_title">Pulse notification light</string>
|
||||||
<!-- Sound settings screen, notification light repeat pulsing summary -->
|
|
||||||
<string name="notification_pulse_summary">Pulse trackball light repeatedly for new notifications</string>
|
|
||||||
<!-- Sound settings screen, the title of the volume bar to adjust the incoming call volume -->
|
<!-- Sound settings screen, the title of the volume bar to adjust the incoming call volume -->
|
||||||
<string name="incoming_call_volume_title">Ringtone</string>
|
<string name="incoming_call_volume_title">Ringtone</string>
|
||||||
<!-- Sound settings screen, the title of the volume bar to adjust the notification volume -->
|
<!-- Sound settings screen, the title of the volume bar to adjust the notification volume -->
|
||||||
@@ -1449,33 +1435,23 @@
|
|||||||
<!-- Sound settings screen, dock settings summary-->
|
<!-- Sound settings screen, dock settings summary-->
|
||||||
<string name="dock_settings_summary">Audio settings for the attached dock</string>
|
<string name="dock_settings_summary">Audio settings for the attached dock</string>
|
||||||
<!-- Sound settings screen, setting check box label -->
|
<!-- Sound settings screen, setting check box label -->
|
||||||
<string name="dtmf_tone_enable_title">Audible touch tones</string>
|
<string name="dtmf_tone_enable_title">Dial pad touch tones</string>
|
||||||
<!-- Sound settings screen, setting option summary text when check box is selected -->
|
|
||||||
<string name="dtmf_tone_enable_summary_on">Play tones when using dial pad</string>
|
|
||||||
<!-- Sound settings screen, setting option summary text when check box is clear -->
|
|
||||||
<string name="dtmf_tone_enable_summary_off">Play tones when using dial pad</string>
|
|
||||||
<!-- Sound settings screen, setting check box label -->
|
<!-- Sound settings screen, setting check box label -->
|
||||||
<string name="sound_effects_enable_title">Audible selection</string>
|
<string name="sound_effects_enable_title">Touch sounds</string>
|
||||||
<!-- Sound settings screen, setting option summary text when check box is selected -->
|
|
||||||
<string name="sound_effects_enable_summary_on">Play sound when making screen selection</string>
|
|
||||||
<!-- Sound settings screen, setting option summary text when check box is clear -->
|
|
||||||
<string name="sound_effects_enable_summary_off">Play sound when making screen selection</string>
|
|
||||||
<!-- Sound settings screen, setting check box label -->
|
<!-- Sound settings screen, setting check box label -->
|
||||||
<string name="lock_sounds_enable_title">Screen lock sounds</string>
|
<string name="lock_sounds_enable_title">Screen lock sound</string>
|
||||||
<!-- Sound settings screen, setting option summary text when check box is selected -->
|
|
||||||
<string name="lock_sounds_enable_summary_on">Play sounds when locking and unlocking the screen</string>
|
|
||||||
<!-- Sound settings screen, setting option summary text when check box is clear -->
|
|
||||||
<string name="lock_sounds_enable_summary_off">Play sounds when locking and unlocking the screen</string>
|
|
||||||
<!-- Sound settings screen, setting check box label -->
|
<!-- Sound settings screen, setting check box label -->
|
||||||
<string name="haptic_feedback_enable_title">Haptic feedback</string>
|
<string name="haptic_feedback_enable_title">Vibrate on touch</string>
|
||||||
<!-- Sound settings screen, setting option summary text when check box is selected -->
|
|
||||||
<string name="haptic_feedback_enable_summary_on">Vibrate when pressing soft keys and on certain UI interactions</string>
|
|
||||||
<!-- Sound settings screen, setting option summary text when check box is clear -->
|
|
||||||
<string name="haptic_feedback_enable_summary_off">Vibrate when pressing soft keys and on certain UI interactions</string>
|
|
||||||
<!-- Sound settings screen, setting option name checkbox to enable/disable audio recording features that improve audio recording in noisy environments -->
|
<!-- Sound settings screen, setting option name checkbox to enable/disable audio recording features that improve audio recording in noisy environments -->
|
||||||
<string name="audio_record_proc_title">Noise cancellation</string>
|
<string name="audio_record_proc_title">Noise cancellation</string>
|
||||||
<!-- Sound settings screen, setting option summary text -->
|
<!-- Volume description for media volume -->
|
||||||
<string name="audio_record_proc_summary">Suppress background noise when speaking or recording.</string>
|
<string name="volume_media_description">Music, video, games & other media</string>
|
||||||
|
<!-- Volume description for ringtone and notification volume -->
|
||||||
|
<string name="volume_ring_description">Ringtone & notifications</string>
|
||||||
|
<!-- Volume description for notification volume -->
|
||||||
|
<string name="volume_notification_description">Notifications</string>
|
||||||
|
<!-- Volume description for alarm volume -->
|
||||||
|
<string name="volume_alarm_description">Alarms</string>
|
||||||
|
|
||||||
<!-- Dock settings title, top level -->
|
<!-- Dock settings title, top level -->
|
||||||
<string name="dock_settings">Dock</string>
|
<string name="dock_settings">Dock</string>
|
||||||
@@ -3126,9 +3102,9 @@ found in the list of installed applications.</string>
|
|||||||
<string name="untitled_apn">Untitled</string>
|
<string name="untitled_apn">Untitled</string>
|
||||||
|
|
||||||
<string name="sound_category_sound_title">General</string>
|
<string name="sound_category_sound_title">General</string>
|
||||||
<string name="sound_category_calls_title">Incoming calls</string>
|
<string name="sound_category_calls_and_notification_title">Ringtone & notifications</string>
|
||||||
<string name="sound_category_notification_title">Notifications</string>
|
<string name="sound_category_notification_title">Notifications</string>
|
||||||
<string name="sound_category_feedback_title">Feedback</string>
|
<string name="sound_category_feedback_title">System</string>
|
||||||
|
|
||||||
<!-- Wifi Setup For Setup Wizard with XL screen -->
|
<!-- Wifi Setup For Setup Wizard with XL screen -->
|
||||||
<!-- Title shown in Wifi Setup Wizard with XL screen -->
|
<!-- Title shown in Wifi Setup Wizard with XL screen -->
|
||||||
|
@@ -19,15 +19,13 @@
|
|||||||
android:key="sound_settings"
|
android:key="sound_settings"
|
||||||
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
|
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
|
||||||
|
|
||||||
<PreferenceCategory
|
<com.android.settings.RingerVolumePreference
|
||||||
android:title="@string/sound_category_sound_title"/>
|
android:key="ring_volume"
|
||||||
|
android:dependency="silent"
|
||||||
<CheckBoxPreference
|
android:title="@string/all_volume_title"
|
||||||
android:key="silent"
|
android:dialogTitle="@string/all_volume_title"
|
||||||
android:title="@string/silent_mode_title"
|
|
||||||
android:summary="@string/silent_mode_summary"
|
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:disableDependentsState="true" />
|
android:streamType="ring" />
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
android:key="vibrate"
|
android:key="vibrate"
|
||||||
@@ -36,14 +34,11 @@
|
|||||||
android:entries="@array/vibrate_entries"
|
android:entries="@array/vibrate_entries"
|
||||||
android:entryValues="@array/vibrate_values" />
|
android:entryValues="@array/vibrate_values" />
|
||||||
|
|
||||||
<com.android.settings.RingerVolumePreference
|
<CheckBoxPreference
|
||||||
android:key="ring_volume"
|
android:key="silent"
|
||||||
android:dependency="silent"
|
android:title="@string/silent_mode_title"
|
||||||
android:title="@string/all_volume_title"
|
|
||||||
android:summary="@string/ring_volume_summary"
|
|
||||||
android:dialogTitle="@string/all_volume_title"
|
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:streamType="ring" />
|
android:disableDependentsState="true" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="musicfx"
|
android:key="musicfx"
|
||||||
@@ -53,27 +48,20 @@
|
|||||||
</Preference>
|
</Preference>
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:key="category_calls"
|
android:key="category_calls_and_notification"
|
||||||
android:title="@string/sound_category_calls_title"/>
|
android:title="@string/sound_category_calls_and_notification_title"/>
|
||||||
|
|
||||||
|
<!-- Do not nest these, or removals in code will break -->
|
||||||
<com.android.settings.DefaultRingtonePreference
|
<com.android.settings.DefaultRingtonePreference
|
||||||
android:key="ringtone"
|
android:key="ringtone"
|
||||||
android:title="@string/ringtone_title"
|
android:title="@string/ringtone_title"
|
||||||
android:summary="@string/ringtone_summary"
|
|
||||||
android:dialogTitle="@string/ringtone_title"
|
android:dialogTitle="@string/ringtone_title"
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:ringtoneType="ringtone" />
|
android:ringtoneType="ringtone" />
|
||||||
|
|
||||||
<PreferenceCategory
|
|
||||||
android:key="category_notification"
|
|
||||||
android:title="@string/sound_category_notification_title"/>
|
|
||||||
|
|
||||||
<!-- Do not nest these, or removals in code will break -->
|
|
||||||
|
|
||||||
<com.android.settings.DefaultRingtonePreference
|
<com.android.settings.DefaultRingtonePreference
|
||||||
android:key="notification_sound"
|
android:key="notification_sound"
|
||||||
android:title="@string/notification_sound_title"
|
android:title="@string/notification_sound_title"
|
||||||
android:summary="@string/notification_sound_summary"
|
|
||||||
android:dialogTitle="@string/notification_sound_dialog_title"
|
android:dialogTitle="@string/notification_sound_dialog_title"
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:ringtoneType="notification" />
|
android:ringtoneType="notification" />
|
||||||
@@ -81,7 +69,6 @@
|
|||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:key="notification_pulse"
|
android:key="notification_pulse"
|
||||||
android:title="@string/notification_pulse_title"
|
android:title="@string/notification_pulse_title"
|
||||||
android:summary="@string/notification_pulse_summary"
|
|
||||||
android:persistent="false" />
|
android:persistent="false" />
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
@@ -92,35 +79,26 @@
|
|||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:key="dtmf_tone"
|
android:key="dtmf_tone"
|
||||||
android:title="@string/dtmf_tone_enable_title"
|
android:title="@string/dtmf_tone_enable_title"
|
||||||
android:summaryOn="@string/dtmf_tone_enable_summary_on"
|
|
||||||
android:summaryOff="@string/dtmf_tone_enable_summary_off"
|
|
||||||
android:defaultValue="true" />
|
android:defaultValue="true" />
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:key="sound_effects"
|
android:key="sound_effects"
|
||||||
android:title="@string/sound_effects_enable_title"
|
android:title="@string/sound_effects_enable_title"
|
||||||
android:summaryOn="@string/sound_effects_enable_summary_on"
|
|
||||||
android:summaryOff="@string/sound_effects_enable_summary_off"
|
|
||||||
android:defaultValue="true" />
|
android:defaultValue="true" />
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:key="lock_sounds"
|
android:key="lock_sounds"
|
||||||
android:title="@string/lock_sounds_enable_title"
|
android:title="@string/lock_sounds_enable_title"
|
||||||
android:summaryOn="@string/lock_sounds_enable_summary_on"
|
|
||||||
android:summaryOff="@string/lock_sounds_enable_summary_off"
|
|
||||||
android:defaultValue="true" />
|
android:defaultValue="true" />
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:key="haptic_feedback"
|
android:key="haptic_feedback"
|
||||||
android:title="@string/haptic_feedback_enable_title"
|
android:title="@string/haptic_feedback_enable_title"
|
||||||
android:summaryOn="@string/haptic_feedback_enable_summary_on"
|
|
||||||
android:summaryOff="@string/haptic_feedback_enable_summary_off"
|
|
||||||
android:defaultValue="true" />
|
android:defaultValue="true" />
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
android:key="emergency_tone"
|
android:key="emergency_tone"
|
||||||
android:title="@string/emergency_tone_title"
|
android:title="@string/emergency_tone_title"
|
||||||
android:summary="@string/emergency_tone_summary"
|
|
||||||
android:entries="@array/emergency_tone_entries"
|
android:entries="@array/emergency_tone_entries"
|
||||||
android:entryValues="@array/emergency_tone_values" />
|
android:entryValues="@array/emergency_tone_values" />
|
||||||
|
|
||||||
|
@@ -51,49 +51,46 @@ import android.widget.TextView;
|
|||||||
* Special preference type that allows configuration of both the ring volume and
|
* Special preference type that allows configuration of both the ring volume and
|
||||||
* notification volume.
|
* notification volume.
|
||||||
*/
|
*/
|
||||||
public class RingerVolumePreference extends VolumePreference implements
|
public class RingerVolumePreference extends VolumePreference implements OnClickListener {
|
||||||
CheckBox.OnCheckedChangeListener, OnClickListener {
|
|
||||||
private static final String TAG = "RingerVolumePreference";
|
private static final String TAG = "RingerVolumePreference";
|
||||||
private static final int MSG_RINGER_MODE_CHANGED = 101;
|
private static final int MSG_RINGER_MODE_CHANGED = 101;
|
||||||
|
|
||||||
private CheckBox mNotificationsUseRingVolumeCheckbox;
|
|
||||||
private SeekBarVolumizer [] mSeekBarVolumizer;
|
private SeekBarVolumizer [] mSeekBarVolumizer;
|
||||||
private boolean mIgnoreVolumeKeys;
|
private boolean mIgnoreVolumeKeys;
|
||||||
|
|
||||||
// These arrays must all match in length and order
|
// These arrays must all match in length and order
|
||||||
private static final int[] SEEKBAR_ID = new int[] {
|
private static final int[] SEEKBAR_ID = new int[] {
|
||||||
R.id.notification_volume_seekbar,
|
|
||||||
R.id.media_volume_seekbar,
|
R.id.media_volume_seekbar,
|
||||||
|
R.id.ringer_volume_seekbar,
|
||||||
|
R.id.notification_volume_seekbar,
|
||||||
R.id.alarm_volume_seekbar
|
R.id.alarm_volume_seekbar
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final int[] NEED_VOICE_CAPABILITY_ID = new int[] {
|
|
||||||
R.id.ringtone_label,
|
|
||||||
com.android.internal.R.id.seekbar,
|
|
||||||
R.id.same_notification_volume
|
|
||||||
};
|
|
||||||
|
|
||||||
private static final int[] SEEKBAR_TYPE = new int[] {
|
private static final int[] SEEKBAR_TYPE = new int[] {
|
||||||
AudioManager.STREAM_NOTIFICATION,
|
|
||||||
AudioManager.STREAM_MUSIC,
|
AudioManager.STREAM_MUSIC,
|
||||||
|
AudioManager.STREAM_RING,
|
||||||
|
AudioManager.STREAM_NOTIFICATION,
|
||||||
AudioManager.STREAM_ALARM
|
AudioManager.STREAM_ALARM
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final int[] CHECKBOX_VIEW_ID = new int[] {
|
private static final int[] CHECKBOX_VIEW_ID = new int[] {
|
||||||
|
R.id.media_mute_button,
|
||||||
|
R.id.ringer_mute_button,
|
||||||
R.id.notification_mute_button,
|
R.id.notification_mute_button,
|
||||||
R.id.volume_mute_button,
|
|
||||||
R.id.alarm_mute_button
|
R.id.alarm_mute_button
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final int[] SEEKBAR_MUTED_RES_ID = new int[] {
|
private static final int[] SEEKBAR_MUTED_RES_ID = new int[] {
|
||||||
com.android.internal.R.drawable.ic_audio_notification_mute,
|
|
||||||
com.android.internal.R.drawable.ic_audio_vol_mute,
|
com.android.internal.R.drawable.ic_audio_vol_mute,
|
||||||
|
com.android.internal.R.drawable.ic_audio_ring_notif_mute,
|
||||||
|
com.android.internal.R.drawable.ic_audio_notification_mute,
|
||||||
com.android.internal.R.drawable.ic_audio_alarm_mute
|
com.android.internal.R.drawable.ic_audio_alarm_mute
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final int[] SEEKBAR_UNMUTED_RES_ID = new int[] {
|
private static final int[] SEEKBAR_UNMUTED_RES_ID = new int[] {
|
||||||
com.android.internal.R.drawable.ic_audio_notification,
|
|
||||||
com.android.internal.R.drawable.ic_audio_vol,
|
com.android.internal.R.drawable.ic_audio_vol,
|
||||||
|
com.android.internal.R.drawable.ic_audio_ring_notif,
|
||||||
|
com.android.internal.R.drawable.ic_audio_notification,
|
||||||
com.android.internal.R.drawable.ic_audio_alarm
|
com.android.internal.R.drawable.ic_audio_alarm
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -167,21 +164,6 @@ public class RingerVolumePreference extends VolumePreference implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//mNotificationVolumeTitle = (TextView) view.findViewById(R.id.notification_volume_title);
|
|
||||||
mNotificationsUseRingVolumeCheckbox =
|
|
||||||
(CheckBox) view.findViewById(R.id.same_notification_volume);
|
|
||||||
mNotificationsUseRingVolumeCheckbox.setOnCheckedChangeListener(this);
|
|
||||||
mNotificationsUseRingVolumeCheckbox.setChecked(Settings.System.getInt(
|
|
||||||
getContext().getContentResolver(),
|
|
||||||
Settings.System.NOTIFICATIONS_USE_RING_VOLUME, 1) == 1);
|
|
||||||
// Notification volume always visible for non voice capable devices
|
|
||||||
if (Utils.isVoiceCapable(getContext())) {
|
|
||||||
setNotificationVolumeVisibility(!mNotificationsUseRingVolumeCheckbox.isChecked());
|
|
||||||
} else {
|
|
||||||
setNotificationVolumeVisibility(true);
|
|
||||||
}
|
|
||||||
disableSettingsThatNeedVoice(view);
|
|
||||||
|
|
||||||
// Register callbacks for mute/unmute buttons
|
// Register callbacks for mute/unmute buttons
|
||||||
for (int i = 0; i < mCheckBoxes.length; i++) {
|
for (int i = 0; i < mCheckBoxes.length; i++) {
|
||||||
ImageView checkbox = (ImageView) view.findViewById(CHECKBOX_VIEW_ID[i]);
|
ImageView checkbox = (ImageView) view.findViewById(CHECKBOX_VIEW_ID[i]);
|
||||||
@@ -207,6 +189,16 @@ public class RingerVolumePreference extends VolumePreference implements
|
|||||||
};
|
};
|
||||||
getContext().registerReceiver(mRingModeChangedReceiver, filter);
|
getContext().registerReceiver(mRingModeChangedReceiver, filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Disable either ringer+notifications or notifications
|
||||||
|
int id;
|
||||||
|
if (!Utils.isVoiceCapable(getContext())) {
|
||||||
|
id = R.id.ringer_section;
|
||||||
|
} else {
|
||||||
|
id = R.id.notification_section;
|
||||||
|
}
|
||||||
|
View hideSection = view.findViewById(id);
|
||||||
|
hideSection.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Uri getMediaVolumeUri(Context context) {
|
private Uri getMediaVolumeUri(Context context) {
|
||||||
@@ -215,15 +207,6 @@ public class RingerVolumePreference extends VolumePreference implements
|
|||||||
+ "/" + R.raw.media_volume);
|
+ "/" + R.raw.media_volume);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void disableSettingsThatNeedVoice(View parent) {
|
|
||||||
final boolean voiceCapable = Utils.isVoiceCapable(getContext());
|
|
||||||
if (!voiceCapable) {
|
|
||||||
for (int id : NEED_VOICE_CAPABILITY_ID) {
|
|
||||||
parent.findViewById(id).setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onDialogClosed(boolean positiveResult) {
|
protected void onDialogClosed(boolean positiveResult) {
|
||||||
super.onDialogClosed(positiveResult);
|
super.onDialogClosed(positiveResult);
|
||||||
@@ -242,23 +225,6 @@ public class RingerVolumePreference extends VolumePreference implements
|
|||||||
cleanup();
|
cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
|
||||||
// ignore R.id.same_notification_volume checkbox for non voice capable devices
|
|
||||||
if (Utils.isVoiceCapable(getContext())) {
|
|
||||||
setNotificationVolumeVisibility(!isChecked);
|
|
||||||
|
|
||||||
Settings.System.putInt(getContext().getContentResolver(),
|
|
||||||
Settings.System.NOTIFICATIONS_USE_RING_VOLUME, isChecked ? 1 : 0);
|
|
||||||
|
|
||||||
if (isChecked) {
|
|
||||||
// The user wants the notification to be same as ring, so do a
|
|
||||||
// one-time sync right now
|
|
||||||
mAudioManager.setStreamVolume(AudioManager.STREAM_NOTIFICATION,
|
|
||||||
mAudioManager.getStreamVolume(AudioManager.STREAM_RING), 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onKey(View v, int keyCode, KeyEvent event) {
|
public boolean onKey(View v, int keyCode, KeyEvent event) {
|
||||||
boolean isdown = (event.getAction() == KeyEvent.ACTION_DOWN);
|
boolean isdown = (event.getAction() == KeyEvent.ACTION_DOWN);
|
||||||
@@ -284,14 +250,6 @@ public class RingerVolumePreference extends VolumePreference implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setNotificationVolumeVisibility(boolean visible) {
|
|
||||||
if (mSeekBarVolumizer[0] != null) {
|
|
||||||
mSeekBarVolumizer[0].getSeekBar().setVisibility(
|
|
||||||
visible ? View.VISIBLE : View.GONE);
|
|
||||||
}
|
|
||||||
// mNotificationVolumeTitle.setVisibility(visible ? View.VISIBLE : View.GONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void cleanup() {
|
private void cleanup() {
|
||||||
for (int i = 0; i < SEEKBAR_ID.length; i++) {
|
for (int i = 0; i < SEEKBAR_ID.length; i++) {
|
||||||
if (mSeekBarVolumizer[i] != null) {
|
if (mSeekBarVolumizer[i] != null) {
|
||||||
|
@@ -23,16 +23,25 @@ import android.content.Intent;
|
|||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.ResolveInfo;
|
import android.content.pm.ResolveInfo;
|
||||||
|
import android.database.Cursor;
|
||||||
|
import android.database.sqlite.SQLiteException;
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
|
import android.media.Ringtone;
|
||||||
|
import android.media.RingtoneManager;
|
||||||
import android.media.audiofx.AudioEffect;
|
import android.media.audiofx.AudioEffect;
|
||||||
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.os.Message;
|
||||||
import android.os.Vibrator;
|
import android.os.Vibrator;
|
||||||
import android.preference.CheckBoxPreference;
|
import android.preference.CheckBoxPreference;
|
||||||
import android.preference.ListPreference;
|
import android.preference.ListPreference;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.preference.PreferenceGroup;
|
import android.preference.PreferenceGroup;
|
||||||
import android.preference.PreferenceScreen;
|
import android.preference.PreferenceScreen;
|
||||||
|
import android.provider.MediaStore;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
import android.provider.MediaStore.Images.Media;
|
||||||
import android.provider.Settings.SettingNotFoundException;
|
import android.provider.Settings.SettingNotFoundException;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -41,7 +50,7 @@ import java.util.List;
|
|||||||
|
|
||||||
public class SoundSettings extends SettingsPreferenceFragment implements
|
public class SoundSettings extends SettingsPreferenceFragment implements
|
||||||
Preference.OnPreferenceChangeListener {
|
Preference.OnPreferenceChangeListener {
|
||||||
private static final String TAG = "SoundAndDisplaysSettings";
|
private static final String TAG = "SoundSettings";
|
||||||
|
|
||||||
/** If there is no setting in the provider, use this. */
|
/** If there is no setting in the provider, use this. */
|
||||||
private static final int FALLBACK_EMERGENCY_TONE_VALUE = 0;
|
private static final int FALLBACK_EMERGENCY_TONE_VALUE = 0;
|
||||||
@@ -60,7 +69,6 @@ public class SoundSettings extends SettingsPreferenceFragment implements
|
|||||||
private static final String KEY_RINGTONE = "ringtone";
|
private static final String KEY_RINGTONE = "ringtone";
|
||||||
private static final String KEY_NOTIFICATION_SOUND = "notification_sound";
|
private static final String KEY_NOTIFICATION_SOUND = "notification_sound";
|
||||||
private static final String KEY_CATEGORY_CALLS = "category_calls";
|
private static final String KEY_CATEGORY_CALLS = "category_calls";
|
||||||
private static final String KEY_CATEGORY_NOTIFICATION = "category_notification";
|
|
||||||
|
|
||||||
private static final String VALUE_VIBRATE_NEVER = "never";
|
private static final String VALUE_VIBRATE_NEVER = "never";
|
||||||
private static final String VALUE_VIBRATE_ALWAYS = "always";
|
private static final String VALUE_VIBRATE_ALWAYS = "always";
|
||||||
@@ -72,6 +80,9 @@ public class SoundSettings extends SettingsPreferenceFragment implements
|
|||||||
KEY_EMERGENCY_TONE
|
KEY_EMERGENCY_TONE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private static final int MSG_UPDATE_RINGTONE_SUMMARY = 1;
|
||||||
|
private static final int MSG_UPDATE_NOTIFICATION_SUMMARY = 2;
|
||||||
|
|
||||||
private CheckBoxPreference mSilent;
|
private CheckBoxPreference mSilent;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -88,6 +99,10 @@ public class SoundSettings extends SettingsPreferenceFragment implements
|
|||||||
private CheckBoxPreference mNotificationPulse;
|
private CheckBoxPreference mNotificationPulse;
|
||||||
private Preference mMusicFx;
|
private Preference mMusicFx;
|
||||||
private CheckBoxPreference mLockSounds;
|
private CheckBoxPreference mLockSounds;
|
||||||
|
private Preference mRingtonePreference;
|
||||||
|
private Preference mNotificationPreference;
|
||||||
|
|
||||||
|
private Runnable mRingtoneLookupRunnable;
|
||||||
|
|
||||||
private AudioManager mAudioManager;
|
private AudioManager mAudioManager;
|
||||||
|
|
||||||
@@ -100,6 +115,19 @@ public class SoundSettings extends SettingsPreferenceFragment implements
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private Handler mHandler = new Handler() {
|
||||||
|
public void handleMessage(Message msg) {
|
||||||
|
switch (msg.what) {
|
||||||
|
case MSG_UPDATE_RINGTONE_SUMMARY:
|
||||||
|
mRingtonePreference.setSummary((CharSequence) msg.obj);
|
||||||
|
break;
|
||||||
|
case MSG_UPDATE_NOTIFICATION_SUMMARY:
|
||||||
|
mNotificationPreference.setSummary((CharSequence) msg.obj);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
private PreferenceGroup mSoundSettings;
|
private PreferenceGroup mSoundSettings;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -133,16 +161,19 @@ public class SoundSettings extends SettingsPreferenceFragment implements
|
|||||||
mSoundEffects = (CheckBoxPreference) findPreference(KEY_SOUND_EFFECTS);
|
mSoundEffects = (CheckBoxPreference) findPreference(KEY_SOUND_EFFECTS);
|
||||||
mSoundEffects.setPersistent(false);
|
mSoundEffects.setPersistent(false);
|
||||||
mSoundEffects.setChecked(Settings.System.getInt(resolver,
|
mSoundEffects.setChecked(Settings.System.getInt(resolver,
|
||||||
Settings.System.SOUND_EFFECTS_ENABLED, 0) != 0);
|
Settings.System.SOUND_EFFECTS_ENABLED, 1) != 0);
|
||||||
mHapticFeedback = (CheckBoxPreference) findPreference(KEY_HAPTIC_FEEDBACK);
|
mHapticFeedback = (CheckBoxPreference) findPreference(KEY_HAPTIC_FEEDBACK);
|
||||||
mHapticFeedback.setPersistent(false);
|
mHapticFeedback.setPersistent(false);
|
||||||
mHapticFeedback.setChecked(Settings.System.getInt(resolver,
|
mHapticFeedback.setChecked(Settings.System.getInt(resolver,
|
||||||
Settings.System.HAPTIC_FEEDBACK_ENABLED, 0) != 0);
|
Settings.System.HAPTIC_FEEDBACK_ENABLED, 1) != 0);
|
||||||
mLockSounds = (CheckBoxPreference) findPreference(KEY_LOCK_SOUNDS);
|
mLockSounds = (CheckBoxPreference) findPreference(KEY_LOCK_SOUNDS);
|
||||||
mLockSounds.setPersistent(false);
|
mLockSounds.setPersistent(false);
|
||||||
mLockSounds.setChecked(Settings.System.getInt(resolver,
|
mLockSounds.setChecked(Settings.System.getInt(resolver,
|
||||||
Settings.System.LOCKSCREEN_SOUNDS_ENABLED, 1) != 0);
|
Settings.System.LOCKSCREEN_SOUNDS_ENABLED, 1) != 0);
|
||||||
|
|
||||||
|
mRingtonePreference = findPreference(KEY_RINGTONE);
|
||||||
|
mNotificationPreference = findPreference(KEY_NOTIFICATION_SOUND);
|
||||||
|
|
||||||
if (!((Vibrator) getSystemService(Context.VIBRATOR_SERVICE)).hasVibrator()) {
|
if (!((Vibrator) getSystemService(Context.VIBRATOR_SERVICE)).hasVibrator()) {
|
||||||
getPreferenceScreen().removePreference(mVibrate);
|
getPreferenceScreen().removePreference(mVibrate);
|
||||||
getPreferenceScreen().removePreference(mHapticFeedback);
|
getPreferenceScreen().removePreference(mHapticFeedback);
|
||||||
@@ -193,6 +224,19 @@ public class SoundSettings extends SettingsPreferenceFragment implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mRingtoneLookupRunnable = new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
if (mRingtonePreference != null) {
|
||||||
|
updateRingtoneName(RingtoneManager.TYPE_RINGTONE, mRingtonePreference,
|
||||||
|
MSG_UPDATE_RINGTONE_SUMMARY);
|
||||||
|
}
|
||||||
|
if (mNotificationPreference != null) {
|
||||||
|
updateRingtoneName(RingtoneManager.TYPE_NOTIFICATION, mNotificationPreference,
|
||||||
|
MSG_UPDATE_NOTIFICATION_SUMMARY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -200,6 +244,7 @@ public class SoundSettings extends SettingsPreferenceFragment implements
|
|||||||
super.onResume();
|
super.onResume();
|
||||||
|
|
||||||
updateState(true);
|
updateState(true);
|
||||||
|
lookupRingtoneNames();
|
||||||
|
|
||||||
IntentFilter filter = new IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION);
|
IntentFilter filter = new IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION);
|
||||||
getActivity().registerReceiver(mReceiver, filter);
|
getActivity().registerReceiver(mReceiver, filter);
|
||||||
@@ -306,13 +351,34 @@ public class SoundSettings extends SettingsPreferenceFragment implements
|
|||||||
mVibrate.setValue(phoneVibrateSetting);
|
mVibrate.setValue(phoneVibrateSetting);
|
||||||
}
|
}
|
||||||
mVibrate.setSummary(mVibrate.getEntry());
|
mVibrate.setSummary(mVibrate.getEntry());
|
||||||
|
}
|
||||||
|
|
||||||
int silentModeStreams = Settings.System.getInt(getContentResolver(),
|
private void updateRingtoneName(int type, Preference preference, int msg) {
|
||||||
Settings.System.MODE_RINGER_STREAMS_AFFECTED, 0);
|
if (preference == null) return;
|
||||||
boolean isAlarmInclSilentMode = (silentModeStreams & (1 << AudioManager.STREAM_ALARM)) != 0;
|
Context context = getActivity();
|
||||||
mSilent.setSummary(isAlarmInclSilentMode ?
|
if (context == null) return;
|
||||||
R.string.silent_mode_incl_alarm_summary :
|
Uri ringtoneUri = RingtoneManager.getActualDefaultRingtoneUri(context, type);
|
||||||
R.string.silent_mode_summary);
|
CharSequence summary = context.getString(com.android.internal.R.string.ringtone_unknown);
|
||||||
|
// Is it a silent ringtone?
|
||||||
|
if (ringtoneUri == null) {
|
||||||
|
summary = context.getString(com.android.internal.R.string.ringtone_silent);
|
||||||
|
} else {
|
||||||
|
// Fetch the ringtone title from the media provider
|
||||||
|
try {
|
||||||
|
Cursor cursor = context.getContentResolver().query(ringtoneUri,
|
||||||
|
new String[] { MediaStore.Audio.Media.TITLE }, null, null, null);
|
||||||
|
if (cursor.moveToFirst()) {
|
||||||
|
summary = cursor.getString(0);
|
||||||
|
}
|
||||||
|
} catch (SQLiteException sqle) {
|
||||||
|
// Unknown title for the ringtone
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mHandler.sendMessage(mHandler.obtainMessage(msg, summary));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void lookupRingtoneNames() {
|
||||||
|
new Thread(mRingtoneLookupRunnable).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Reference in New Issue
Block a user