override fun dismissNotification()

in azure-communication-ui/calling/src/main/java/com/azure/android/communication/ui/calling/redux/middleware/handler/CallingMiddlewareActionHandler.kt [579:637]


    override fun dismissNotification(store: Store<ReduxState>) {
        store.getCurrentState().toastNotificationState.kinds.forEach { kind: ToastNotificationKind ->

            if (kind == ToastNotificationKind.NETWORK_UNAVAILABLE) {
                val model = NetworkCallDiagnosticModel(
                    NetworkCallDiagnostic.NETWORK_UNAVAILABLE,
                    false
                )
                store.dispatch(CallDiagnosticsAction.NetworkCallDiagnosticsDismissed(model))
            }
            if (kind == ToastNotificationKind.NETWORK_RELAYS_UNREACHABLE) {
                val model = NetworkCallDiagnosticModel(
                    NetworkCallDiagnostic.NETWORK_RELAYS_UNREACHABLE,
                    false
                )
                store.dispatch(CallDiagnosticsAction.NetworkCallDiagnosticsDismissed(model))
            }
            if (kind == ToastNotificationKind.NETWORK_RECEIVE_QUALITY ||
                kind == ToastNotificationKind.NETWORK_RECONNECTION_QUALITY ||
                kind == ToastNotificationKind.NETWORK_SEND_QUALITY
            ) {
                val diagnostic = when (kind) {
                    ToastNotificationKind.NETWORK_RECEIVE_QUALITY -> NetworkCallDiagnostic.NETWORK_RECEIVE_QUALITY
                    ToastNotificationKind.NETWORK_RECONNECTION_QUALITY -> NetworkCallDiagnostic.NETWORK_RECONNECTION_QUALITY
                    ToastNotificationKind.NETWORK_SEND_QUALITY -> NetworkCallDiagnostic.NETWORK_SEND_QUALITY
                    else -> null
                }
                diagnostic?.let {
                    val model = NetworkQualityCallDiagnosticModel(
                        diagnostic,
                        CallDiagnosticQuality.UNKNOWN
                    )
                    store.dispatch(
                        CallDiagnosticsAction.NetworkQualityCallDiagnosticsDismissed(
                            model
                        )
                    )
                }
            }

            if (kind == ToastNotificationKind.SPEAKING_WHILE_MICROPHONE_IS_MUTED ||
                kind == ToastNotificationKind.CAMERA_START_FAILED ||
                kind == ToastNotificationKind.CAMERA_START_TIMED_OUT
            ) {

                val mediaCallDiagnostic = when (kind) {
                    ToastNotificationKind.SPEAKING_WHILE_MICROPHONE_IS_MUTED -> MediaCallDiagnostic.SPEAKING_WHILE_MICROPHONE_IS_MUTED
                    ToastNotificationKind.CAMERA_START_FAILED -> MediaCallDiagnostic.CAMERA_START_FAILED
                    ToastNotificationKind.CAMERA_START_TIMED_OUT -> MediaCallDiagnostic.CAMERA_START_TIMED_OUT
                    else -> null
                }

                mediaCallDiagnostic?.let {
                    val model = MediaCallDiagnosticModel(mediaCallDiagnostic, false)
                    store.dispatch(CallDiagnosticsAction.MediaCallDiagnosticsDismissed(model))
                }
            }
        }
    }