Skip to content

Commit 8e70bb4

Browse files
evermind-zzStypox
authored andcommitted
searchfilters: use base64 methods from okio to support <= Android Oreo
1 parent 46b0de7 commit 8e70bb4

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/search/filter/YoutubeProtoBufferSearchParameterAccessor.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,13 @@
1515

1616
import java.io.IOException;
1717
import java.util.ArrayList;
18-
import java.util.Base64;
18+
import java.util.Objects;
1919

2020
import javax.annotation.Nonnull;
2121
import javax.annotation.Nullable;
2222

23+
import okio.ByteString;
24+
2325

2426
/**
2527
* This class interacts with the auto generated proto buffer java files
@@ -31,8 +33,6 @@
3133
*/
3234
public final class YoutubeProtoBufferSearchParameterAccessor {
3335

34-
private static final String UTF_8 = "UTF-8";
35-
3636
/**
3737
* the base64 urlencoded sp string
3838
*/
@@ -94,8 +94,8 @@ public String encodeSp(@Nullable final SortOrder sort,
9494
final SearchRequest searchRequest = searchRequestBuilder.build();
9595

9696
final byte[] protoBufEncoded = searchRequest.encode();
97-
final String protoBufEncodedBase64 = Base64.getEncoder()
98-
.encodeToString(protoBufEncoded);
97+
final ByteString bs = new ByteString(protoBufEncoded);
98+
final String protoBufEncodedBase64 = bs.base64();
9999
final String urlEncodedBase64EncodedSearchParameter
100100
= Utils.encodeUrlUtf8(protoBufEncodedBase64);
101101

@@ -111,13 +111,13 @@ public String encodeSp(@Nullable final SortOrder sort,
111111
* @return {@link SearchRequest} with decoded search parameter
112112
* @throws IOException
113113
*/
114-
@SuppressWarnings("NewApi")
115114
public SearchRequest decodeSp(@Nonnull final String urlEncodedBase64EncodedSearchParameter)
116115
throws IOException {
117-
final String urlDecodedBase64EncodedSearchParameter
118-
= Utils.decodeUrlUtf8(urlEncodedBase64EncodedSearchParameter);
119-
final byte[] decodedSearchParameter
120-
= Base64.getDecoder().decode(urlDecodedBase64EncodedSearchParameter);
116+
final String urlDecodedBase64EncodedSearchParameter =
117+
Utils.decodeUrlUtf8(urlEncodedBase64EncodedSearchParameter);
118+
final byte[] decodedSearchParameter = Objects.requireNonNull(
119+
ByteString.decodeBase64(urlDecodedBase64EncodedSearchParameter))
120+
.toByteArray();
121121

122122
return new SearchRequest.Builder().build().adapter().decode(decodedSearchParameter);
123123
}

0 commit comments

Comments
 (0)