Skip to content

Commit b7323d0

Browse files
authored
Fixes commons-app#5439 by capitalizing first letter of voice input (commons-app#5450)
1 parent 1ebbe63 commit b7323d0

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

app/src/main/java/fr/free/nrw/commons/upload/UploadMediaDetailAdapter.java

+16-10
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
import java.util.ArrayList;
3636
import java.util.HashMap;
3737
import java.util.List;
38-
import java.util.Locale;
3938
import java.util.Objects;
4039
import java.util.regex.Pattern;
4140
import timber.log.Timber;
@@ -146,9 +145,9 @@ private void startSpeechInput(String locale) {
146145
locale
147146
);
148147
try {
149-
if (activity == null){
148+
if (activity == null) {
150149
fragment.startActivityForResult(intent, REQUEST_CODE_FOR_VOICE_INPUT);
151-
}else {
150+
} else {
152151
activity.startActivityForResult(intent, REQUEST_CODE_FOR_VOICE_INPUT);
153152
}
154153
} catch (Exception e) {
@@ -157,14 +156,18 @@ private void startSpeechInput(String locale) {
157156
}
158157

159158
public void handleSpeechResult(String spokenText) {
160-
if (currentPosition < uploadMediaDetails.size()) {
161-
UploadMediaDetail uploadMediaDetail = uploadMediaDetails.get(currentPosition);
162-
if (selectedVoiceIcon == SelectedVoiceIcon.CAPTION){
163-
uploadMediaDetail.setCaptionText(spokenText);
164-
}else {
165-
uploadMediaDetail.setDescriptionText(spokenText);
159+
if (!spokenText.isEmpty()) {
160+
String spokenTextCapitalized =
161+
spokenText.substring(0, 1).toUpperCase() + spokenText.substring(1);
162+
if (currentPosition < uploadMediaDetails.size()) {
163+
UploadMediaDetail uploadMediaDetail = uploadMediaDetails.get(currentPosition);
164+
if (selectedVoiceIcon == SelectedVoiceIcon.CAPTION) {
165+
uploadMediaDetail.setCaptionText(spokenTextCapitalized);
166+
} else {
167+
uploadMediaDetail.setDescriptionText(spokenTextCapitalized);
168+
}
169+
notifyItemChanged(currentPosition);
166170
}
167-
notifyItemChanged(currentPosition);
168171
}
169172
}
170173

@@ -555,12 +558,15 @@ public String convertIdeographicSpaceToLatinSpace(String source) {
555558
}
556559

557560
public interface Callback {
561+
558562
void showAlert(int mediaDetailDescription, int descriptionInfo);
559563
}
560564

561565
public interface EventListener {
566+
562567
void onPrimaryCaptionTextChange(boolean isNotEmpty);
563568
}
569+
564570
enum SelectedVoiceIcon {
565571
CAPTION,
566572
DESCRIPTION

0 commit comments

Comments
 (0)