Closed Bug 995372 Opened 6 years ago Closed 2 years ago

User should be able to decline an incoming call without interrupting a video recording in progress

Categories

(Firefox OS Graveyard :: Gaia::Camera, defect)

x86
macOS
defect
Not set

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: djf, Unassigned)

References

Details

The camera app currently stops recording video when it goes to the background (i.e. on mozvisibilitychange event).  This is so that if the user presses the Home button while recording we stop the recording.

But it also means that we stop recording when the incoming call screen is displayed. That is wrong. We should stop recording if the user answers the incoming call. But the user should be able to decline the incoming call and keep recording.  As Tiffany (in UX) puts it: "you shouldn’t be penalized because your painter calls you during your kid’s ballet production"

A minimal solution to this bug would be possible if the camera app can listen to system messages so that it knows when there is an incoming call, and then knows if the user answers the call. If it knew that there was an incoming call, it could keep recording even if hidden by the incoming call screen. And then, if it could tell that the user accepted the call, it could stop recording at that point.

Does the system app generate events like that?  Could it?

A maximal solution would maybe involve the camera app displaying its own incoming call notification screen that did not cover all of the viewfinder.  Is there any way that the camera app could handle incoming calls while recording instead of the the dialer app? That seems like it would be a lot harder.

In a related issue, we presumably also need a way for the camera app to silence the ringer while recording. I think it is safe to assume that the user will be looking at their screen while recording and will notice an incoming call even if there is no ringer sound.

Currently, the only workaround available is to put your phone in airplane mode before recording important video like your kid's ballet recital. You would have already silenced your ringer in this situation, but you'd have to take the extra step of turning off the radio in order to ensure uninterrupted recording.
Setting needinfo for Etienne and Alive in case either of you have ideas about this.  (I'm not sure if you're the right people for this, so feel free to needinfo others.)

And needinfo Tif in case you want to add your UX input here.
Flags: needinfo?(tshakespeare)
Flags: needinfo?(etienne)
Flags: needinfo?(alive)
So I checked out iOS and unfortunately they have the exact same behaviour :(

STR

1. Start recording your cute puppy
2. Some rude person calls you
3. You decline the call
4. Video has stopped recording

This is terrible, but... since we are at least on par with iOS I'm willing to concede for this release. I'd like to keep the bug open though in hopes that we can do better and not let people miss those cute puppy moments.
Flags: needinfo?(tshakespeare)
Hi David,
this sounds a new feature request to me. And AFAIK there's no easy one to do it...

1. Do not put current app to background before the user receives the phone.
   This solution will cause another issue: if music is playing you will notice music and ringtone is mixed. We already have this issue (overlapped for 3secs) for a long time and I don't want to get it even worse.
2. Make camera app know telephony state change event and do something to prevent the visibilitychange event handler work.
Flags: needinfo?(alive)
(In reply to Alive Kuo [:alive][NEEDINFO!][God bless Taiwan.] from comment #3)
> Hi David,
> this sounds a new feature request to me. And AFAIK there's no easy one to do
> it...
> 
> 1. Do not put current app to background before the user receives the phone.
>    This solution will cause another issue: if music is playing you will
> notice music and ringtone is mixed. We already have this issue (overlapped
> for 3secs) for a long time and I don't want to get it even worse.
> 2. Make camera app know telephony state change event and do something to
> prevent the visibilitychange event handler work.

And we need to uplift the priority of recording for audio channel to >= ringer(notification) channel.
Flags: needinfo?(etienne)
This conflicts with bug 832223, bug 917670, and bug 937513, which complain about the phone's ringtone getting captured by the video recorder.
Not necessarily...

In bug 832223 - this is about video recording a conversation. I stand by what I said there. How that relates to this bug is that if you accept the call, the video would automatically stop and then save. You should not be able to do those two things at the same time.

In bug 917670, it appears to be about the user actively recording a video and then answering a call. This falls in the same bucket as the above bug - video should discontinue recording if the call is answered, however brief.

The final bug, bug 937513 I read as the primary issue being that you can hear the ringtone during the video recording so the filer has proposed that the video stop recording when a call takes place.

So if we take the consistent stance that an incoming call does not stop video recording, as long as the user does not accept the call, then all bugs are, well, consistent except for the last bug's grievance about being able to hear the ringtone during playback.

In that instance, I would argue to see if we could silence the ringtone because the odds are pretty high that the user is looking at the screen since they are recording. A notification coupled with vibrations (would this be picked up by audio?) should be good...? 

Of course this is all hypothetical with a lot of assumptions that it can be done :)
On android phone, we has the same behavior.
1. Start recording your cute puppy
2. Some person calls you
3. You decline the call
4. Video has stopped recording  <---
Firefox OS is not being worked on
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.