From 6ddc0d8f0c59c8d0c787c2dca7f00613413ed558 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 11 Apr 2012 16:50:56 +0200 Subject: [PATCH] Speaker toggle checked and disabled if needed --- src/org/linphone/AbstractCalleesActivity.java | 6 ++++++ src/org/linphone/VideoCallActivity.java | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/org/linphone/AbstractCalleesActivity.java b/src/org/linphone/AbstractCalleesActivity.java index c88db583b..a46a9bf3f 100644 --- a/src/org/linphone/AbstractCalleesActivity.java +++ b/src/org/linphone/AbstractCalleesActivity.java @@ -31,6 +31,7 @@ import org.linphone.core.LinphoneCall; import org.linphone.core.LinphoneCall.State; import org.linphone.core.LinphoneCore; import org.linphone.core.Log; +import org.linphone.ui.ToggleImageButton; import android.app.ListActivity; import android.net.Uri; @@ -85,6 +86,11 @@ public abstract class AbstractCalleesActivity extends ListActivity implements Li View speaker = findViewById(R.id.toggleSpeaker); speaker.setOnClickListener(this); mSpeakerButton = (Checkable) speaker; + if (LinphoneManager.getInstance().isSpeakerOn()) + { + ((ToggleImageButton) speaker).setChecked(true); + speaker.setEnabled(false); + } super.onCreate(savedInstanceState); } diff --git a/src/org/linphone/VideoCallActivity.java b/src/org/linphone/VideoCallActivity.java index 32b552293..1d7e4758f 100755 --- a/src/org/linphone/VideoCallActivity.java +++ b/src/org/linphone/VideoCallActivity.java @@ -29,6 +29,7 @@ import org.linphone.mediastream.Version; import org.linphone.mediastream.video.AndroidVideoWindowImpl; import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration; import org.linphone.ui.Numpad; +import org.linphone.ui.ToggleImageButton; import android.app.Activity; import android.app.AlertDialog; @@ -163,11 +164,19 @@ public class VideoCallActivity extends Activity implements LinphoneOnCallStateCh if (Version.isXLargeScreen(this)) { findViewById(R.id.toggleMuteMic).setOnClickListener(this); + findViewById(R.id.toggleSpeaker).setOnClickListener(this); findViewById(R.id.incallNumpadShow).setOnClickListener(this); findViewById(R.id.incallHang).setOnClickListener(this); findViewById(R.id.switch_camera).setOnClickListener(this); findViewById(R.id.conf_simple_pause).setOnClickListener(this); findViewById(R.id.conf_simple_video).setOnClickListener(this); + + if (LinphoneManager.getInstance().isSpeakerOn()) + { + ToggleImageButton speaker = (ToggleImageButton) findViewById(R.id.toggleSpeaker); + speaker.setChecked(true); + speaker.setEnabled(false); + } } } @@ -350,6 +359,13 @@ public class VideoCallActivity extends Activity implements LinphoneOnCallStateCh case R.id.incallHang: terminateCurrentCallOrConferenceOrAll(); break; + case R.id.toggleSpeaker: + if (((Checkable) v).isChecked()) { + LinphoneManager.getInstance().routeAudioToSpeaker(); + } else { + LinphoneManager.getInstance().routeAudioToReceiver(); + } + break; case R.id.incallNumpadShow: showDialog(numpadDialogId); break;