Skip to content

Commit b232c29

Browse files
Use Locale.forLanguageTag().
1 parent a822e91 commit b232c29

2 files changed

Lines changed: 7 additions & 36 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/localization/Localization.java

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22

33
import org.schabi.newpipe.extractor.exceptions.ParsingException;
44

5-
import javax.annotation.Nonnull;
6-
import javax.annotation.Nullable;
7-
85
import java.io.Serializable;
96
import java.util.ArrayList;
107
import java.util.Collections;
@@ -14,6 +11,9 @@
1411
import java.util.Map;
1512
import java.util.Objects;
1613

14+
import javax.annotation.Nonnull;
15+
import javax.annotation.Nullable;
16+
1717
public class Localization implements Serializable {
1818
public static final Localization DEFAULT = new Localization("en", "GB");
1919

@@ -38,19 +38,7 @@ public static List<Localization> listFrom(final String... localizationCodeList)
3838
* @param localizationCode a localization code, formatted like {@link #getLocalizationCode()}
3939
*/
4040
public static Localization fromLocalizationCode(final String localizationCode) {
41-
final int indexSeparator = localizationCode.indexOf("-");
42-
43-
final String languageCode;
44-
final String countryCode;
45-
if (indexSeparator != -1) {
46-
languageCode = localizationCode.substring(0, indexSeparator);
47-
countryCode = localizationCode.substring(indexSeparator + 1);
48-
} else {
49-
languageCode = localizationCode;
50-
countryCode = null;
51-
}
52-
53-
return new Localization(languageCode, countryCode);
41+
return fromLocale(Locale.forLanguageTag(localizationCode));
5442
}
5543

5644
public Localization(@Nonnull final String languageCode, @Nullable final String countryCode) {

extractor/src/main/java/org/schabi/newpipe/extractor/stream/SubtitlesStream.java

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.schabi.newpipe.extractor.stream;
22

3+
import static org.schabi.newpipe.extractor.utils.Utils.EMPTY_STRING;
4+
35
import org.schabi.newpipe.extractor.MediaFormat;
46
import org.schabi.newpipe.extractor.services.youtube.ItagItem;
57

@@ -230,26 +232,7 @@ private SubtitlesStream(@Nonnull final String id,
230232
final boolean autoGenerated,
231233
@Nullable final String manifestUrl) {
232234
super(id, content, isUrl, mediaFormat, deliveryMethod, manifestUrl);
233-
234-
/*
235-
* Locale.forLanguageTag only for Android API >= 21
236-
* Locale.Builder only for Android API >= 21
237-
* Country codes doesn't work well without
238-
*/
239-
final String[] splits = languageCode.split("-");
240-
switch (splits.length) {
241-
case 2:
242-
this.locale = new Locale(splits[0], splits[1]);
243-
break;
244-
case 3:
245-
// Complex variants don't work!
246-
this.locale = new Locale(splits[0], splits[1], splits[2]);
247-
break;
248-
default:
249-
this.locale = new Locale(splits[0]);
250-
break;
251-
}
252-
235+
this.locale = Locale.forLanguageTag(languageCode);
253236
this.code = languageCode;
254237
this.format = mediaFormat;
255238
this.autoGenerated = autoGenerated;

0 commit comments

Comments
 (0)