diff --git a/app/src/main/java/com/nynja/mobile/communicator/data/db/DbHelper.java b/app/src/main/java/com/nynja/mobile/communicator/data/db/DbHelper.java index 8ed7216650e2223891d45a2469f17a95458ad0af..6bd219c59cf4ae23d0093040071088fce5964318 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/data/db/DbHelper.java +++ b/app/src/main/java/com/nynja/mobile/communicator/data/db/DbHelper.java @@ -383,7 +383,9 @@ public class DbHelper { cursor.close(); } } - auth.settings = getAuthFeatures(auth); + if (auth != null) { + auth.settings = getAuthFeatures(auth); + } return auth; } diff --git a/app/src/main/java/com/nynja/mobile/communicator/data/models/nynjamodels/MessageModel.java b/app/src/main/java/com/nynja/mobile/communicator/data/models/nynjamodels/MessageModel.java index 0225b1fd4f4e629fa56ff15174b6c922005378b0..c4822f324cdad42ce42a6f90e2da70b4276f1b20 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/data/models/nynjamodels/MessageModel.java +++ b/app/src/main/java/com/nynja/mobile/communicator/data/models/nynjamodels/MessageModel.java @@ -333,10 +333,12 @@ public class MessageModel extends BaseNynjaModel implements Cloneable { } public boolean isMyMessage(@NonNull String myRosterID) { + if (myRosterID == null || from == null) return false; return myRosterID.equalsIgnoreCase(from); } public boolean isMyselfMessage(@NonNull String myRosterID) { + if (myRosterID == null || from == null || to == null) return false; return myRosterID.equalsIgnoreCase(from) && myRosterID.equalsIgnoreCase(to); } diff --git a/app/src/main/java/com/nynja/mobile/communicator/data/sdk/calls/ConferenceSDKModule.java b/app/src/main/java/com/nynja/mobile/communicator/data/sdk/calls/ConferenceSDKModule.java index 12ff57c0ed4cd49aaaed95d852561089d32e6f4f..2f839275ce12ee77cfc1d6dfcfbf9d0ee345bfe0 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/data/sdk/calls/ConferenceSDKModule.java +++ b/app/src/main/java/com/nynja/mobile/communicator/data/sdk/calls/ConferenceSDKModule.java @@ -1283,6 +1283,7 @@ public class ConferenceSDKModule extends BaseSDKModule { private void onCallStateHandle(NYNCall call, boolean isActiveCall, boolean forceFireEvent) { if (call != null) { + String callId = call.callId(); String roomId = (call.isConference() ? call.getChatRoomId() : (call.isOutgoing() ? call.callee() : call.caller())); NYNCallState state = call.callState(); @@ -1315,7 +1316,6 @@ public class ConferenceSDKModule extends BaseSDKModule { private void onCallEndedHandle(NYNCall call, String callId, boolean forceFireEvent) { if (call != null) { - String callId = call.callId(); String roomId = (call.isConference() ? call.getChatRoomId() : (call.isOutgoing() ? call.callee() : call.caller())); if (mMyAcceptedElsewhereCalls.containsKey(callId)) { @@ -3251,13 +3251,6 @@ public class ConferenceSDKModule extends BaseSDKModule { removeCallFromElsewhereCallsList(callId, true); } - private synchronized void onStateChangedForCall(NYNCall iConference) { - onCallStateHandle(iConference, false); - for (ConferenceSDKListener conferenceSDKListener : mConferenceSDKListener) { - conferenceSDKListener.onStateChangedForCall(iConference); - } - } - private int getConferenceMembersCount(NYNCall iConference) { int membersCount = 1; if (iConference != null && iConference.isConference()) { diff --git a/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/MainActivityPresenter.kt b/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/MainActivityPresenter.kt index 78b044939568d790bff80f4b277c5f7104726863..f5738617aed7887aaa1730af067f0e1324efafd4 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/MainActivityPresenter.kt +++ b/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/MainActivityPresenter.kt @@ -660,11 +660,9 @@ class MainActivityPresenter : ConferenceSDKPresenter() { viewState.onConferenceStateChanged(activeConferenceCall) } - override fun onStateChangedForCall(iConference: NYNCall?) { + override fun onStateChangedForCall(membersCount: Int) { if (attachedViews.size == 0) return - if (iConference != null) { - viewState.onStateChangedForCall(iConference.callId()) - } + viewState.onStateChangedForCall(membersCount) } override fun onAcceptedElsewhereConference(conferenceId: String) { diff --git a/app/src/main/java/com/nynja/mobile/communicator/mvp/view/MainActivityView.java b/app/src/main/java/com/nynja/mobile/communicator/mvp/view/MainActivityView.java index 604679b0e03685794392496c507039d4fc1e317a..4cd06c29eabdc23c171fd8532c3211e1d30ccf1d 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/mvp/view/MainActivityView.java +++ b/app/src/main/java/com/nynja/mobile/communicator/mvp/view/MainActivityView.java @@ -41,7 +41,7 @@ public interface MainActivityView extends JoinGroupView { void onConferenceStateChanged(ActiveConferenceCall activeConferenceCall); - void onStateChangedForCall(String callId); + void onStateChangedForCall(int membersCount); void onAcceptedElsewhereConference(String conferenceId); diff --git a/app/src/main/java/com/nynja/mobile/communicator/ui/activities/MainActivity.java b/app/src/main/java/com/nynja/mobile/communicator/ui/activities/MainActivity.java index 92a23114050d93a25b0fb0ddf82c0fbd01ac9e1b..62c3d104e670113399d7b9cdb05cfd98ae390742 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/ui/activities/MainActivity.java +++ b/app/src/main/java/com/nynja/mobile/communicator/ui/activities/MainActivity.java @@ -624,7 +624,7 @@ public class MainActivity extends BaseActivity implements MainActivityView, } @Override - public void onStateChangedForCall(String callId) { + public void onStateChangedForCall(int membersCount) { runOnUiThread(() -> { onCallsStateChanged(); }); diff --git a/app/src/main/java/com/nynja/mobile/communicator/ui/fragments/conference/ConferenceVideoFragment.java b/app/src/main/java/com/nynja/mobile/communicator/ui/fragments/conference/ConferenceVideoFragment.java index af28f6a56fc9f9f077a8fd803c0d2e2d2ccf51d0..07daac9674a1d5f3b165fcd8a4e9a0605fdc98b9 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/ui/fragments/conference/ConferenceVideoFragment.java +++ b/app/src/main/java/com/nynja/mobile/communicator/ui/fragments/conference/ConferenceVideoFragment.java @@ -511,6 +511,7 @@ public class ConferenceVideoFragment extends BaseFragment implements ConferenceV if (!activeConferenceCall.mConference.isConference()) return; if (!activeConferenceCall.mConference.isRunning()) return; if (!activeConferenceCall.isVideoEnabled) return; + if (mConfParticipantsAdapter == null) return; if (StringUtils.isNotEmpty(trackId)) { Timber.d("ConferenceVideoFragment::removeRemoteVideoRenderer()");