Loading src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +24 −2 Original line number Diff line number Diff line Loading @@ -2332,10 +2332,21 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { mPhone.stopOnHoldTone(conn); mOnHoldToneStarted = false; } conn.onConnectionEvent(android.telecom.Connection.EVENT_CALL_REMOTELY_UNHELD, null); } boolean useVideoPauseWorkaround = mPhone.getContext().getResources().getBoolean( com.android.internal.R.bool.config_useVideoPauseWorkaround); if (useVideoPauseWorkaround && mSupportPauseVideo && VideoProfile.isVideo(conn.getVideoState())) { // If we are using the video pause workaround, the vendor IMS code has issues // with video pause signalling. In this case, when a call is remotely // held, the modem does not reliably change the video state of the call to be // paused. // As a workaround, we will turn on that bit now. conn.changeToUnPausedState(); } SuppServiceNotification supp = new SuppServiceNotification(); // Type of notification: 0 = MO; 1 = MT // Refer SuppServiceNotification class documentation. Loading @@ -2357,8 +2368,19 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { mOnHoldToneStarted = true; mOnHoldToneId = System.identityHashCode(conn); } conn.onConnectionEvent(android.telecom.Connection.EVENT_CALL_REMOTELY_HELD, null); boolean useVideoPauseWorkaround = mPhone.getContext().getResources().getBoolean( com.android.internal.R.bool.config_useVideoPauseWorkaround); if (useVideoPauseWorkaround && mSupportPauseVideo && VideoProfile.isVideo(conn.getVideoState())) { // If we are using the video pause workaround, the vendor IMS code has issues // with video pause signalling. In this case, when a call is remotely // held, the modem does not reliably change the video state of the call to be // paused. // As a workaround, we will turn on that bit now. conn.changeToPausedState(); } } SuppServiceNotification supp = new SuppServiceNotification(); Loading src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java +22 −4 Original line number Diff line number Diff line Loading @@ -828,10 +828,7 @@ public class ImsPhoneConnection extends Connection implements } if (!mShouldIgnoreVideoStateChanges) { if (mImsVideoCallProviderWrapper != null) { mImsVideoCallProviderWrapper.onVideoStateChanged(newVideoState); } setVideoState(newVideoState); updateVideoState(newVideoState); changed = true; } else { Rlog.d(LOG_TAG, "updateMediaCapabilities - ignoring video state change " + Loading Loading @@ -894,6 +891,13 @@ public class ImsPhoneConnection extends Connection implements return changed; } private void updateVideoState(int newVideoState) { if (mImsVideoCallProviderWrapper != null) { mImsVideoCallProviderWrapper.onVideoStateChanged(newVideoState); } setVideoState(newVideoState); } public void sendRttModifyRequest(android.telecom.Connection.RttTextStream textStream) { getImsCall().sendRttModifyRequest(); setCurrentRttTextStream(textStream); Loading Loading @@ -1175,4 +1179,18 @@ public class ImsPhoneConnection extends Connection implements return mImsVideoCallProviderWrapper.wasVideoPausedFromSource(source); } public void changeToPausedState() { int newVideoState = getVideoState() | VideoProfile.STATE_PAUSED; Rlog.i(LOG_TAG, "ImsPhoneConnection: changeToPausedState - setting paused bit; " + "newVideoState=" + VideoProfile.videoStateToString(newVideoState)); updateVideoState(newVideoState); } public void changeToUnPausedState() { int newVideoState = getVideoState() & ~VideoProfile.STATE_PAUSED; Rlog.i(LOG_TAG, "ImsPhoneConnection: changeToUnPausedState - unsetting paused bit; " + "newVideoState=" + VideoProfile.videoStateToString(newVideoState)); updateVideoState(newVideoState); } } Loading
src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +24 −2 Original line number Diff line number Diff line Loading @@ -2332,10 +2332,21 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { mPhone.stopOnHoldTone(conn); mOnHoldToneStarted = false; } conn.onConnectionEvent(android.telecom.Connection.EVENT_CALL_REMOTELY_UNHELD, null); } boolean useVideoPauseWorkaround = mPhone.getContext().getResources().getBoolean( com.android.internal.R.bool.config_useVideoPauseWorkaround); if (useVideoPauseWorkaround && mSupportPauseVideo && VideoProfile.isVideo(conn.getVideoState())) { // If we are using the video pause workaround, the vendor IMS code has issues // with video pause signalling. In this case, when a call is remotely // held, the modem does not reliably change the video state of the call to be // paused. // As a workaround, we will turn on that bit now. conn.changeToUnPausedState(); } SuppServiceNotification supp = new SuppServiceNotification(); // Type of notification: 0 = MO; 1 = MT // Refer SuppServiceNotification class documentation. Loading @@ -2357,8 +2368,19 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { mOnHoldToneStarted = true; mOnHoldToneId = System.identityHashCode(conn); } conn.onConnectionEvent(android.telecom.Connection.EVENT_CALL_REMOTELY_HELD, null); boolean useVideoPauseWorkaround = mPhone.getContext().getResources().getBoolean( com.android.internal.R.bool.config_useVideoPauseWorkaround); if (useVideoPauseWorkaround && mSupportPauseVideo && VideoProfile.isVideo(conn.getVideoState())) { // If we are using the video pause workaround, the vendor IMS code has issues // with video pause signalling. In this case, when a call is remotely // held, the modem does not reliably change the video state of the call to be // paused. // As a workaround, we will turn on that bit now. conn.changeToPausedState(); } } SuppServiceNotification supp = new SuppServiceNotification(); Loading
src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java +22 −4 Original line number Diff line number Diff line Loading @@ -828,10 +828,7 @@ public class ImsPhoneConnection extends Connection implements } if (!mShouldIgnoreVideoStateChanges) { if (mImsVideoCallProviderWrapper != null) { mImsVideoCallProviderWrapper.onVideoStateChanged(newVideoState); } setVideoState(newVideoState); updateVideoState(newVideoState); changed = true; } else { Rlog.d(LOG_TAG, "updateMediaCapabilities - ignoring video state change " + Loading Loading @@ -894,6 +891,13 @@ public class ImsPhoneConnection extends Connection implements return changed; } private void updateVideoState(int newVideoState) { if (mImsVideoCallProviderWrapper != null) { mImsVideoCallProviderWrapper.onVideoStateChanged(newVideoState); } setVideoState(newVideoState); } public void sendRttModifyRequest(android.telecom.Connection.RttTextStream textStream) { getImsCall().sendRttModifyRequest(); setCurrentRttTextStream(textStream); Loading Loading @@ -1175,4 +1179,18 @@ public class ImsPhoneConnection extends Connection implements return mImsVideoCallProviderWrapper.wasVideoPausedFromSource(source); } public void changeToPausedState() { int newVideoState = getVideoState() | VideoProfile.STATE_PAUSED; Rlog.i(LOG_TAG, "ImsPhoneConnection: changeToPausedState - setting paused bit; " + "newVideoState=" + VideoProfile.videoStateToString(newVideoState)); updateVideoState(newVideoState); } public void changeToUnPausedState() { int newVideoState = getVideoState() & ~VideoProfile.STATE_PAUSED; Rlog.i(LOG_TAG, "ImsPhoneConnection: changeToUnPausedState - unsetting paused bit; " + "newVideoState=" + VideoProfile.videoStateToString(newVideoState)); updateVideoState(newVideoState); } }