summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--InCallUI/src/com/android/incallui/CallButtonFragment.java39
-rw-r--r--InCallUI/src/com/android/incallui/CallButtonPresenter.java10
-rw-r--r--InCallUI/src/com/android/incallui/CallCommandClient.java8
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);