Last active
September 11, 2015 00:01
-
-
Save hatpick/f8e99cd4eda3bdefc3b1 to your computer and use it in GitHub Desktop.
Sinch Call
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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