diff options
author | Santos Cordon <santoscordon@google.com> | 2013-07-30 18:44:21 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-07-30 18:44:22 +0000 |
commit | 8f34bc316f681d185f99e7e87cd959b391b9b86c (patch) | |
tree | 43fb809ce7be6aba651cc9863273e3dc2c6dc814 | |
parent | dec7e7e30e0352f08a6735e31c276a2aec2f554c (diff) | |
parent | 1d919f8a2654c82d8a605a56037488b0681a9e89 (diff) |
Merge "Adding hold support to phone call."
3 files changed, 47 insertions, 10 deletions
diff --git a/InCallUI/src/com/android/incallui/CallButtonFragment.java b/InCallUI/src/com/android/incallui/CallButtonFragment.java index 0e9fa9a47..619720e02 100644 --- a/InCallUI/src/com/android/incallui/CallButtonFragment.java +++ b/InCallUI/src/com/android/incallui/CallButtonFragment.java @@ -32,6 +32,11 @@ import android.widget.ToggleButton; public class CallButtonFragment extends BaseFragment<CallButtonPresenter> implements CallButtonPresenter.CallButtonUi { + private ToggleButton mMuteButton; + private ToggleButton mAudioButton; + private ToggleButton mHoldButton; + private View mEndCallButton; + @Override CallButtonPresenter createPresenter() { return new CallButtonPresenter(); @@ -51,30 +56,38 @@ public class CallButtonFragment extends BaseFragment<CallButtonPresenter> Bundle savedInstanceState) { final View parent = inflater.inflate(R.layout.call_button_fragment, container, false); - final View endCallButton = parent.findViewById(R.id.endButton); - endCallButton.setOnClickListener(new View.OnClickListener() { + mEndCallButton = parent.findViewById(R.id.endButton); + mEndCallButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getPresenter().endCallClicked(); } }); - final ToggleButton toggleButton = (ToggleButton) parent.findViewById(R.id.muteButton); - toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + mMuteButton = (ToggleButton) parent.findViewById(R.id.muteButton); + mMuteButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { getPresenter().muteClicked(isChecked); } }); - final ToggleButton audioButton = (ToggleButton) parent.findViewById(R.id.audioButton); - audioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + mAudioButton = (ToggleButton) parent.findViewById(R.id.audioButton); + mAudioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { getPresenter().speakerClicked(isChecked); } }); + mHoldButton = (ToggleButton) parent.findViewById(R.id.holdButton); + mHoldButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + getPresenter().holdClicked(isChecked); + } + }); + return parent; } @@ -94,13 +107,19 @@ public class CallButtonFragment extends BaseFragment<CallButtonPresenter> @Override public void setMute(boolean value) { - final ToggleButton button = (ToggleButton) getView().findViewById(R.id.muteButton); - button.setChecked(value); + mMuteButton.setChecked(value); } + /** + * TODO(klp): Rename this from setSpeaker() to setAudio() once it does more than speakerphone. + */ @Override public void setSpeaker(boolean value) { - final ToggleButton button = (ToggleButton) getView().findViewById(R.id.audioButton); - button.setChecked(value); + mAudioButton.setChecked(value); + } + + @Override + public void setHold(boolean value) { + mHoldButton.setChecked(value); } } diff --git a/InCallUI/src/com/android/incallui/CallButtonPresenter.java b/InCallUI/src/com/android/incallui/CallButtonPresenter.java index ab47867a2..be76f2d21 100644 --- a/InCallUI/src/com/android/incallui/CallButtonPresenter.java +++ b/InCallUI/src/com/android/incallui/CallButtonPresenter.java @@ -46,6 +46,8 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto CallCommandClient.getInstance().disconnectCall(1); mEndCallListener.onCallEnd(); + + // TODO(klp): These states should come from Call objects from the CallList. reset(); } @@ -53,6 +55,7 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto getUi().setVisible(false); getUi().setMute(false); getUi().setSpeaker(false); + getUi().setHold(false); } public void muteClicked(boolean checked) { @@ -65,6 +68,12 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto getUi().setSpeaker(checked); } + public void holdClicked(boolean checked) { + // TODO(klp): use appropriate hold callId. + CallCommandClient.getInstance().hold(1, true); + getUi().setHold(checked); + } + public void setEndCallListener(EndCallListener endCallListener) { mEndCallListener = endCallListener; } @@ -73,6 +82,7 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto void setVisible(boolean on); void setMute(boolean on); void setSpeaker(boolean on); + void setHold(boolean on); } public interface EndCallListener { diff --git a/InCallUI/src/com/android/incallui/CallCommandClient.java b/InCallUI/src/com/android/incallui/CallCommandClient.java index 4b2512bce..c63158809 100644 --- a/InCallUI/src/com/android/incallui/CallCommandClient.java +++ b/InCallUI/src/com/android/incallui/CallCommandClient.java @@ -75,6 +75,14 @@ public class CallCommandClient { } } + public void hold(int callId, boolean onOff) { + try { + mCommandService.hold(callId, onOff); + } catch (RemoteException e) { + Log.e(TAG, "Error holding call.", e); + } + } + public void turnSpeakerOn(boolean onOff) { try { mCommandService.speaker(onOff); |