Loading src/com/android/server/telecom/Call.java +7 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,7 @@ public class Call implements CreateConnectionResponse, EventManager.Loggable, boolean onCanceledViaNewOutgoingCallBroadcast(Call call, long disconnectionTimeout); void onHoldToneRequested(Call call); void onCallHoldFailed(Call call); void onCallSwitchFailed(Call call); void onConnectionEvent(Call call, String event, Bundle extras); void onExternalCallChanged(Call call, boolean isExternalCall); void onRttInitiationFailure(Call call, int reason); Loading Loading @@ -215,6 +216,8 @@ public class Call implements CreateConnectionResponse, EventManager.Loggable, @Override public void onCallHoldFailed(Call call) {} @Override public void onCallSwitchFailed(Call call) {} @Override public void onConnectionEvent(Call call, String event, Bundle extras) {} @Override public void onExternalCallChanged(Call call, boolean isExternalCall) {} Loading Loading @@ -3230,6 +3233,10 @@ public class Call implements CreateConnectionResponse, EventManager.Loggable, for (Listener l : mListeners) { l.onCallHoldFailed(this); } } else if (Connection.EVENT_CALL_SWITCH_FAILED.equals(event)) { for (Listener l : mListeners) { l.onCallSwitchFailed(this); } } else { for (Listener l : mListeners) { l.onConnectionEvent(this, event, extras); Loading src/com/android/server/telecom/CallsManager.java +14 −4 Original line number Diff line number Diff line Loading @@ -1029,12 +1029,22 @@ public class CallsManager extends Call.ListenerBase @Override public void onCallHoldFailed(Call call) { // Normally, we don't care whether a call hold has failed. However, if a call was held in // order to answer an incoming call, that incoming call needs to be brought out of the // ANSWERED state so that the user can try the operation again. markAllAnsweredCallAsRinging(call, "hold"); } @Override public void onCallSwitchFailed(Call call) { markAllAnsweredCallAsRinging(call, "switch"); } private void markAllAnsweredCallAsRinging(Call call, String actionName) { // Normally, we don't care whether a call hold or switch has failed. // However, if a call was held or switched in order to answer an incoming call, that // incoming call needs to be brought out of the ANSWERED state so that the user can // try the operation again. for (Call call1 : mCalls) { if (call1 != call && call1.getState() == CallState.ANSWERED) { setCallState(call1, CallState.RINGING, "hold failed on other call"); setCallState(call1, CallState.RINGING, actionName + " failed on other call"); } } } Loading Loading
src/com/android/server/telecom/Call.java +7 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,7 @@ public class Call implements CreateConnectionResponse, EventManager.Loggable, boolean onCanceledViaNewOutgoingCallBroadcast(Call call, long disconnectionTimeout); void onHoldToneRequested(Call call); void onCallHoldFailed(Call call); void onCallSwitchFailed(Call call); void onConnectionEvent(Call call, String event, Bundle extras); void onExternalCallChanged(Call call, boolean isExternalCall); void onRttInitiationFailure(Call call, int reason); Loading Loading @@ -215,6 +216,8 @@ public class Call implements CreateConnectionResponse, EventManager.Loggable, @Override public void onCallHoldFailed(Call call) {} @Override public void onCallSwitchFailed(Call call) {} @Override public void onConnectionEvent(Call call, String event, Bundle extras) {} @Override public void onExternalCallChanged(Call call, boolean isExternalCall) {} Loading Loading @@ -3230,6 +3233,10 @@ public class Call implements CreateConnectionResponse, EventManager.Loggable, for (Listener l : mListeners) { l.onCallHoldFailed(this); } } else if (Connection.EVENT_CALL_SWITCH_FAILED.equals(event)) { for (Listener l : mListeners) { l.onCallSwitchFailed(this); } } else { for (Listener l : mListeners) { l.onConnectionEvent(this, event, extras); Loading
src/com/android/server/telecom/CallsManager.java +14 −4 Original line number Diff line number Diff line Loading @@ -1029,12 +1029,22 @@ public class CallsManager extends Call.ListenerBase @Override public void onCallHoldFailed(Call call) { // Normally, we don't care whether a call hold has failed. However, if a call was held in // order to answer an incoming call, that incoming call needs to be brought out of the // ANSWERED state so that the user can try the operation again. markAllAnsweredCallAsRinging(call, "hold"); } @Override public void onCallSwitchFailed(Call call) { markAllAnsweredCallAsRinging(call, "switch"); } private void markAllAnsweredCallAsRinging(Call call, String actionName) { // Normally, we don't care whether a call hold or switch has failed. // However, if a call was held or switched in order to answer an incoming call, that // incoming call needs to be brought out of the ANSWERED state so that the user can // try the operation again. for (Call call1 : mCalls) { if (call1 != call && call1.getState() == CallState.ANSWERED) { setCallState(call1, CallState.RINGING, "hold failed on other call"); setCallState(call1, CallState.RINGING, actionName + " failed on other call"); } } } Loading