override fun reduce()

in azure-communication-ui/calling/src/main/java/com/azure/android/communication/ui/calling/redux/reducer/ButtonViewDataReducer.kt [9:173]


    override fun reduce(state: ButtonState, action: Action): ButtonState {
        return when (action) {
            is ButtonViewDataAction.CallScreenCameraButtonIsVisibleUpdated -> {
                state.copy(callScreenCameraButtonState = state.callScreenCameraButtonState?.copy(isVisible = action.isVisible))
            }
            is ButtonViewDataAction.CallScreenCameraButtonIsEnabledUpdated -> {
                state.copy(callScreenCameraButtonState = state.callScreenCameraButtonState?.copy(isEnabled = action.isEnabled))
            }
            is ButtonViewDataAction.CallScreenMicButtonIsVisibleUpdated -> {
                state.copy(callScreenMicButtonState = state.callScreenMicButtonState?.copy(isVisible = action.isVisible))
            }
            is ButtonViewDataAction.CallScreenMicButtonIsEnabledUpdated -> {
                state.copy(callScreenMicButtonState = state.callScreenMicButtonState?.copy(isEnabled = action.isEnabled))
            }
            is ButtonViewDataAction.CallScreenAudioDeviceButtonIsVisibleUpdated -> {
                state.copy(callScreenAudioDeviceButtonState = state.callScreenAudioDeviceButtonState?.copy(isVisible = action.isVisible))
            }
            is ButtonViewDataAction.CallScreenAudioDeviceButtonIsEnabledUpdated -> {
                state.copy(callScreenAudioDeviceButtonState = state.callScreenAudioDeviceButtonState?.copy(isEnabled = action.isEnabled))
            }
            is ButtonViewDataAction.CallScreenLiveCaptionsButtonIsVisibleUpdated -> {
                state.copy(liveCaptionsButton = state.liveCaptionsButton?.copy(isVisible = action.isVisible))
            }
            is ButtonViewDataAction.CallScreenLiveCaptionsButtonIsEnabledUpdated -> {
                state.copy(liveCaptionsButton = state.liveCaptionsButton?.copy(isEnabled = action.isEnabled))
            }
            is ButtonViewDataAction.CallScreenLiveCaptionsToggleButtonIsVisibleUpdated -> {
                state.copy(liveCaptionsToggleButton = state.liveCaptionsToggleButton?.copy(isVisible = action.isVisible))
            }
            is ButtonViewDataAction.CallScreenLiveCaptionsToggleButtonIsEnabledUpdated -> {
                state.copy(liveCaptionsToggleButton = state.liveCaptionsToggleButton?.copy(isEnabled = action.isEnabled))
            }
            is ButtonViewDataAction.CallScreenSpokenLanguageButtonIsVisibleUpdated -> {
                state.copy(spokenLanguageButton = state.spokenLanguageButton?.copy(isVisible = action.isVisible))
            }
            is ButtonViewDataAction.CallScreenSpokenLanguageButtonIsEnabledUpdated -> {
                state.copy(spokenLanguageButton = state.spokenLanguageButton?.copy(isEnabled = action.isEnabled))
            }
            is ButtonViewDataAction.CallScreenCaptionsLanguageButtonIsVisibleUpdated -> {
                state.copy(captionsLanguageButton = state.captionsLanguageButton?.copy(isVisible = action.isVisible))
            }
            is ButtonViewDataAction.CallScreenCaptionsLanguageButtonIsEnabledUpdated -> {
                state.copy(captionsLanguageButton = state.captionsLanguageButton?.copy(isEnabled = action.isEnabled))
            }
            is ButtonViewDataAction.CallScreenShareDiagnosticsButtonIsVisibleUpdated -> {
                state.copy(shareDiagnosticsButton = state.shareDiagnosticsButton?.copy(isVisible = action.isVisible))
            }
            is ButtonViewDataAction.CallScreenShareDiagnosticsButtonIsEnabledUpdated -> {
                state.copy(shareDiagnosticsButton = state.shareDiagnosticsButton?.copy(isEnabled = action.isEnabled))
            }
            is ButtonViewDataAction.CallScreenReportIssueButtonIsVisibleUpdated -> {
                state.copy(reportIssueButton = state.reportIssueButton?.copy(isVisible = action.isVisible))
            }
            is ButtonViewDataAction.CallScreenReportIssueButtonIsEnabledUpdated -> {
                state.copy(reportIssueButton = state.reportIssueButton?.copy(isEnabled = action.isEnabled))
            }
            is ButtonViewDataAction.SetupScreenCameraButtonIsEnabledUpdated -> {
                state.copy(setupScreenCameraButtonState = state.setupScreenCameraButtonState?.copy(isEnabled = action.isEnabled))
            }
            is ButtonViewDataAction.SetupScreenCameraButtonIsVisibleUpdated -> {
                state.copy(setupScreenCameraButtonState = state.setupScreenCameraButtonState?.copy(isVisible = action.isVisible))
            }
            is ButtonViewDataAction.SetupScreenMicButtonIsEnabledUpdated -> {
                state.copy(setupScreenMicButtonState = state.setupScreenMicButtonState?.copy(isEnabled = action.isEnabled))
            }
            is ButtonViewDataAction.SetupScreenMicButtonIsVisibleUpdated -> {
                state.copy(setupScreenMicButtonState = state.setupScreenMicButtonState?.copy(isVisible = action.isVisible))
            }
            is ButtonViewDataAction.SetupScreenAudioDeviceButtonIsEnabledUpdated -> {
                state.copy(setupScreenAudioDeviceButtonState = state.setupScreenAudioDeviceButtonState?.copy(isEnabled = action.isEnabled))
            }
            is ButtonViewDataAction.SetupScreenAudioDeviceButtonIsVisibleUpdated -> {
                state.copy(setupScreenAudioDeviceButtonState = state.setupScreenAudioDeviceButtonState?.copy(isVisible = action.isVisible))
            }
            is ButtonViewDataAction.CallScreenCustomButtonIsEnabledUpdated -> {
                state.copy(
                    callScreenCustomButtonsState = state.callScreenCustomButtonsState.map {
                        if (it.id == action.id) {
                            it.copy(isEnabled = action.isEnabled)
                        } else {
                            it
                        }
                    }
                )
            }
            is ButtonViewDataAction.CallScreenCustomButtonIsVisibleUpdated -> {
                state.copy(
                    callScreenCustomButtonsState = state.callScreenCustomButtonsState.map {
                        if (it.id == action.id) {
                            it.copy(isVisible = action.isVisible)
                        } else {
                            it
                        }
                    }
                )
            }
            is ButtonViewDataAction.CallScreenCustomButtonTitleUpdated -> {
                state.copy(
                    callScreenCustomButtonsState = state.callScreenCustomButtonsState.map {
                        if (it.id == action.id) {
                            it.copy(title = action.title)
                        } else {
                            it
                        }
                    }
                )
            }
            is ButtonViewDataAction.CallScreenCustomButtonIconUpdated -> {
                state.copy(
                    callScreenCustomButtonsState = state.callScreenCustomButtonsState.map {
                        if (it.id == action.id) {
                            it.copy(drawableId = action.drawableId)
                        } else {
                            it
                        }
                    }
                )
            }
            is ButtonViewDataAction.CallScreenHeaderCustomButtonIsEnabledUpdated -> {
                state.copy(
                    callScreenHeaderCustomButtonsState = state.callScreenHeaderCustomButtonsState.map {
                        if (it.id == action.id) {
                            it.copy(isEnabled = action.isEnabled)
                        } else {
                            it
                        }
                    }
                )
            }
            is ButtonViewDataAction.CallScreenHeaderCustomButtonIsVisibleUpdated -> {
                state.copy(
                    callScreenHeaderCustomButtonsState = state.callScreenHeaderCustomButtonsState.map {
                        if (it.id == action.id) {
                            it.copy(isVisible = action.isVisible)
                        } else {
                            it
                        }
                    }
                )
            }
            is ButtonViewDataAction.CallScreenHeaderCustomButtonTitleUpdated -> {
                state.copy(
                    callScreenHeaderCustomButtonsState = state.callScreenHeaderCustomButtonsState.map {
                        if (it.id == action.id) {
                            it.copy(title = action.title)
                        } else {
                            it
                        }
                    }
                )
            }
            is ButtonViewDataAction.CallScreenHeaderCustomButtonIconUpdated -> {
                state.copy(
                    callScreenHeaderCustomButtonsState = state.callScreenHeaderCustomButtonsState.map {
                        if (it.id == action.id) {
                            it.copy(drawableId = action.drawableId)
                        } else {
                            it
                        }
                    }
                )
            }
            else -> state
        }
    }