Skip to content

Instantly share code, notes, and snippets.

@hatpick
Last active September 11, 2015 00:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hatpick/f8e99cd4eda3bdefc3b1 to your computer and use it in GitHub Desktop.
Save hatpick/f8e99cd4eda3bdefc3b1 to your computer and use it in GitHub Desktop.
Sinch Call
private Call call;
private class SinchCallClientListener implements CallClientListener {
@Override
public void onIncomingCall(CallClient callClient, Call incomingCall) {
call = incomingCall;
final AlertDialogPro.Builder callReceive = new AlertDialogPro.Builder(ChatActivity.this);
LayoutInflater factory = LayoutInflater.from(ChatActivity.this);
final View innerView = factory.inflate(R.layout.incoming_call, null);
Button accBtn = (Button) innerView.findViewById(R.id.accept_voip_call);
Button rejBtn = (Button) innerView.findViewById(R.id.reject_voip_call);
Button hangupBtn = (Button) innerView.findViewById(R.id.hangup_voip_call);
//Just for touch effect
accBtn.setOnTouchListener(TOUCH);
rejBtn.setOnTouchListener(TOUCH);
hangupBtn.setOnTouchListener(TOUCH);
callReceive.setView(innerView);
final AlertDialogPro dialog = callReceive.create();
dialog.show();
rejBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
call.hangup();
dialog.dismiss();
//send message to caller
}
});
hangupBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(call != null) {
call.hangup();
call = null;
}
dialog.dismiss();
}
});
accBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sensorManager.registerListener(ChatActivity.this, proximitySensor, SensorManager.SENSOR_DELAY_NORMAL);
SinchCallListener sinchCallListener = new SinchCallListener();
sinchCallListener.setDialog(dialog);
//TODO: set timer
call.answer();
call.addCallListener(sinchCallListener);
}
});
}
}
private class SinchCallListener implements CallListener {
private AlertDialogPro dialog;
public void setDialog(AlertDialogPro dialog) {
this.dialog = dialog;
}
@Override
public void onCallProgressing(Call progressingCall) {
Log.v(TAG, progressingCall.getState().toString());
}
@Override
public void onCallEstablished(Call establishedCall) {
myAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
}
@Override
public void onCallEnded(Call endedCall) {
call = null;
setVolumeControlStream(AudioManager.USE_DEFAULT_STREAM_TYPE);
dialog.dismiss();
sensorManager.unregisterListener(ChatActivity.this);
Log.v(TAG, endedCall.getState().toString());
}
@Override
public void onShouldSendPushNotification(Call call, List<PushPair> pushPairs) {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment