IMS: Notify about change of TTY mode of other call participants
Pass notification to Phone app
Bug: 18247323
Change-Id: I428f8df60ebada280c6aa16debf1ff44246533bd
diff --git a/src/java/com/android/ims/ImsCall.java b/src/java/com/android/ims/ImsCall.java
index 0a98d8e..ee8ec11 100755
--- a/src/java/com/android/ims/ImsCall.java
+++ b/src/java/com/android/ims/ImsCall.java
@@ -408,6 +408,16 @@
public void onCallHandoverFailed(ImsCall imsCall, int srcAccessTech, int targetAccessTech,
ImsReasonInfo reasonInfo) {
}
+
+ /*
+ * Called when TTY mode of remote party changed
+ *
+ * @param call the call object that carries out the IMS call
+ * @param mode TTY mode of remote party
+ */
+ public void onCallSessionTtyModeReceived(ImsCall call, int mode) {
+ // no-op
+ }
}
@@ -2949,29 +2959,17 @@
+ ", mode=" + mode);
}
- int settingsTtyMode = Settings.Secure.getInt(
- mContext.getContentResolver(),
- Settings.Secure.PREFERRED_TTY_MODE,
- TelecomManager.TTY_MODE_OFF);
- if (settingsTtyMode == TelecomManager.TTY_MODE_OFF) {
- // Notify the user that TTY mode changed in the far device
- int resId = 0;
- switch (mode) {
- case TelecomManager.TTY_MODE_FULL:
- resId = com.android.internal.R.string.peerTtyModeFull;
- break;
- case TelecomManager.TTY_MODE_HCO:
- resId = com.android.internal.R.string.peerTtyModeHco;
- break;
- case TelecomManager.TTY_MODE_VCO:
- resId = com.android.internal.R.string.peerTtyModeVco;
- break;
- case TelecomManager.TTY_MODE_OFF:
- resId = com.android.internal.R.string.peerTtyModeOff;
- break;
- }
- if (resId != 0) {
- Toast.makeText(mContext, resId, Toast.LENGTH_SHORT).show();
+ ImsCall.Listener listener;
+
+ synchronized(ImsCall.this) {
+ listener = mListener;
+ }
+
+ if (listener != null) {
+ try {
+ listener.onCallSessionTtyModeReceived(ImsCall.this, mode);
+ } catch (Throwable t) {
+ loge("callSessionTtyModeReceived :: ", t);
}
}
}