Loading src/com/android/server/telecom/Call.java +7 −0 Original line number Diff line number Diff line Loading @@ -135,6 +135,7 @@ public class Call implements CreateConnectionResponse, EventManager.Loggable, void onConferenceStateChanged(Call call, boolean isConference); boolean onCanceledViaNewOutgoingCallBroadcast(Call call, long disconnectionTimeout); void onHoldToneRequested(Call call); void onCallHoldFailed(Call call); void onConnectionEvent(Call call, String event, Bundle extras); void onExternalCallChanged(Call call, boolean isExternalCall); void onRttInitiationFailure(Call call, int reason); Loading Loading @@ -210,6 +211,8 @@ public class Call implements CreateConnectionResponse, EventManager.Loggable, @Override public void onHoldToneRequested(Call call) {} @Override public void onCallHoldFailed(Call call) {} @Override public void onConnectionEvent(Call call, String event, Bundle extras) {} @Override public void onExternalCallChanged(Call call, boolean isExternalCall) {} Loading Loading @@ -3043,6 +3046,10 @@ public class Call implements CreateConnectionResponse, EventManager.Loggable, for (Listener l : mListeners) { l.onHoldToneRequested(this); } } else if (Connection.EVENT_CALL_HOLD_FAILED.equals(event)) { for (Listener l : mListeners) { l.onCallHoldFailed(this); } } else { for (Listener l : mListeners) { l.onConnectionEvent(this, event, extras); Loading src/com/android/server/telecom/CallAudioManager.java +1 −0 Original line number Diff line number Diff line Loading @@ -534,6 +534,7 @@ public class CallAudioManager extends CallsManagerListenerBase { onCallLeavingActiveDialingOrConnecting(); break; case CallState.RINGING: case CallState.ANSWERED: onCallLeavingRinging(); break; case CallState.ON_HOLD: Loading src/com/android/server/telecom/CallsManager.java +12 −0 Original line number Diff line number Diff line Loading @@ -927,6 +927,18 @@ public class CallsManager extends Call.ListenerBase return mCallAudioManager.getForegroundCall(); } @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. for (Call call1 : mCalls) { if (call1 != call && call1.getState() == CallState.ANSWERED) { setCallState(call1, CallState.RINGING, "hold failed on other call"); } } } @Override public UserHandle getCurrentUserHandle() { return mCurrentUserHandle; Loading Loading
src/com/android/server/telecom/Call.java +7 −0 Original line number Diff line number Diff line Loading @@ -135,6 +135,7 @@ public class Call implements CreateConnectionResponse, EventManager.Loggable, void onConferenceStateChanged(Call call, boolean isConference); boolean onCanceledViaNewOutgoingCallBroadcast(Call call, long disconnectionTimeout); void onHoldToneRequested(Call call); void onCallHoldFailed(Call call); void onConnectionEvent(Call call, String event, Bundle extras); void onExternalCallChanged(Call call, boolean isExternalCall); void onRttInitiationFailure(Call call, int reason); Loading Loading @@ -210,6 +211,8 @@ public class Call implements CreateConnectionResponse, EventManager.Loggable, @Override public void onHoldToneRequested(Call call) {} @Override public void onCallHoldFailed(Call call) {} @Override public void onConnectionEvent(Call call, String event, Bundle extras) {} @Override public void onExternalCallChanged(Call call, boolean isExternalCall) {} Loading Loading @@ -3043,6 +3046,10 @@ public class Call implements CreateConnectionResponse, EventManager.Loggable, for (Listener l : mListeners) { l.onHoldToneRequested(this); } } else if (Connection.EVENT_CALL_HOLD_FAILED.equals(event)) { for (Listener l : mListeners) { l.onCallHoldFailed(this); } } else { for (Listener l : mListeners) { l.onConnectionEvent(this, event, extras); Loading
src/com/android/server/telecom/CallAudioManager.java +1 −0 Original line number Diff line number Diff line Loading @@ -534,6 +534,7 @@ public class CallAudioManager extends CallsManagerListenerBase { onCallLeavingActiveDialingOrConnecting(); break; case CallState.RINGING: case CallState.ANSWERED: onCallLeavingRinging(); break; case CallState.ON_HOLD: Loading
src/com/android/server/telecom/CallsManager.java +12 −0 Original line number Diff line number Diff line Loading @@ -927,6 +927,18 @@ public class CallsManager extends Call.ListenerBase return mCallAudioManager.getForegroundCall(); } @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. for (Call call1 : mCalls) { if (call1 != call && call1.getState() == CallState.ANSWERED) { setCallState(call1, CallState.RINGING, "hold failed on other call"); } } } @Override public UserHandle getCurrentUserHandle() { return mCurrentUserHandle; Loading