Advertisement
ecifuentes

MainActivity.java (Sinch sample)

Apr 15th, 2016
431
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.85 KB | None | 0 0
  1. package kiretech.com.sinchtest;
  2.  
  3. import android.media.AudioManager;
  4. import android.support.v7.app.AppCompatActivity;
  5. import android.os.Bundle;
  6. import android.util.Log;
  7. import android.view.View;
  8. import android.widget.Button;
  9. import android.widget.EditText;
  10. import android.widget.TextView;
  11.  
  12. import com.sinch.android.rtc.ClientRegistration;
  13. import com.sinch.android.rtc.PushPair;
  14. import com.sinch.android.rtc.Sinch;
  15. import com.sinch.android.rtc.SinchClient;
  16. import com.sinch.android.rtc.SinchClientListener;
  17. import com.sinch.android.rtc.SinchError;
  18. import com.sinch.android.rtc.calling.Call;
  19. import com.sinch.android.rtc.calling.CallClient;
  20. import com.sinch.android.rtc.calling.CallClientListener;
  21. import com.sinch.android.rtc.calling.CallListener;
  22.  
  23. import java.util.List;
  24.  
  25. public class MainActivity extends AppCompatActivity {
  26.  
  27.     private static final String APP_KEY = "d2c0c095-5468-4953-9a42-d91d23bcd52a";
  28.     private static final String APP_SECRET = "20GMb2GNdkK/N+NbAP9KbA==";
  29.     private static final String ENVIRONMENT = "sandbox.sinch.com";
  30.     Button btnStartClient;
  31.     Button btnCall;
  32.     EditText etAppUser, etCallUser;
  33.     TextView tvCallStatus;
  34.     private Call call;
  35.     SinchClient sinchClient;
  36.  
  37.  
  38.     @Override
  39.     protected void onCreate(Bundle savedInstanceState) {
  40.         super.onCreate(savedInstanceState);
  41.         setContentView(R.layout.activity_main);
  42.         etAppUser = (EditText)findViewById(R.id.appUser);
  43.  
  44.         btnStartClient = (Button) findViewById(R.id.btnStartClient);
  45.         btnStartClient.setOnClickListener(new View.OnClickListener() {
  46.             @Override
  47.             public void onClick(View v) {
  48.                 sinchClient = Sinch.getSinchClientBuilder().context(getApplicationContext())
  49.                         .applicationKey(APP_KEY)
  50.                         .applicationSecret(APP_SECRET)
  51.                         .environmentHost(ENVIRONMENT)
  52.                         .userId(etAppUser.getText().toString())
  53.                         .build();
  54.                 sinchClient.setSupportCalling(true);
  55.                 sinchClient.setSupportActiveConnectionInBackground(true);
  56.                 sinchClient.startListeningOnActiveConnection();
  57.                 sinchClient.addSinchClientListener(new SinchClientListener() {
  58.                     public void onClientStarted(SinchClient client) {
  59.                         Log.d("onClientStarted",client.toString());
  60.                     }
  61.  
  62.                     public void onClientStopped(SinchClient client) {
  63.                         Log.d("onClientStopped", "");
  64.                     }
  65.  
  66.                     public void onClientFailed(SinchClient client, SinchError error) {
  67.                         Log.d("onClientFailed", error.getMessage());
  68.                     }
  69.  
  70.                     public void onRegistrationCredentialsRequired(SinchClient client, ClientRegistration registrationCallback) {
  71.                     }
  72.  
  73.                     public void onLogMessage(int level, String area, String message) {
  74.                         Log.d("onLogMessage", message);
  75.                     }
  76.                 });
  77.                 sinchClient.getCallClient().addCallClientListener(new CallClientListener() {
  78.                     @Override
  79.                     public void onIncomingCall(CallClient callClient, Call incomingCall) {
  80.                         call = incomingCall;
  81.                         call.answer();
  82.                         call.addCallListener(new CallListener() {
  83.                             @Override
  84.                             public void onCallProgressing(Call call) {
  85.                                 Log.d("CallListener", "Call progressing");
  86.                                 tvCallStatus.setText("connecting");
  87.                             }
  88.  
  89.                             @Override
  90.                             public void onCallEstablished(Call call) {
  91.                                 Log.d("CallListener", "Call established");
  92.                                 tvCallStatus.setText("connected");
  93.                                 setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
  94.                             }
  95.  
  96.                             @Override
  97.                             public void onCallEnded(Call call) {
  98.                                 Log.d("CallListener", "Call ended");
  99.                                 tvCallStatus.setText("disconnected");
  100.                                 setVolumeControlStream(AudioManager.USE_DEFAULT_STREAM_TYPE);
  101.                             }
  102.  
  103.                             @Override
  104.                             public void onShouldSendPushNotification(Call call, List<PushPair> list) {
  105.  
  106.                             }
  107.                         });
  108.                         btnCall.setText("HANG UP");
  109.                     }
  110.                 });
  111.                 sinchClient.start();
  112.             }
  113.         });
  114.         tvCallStatus = (TextView)findViewById(R.id.callStatus);
  115.         etCallUser = (EditText)findViewById(R.id.callUser);
  116.  
  117.         btnCall = (Button)findViewById(R.id.btnCall);
  118.         btnCall.setOnClickListener(new View.OnClickListener() {
  119.             String userToCall;
  120.             @Override
  121.             public void onClick(View v) {
  122.                 if(call == null){
  123.                     userToCall = etCallUser.getText().toString();
  124.                     Log.d("CallListener", "Calling user: "+userToCall);
  125.                     call = sinchClient.getCallClient().callConference(userToCall);
  126.                     call.addCallListener(new CallListener() {
  127.                         @Override
  128.                         public void onCallProgressing(Call call) {
  129.                             Log.d("CallListener", "Call progressing");
  130.                             tvCallStatus.setText("connecting");
  131.                         }
  132.  
  133.                         @Override
  134.                         public void onCallEstablished(Call call) {
  135.                             Log.d("CallListener", "Call established");
  136.                             tvCallStatus.setText("connected");
  137.                             setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
  138.                         }
  139.  
  140.                         @Override
  141.                         public void onCallEnded(Call call) {
  142.                             Log.d("CallListener", "Call ended");
  143.                             tvCallStatus.setText("disconnected");
  144.                             setVolumeControlStream(AudioManager.USE_DEFAULT_STREAM_TYPE);
  145.                         }
  146.  
  147.                         @Override
  148.                         public void onShouldSendPushNotification(Call call, List<PushPair> list) {
  149.  
  150.                         }
  151.                     });
  152.  
  153.                     btnCall.setText("HANG UP");
  154.                 }else{
  155.                     call.hangup();
  156.                     call = null;
  157.                     btnCall.setText("CALL");
  158.                 }
  159.             }
  160.         });
  161.     }
  162.  
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement