@@ -959,6 +959,74 @@ public void onFailure(@NonNull final RRError error) {
959
959
));
960
960
}
961
961
962
+ public static void requestMultiredditSubredditList (
963
+ @ NonNull final CacheManager cm ,
964
+ @ NonNull final String multiredditName ,
965
+ @ NonNull final RedditAccount user ,
966
+ @ NonNull final Context context ,
967
+ @ NonNull final APIResponseHandler .ValueResponseHandler <List <String >> handler ,
968
+ @ NonNull final DownloadStrategy downloadStrategy ) {
969
+
970
+ final UriString uriString = UriString .from (Constants .Reddit .getUriBuilder (
971
+ Constants .Reddit .PATH_MULTIREDDIT )
972
+ .appendPath ("user" )
973
+ .appendPath (user .username )
974
+ .appendPath ("m" )
975
+ .appendPath (multiredditName )
976
+ .build ());
977
+
978
+ cm .makeRequest (createGetRequest (
979
+ uriString ,
980
+ user ,
981
+ new Priority (Constants .Priority .API_SUBREDDIT_LIST ),
982
+ Constants .FileType .SUBREDDIT_LIST ,
983
+ downloadStrategy ,
984
+ context ,
985
+ new CacheRequestJSONParser .Listener () {
986
+ @ Override
987
+ public void onJsonParsed (
988
+ @ NonNull final JsonValue result ,
989
+ final TimestampUTC timestamp ,
990
+ @ NonNull final UUID session ,
991
+ final boolean fromCache ) {
992
+
993
+ try {
994
+ final Optional <JsonArray > subreddits
995
+ = result .getArrayAtPath ("data" , "subreddits" );
996
+
997
+ final ArrayList <String > subredditNames = new ArrayList <>();
998
+
999
+ if (subreddits .isPresent ()) {
1000
+ for (final JsonValue value : subreddits .get ()) {
1001
+ final Optional <JsonValue > subredditName = value .getAtPath (
1002
+ "name" );
1003
+ if (subredditName .isPresent ()) {
1004
+ subredditNames .add (subredditName .get ().asString ());
1005
+ }
1006
+ }
1007
+ }
1008
+
1009
+ handler .notifySuccess (subredditNames );
1010
+
1011
+ } catch (final Exception e ) {
1012
+ onFailure (General .getGeneralErrorForFailure (
1013
+ context ,
1014
+ CacheRequest .RequestFailureType .PARSE ,
1015
+ e ,
1016
+ null ,
1017
+ uriString ,
1018
+ Optional .of (new FailedRequestBody (result ))));
1019
+ }
1020
+ }
1021
+
1022
+ @ Override
1023
+ public void onFailure (@ NonNull final RRError error ) {
1024
+ handler .notifyFailure (error );
1025
+ }
1026
+ }
1027
+ ));
1028
+ }
1029
+
962
1030
public static void removeSubredditFromMultireddit (
963
1031
final CacheManager cm ,
964
1032
final APIResponseHandler .ActionResponseHandler handler ,
0 commit comments