IMS: Handle USER_* messages in Quiescent* states.
Currently USER_* requests are only handled in Active*
states of CallAudioRouteStateMachine which in some
cases results in ignoring user requests. This change
modifies Quiescent* states to handle USER_* messages
similiar to corresponding none-user initiated messages.
BUG=28602331
Change-Id: I1ec932b8961ed74956c81a2ccd448b7b9fbb6dca
diff --git a/src/com/android/server/telecom/CallAudioRouteStateMachine.java b/src/com/android/server/telecom/CallAudioRouteStateMachine.java
index 5234a82..fe2d3dc 100644
--- a/src/com/android/server/telecom/CallAudioRouteStateMachine.java
+++ b/src/com/android/server/telecom/CallAudioRouteStateMachine.java
@@ -319,9 +319,11 @@
}
switch (msg.what) {
case SWITCH_EARPIECE:
+ case USER_SWITCH_EARPIECE:
// Nothing to do here
return HANDLED;
case SWITCH_BLUETOOTH:
+ case USER_SWITCH_BLUETOOTH:
if ((mAvailableRoutes & ROUTE_BLUETOOTH) != 0) {
transitionTo(mQuiescentBluetoothRoute);
} else {
@@ -329,6 +331,7 @@
}
return HANDLED;
case SWITCH_HEADSET:
+ case USER_SWITCH_HEADSET:
if ((mAvailableRoutes & ROUTE_WIRED_HEADSET) != 0) {
transitionTo(mQuiescentHeadsetRoute);
} else {
@@ -336,6 +339,7 @@
}
return HANDLED;
case SWITCH_SPEAKER:
+ case USER_SWITCH_SPEAKER:
transitionTo(mQuiescentSpeakerRoute);
return HANDLED;
case SWITCH_FOCUS:
@@ -492,6 +496,7 @@
}
switch (msg.what) {
case SWITCH_EARPIECE:
+ case USER_SWITCH_EARPIECE:
if ((mAvailableRoutes & ROUTE_EARPIECE) != 0) {
transitionTo(mQuiescentEarpieceRoute);
} else {
@@ -499,6 +504,7 @@
}
return HANDLED;
case SWITCH_BLUETOOTH:
+ case USER_SWITCH_BLUETOOTH:
if ((mAvailableRoutes & ROUTE_BLUETOOTH) != 0) {
transitionTo(mQuiescentBluetoothRoute);
} else {
@@ -506,9 +512,11 @@
}
return HANDLED;
case SWITCH_HEADSET:
+ case USER_SWITCH_HEADSET:
// Nothing to do
return HANDLED;
case SWITCH_SPEAKER:
+ case USER_SWITCH_SPEAKER:
transitionTo(mQuiescentSpeakerRoute);
return HANDLED;
case SWITCH_FOCUS:
@@ -675,6 +683,7 @@
}
switch (msg.what) {
case SWITCH_EARPIECE:
+ case USER_SWITCH_EARPIECE:
if ((mAvailableRoutes & ROUTE_EARPIECE) != 0) {
transitionTo(mQuiescentEarpieceRoute);
} else {
@@ -682,9 +691,11 @@
}
return HANDLED;
case SWITCH_BLUETOOTH:
+ case USER_SWITCH_BLUETOOTH:
// Nothing to do
return HANDLED;
case SWITCH_HEADSET:
+ case USER_SWITCH_HEADSET:
if ((mAvailableRoutes & ROUTE_WIRED_HEADSET) != 0) {
transitionTo(mQuiescentHeadsetRoute);
} else {
@@ -692,6 +703,7 @@
}
return HANDLED;
case SWITCH_SPEAKER:
+ case USER_SWITCH_SPEAKER:
transitionTo(mQuiescentSpeakerRoute);
return HANDLED;
case SWITCH_FOCUS:
@@ -849,6 +861,7 @@
}
switch(msg.what) {
case SWITCH_EARPIECE:
+ case USER_SWITCH_EARPIECE:
if ((mAvailableRoutes & ROUTE_EARPIECE) != 0) {
transitionTo(mQuiescentEarpieceRoute);
} else {
@@ -856,6 +869,7 @@
}
return HANDLED;
case SWITCH_BLUETOOTH:
+ case USER_SWITCH_BLUETOOTH:
if ((mAvailableRoutes & ROUTE_BLUETOOTH) != 0) {
transitionTo(mQuiescentBluetoothRoute);
} else {
@@ -863,6 +877,7 @@
}
return HANDLED;
case SWITCH_HEADSET:
+ case USER_SWITCH_HEADSET:
if ((mAvailableRoutes & ROUTE_WIRED_HEADSET) != 0) {
transitionTo(mQuiescentHeadsetRoute);
} else {
@@ -870,6 +885,7 @@
}
return HANDLED;
case SWITCH_SPEAKER:
+ case USER_SWITCH_SPEAKER:
// Nothing to do
return HANDLED;
case SWITCH_FOCUS:
@@ -1293,4 +1309,4 @@
mHasUserExplicitlyLeftBluetooth = false;
transitionTo(mRouteCodeToQuiescentState.get(initState.getRoute()));
}
-}
\ No newline at end of file
+}