Loading src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java +3 −0 Original line number Diff line number Diff line Loading @@ -458,6 +458,9 @@ public class ImsPhoneConnection extends Connection implements Rlog.d(LOG_TAG, "onDisconnect: no parent"); } synchronized (this) { if (mRttTextHandler != null) { mRttTextHandler.tearDown(); } if (mImsCall != null) mImsCall.close(); mImsCall = null; } Loading src/java/com/android/internal/telephony/imsphone/ImsRttTextHandler.java +9 −7 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.telephony.Rlog; import com.android.internal.annotations.VisibleForTesting; import java.io.IOException; import java.nio.channels.ClosedByInterruptException; import java.util.concurrent.CountDownLatch; public class ImsRttTextHandler extends Handler { Loading Loading @@ -79,17 +80,16 @@ public class ImsRttTextHandler extends Handler { String charsReceived; try { charsReceived = mReaderThreadRttTextStream.read(); } catch (ClosedByInterruptException e) { Rlog.i(LOG_TAG, "RttReaderThread - Thread interrupted. Finishing."); break; } catch (IOException e) { Rlog.e(LOG_TAG, "RttReaderThread - IOException encountered " + "reading from in-call: %s", e); "reading from in-call: ", e); obtainMessage(TEARDOWN).sendToTarget(); break; } if (charsReceived == null) { if (Thread.currentThread().isInterrupted()) { Rlog.i(LOG_TAG, "RttReaderThread - Thread interrupted. Finishing."); break; } Rlog.e(LOG_TAG, "RttReaderThread - Stream closed unexpectedly. Attempt to " + "reinitialize."); obtainMessage(TEARDOWN).sendToTarget(); Loading Loading @@ -145,7 +145,7 @@ public class ImsRttTextHandler extends Handler { int numCodepointsBuffered = mBufferedTextToNetwork .codePointCount(0, mBufferedTextToNetwork.length()); if (numCodepointsBuffered >= MAX_BUFFERED_CHARACTER_COUNT) { sendMessageAtFrontOfQueue(obtainMessage(ATTEMPT_SEND_TO_NETWORK)); sendMessage(obtainMessage(ATTEMPT_SEND_TO_NETWORK)); } else { sendEmptyMessageDelayed( ATTEMPT_SEND_TO_NETWORK, MAX_BUFFERING_DELAY_MILLIS); Loading Loading @@ -175,12 +175,13 @@ public class ImsRttTextHandler extends Handler { case EXPIRE_SENT_CODEPOINT_COUNT: mCodepointsAvailableForTransmission += msg.arg1; if (mCodepointsAvailableForTransmission > 0) { sendMessageAtFrontOfQueue(obtainMessage(ATTEMPT_SEND_TO_NETWORK)); sendMessage(obtainMessage(ATTEMPT_SEND_TO_NETWORK)); } break; case TEARDOWN: try { if (mReaderThread != null) { mReaderThread.interrupt(); mReaderThread.join(1000); } } catch (InterruptedException e) { Loading @@ -202,6 +203,7 @@ public class ImsRttTextHandler extends Handler { } public void initialize(Connection.RttTextStream rttTextStream) { Rlog.i(LOG_TAG, "Initializing: " + this); obtainMessage(INITIALIZE, rttTextStream).sendToTarget(); } Loading Loading
src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java +3 −0 Original line number Diff line number Diff line Loading @@ -458,6 +458,9 @@ public class ImsPhoneConnection extends Connection implements Rlog.d(LOG_TAG, "onDisconnect: no parent"); } synchronized (this) { if (mRttTextHandler != null) { mRttTextHandler.tearDown(); } if (mImsCall != null) mImsCall.close(); mImsCall = null; } Loading
src/java/com/android/internal/telephony/imsphone/ImsRttTextHandler.java +9 −7 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.telephony.Rlog; import com.android.internal.annotations.VisibleForTesting; import java.io.IOException; import java.nio.channels.ClosedByInterruptException; import java.util.concurrent.CountDownLatch; public class ImsRttTextHandler extends Handler { Loading Loading @@ -79,17 +80,16 @@ public class ImsRttTextHandler extends Handler { String charsReceived; try { charsReceived = mReaderThreadRttTextStream.read(); } catch (ClosedByInterruptException e) { Rlog.i(LOG_TAG, "RttReaderThread - Thread interrupted. Finishing."); break; } catch (IOException e) { Rlog.e(LOG_TAG, "RttReaderThread - IOException encountered " + "reading from in-call: %s", e); "reading from in-call: ", e); obtainMessage(TEARDOWN).sendToTarget(); break; } if (charsReceived == null) { if (Thread.currentThread().isInterrupted()) { Rlog.i(LOG_TAG, "RttReaderThread - Thread interrupted. Finishing."); break; } Rlog.e(LOG_TAG, "RttReaderThread - Stream closed unexpectedly. Attempt to " + "reinitialize."); obtainMessage(TEARDOWN).sendToTarget(); Loading Loading @@ -145,7 +145,7 @@ public class ImsRttTextHandler extends Handler { int numCodepointsBuffered = mBufferedTextToNetwork .codePointCount(0, mBufferedTextToNetwork.length()); if (numCodepointsBuffered >= MAX_BUFFERED_CHARACTER_COUNT) { sendMessageAtFrontOfQueue(obtainMessage(ATTEMPT_SEND_TO_NETWORK)); sendMessage(obtainMessage(ATTEMPT_SEND_TO_NETWORK)); } else { sendEmptyMessageDelayed( ATTEMPT_SEND_TO_NETWORK, MAX_BUFFERING_DELAY_MILLIS); Loading Loading @@ -175,12 +175,13 @@ public class ImsRttTextHandler extends Handler { case EXPIRE_SENT_CODEPOINT_COUNT: mCodepointsAvailableForTransmission += msg.arg1; if (mCodepointsAvailableForTransmission > 0) { sendMessageAtFrontOfQueue(obtainMessage(ATTEMPT_SEND_TO_NETWORK)); sendMessage(obtainMessage(ATTEMPT_SEND_TO_NETWORK)); } break; case TEARDOWN: try { if (mReaderThread != null) { mReaderThread.interrupt(); mReaderThread.join(1000); } } catch (InterruptedException e) { Loading @@ -202,6 +203,7 @@ public class ImsRttTextHandler extends Handler { } public void initialize(Connection.RttTextStream rttTextStream) { Rlog.i(LOG_TAG, "Initializing: " + this); obtainMessage(INITIALIZE, rttTextStream).sendToTarget(); } Loading