mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 22:32:46 +00:00
Bug 1133449 - [B2G] The default audio type didn't be set correctly when the call screen app is launched. r=baku
This commit is contained in:
parent
0317ef5fb4
commit
3410e25457
@ -525,15 +525,26 @@ AudioChannelService::SetDefaultVolumeControlChannelInternal(int32_t aChannel,
|
||||
// If this child is in the background and mDefChannelChildID is set to
|
||||
// others then it means other child in the foreground already set it's
|
||||
// own default channel already.
|
||||
if ((!aVisible && mDefChannelChildID != aChildID) ||
|
||||
(mDefChannelChildID != aChildID &&
|
||||
mDefChannelChildID != CONTENT_PROCESS_ID_UNKNOWN)) {
|
||||
if (!aVisible && mDefChannelChildID != aChildID) {
|
||||
return;
|
||||
}
|
||||
// Workaround for the call screen app. The call screen app is running on the
|
||||
// main process, that will results in wrong visible state. Because we use the
|
||||
// docshell's active state as visible state, the main process is always
|
||||
// active. Therefore, we will see the strange situation that the visible
|
||||
// state of the call screen is always true. If the mDefChannelChildID is set
|
||||
// to others then it means other child in the foreground already set it's
|
||||
// own default channel already.
|
||||
// Summary :
|
||||
// Child process : foreground app always can set type.
|
||||
// Parent process : check the mDefChannelChildID.
|
||||
else if (aChildID == CONTENT_PROCESS_ID_MAIN &&
|
||||
mDefChannelChildID != CONTENT_PROCESS_ID_UNKNOWN) {
|
||||
return;
|
||||
}
|
||||
|
||||
mDefChannelChildID = aChildID;
|
||||
nsString channelName;
|
||||
|
||||
mDefChannelChildID = aVisible ? aChildID : CONTENT_PROCESS_ID_UNKNOWN;
|
||||
nsAutoString channelName;
|
||||
if (aChannel == -1) {
|
||||
channelName.AssignASCII("unknown");
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user