Closed Bug 867912 Opened 12 years ago Closed 12 years ago

[Buri][Audio] Configuring silent mode by long-pressing power button is not persistent after device reboot

Categories

(Firefox OS Graveyard :: Gaia::System, defect, P1)

ARM
Gonk (Firefox OS)
defect

Tracking

(blocking-b2g:tef+, b2g18 verified, b2g18-v1.0.0 wontfix, b2g18-v1.0.1 verified)

VERIFIED FIXED
1.0.1 Cert2 (21may)
blocking-b2g tef+
Tracking Status
b2g18 --- verified
b2g18-v1.0.0 --- wontfix
b2g18-v1.0.1 --- verified

People

(Reporter: sync-1, Assigned: alive)

References

Details

Attachments

(1 file)

AU_LINUX_GECKO_ICS_STRAWBERRY_V1.01.00.01.019.085 Firefox os v1.0.1 Mozilla build ID:20130422230201 +++ This bug was initially created as a clone of Bug #448319 +++ DEFECT DESCRIPTION: [Audio]Silence incoming call function abnormal. REPRODUCING PROCEDURES: 1.Set ringer&notification volume to a level(not 0),long press power key to choose "silence incoming calls",status bar will display silence(vibrate)icon. But the volume of ringer&notification will not change to 0.->ko1 2.Restart device,silence(vibrate)icon will disappear from status bar,and if has an incoming call will has ringer.->ko2 EXPECTED BEHAVIOUR: ko1.Check with SW,silence incoming call is to disable the ringer not clear volume,but it is not a good behavior that status bar is not synchronized with settings. ko2.Keep silence incoming call settings. ASSOCIATE SPECIFICATION: TEST PLAN REFERENCE: TOOLS AND PLATFORMS USED: USER IMPACT: REPRODUCING RATE: 3/3 For FT PR, Please list reference mobile's behavior: ++++++++++ end of initial bug #448319 description ++++++++++ CONTACT INFO (Name,Phone number): DEFECT DESCRIPTION: REPRODUCING PROCEDURES: EXPECTED BEHAVIOUR: ASSOCIATE SPECIFICATION: TEST PLAN REFERENCE: TOOLS AND PLATFORMS USED: USER IMPACT: REPRODUCING RATE: For FT PR, Please list reference mobile's behavior:
blocking-b2g: --- → tef?
The first scenario is working fine for me, if I call after step 1, there is no sound. Second scenario is still wrong. Changing the subject to clarify what the bug is.
blocking-b2g: tef? → tef+
Summary: [Buri][Audio]Silence incoming call function abnormal. → [Buri][Audio] Configuring silent mode by long-pressing power button is not persistent after device reboot
baku/Marco, is this persistence something the audio manager handles?
Flags: needinfo?(mchen)
Flags: needinfo?(amarchesini)
1. works for me because 'silent incoming call' isn't implemented as 'set volume to 0'. I admit we need to refine this function in device menu. 2. looks wired...gaia bug maybe.
Component: Gaia::Settings → Gaia::System
Discussed with Alive and he will take care this issue on Gaia side.
Flags: needinfo?(mchen)
> 1. works for me because 'silent incoming call' isn't implemented as 'set > volume to 0'. How silence mode is implemented? Probably the easier way is to ask AudioChannelService to mute all the elements.
Flags: needinfo?(amarchesini)
(In reply to Andrew Overholt [:overholt] from comment #2) > baku/Marco, is this persistence something the audio manager handles? Andrew, my proposed change is to do bug 868314: change the behavior of 'silent incoming calls' to 'silent mode' (implemented in bug 819842).
(In reply to Andrea Marchesini (:baku) from comment #5) > > 1. works for me because 'silent incoming call' isn't implemented as 'set > > volume to 0'. > > How silence mode is implemented? Probably the easier way is to ask > AudioChannelService to mute all the elements. We just set two channels volume to 0: notification and content as UX suggested.
(In reply to Alive Kuo [:alive] from comment #7) > (In reply to Andrea Marchesini (:baku) from comment #5) > > We just set two channels volume to 0: notification and content as UX > suggested. Baku, I suggest that leave UX relevant logic in gaia to avoid rapid spec change revealed in gecko, how do you think? I know it isn't a perfect solution from gaia side. To be clear, in my mind there should be some API for gaia to mute different channel(without setting the volume to 0) but I wonder this is an efficient and bug-free way. Since now the trigger to silent mode is pressing volume key down to 0, it makes sense to "just set volume to 0".
Probably it would be cleaner to use the AudioChannelService. In this way the memory consumption will be much less: the media element has a wakelock enabled when it is playing audio, but if it's muted by the AudioChannelService, this wakelock is disabled. The patch about this is landed yesterday: Bug 859824
(In reply to Andrea Marchesini (:baku) from comment #9) > Probably it would be cleaner to use the AudioChannelService. In this way the > memory consumption will be much less: the media element has a wakelock > enabled when it is playing audio, but if it's muted by the > AudioChannelService, this wakelock is disabled. The patch about this is > landed yesterday: Bug 859824 It's not clear to me what to do. The bug 859824 looks to me that you're going to release some resource when music is "paused". Do you want to actively "pause" every audio when the user enables silent mode? And prevent every audio to start playing?
> It's not clear to me what to do. The bug 859824 looks to me that you're > going to release some resource when music is "paused". Do you want to > actively "pause" every audio when the user enables silent mode? And prevent > every audio to start playing? Not only. That patch releases the wakelock for 2 reasons: 1. when the media element is stopped/paused 2. when the audiochannelservice muted the element (search for SetCanPlay()); We care about this second reason for silence mode. Otherwise: 1. the user opens the music app. the music app plays audio - audiochanneltype => content. 2. the device is in silence mode, so no audio is actually played 3. the device is locked 4. the device doesn't go in sleep mode because of the wake lock. This is the reason why I think it's better to use the AudioChannelService to silence any (or some) media element. Then, maybe we can fix this issue for 1.1.
(In reply to Andrea Marchesini (:baku) from comment #11) > 2. when the audiochannelservice muted the element (search for SetCanPlay()); > > We care about this second reason for silence mode. > Otherwise: > > 1. the user opens the music app. the music app plays audio - > audiochanneltype => content. > 2. the device is in silence mode, so no audio is actually played > 3. the device is locked > 4. the device doesn't go in sleep mode because of the wake lock. > > This is the reason why I think it's better to use the AudioChannelService to > silence any (or some) media element. Then, maybe we can fix this issue for > 1.1. From above I guess you want to "avoid redundant power consumption when audio is playing at volume 0", but my problem is 1) how gaia tell you to mute it? 2) couldn't we "mute the channel" when you see channel volume is 0 now?
(In reply to Andrea Marchesini (:baku) from comment #11) About use AudioChannelService to pause media element for silent mode, I think that is not what we defined for silent mode. From user's point of view, I would expect my music app is on playing even on silent mode. Because silent indicates to mute audio only not pause audio.
Assignee: nobody → alive
Depends on: 819842
I am going to provide a gaia side solution at first since :baku is busy now.
Casey, if we're going to modify the silent mode function behavior on the device menu, what's the string of "silent" and the opposite one? Currently it's "silent incoming calls" and "ring incoming calls".
Flags: needinfo?(kyee)
BTW, The root cause of why the settings reverses after rebooting is: https://github.com/mozilla-b2g/gaia/blob/master/apps/system/js/sleep_menu.js#L40 The handler here changes |ring.enabled| once the notification channel volume is changed. Sigh, a really incorrect implementation.
Flags: needinfo?(kyee) → needinfo?(firefoxos-ux-bugzilla)
Two ways to fix this bug in my mind now: A) 1. Remove |ring.enable| settings key from the apps reference it. 2. Use 'audio.volume.notification'+'vibration.enabled' to be the key to trigger silent mode. 3. For statusbar/lockscreen: show mute icon when: audio.volume.notification == 0 && vibration.enabled == false show vibration icon when: audio.volume.notification == 0 && vibration.enabled == true show nothing when: audio.volume.notification != 0 && vibration.enabled == false 4. For dialer/keyboard: Doesn't call play() when audio.volume.notification == 0 B) 1. Rename |ring.enabled| with |silent.enabled| 2. For sound manager: Save current notification channel volume, let audio.volume.notification == 0 when silent.enabled == true Restore saved notification channel volume 3. For statusbar/lockscreen/dialer/keyboard: just replace |ring.enabled| with |!silent.enabled| I will try B) first.
Flags: needinfo?(firefoxos-ux-bugzilla)
Flagging Rob in the hope that we have an existing pattern that speaks to this one.
Flags: needinfo?(rmacdonald)
See Also: → 860156
WIP: https://github.com/alivedise/gaia/commit/432cdadf38f8ec5b57ef10c6471c34d6c84ce20a This one is pretty complex...:) Todo: * solve the problem silent mode caused by two channels.
Whiteboard: [status: WIP, more work needed]
Patch v1: 1. Remove `ring.enabled` because it conflicts with `audio.volume.notification` 2. Use `audio.volume.notification` to indicate silent mode 3. Multi channel silent mode: (1) Enter silent mode from Device menu: Silent notification channel, cache it. (2) Leave silent mode from Device menu: Restore cached notification channel. If there's no cached one, restore to 1. (3) Set audio.volume.notification->0 from Settings app: (A) With vibration on: Vibration icon shows, not silent mode. (B) With vibration off: Enter notification silent mode, no cached volume. (4) Enter silent mode from volume rockers: (A) volumedown to 0 first time: vibration on, not silent mode. (B) volumedown to 0 second time and afterwards: Both Notification and Content silent mode. Cache content volume, no cached notification volume. 4. Fix a bug introduced from 819842 content silent mode. IMO there's no silver bullet to multiple channel silent mode...this is already the bugfree way I figure out to maintain the silent state from multi input(Settings, hardware key, virtual key).
Attachment #747329 - Flags: review?(timdream)
Blocks: 869793
set milestone to partner bug
Target Milestone: --- → 1.0.1 Cert2 (28may)
Daniel - If I understand this bug correctly, there is a simple workaround (set phone back to vibrate after reboot). Comment 19 also states that the WIP patch is pretty complex and, therefore, will likely add significant risk of regression. Does this bug really need to block the release?
Whiteboard: [status: WIP, more work needed] → [status: needs review]
Attachment #747329 - Flags: review?(timdream) → review+
master https://github.com/mozilla-b2g/gaia/commit/8b2e95522652dedc68052152ea6e49faba1cc013 Drivers: it's up to drivers to decide this is tef+ or not, but the code has already been granted so I'm closing this now. IMO the old function is just a failed implementation.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Blocks: 870654
I am filing a bug for unit test on sound manager in https://bugzilla.mozilla.org/show_bug.cgi?id=870654
Blocks: 870733
This bug was partially uplifted. Uplifted 8b2e95522652dedc68052152ea6e49faba1cc013 to: v1-train: 1ef0c50111dbab687634b468d6914e781c600349 Commit 8b2e95522652dedc68052152ea6e49faba1cc013 didn't uplift to branch v1.0.1
We're waiting for bug 819842 to be tef+. If that doesn't happen, need some more additional work here to do patch on v1.0.1 because the patch here is highly relevant to bug 819842's patch now. The addition work is: In device menu, remove all 'ring.enabled', use 'audio.volume.notification'. In sound manager, add enterSilentMode/leaveSilentMode for notification channel only.
Bug 819842 is now tef+ and can be uplifted to v1.0.1, John, can you try to uplift 819842 one and later on this to v1.0.1?
Flags: needinfo?(jhford)
Talked with Alive and he will uplift it to v1.0.1.
Whiteboard: [status: needs review]
Flags: needinfo?(jhford) → needinfo?
Flags: needinfo?
See Also: → 873955
Blocks: 873955
(In reply to Alive Kuo [:alive] from comment #29) > v1.0.1 > https://github.com/mozilla-b2g/gaia/commit/ > aa90119cd24fe54a3bb1228a7323cc12bd021db6 Hi Alive, I have add somecomment in https://github.com/mozilla-b2g/gaia/pull/9638/files, could you have a look?
Flags: needinfo?(alive)
(In reply to Alive Kuo [:alive] from comment #29) > v1.0.1 > https://github.com/mozilla-b2g/gaia/commit/ > aa90119cd24fe54a3bb1228a7323cc12bd021db6 Hi Alive, I have add somecomment in https://github.com/mozilla-b2g/gaia/pull/9638/files, could you have a look?
Flags: needinfo?(alive)
(In reply to Alive Kuo [:alive] from comment #29) > v1.0.1 > https://github.com/mozilla-b2g/gaia/commit/ > aa90119cd24fe54a3bb1228a7323cc12bd021db6 Hi Alive, I have add somecomment in https://github.com/mozilla-b2g/gaia/pull/9638/files, could you have a look?
https://github.com/mozilla-b2g/gaia/commit/19f77d82fb60b4d2999202a59fa84a2062bf3ea3 Fix this. (In reply to xiaokang.chen from comment #32) > (In reply to Alive Kuo [:alive] from comment #29) > > v1.0.1 > > https://github.com/mozilla-b2g/gaia/commit/ > > aa90119cd24fe54a3bb1228a7323cc12bd021db6 > > Hi Alive, > I have add somecomment in > https://github.com/mozilla-b2g/gaia/pull/9638/files, could you have a look?
Flags: needinfo?(alive)
This issue no longer reproduces on both V1.1 and V1.0.1. User is able to disable the ringer and there is no call ringer volume heard during an incoming call. Leo Mozz build V1.1: 20130530070208 Gecko: http://hg.mozilla.org/releases/mozilla-b2g18/rev/09ac1fd2959c Gaia: 1cca9324d4444ad28c6fa99875e17abf7e8230be Version 18.0 Buri Mozz V1.0.1 build: 20130530070213 Gecko: http://hg.mozilla.org/releases/mozilla-b2g18_v1_0_1/rev/11b55d3ada71 Gaia: ac293ce59acc3bede083fad1b973794fa8bf0253 Version 18.0
Status: RESOLVED → VERIFIED
Comment from Mozilla:This issue no longer reproduces on both V1.1 and V1.0.1. User is able to disable the ringer and there is no call ringer volume heard during an incoming call. Leo Mozz build V1.1: 20130530070208 Gecko: http://hg.mozilla.org/releases/mozilla-b2g18/rev/09ac1fd2959c Gaia: 1cca9324d4444ad28c6fa99875e17abf7e8230be Version 18.0 Buri Mozz V1.0.1 build: 20130530070213 Gecko: http://hg.mozilla.org/releases/mozilla-b2g18_v1_0_1/rev/11b55d3ada71 Gaia: ac293ce59acc3bede083fad1b973794fa8bf0253 Version 18.0
Flags: needinfo?(rmacdonald)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: