diff options
author | Hung-ying Tyan <tyanh@google.com> | 2010-10-01 17:07:48 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-10-01 17:07:48 -0700 |
commit | b6153a067ca6ec8affd782404525d6443e5f99b0 (patch) | |
tree | 5e02d6faf9d4784fde27e740bcac086b0dec6817 /telephony | |
parent | 86521295cbc8682e9bf4710728a843c34cf9144a (diff) | |
parent | 86a12d465fca7d25d99a788abda33fde5154a739 (diff) | |
download | frameworks_base-b6153a067ca6ec8affd782404525d6443e5f99b0.zip frameworks_base-b6153a067ca6ec8affd782404525d6443e5f99b0.tar.gz frameworks_base-b6153a067ca6ec8affd782404525d6443e5f99b0.tar.bz2 |
am 86a12d46: am 10e2120b: Merge "Add CallManager/Phone.setEchoSuppressionEnabled()." into gingerbread
Merge commit '86a12d465fca7d25d99a788abda33fde5154a739'
* commit '86a12d465fca7d25d99a788abda33fde5154a739':
Add CallManager/Phone.setEchoSuppressionEnabled().
Diffstat (limited to 'telephony')
5 files changed, 46 insertions, 0 deletions
diff --git a/telephony/java/com/android/internal/telephony/CallManager.java b/telephony/java/com/android/internal/telephony/CallManager.java index 7c3508f..09b7d05 100644 --- a/telephony/java/com/android/internal/telephony/CallManager.java +++ b/telephony/java/com/android/internal/telephony/CallManager.java @@ -861,6 +861,25 @@ public final class CallManager { } /** + * Enables or disables echo suppression. + */ + public void setEchoSuppressionEnabled(boolean enabled) { + if (VDBG) { + Log.d(LOG_TAG, " setEchoSuppression(" + enabled + ")"); + Log.d(LOG_TAG, this.toString()); + } + + if (hasActiveFgCall()) { + getActiveFgCall().getPhone().setEchoSuppressionEnabled(enabled); + } + + if (VDBG) { + Log.d(LOG_TAG, "End setEchoSuppression(" + enabled + ")"); + Log.d(LOG_TAG, this.toString()); + } + } + + /** * Play a DTMF tone on the active call. * * @param c should be one of 0-9, '*' or '#'. Other values will be diff --git a/telephony/java/com/android/internal/telephony/Phone.java b/telephony/java/com/android/internal/telephony/Phone.java index ec6c023..2957c7e 100644 --- a/telephony/java/com/android/internal/telephony/Phone.java +++ b/telephony/java/com/android/internal/telephony/Phone.java @@ -1187,6 +1187,11 @@ public interface Phone { boolean getMute(); /** + * Enables or disables echo suppression. + */ + void setEchoSuppressionEnabled(boolean enabled); + + /** * Invokes RIL_REQUEST_OEM_HOOK_RAW on RIL implementation. * * @param data The data for the request. diff --git a/telephony/java/com/android/internal/telephony/PhoneBase.java b/telephony/java/com/android/internal/telephony/PhoneBase.java index 5412768..74e8c1b 100644 --- a/telephony/java/com/android/internal/telephony/PhoneBase.java +++ b/telephony/java/com/android/internal/telephony/PhoneBase.java @@ -505,6 +505,10 @@ public abstract class PhoneBase extends Handler implements Phone { mCM.unregisterForResendIncallMute(h); } + public void setEchoSuppressionEnabled(boolean enabled) { + // no need for regular phone + } + /** * Subclasses of Phone probably want to replace this with a * version scoped to their packages diff --git a/telephony/java/com/android/internal/telephony/PhoneProxy.java b/telephony/java/com/android/internal/telephony/PhoneProxy.java index 9e0c087..02fdf28 100644 --- a/telephony/java/com/android/internal/telephony/PhoneProxy.java +++ b/telephony/java/com/android/internal/telephony/PhoneProxy.java @@ -578,6 +578,10 @@ public class PhoneProxy extends Handler implements Phone { return mActivePhone.getMute(); } + public void setEchoSuppressionEnabled(boolean enabled) { + mActivePhone.setEchoSuppressionEnabled(enabled); + } + public void invokeOemRilRequestRaw(byte[] data, Message response) { mActivePhone.invokeOemRilRequestRaw(data, response); } diff --git a/telephony/java/com/android/internal/telephony/sip/SipPhone.java b/telephony/java/com/android/internal/telephony/sip/SipPhone.java index 37dd971..38700cd 100755 --- a/telephony/java/com/android/internal/telephony/sip/SipPhone.java +++ b/telephony/java/com/android/internal/telephony/sip/SipPhone.java @@ -330,6 +330,20 @@ public class SipPhone extends SipPhoneBase { Log.e(LOG_TAG, "call waiting not supported"); } + @Override + public void setEchoSuppressionEnabled(boolean enabled) { + synchronized (SipPhone.class) { + AudioGroup audioGroup = foregroundCall.getAudioGroup(); + if (audioGroup == null) return; + int mode = audioGroup.getMode(); + audioGroup.setMode(enabled + ? AudioGroup.MODE_ECHO_SUPPRESSION + : AudioGroup.MODE_NORMAL); + Log.d(LOG_TAG, String.format("audioGroup mode change: %d --> %d", + mode, audioGroup.getMode())); + } + } + public void setMute(boolean muted) { synchronized (SipPhone.class) { foregroundCall.setMute(muted); |