diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.java index d7fe5ffd5e..6bdc562c23 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.java @@ -160,18 +160,30 @@ private void startSpeechInput(String locale) { } } + /** + * Handles the result of the speech input by processing the spoken text. + * If the spoken text is not empty, it capitalizes the first letter of the spoken text + * and updates the appropriate field (caption or description) of the current + * UploadMediaDetail based on the selected voice icon. + * Finally, it notifies the adapter that the data set has changed. + * + * @param spokenText the text input received from speech recognition. + */ public void handleSpeechResult(String spokenText) { if (!spokenText.isEmpty()) { String spokenTextCapitalized = spokenText.substring(0, 1).toUpperCase() + spokenText.substring(1); if (currentPosition < uploadMediaDetails.size()) { UploadMediaDetail uploadMediaDetail = uploadMediaDetails.get(currentPosition); - if (selectedVoiceIcon == SelectedVoiceIcon.CAPTION) { - uploadMediaDetail.setCaptionText(spokenTextCapitalized); - } else { - uploadMediaDetail.setDescriptionText(spokenTextCapitalized); + switch (selectedVoiceIcon) { + case CAPTION: + uploadMediaDetail.setCaptionText(spokenTextCapitalized); + break; + case DESCRIPTION: + uploadMediaDetail.setDescriptionText(spokenTextCapitalized); + break; } - notifyItemChanged(currentPosition); + notifyDataSetChanged(); } } }