Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fix occasional ring volume reset

When PHONE_INCOMING_RING message accidentaly arrives to CallNotifier
immediately after the user answers the call, the call state is still
RINGING instead of OFFHOOK, so ring plays again, causing audio
driver to switch from just entered IN_CALL mode back to RINGING mode,
which can lead to completely mute phone call - no side of call can be
heard.

Above also affects increasing ring feature.

Prevent this scenario by calling silenceRinger() instead of stopRing()
at the beginning of answerCall(), so not only the current ring is
stopped, but also the possible next ring prevented.

Change-Id: I358ffd93f4233ab1a957af18ec40edc0fef04014
  • Loading branch information...
commit 2410f53a8309485747470a7c7296b6634f5623cd 1 parent 8872393
@nadlabak nadlabak authored romanbb committed
Showing with 2 additions and 2 deletions.
  1. +2 −2 src/com/android/phone/PhoneUtils.java
View
4 src/com/android/phone/PhoneUtils.java
@@ -249,8 +249,8 @@ private PhoneUtils() {
final PhoneGlobals app = PhoneGlobals.getInstance();
// If the ringer is currently ringing and/or vibrating, stop it
- // right now (before actually answering the call.)
- app.getRinger().stopRing();
+ // right now and prevent new rings (before actually answering the call)
+ app.notifier.silenceRinger();
final Phone phone = ringing.getPhone();
final boolean phoneIsCdma = (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA);
Please sign in to comment.
Something went wrong with that request. Please try again.