Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2017
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.75 KB | None | 0 0
  1. package com.example.group.travilling.travilling.chat;
  2. import android.content.SharedPreferences;
  3. import android.os.Bundle;
  4. import android.preference.PreferenceManager;
  5. import android.support.v7.app.AppCompatActivity;
  6. import android.util.Log;
  7.  
  8. import com.example.group.travilling.travilling.R;
  9. import com.example.group.travilling.travilling.common.Common;
  10. import com.quickblox.auth.QBAuth;
  11. import com.quickblox.auth.session.QBSession;
  12. import com.quickblox.chat.QBChatService;
  13. import com.quickblox.chat.QBSignaling;
  14. import com.quickblox.chat.QBWebRTCSignaling;
  15. import com.quickblox.chat.listeners.QBVideoChatSignalingManagerListener;
  16. import com.quickblox.core.QBEntityCallback;
  17. import com.quickblox.core.exception.QBResponseException;
  18. import com.quickblox.users.model.QBUser;
  19. import com.quickblox.videochat.webrtc.QBRTCClient;
  20. import com.quickblox.videochat.webrtc.QBRTCSession;
  21. import com.quickblox.videochat.webrtc.QBRTCTypes;
  22. import com.quickblox.videochat.webrtc.callbacks.QBRTCClientSessionCallbacks;
  23. import com.quickblox.videochat.webrtc.callbacks.QBRTCClientVideoTracksCallbacks;
  24. import com.quickblox.videochat.webrtc.callbacks.QBRTCSessionConnectionCallbacks;
  25. import com.quickblox.videochat.webrtc.exception.QBRTCException;
  26. import com.quickblox.videochat.webrtc.view.QBRTCSurfaceView;
  27. import com.quickblox.videochat.webrtc.view.QBRTCVideoTrack;
  28.  
  29. import org.webrtc.RendererCommon;
  30. import org.webrtc.VideoRenderer;
  31.  
  32. import java.util.ArrayList;
  33. import java.util.HashMap;
  34. import java.util.List;
  35. import java.util.Map;
  36.  
  37. import static com.quickblox.videochat.webrtc.QBRTCTypes.QBConferenceType.QB_CONFERENCE_TYPE_VIDEO;
  38.  
  39. public class call_activity extends AppCompatActivity {
  40. SharedPreferences prefs;
  41.  
  42. @Override
  43. protected void onCreate(Bundle savedInstanceState) {
  44. super.onCreate(savedInstanceState);
  45. setContentView(R.layout.activity_audio_activity);
  46. prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
  47.  
  48.  
  49. QBChatService.ConfigurationBuilder chatServiceConfigurationBuilder = new QBChatService.ConfigurationBuilder();
  50. chatServiceConfigurationBuilder.setSocketTimeout(180); //Sets chat socket's read timeout in seconds
  51. chatServiceConfigurationBuilder.setKeepAlive(true); //Sets connection socket's keepAlive option.
  52. QBChatService.setConfigurationBuilder(chatServiceConfigurationBuilder);
  53.  
  54.  
  55. // String login = "login";
  56. // String password = "password";
  57.  
  58. // final QBUser user = new QBUser(login, password);
  59. final QBUser user = new QBUser("u" + prefs.getInt("account_phone_chat", 0) + "", Common.pass);
  60.  
  61. // CREATE SESSION WITH USER
  62. // If you use create session with user data,
  63. // then the user will be logged in automatically
  64. QBAuth.createSession().performAsync(new QBEntityCallback<QBSession>() {
  65. @Override
  66. public void onSuccess(final QBSession qbSession, Bundle bundle) {
  67. user.setId(Integer.parseInt(prefs.getString("user_id","0")));
  68. // qbUser.setPassword(BaseService.getBaseService().getToken());
  69. if (!QBChatService.getInstance().isLoggedIn()) {
  70.  
  71. QBChatService.getInstance().login(user, new QBEntityCallback() {
  72. @Override
  73. public void onSuccess(Object o, Bundle bundle) {
  74. call();
  75. }
  76.  
  77. @Override
  78. public void onError(QBResponseException e) {
  79. call();
  80.  
  81. Log.e("errorwhyis!", e.getMessage());
  82. }
  83. });
  84. // mDialog.dismiss();
  85. } else {
  86. System.out.println("SFSSFFSFSFSDF");
  87. call();
  88.  
  89. }
  90. }
  91.  
  92.  
  93. @Override
  94. public void onError(QBResponseException e) {
  95. Log.e("error", e.getMessage() + "");
  96. }
  97. });
  98.  
  99. }
  100.  
  101. private void call() {
  102.  
  103.  
  104. //Add signalling manager
  105. add_signlling_manager();
  106.  
  107. //Notify RTCClient that you are ready to receive calls
  108. QBRTCClient.getInstance(getBaseContext()).prepareToProcessCalls();
  109.  
  110. //To listen for the callbacks use the following methods:
  111.  
  112. QBRTCClient.getInstance(getBaseContext()).addSessionCallbacksListener(new QBRTCClientSessionCallbacks() {
  113. // * Called each time when new session request is received.
  114.  
  115. public void onReceiveNewSession(QBRTCSession session) {
  116.  
  117. // obtain received user info
  118. Map<String, String> userInfo = session.getUserInfo();
  119.  
  120. // .....
  121. // ..... your code
  122. // .....
  123.  
  124.  
  125. // Set userInfo
  126. // User can set any string key and value in user info
  127. // Map<String,String> userInfo = new HashMap<String,String>();
  128. // userInfo.put("Key", "Value");
  129.  
  130. // Accept incoming call
  131. session.acceptCall(userInfo);
  132.  
  133. // Rejecting call
  134. // session.rejectCall(userInfo);
  135.  
  136.  
  137. // session.hangUp(userInfo);
  138.  
  139. }
  140.  
  141. /**
  142. * Called in case when user didn't answer in timer expiration period
  143. */
  144. public void onUserNotAnswer(QBRTCSession session, Integer userID) {
  145. System.out.println("NOOOOOOAAAAAA");
  146. }
  147.  
  148. /**
  149. * Called in case when opponent has rejected you call
  150. */
  151. public void onCallRejectByUser(QBRTCSession session, Integer userID, Map<String, String> userInfo) {
  152. System.out.println("NOOOOOOAAAAAA22");
  153. }
  154.  
  155. /**
  156. * Called in case when opponent has accepted you call
  157. */
  158. public void onCallAcceptByUser(QBRTCSession session, Integer userID, Map<String, String> userInfo) {
  159. System.out.println("NOOOOOOAAAAAA233");
  160.  
  161.  
  162. }
  163.  
  164. /**
  165. * Called in case when opponent hung up
  166. */
  167. @Override
  168. public void onReceiveHangUpFromUser(QBRTCSession qbrtcSession, Integer integer, Map<String, String> map) {
  169.  
  170. }
  171.  
  172.  
  173. /**
  174. * Called in case when user didn't make any actions on received session
  175. */
  176. public void onUserNoActions(QBRTCSession session, Integer userID) {
  177. System.out.println("NOOOOOOAAAAAA555");
  178. }
  179.  
  180. /**
  181. * Called in case when session will close
  182. */
  183. public void onSessionStartClose(QBRTCSession session) {
  184. }
  185.  
  186. /**
  187. * Called when session is closed.
  188. */
  189. public void onSessionClosed(QBRTCSession session) {
  190. }
  191.  
  192. });
  193. // QBRTCClient.getInstance(getBaseContext()).removeSessionsCallbacksListener(this);
  194.  
  195.  
  196. //Track connection state
  197. addSessionCallbacksListener(new QBRTCSessionConnectionCallbacks() {
  198. @Override
  199. public void onStartConnectToUser(QBRTCSession qbrtcSession, Integer integer) {
  200. System.out.println("NOOOOOOAAAAAA88");
  201.  
  202. }
  203.  
  204. @Override
  205. public void onConnectedToUser(QBRTCSession qbrtcSession, Integer integer) {
  206. System.out.println("NOOOOOOAAAAAA999");
  207.  
  208. }
  209.  
  210. @Override
  211. public void onConnectionClosedForUser(QBRTCSession qbrtcSession, Integer integer) {
  212.  
  213. }
  214.  
  215. @Override
  216. public void onDisconnectedFromUser(QBRTCSession qbrtcSession, Integer integer) {
  217.  
  218. }
  219.  
  220. @Override
  221. public void onDisconnectedTimeoutFromUser(QBRTCSession qbrtcSession, Integer integer) {
  222.  
  223. }
  224.  
  225. @Override
  226. public void onConnectionFailedWithUser(QBRTCSession qbrtcSession, Integer integer) {
  227.  
  228. }
  229.  
  230. @Override
  231. public void onError(QBRTCSession qbrtcSession, QBRTCException e) {
  232.  
  233. }
  234. });
  235.  
  236.  
  237. //Obtain video tracks via QBRTCClientVideoTracksCallbacks interface
  238.  
  239. addVideoTrackCallbacksListener(new QBRTCClientVideoTracksCallbacks() {
  240. @Override
  241. public void onLocalVideoTrackReceive(QBRTCSession qbrtcSession, QBRTCVideoTrack qbrtcVideoTrack) {
  242.  
  243. }
  244.  
  245. @Override
  246. public void onRemoteVideoTrackReceive(QBRTCSession qbrtcSession, QBRTCVideoTrack qbrtcVideoTrack, Integer integer) {
  247.  
  248. }
  249. });
  250.  
  251.  
  252. start_call();
  253. }
  254.  
  255. //Render video stream to view
  256.  
  257. private void fillVideoView(int userId, QBRTCSurfaceView videoView, QBRTCVideoTrack videoTrack,
  258. boolean remoteRenderer) {
  259. videoTrack.addRenderer(new VideoRenderer(videoView));
  260. updateVideoView(videoView, !remoteRenderer, RendererCommon.ScalingType.SCALE_ASPECT_FILL);
  261. }
  262.  
  263. private void updateVideoView(QBRTCSurfaceView surfaceView, boolean mirror, RendererCommon.ScalingType scalingType) {
  264. surfaceView.setScalingType(scalingType);
  265. surfaceView.setMirror(mirror);
  266. surfaceView.requestLayout();
  267. }
  268.  
  269.  
  270. private void add_signlling_manager() {
  271. try {
  272.  
  273. QBChatService.getInstance().getVideoChatWebRTCSignalingManager()
  274. .addSignalingManagerListener(new QBVideoChatSignalingManagerListener() {
  275. @Override
  276. public void signalingCreated(QBSignaling qbSignaling, boolean createdLocally) {
  277. if (!createdLocally) {
  278. QBRTCClient.getInstance(getBaseContext()).addSignaling((QBWebRTCSignaling) qbSignaling);
  279. }
  280. }
  281. });
  282.  
  283. } catch (NullPointerException e) {
  284. }
  285. }
  286.  
  287. //Prepare your activity class to audio/video calls
  288. public void addSessionCallbacksListener(QBRTCSessionConnectionCallbacks callback) {
  289. }
  290.  
  291. public void addVideoTrackCallbacksListener(QBRTCClientVideoTracksCallbacks callback) {
  292. }
  293.  
  294. //and next method on QBRTCClient instance:
  295. public void addSessionCallbacksListener(QBRTCClientSessionCallbacks callback) {
  296. }
  297.  
  298.  
  299. void start_call() {
  300. //start call
  301. QBRTCTypes.QBConferenceType qbConferenceType = QB_CONFERENCE_TYPE_VIDEO;
  302.  
  303. //Initiate opponents list
  304. List<Integer> opponents = new ArrayList<Integer>();
  305. opponents.add(Common.admin_id); //12345 - QBUser ID
  306.  
  307. //Set user information
  308. // User can set any string key and value in user info
  309. // Then retrieve this data from sessions which is returned in callbacks
  310. // and parse them as he wish
  311. Map<String, String> userInfo = new HashMap<>();
  312. userInfo.put("Test", "state");
  313.  
  314. //Init session
  315. QBRTCSession session =
  316. QBRTCClient.getInstance(this).createNewSessionWithOpponents(opponents, qbConferenceType);
  317.  
  318. //Start call
  319. System.out.println("SSSSSSSSSSSTTTTTTTTTTTA");
  320. session.startCall(userInfo);
  321. }
  322. }
  323.  
  324. package com.example.group.test_calender.traveling_admin.booking.chat;
  325.  
  326.  
  327. import android.app.Service;
  328. import android.content.Intent;
  329. import android.os.Bundle;
  330. import android.os.IBinder;
  331. import android.util.Log;
  332.  
  333. import com.example.group.test_calender.traveling_admin.booking.common.Common;
  334. import com.quickblox.auth.QBAuth;
  335. import com.quickblox.auth.session.QBSession;
  336. import com.quickblox.auth.session.QBSettings;
  337. import com.quickblox.chat.QBChatService;
  338. import com.quickblox.chat.QBSignaling;
  339. import com.quickblox.chat.QBWebRTCSignaling;
  340. import com.quickblox.chat.listeners.QBVideoChatSignalingManagerListener;
  341. import com.quickblox.core.QBEntityCallback;
  342. import com.quickblox.core.exception.QBResponseException;
  343. import com.quickblox.users.model.QBUser;
  344. import com.quickblox.videochat.webrtc.QBRTCClient;
  345. import com.quickblox.videochat.webrtc.QBRTCSession;
  346. import com.quickblox.videochat.webrtc.callbacks.QBRTCClientSessionCallbacks;
  347.  
  348. import java.util.Map;
  349.  
  350. //import static com.dev.trueme.TrueMeConstants.TRUE_ME_USERNEME;
  351.  
  352. public class VideoCallService extends Service implements QBRTCClientSessionCallbacks {
  353.  
  354. public VideoCallService() {
  355. }
  356.  
  357. @Override
  358. public IBinder onBind(Intent intent) {
  359.  
  360. return null;
  361. }
  362.  
  363.  
  364.  
  365. @Override
  366. public int onStartCommand(Intent intent, int flags, int startId) {
  367. try {
  368. QBSettings.getInstance().init(getBaseContext(), Common.APP_ID, Common.AUTH_KEY, Common.AUTH_SECURITY);
  369. QBSettings.getInstance().setAccountKey(Common.ACCOUNT_KEY);
  370. QBChatService.setDebugEnabled(true);
  371.  
  372. QBChatService.ConfigurationBuilder chatServiceConfigurationBuilder = new QBChatService.ConfigurationBuilder();
  373. chatServiceConfigurationBuilder.setSocketTimeout(180); //Sets chat socket's read timeout in seconds
  374. chatServiceConfigurationBuilder.setKeepAlive(true); //Sets connection socket's keepAlive option.
  375. QBChatService.setConfigurationBuilder(chatServiceConfigurationBuilder);
  376.  
  377. Log.wtf("service", "start");
  378.  
  379.  
  380. }catch (Exception e){
  381. Log.wtf("ex",""+e);
  382. }
  383. return START_STICKY;
  384. }
  385.  
  386.  
  387. private void InitSignalling() {
  388.  
  389. QBChatService.getInstance().getVideoChatWebRTCSignalingManager()
  390. .addSignalingManagerListener(new QBVideoChatSignalingManagerListener() {
  391. @Override
  392. public void signalingCreated(QBSignaling qbSignaling, boolean createdLocally) {
  393. if (!createdLocally) {
  394. QBRTCClient.getInstance(VideoCallService.this).addSignaling((QBWebRTCSignaling) qbSignaling);
  395. }
  396. }
  397. });
  398.  
  399. }
  400. public void LoginChatService()
  401. {
  402.  
  403.  
  404. final QBUser user = new QBUser(Common.user, Common.pass);
  405. // SharedPreferences s=getSharedPreferences("QBid",0);
  406. user.setId(30586775);
  407.  
  408. QBAuth.createSession().performAsync(new QBEntityCallback<QBSession>() {
  409. @Override
  410. public void onSuccess(final QBSession qbSession, Bundle bundle) {
  411. // user.setId(qbSession.getUserId());
  412. // qbUser.setPassword(BaseService.getBaseService().getToken());
  413. if (!QBChatService.getInstance().isLoggedIn()) {
  414.  
  415. QBChatService.getInstance().login(user, new QBEntityCallback() {
  416. @Override
  417. public void onSuccess(Object o, Bundle bundle) {
  418. ProcessCalls();
  419. InitSignalling();
  420. QBRTCClient.getInstance(getBaseContext()).addSessionCallbacksListener (VideoCallService.this);
  421. }
  422.  
  423. @Override
  424. public void onError(QBResponseException e) {
  425. Log.e("errorwhyis!", e.getMessage());
  426. ProcessCalls();
  427. InitSignalling();
  428. QBRTCClient.getInstance(getBaseContext()).addSessionCallbacksListener(VideoCallService.this);
  429.  
  430. }
  431. });
  432. // mDialog.dismiss();
  433. } else {
  434. System.out.println("SFSSFFSFSFSDF");
  435. ProcessCalls();
  436. InitSignalling();
  437. QBRTCClient.getInstance(getBaseContext()).addSessionCallbacksListener(VideoCallService.this);
  438.  
  439. }
  440. }
  441.  
  442.  
  443. @Override
  444. public void onError(QBResponseException e) {
  445. Log.e("error", e.getMessage() + "");
  446. }
  447. });
  448.  
  449.  
  450. }
  451.  
  452. private void ProcessCalls() {
  453. QBRTCClient.getInstance(this).prepareToProcessCalls();
  454. }
  455.  
  456.  
  457. @Override
  458. public void onReceiveNewSession(QBRTCSession qbrtcSession) {
  459. System.out.println("oiioikjskdkj");
  460. // DataHolder.getInstance().setServiceData(qbrtcSession,qbrtcSession.getUserInfo());
  461. startActivity(new Intent(this,VideoCallActivity.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK).putExtra("service",true));
  462. }
  463.  
  464. @Override
  465. public void onUserNoActions(QBRTCSession qbrtcSession, Integer integer) {
  466.  
  467. }
  468.  
  469. @Override
  470. public void onSessionStartClose(QBRTCSession qbrtcSession) {
  471.  
  472. }
  473.  
  474. @Override
  475. public void onUserNotAnswer(QBRTCSession qbrtcSession, Integer integer) {
  476.  
  477. }
  478.  
  479. @Override
  480. public void onCallRejectByUser(QBRTCSession qbrtcSession, Integer integer, Map<String, String> map) {
  481.  
  482. }
  483.  
  484. @Override
  485. public void onCallAcceptByUser(QBRTCSession qbrtcSession, Integer integer, Map<String, String> map) {
  486.  
  487. }
  488.  
  489. @Override
  490. public void onReceiveHangUpFromUser(QBRTCSession qbrtcSession, Integer integer, Map<String, String> map) {
  491.  
  492. }
  493.  
  494. @Override
  495. public void onSessionClosed(QBRTCSession qbrtcSession) {
  496.  
  497. }
  498. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement