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 2f839275ce12ee77cfc1d6dfcfbf9d0ee345bfe0..65b8cf5d94d4ca25ac4f3f5cd2f52f184b62fa66 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 @@ -1538,6 +1538,7 @@ public class ConferenceSDKModule extends BaseSDKModule { @Override public void receivedStopRinging(String conferenceId) { + Timber.d("receivedStopRinging(): callId=" + conferenceId); onStopConferenceRinging(conferenceId); } @@ -1601,6 +1602,7 @@ public class ConferenceSDKModule extends BaseSDKModule { public void receivedCompletedCall(NYNCall call) { if (call == null) return; String callId = call.callId(); + Timber.d("receivedCompletedCall(): callId=" + callId); onCallEndedHandle(call, callId, true); if (callId != null && hasCreatedActiveCall() && mActiveConference.mConference != null @@ -3161,6 +3163,7 @@ public class ConferenceSDKModule extends BaseSDKModule { leaveVoiceMessage(contactPhoneId); } } else { + mNotificationHelper.clearCallPush(ActiveConferenceCall.ANDROID_10_PUSH_CALL_NTFN_ID); onConferenceEnded(conferenceId); } } @@ -3205,10 +3208,12 @@ public class ConferenceSDKModule extends BaseSDKModule { mActiveConference.mConference != null && mActiveConference.mConference.callId().contentEquals(conferenceId)) { mActiveConference.isRinging = false; + stopRinging(); if (mActiveConference.mConference.isOutgoing() && mActiveConference.isOutgoingCall) { // Nothing to do when is my outgoing call - may need check when allow multiple login } else { + mNotificationHelper.clearCallPush(ActiveConferenceCall.ANDROID_10_PUSH_CALL_NTFN_ID); //if (isP2P() && !mActiveConference.isCallRinging()) return; onConferenceEnded(conferenceId); } diff --git a/app/src/main/java/com/nynja/mobile/communicator/utils/NotificationHelper.java b/app/src/main/java/com/nynja/mobile/communicator/utils/NotificationHelper.java index f1e1b5c342754253ee8f5ad260d080469792fcaa..2137a16297ed621976e5b04042729ea5de945c7e 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/utils/NotificationHelper.java +++ b/app/src/main/java/com/nynja/mobile/communicator/utils/NotificationHelper.java @@ -311,6 +311,7 @@ public class NotificationHelper extends ContextWrapper { settingNotifications.isSound(), settingNotifications.isInAppVibrate(), notificationSoundUri); channel.setShowBadge(false); + channel.setLockscreenVisibility(NotificationCompat.VISIBILITY_PUBLIC); Timber.d("buildRingingChannel(): new channel: channel id=%s, sound=%s", id, notificationSoundUri.toString()); getManager().createNotificationChannel(channel); @@ -717,6 +718,13 @@ public class NotificationHelper extends ContextWrapper { String callId = notification.extras.getString(MainActivity.INTENT_NOTIFICATION_CALL_ID); if (StringUtils.isNotEmpty(callId) && notification.extras.getBoolean(MainActivity.INTENT_FROM_CALL_NOTIFICATION, false)) { + + ////////////////////////////////////////////////////////////////////////// + // Workaround fix: stop vibrating and notifications in some devices and OS versions on cancel + notification.flags &= Notification.FLAG_INSISTENT; + sendRingingNotify(notification, ActiveConferenceCall.ANDROID_10_PUSH_CALL_NTFN_ID); + ////////////////////////////////////////////////////////////////////////// + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { getManager().cancel(getString(R.string.app_name), notificationId); } else {