With volume_separate_notification flag enbaled, muting ring volume
slice will cause notification volume slice to gray out.
There used to be a bug in which notification slice would not get
updated in response to a change in ring volume mute/unmute broadcast.
The resulting erroneous behavior was notification slider would get to
zero but not get grayed out. To fix that bug, VolumeSliceHelper listens
to ring stream mute/unmute broadcasts and forwards them to notification
slice.
Bug: b/266072907
Test: make DEBUG_ROBOLECTRIC=1 ROBOTEST_FILTER="NotificationVolumePreferenceControllerTest|VolumeSliceHelperTest" RunSettingsRoboTests -j40
Change-Id: I2ab51f1272bf99a0c3d9ca285354052d00910c90
When ring volume is separated from notification, a new xml preferece and
controller is needed for it, so that the settings search can show/hide
the slice correctly.
1. Use a separate preference and controller for ring volume (vs ring &
notification combined)
2. Notification slice in settings no longer grays out when ringer mode
is set to mute or vibrate.
3. Introduce an abstract RingerModeAffected preference controller class
to factor out duplicate code among ring, notification, and separate-ring
controller classes.
Bug: b/259084354
Test: make ROBOTEST_FILTER=RingVolumePreferenceControllerTest
RunSettingsRoboTests -j40
make ROBOTEST_FILTER=SeparateRingVolumePreferenceControllerTest
RunSettingsRoboTests -j40
make ROBOTEST_FILTER=NotificationVolumePreferenceControllerTest
RunSettingsRoboTests -j40
make ROBOTEST_FILTER=VolumePanelTest RunSettingsRoboTests -j40
make
ROBOTEST_FILTER=RingerModeAffectedVolumePreferenceControllerTest -j40
Known Issue:
1. When streams are separate and ring volume set to mute/vibrate,
notification is set to zero, but not disabled. So it can be turned on
by user (and in settings the icon will stay mute/vibrate instead of
changing to the normal notification icon).
2. In the above scenario after notification is unmuted in settings,
the notification icon continues to stay vibrate/mute -- should change
to the normal notification icon.
Note: This feature is controlled using a boolean DeviceConfig flag:
systemui/"volume_separate_ring". The default value is 'false', which is
meant to keep the experience the same as before. It will be set to
'true' for teamfood and dogfood. Eventually the flag will be removed and
the code in the 'true' branch will prevail.
Change-Id: Ibec871eafeef4081e96c5e0dd04535565d50a077
Separate notification and ring controllers based on the ring/volume
stream alias boolean in config.xml.
For both ring and volume controller: Not show vibrate icon when vibration is not supported on device. Show
silent icon instead.
Known issue: Add the notification volume slider only in Settings, and
not in VolumePanelDialog. When the alias is set to false and the streams
separated, the ring volume slider in VolumePanelDialog keeps its title
of "Ring & notification volume" instead of changing to "Ring volume".
Bug: b/38477228
Test: make DEBUG_ROBOLECTRIC=1 ROBOTEST_FILTER=NotificationVolumePreferenceControllerTest RunSettingsRoboTests -j40
make DEBUG_ROBOLECTRIC=1 ROBOTEST_FILTER=RingVolumePreferenceControllerTest RunSettingsRoboTests -j40
make DEBUG_ROBOLECTRIC=1 ROBOTEST_FILTER=SoundSettingsTest RunSettingsRoboTests
Change-Id: Id17523f49b291a5cf612b90f93c3b2ab6486c62f
The Spatial audio settings page control the state for the phone speaker
and the wired headphones
Test: make RunSettingsRoboTests
Bug: 220811398
Change-Id: I49e3fab48186d09357a8481652bdccb4aa5d044a
Move setting to configure "Vibrate for calls" into "Vibraiton & haptics"
screen. Also make this page accessible via both Accessibility and
"Sound & vibration" settings pages.
Bug: 185351540
Test: SoundSettingsTest
manually using the settings app and checking updates
Change-Id: I7e40af3f332fdff8afd1a31d54a676f7e13a6678
The Spatial audio toggle will be showed only on supported devices
Test: robotest, manual checked the UI, but not the actual functionality due to
doesn't have supported device in hand
Bug: 191870827
Change-Id: I7db264902b03fddb7808676d8cb98cbe045deda1
To make InputMethodPreference support 2 target
reference, CL[1] move the PrimarySwitchPreference
into SettingsLib.
Change all PrimarySwitchPreference reference to
Settingslib one and remove the original one.
[1]: Idea3935d95b8d22b00ca89313e9eb3e979e4aa74
Bug: 197705032
Test: Presubmit
Change-Id: I95d111522344bb7cbdd380382e48fe60a5ebc9a2
Remove the silky condition and clean up redundant files.
Bug: 183670633
Test: robotests & visual with turning on/off silky home
Change-Id: Ica8217b3921235c9e79cf8f8b531637180552f3b
- Fork sound_settings_v2 for dev.
- Replace Preference with PrimarySwitchPreference for the Prevent
Ringing entry.
- When the toggle is on, only show the status text without the on/off
info.
- Remove unused codes.
Bug: 174964721
Test: robotests
Change-Id: I990f5c778436c8058d4a5953c7f15a9a7eb580d8
Adds a toggle under Settings > Sound > Media to toggle media resumption
Bug: 154039093
Test: manual
Test: atest SettingsProviderTest
Test: make -j40 RunSettingsRoboTests ROBOTEST_FILTER="MediaControls"
Change-Id: I803c57031bc3252cab35c06ea124d1c22a3c3aeb
-Change string to "Play <APP Label> on"
-Hide it when there is no local playback
-Disable search index
-Add test cases
Bug: 155720628
Test: make -j50 RunSettingsRoboTests
Change-Id: Id104d5b49c069a761e4cf82385bf1225d494c95e
"Take call on" is only visible when there are multiple media devices
connected and phone call is incoming or answering. In general, this
preference is hard to see for users.
In reality, users usually change the phone call output on Phone app,
it's a rare case that user will go to Settings to search "Take call on"
to change the phone call output when they are answering call.
Intend to remove its index from Settings Search first since it's almost
invisible on Sound page. Users will confuse that why Sound page doesn't
show the corresponding preference when they found the "Take call on" and
tapped on it from Settings Search.
Fixes: 140392320
Test: visual and robotests
Change-Id: I87ec4fda2a3d8625c8f09beeffe348a302187d6d
-remove previous preference controller and its test cases
-update sound setting test case
Bug: 147395289
Test: make -j42 RunSettingsRoboTests
Change-Id: I9e383e11370a13868fdbcb76eafef5aedad895c5
we shouldn't take users so deep into the settings IA because it's easy
to feel lost in settings after clicking on a result without additional
context.
Bug: 143055215
Test: robotest & manual
Change-Id: I337cb5ead31e1e4e7bf9be78132e90630f83ee43
The notification package was getting too big.
Test: make -j64 RunSettingsRoboTests
Fixes: 145224451
Change-Id: I25ba82f42f7a137d8adcce72dcf8089d0e018bdc
- Remove the controller in SoundSettings, just use the common one.
- Update a bunch of IDs so ZenModeSliceBuilder maps to the toggle
button in zen_mode_settings.xml
This is needed so the slice intent (left target when shown in search)
is the same as what we index from search side. Previously the search
indexer is finding zen_mode from sound page but the slice itself is
reporting a deep link into zenModeSettings page.
Fixes: 130437726
Test: robotest
Change-Id: Ic41d2d93afa1f748e3282e23010199a0fa078645
Add ZenModeSoundSettingsPreferenceController extends ZenModePreferenceController,
and update availability status to AVAILABLE.
This is cherry-picked from ag/6897872
Change-Id: I8dcb6808cc21c4f5c06548a363c998e369646487
Bug: 129320642
Test: manual & robotests
- Add boolean useDynamicSliceSummary() in Sliceable interface. This is
the switch equivalent to android:allowDynamicSummaryInSlice in xml. It
moves the setter closer to regular Sliceable APIs, thus less easily to
miss.
- Coverted all android:allowDynamicSummaryInSlice to use the java API.
- Except 2 prefs in my_device_info. They incorrectly set this to true
previously (controller is not sliceable, no point setting
dynamicSliceSummary to true. They just won't do anything)
Fixes: 128446156
Test: robolectric
Change-Id: Ic57acd590dec3e87dcf4592df137321d14b854d9
1. Show "play media to" item when Previously Connected device is available
2. Click "Play media to" to launch output slice
3. Update test case
Bug: 126475101
Test: make -j50 RunSettingsRoboTests
Change-Id: Id8afd1a2407acb78c11e81d2420ae8c16130a321
1. Add RemoteVolumePreferenceController to control volume through
MediaSessions.
2. Add related preference to skip calling AudioManager.
Bug: 126199571
Test: RunSettingsRoboTests
Change-Id: I9cb85ccf5f49be6d127cb61caf445b2ee7dfb579
The full page verion of prevent ringing is still searchable.
- Created a new controller for parent entry.
- On the child controller, inherit the same getAvailabilityStatus() but
override AVILABLE_UNSEARCHABLE to AVAILABLE so it becomes searchable.
Fixes: 72748524
Test: existing robotests for PreventRingingPreferenceController
Change-Id: Id2454db110c81b59fa4a98338602b03de0812f8a
In several places we were referencing private icons from
frameworks/base/core instead of versions we already had in
settings. Also add in a "media stream off" icon to match the one we
already had for "media stream on".
Bug: 77982107
Test: manual (Settings->Sound, then use hardware controls to modify
media and ring volumes)
Change-Id: I3a1d808b3028bb4f2feae4536194dc58c3177a66
Use TogglePreferenceController instead of AbstractPreferenceController
for VibrateWhenRingPreferenceControllr
Bug:74915140
Test: make RunSettingsRoboTests
Change-Id: Ib06126324516826411a7d50a2bd8a790bfd477c7
Merged-In: I501a1470da7dc1ff582c2a90b5235b25036caefc
Use TogglePreferenceController instead of AbstractPreferenceController
for VibrateWhenRingPreferenceControllr
Bug:74915140
Test: make RunSettingsRoboTests
Change-Id: I501a1470da7dc1ff582c2a90b5235b25036caefc
- Build two controller to control list preferences.
- MediaOutputPreferenceController which allows switching
the media output between current device and connected
BT device supporting A2DP. It also controls disabling
media output switching during a call or cast mode.
- HandsFreeProfilePreferenceController which allows
switching between HFP-connected BT devices while in
on-call state.
- Add test cases for controllers.
Bug: 74130772
Test: make RunSettingsRoboTests ROBOTEST_FILTER="MediaOutputPreferenceControllerTest" -j56
Test: make RunSettingsRoboTests ROBOTEST_FILTER="HandsFreeProfileOutputPreferenceControllerTest" -j56
Test: make RunSettingsRoboTests ROBOTEST_FILTER="AudioOutputSwitchPreferenceControllerTest" -j56
Change-Id: I37f5418442ce77e72cdff07f071ea519ab1047f3