9393import live .videosdk .rtc .android .java .Common .Roboto_font ;
9494import live .videosdk .rtc .android .java .Common .Utils .HelperClass ;
9595import live .videosdk .rtc .android .java .Common .Utils .NetworkUtils ;
96+ import live .videosdk .rtc .android .java .Service .ForegroundService ;
9697import live .videosdk .rtc .android .lib .AppRTCAudioManager ;
9798import live .videosdk .rtc .android .lib .JsonUtils ;
99+ import live .videosdk .rtc .android .lib .MeetingState ;
98100import live .videosdk .rtc .android .lib .PubSubMessage ;
99101import live .videosdk .rtc .android .listeners .MeetingEventListener ;
100102import live .videosdk .rtc .android .listeners .MicRequestListener ;
@@ -471,6 +473,10 @@ public void onMeetingJoined() {
471473 // Local participant listeners
472474 setLocalListeners ();
473475
476+ Intent serviceIntent = new Intent (getApplicationContext (), ForegroundService .class );
477+ serviceIntent .setAction (ForegroundService .ACTION_START );
478+ startService (serviceIntent );
479+
474480
475481 new NetworkUtils (OneToOneCallActivity .this ).fetchMeetingTime (meeting .getMeetingId (), token , new ResponseListener <Integer >() {
476482 @ Override
@@ -480,25 +486,30 @@ public void onResponse(Integer meetingTime) {
480486 }
481487 });
482488
483- chatListener = new PubSubMessageListener () {
484- @ Override
485- public void onMessageReceived (PubSubMessage pubSubMessage ) {
486- if (!pubSubMessage .getSenderId ().equals (meeting .getLocalParticipant ().getId ())) {
487- View parentLayout = findViewById (android .R .id .content );
488- Snackbar snackbar =
489- Snackbar .make (parentLayout , pubSubMessage .getSenderName () + " says: " +
490- pubSubMessage .getMessage (), Snackbar .LENGTH_SHORT )
491- .setDuration (2000 );
492- View snackbarView = snackbar .getView ();
493- HelperClass .setSnackBarStyle (snackbarView , 0 );
494- snackbar .getView ().setOnClickListener (view -> snackbar .dismiss ());
495- snackbar .show ();
496- }
489+ chatListener = new PubSubMessageListener () {
490+ @ Override
491+ public void onMessageReceived (PubSubMessage pubSubMessage ) {
492+ if (!pubSubMessage .getSenderId ().equals (meeting .getLocalParticipant ().getId ())) {
493+ View parentLayout = findViewById (android .R .id .content );
494+ Snackbar snackbar =
495+ Snackbar .make (parentLayout , pubSubMessage .getSenderName () + " says: " +
496+ pubSubMessage .getMessage (), Snackbar .LENGTH_SHORT )
497+ .setDuration (2000 );
498+ View snackbarView = snackbar .getView ();
499+ HelperClass .setSnackBarStyle (snackbarView , 0 );
500+ snackbar .getView ().setOnClickListener (view -> snackbar .dismiss ());
501+ snackbar .show ();
497502 }
498- };
503+ }
504+
505+ @ Override
506+ public void onOldMessagesReceived (List <PubSubMessage > messages ) {
499507
500- // notify user of any new messages
501- meeting .pubSub .subscribe ("CHAT" , chatListener );
508+ }
509+ };
510+
511+ // notify user of any new messages
512+ meeting .pubSub .subscribe ("CHAT" , chatListener );
502513
503514 //terminate meeting in 10 minutes
504515 new Handler ().postDelayed (new Runnable () {
@@ -566,6 +577,10 @@ public void onMeetingLeft() {
566577 | Intent .FLAG_ACTIVITY_CLEAR_TOP | Intent .FLAG_ACTIVITY_CLEAR_TASK );
567578 startActivity (intents );
568579
580+ Intent serviceIntent = new Intent (getApplicationContext (), ForegroundService .class );
581+ serviceIntent .setAction (ForegroundService .ACTION_STOP );
582+ startService (serviceIntent );
583+
569584 finish ();
570585 }
571586 }
@@ -677,8 +692,8 @@ public void onSpeakerChanged(String participantId) {
677692 }
678693
679694 @ Override
680- public void onMeetingStateChanged (String state ) {
681- if (state == "FAILED" ) {
695+ public void onMeetingStateChanged (MeetingState state ) {
696+ if (state == MeetingState . DISCONNECTED ) {
682697 View parentLayout = findViewById (android .R .id .content );
683698 SpannableStringBuilder builderTextLeft = new SpannableStringBuilder ();
684699 builderTextLeft .append (" Call disconnected. Reconnecting..." );
@@ -768,7 +783,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
768783 return ;
769784 }
770785
771- meeting .enableScreenShare (data );
786+ meeting .enableScreenShare (data , true );
772787 }
773788
774789 private void updatePresenter (String participantId ) {
@@ -1650,23 +1665,33 @@ public void afterTextChanged(Editable editable) {
16501665 }
16511666 });
16521667
1668+ messageAdapter = new MessageAdapter (this , R .layout .item_message_list , new ArrayList <>(), meeting );
1669+ messageRcv .setAdapter (messageAdapter );
1670+ messageRcv .addOnLayoutChangeListener ((view , i , i1 , i2 , i3 , i4 , i5 , i6 , i7 ) ->
1671+ messageRcv .scrollToPosition (messageAdapter .getItemCount () - 1 ));
1672+
16531673 //
16541674 pubSubMessageListener = new PubSubMessageListener () {
16551675 @ Override
16561676 public void onMessageReceived (PubSubMessage message ) {
16571677 messageAdapter .addItem (message );
16581678 messageRcv .scrollToPosition (messageAdapter .getItemCount () - 1 );
16591679 }
1680+
1681+ @ Override
1682+ public void onOldMessagesReceived (List <PubSubMessage > messages ) {
1683+ for (PubSubMessage message : messages ) {
1684+ messageAdapter .addItem (message );
1685+ }
1686+ if (messages .size () > 0 ) {
1687+ messageRcv .scrollToPosition (messageAdapter .getItemCount () - 1 );
1688+ }
1689+ }
16601690 };
16611691
16621692 // Subscribe for 'CHAT' topic
1663- List < PubSubMessage > pubSubMessageList = meeting .pubSub .subscribe ("CHAT" , pubSubMessageListener );
1693+ meeting .pubSub .subscribe ("CHAT" , pubSubMessageListener );
16641694
1665- //
1666- messageAdapter = new MessageAdapter (this , R .layout .item_message_list , pubSubMessageList , meeting );
1667- messageRcv .setAdapter (messageAdapter );
1668- messageRcv .addOnLayoutChangeListener ((view , i , i1 , i2 , i3 , i4 , i5 , i6 , i7 ) ->
1669- messageRcv .scrollToPosition (messageAdapter .getItemCount () - 1 ));
16701695
16711696 v3 .findViewById (R .id .btnSend ).setOnClickListener (view -> {
16721697 String message = etmessage .getText ().toString ();
0 commit comments