11package org .schabi .newpipe .util ;
22
3- import static org .schabi .newpipe .extractor .ServiceList .SoundCloud ;
4-
53import android .content .Context ;
64import android .content .SharedPreferences ;
75
8- import androidx .annotation .DrawableRes ;
9- import androidx .annotation .NonNull ;
10- import androidx .annotation .Nullable ;
11- import androidx .annotation .StringRes ;
12- import androidx .preference .PreferenceManager ;
13-
146import com .grack .nanojson .JsonObject ;
157import com .grack .nanojson .JsonParser ;
168import com .grack .nanojson .JsonParserException ;
2012import org .schabi .newpipe .extractor .ServiceList ;
2113import org .schabi .newpipe .extractor .StreamingService ;
2214import org .schabi .newpipe .extractor .exceptions .ExtractionException ;
15+ import org .schabi .newpipe .extractor .search .filter .LibraryStringIds ;
2316import org .schabi .newpipe .extractor .services .peertube .PeertubeInstance ;
2417
18+ import java .util .EnumMap ;
19+ import java .util .Map ;
2520import java .util .Optional ;
2621import java .util .concurrent .TimeUnit ;
2722
23+ import androidx .annotation .DrawableRes ;
24+ import androidx .annotation .NonNull ;
25+ import androidx .annotation .Nullable ;
26+ import androidx .annotation .StringRes ;
27+ import androidx .preference .PreferenceManager ;
28+
29+ import static org .schabi .newpipe .extractor .ServiceList .SoundCloud ;
30+
2831public final class ServiceHelper {
2932 private static final StreamingService DEFAULT_FALLBACK_SERVICE = ServiceList .YouTube ;
33+ /**
34+ * Map all available {@link LibraryStringIds} ids to resource ids available in strings.xml.
35+ */
36+ private static final Map <LibraryStringIds , Integer > LIBRARY_STRING_ID_TO_RES_ID_MAP =
37+ new EnumMap <>(LibraryStringIds .class );
3038
31- private ServiceHelper () { }
39+ static {
40+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_10_30_MIN ,
41+ R .string .search_filters_10_30_min );
42+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_2_10_MIN ,
43+ R .string .search_filters_2_10_min );
44+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_360 ,
45+ R .string .search_filters_360 );
46+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_3D ,
47+ R .string .search_filters_3d );
48+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_4_20_MIN ,
49+ R .string .search_filters_4_20_min );
50+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_4K ,
51+ R .string .search_filters_4k );
52+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_ADDED ,
53+ R .string .search_filters_added );
54+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_ALBUMS ,
55+ R .string .albums );
56+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_ANY_TIME ,
57+ R .string .search_filters_any_time );
58+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_ALL ,
59+ R .string .all );
60+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_ARTISTS_AND_LABELS ,
61+ R .string .search_filters_artists_and_labels );
62+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_ASCENDING ,
63+ R .string .search_filters_ascending );
64+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_CCOMMONS ,
65+ R .string .search_filters_ccommons );
66+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_CHANNELS ,
67+ R .string .channels );
68+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_CONFERENCES ,
69+ R .string .conferences );
70+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_CREATION_DATE ,
71+ R .string .search_filters_creation_date );
72+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_DATE ,
73+ R .string .search_filters_date );
74+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_DURATION ,
75+ R .string .search_filters_duration );
76+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_EVENTS ,
77+ R .string .events );
78+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_FEATURES ,
79+ R .string .search_filters_features );
80+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_GREATER_30_MIN ,
81+ R .string .search_filters_greater_30_min );
82+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_HD ,
83+ R .string .search_filters_hd );
84+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_HDR ,
85+ R .string .search_filters_hdr );
86+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_KIND ,
87+ R .string .search_filters_kind );
88+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_LAST_30_DAYS ,
89+ R .string .search_filters_last_30_days );
90+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_LAST_7_DAYS ,
91+ R .string .search_filters_last_7_days );
92+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_LAST_HOUR ,
93+ R .string .search_filters_last_hour );
94+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_LAST_YEAR ,
95+ R .string .search_filters_last_year );
96+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_LENGTH ,
97+ R .string .search_filters_length );
98+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_LESS_2_MIN ,
99+ R .string .search_filters_less_2_min );
100+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_LICENSE ,
101+ R .string .search_filters_license );
102+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_LIKES ,
103+ R .string .detail_likes_img_view_description );
104+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_LIVE ,
105+ R .string .duration_live );
106+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_LOCATION ,
107+ R .string .search_filters_location );
108+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_LONG_GREATER_10_MIN ,
109+ R .string .search_filters_long_greater_10_min );
110+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_MEDIUM_4_10_MIN ,
111+ R .string .search_filters_medium_4_10_min );
112+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_THIS_MONTH ,
113+ R .string .search_filters_this_month );
114+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_ARTISTS ,
115+ R .string .artists );
116+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_SONGS ,
117+ R .string .songs );
118+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_NAME ,
119+ R .string .name );
120+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_NO ,
121+ R .string .search_filters_no );
122+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_OVER_20_MIN ,
123+ R .string .search_filters_over_20_min );
124+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_PAST_DAY ,
125+ R .string .search_filters_past_day );
126+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_PAST_HOUR ,
127+ R .string .search_filters_past_hour );
128+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_PAST_MONTH ,
129+ R .string .search_filters_past_month );
130+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_PAST_WEEK ,
131+ R .string .search_filters_past_week );
132+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_PAST_YEAR ,
133+ R .string .search_filters_past_year );
134+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_PLAYLISTS ,
135+ R .string .playlists );
136+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_PUBLISH_DATE ,
137+ R .string .search_filters_publish_date );
138+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_PUBLISHED ,
139+ R .string .search_filters_published );
140+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_PURCHASED ,
141+ R .string .search_filters_published );
142+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_RATING ,
143+ R .string .search_filters_rating );
144+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_RELEVANCE ,
145+ R .string .search_filters_relevance );
146+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_SENSITIVE ,
147+ R .string .search_filters_sensitive );
148+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_SEPIASEARCH ,
149+ R .string .search_filters_sepiasearch );
150+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_SHORT_LESS_4_MIN ,
151+ R .string .search_filters_short_less_4_min );
152+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_SORT_BY ,
153+ R .string .search_filters_sort_by );
154+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_SORT_ORDER ,
155+ R .string .search_filters_sort_order );
156+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_SUBTITLES ,
157+ R .string .search_filters_subtitles );
158+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_TO_MODIFY_COMMERCIALLY ,
159+ R .string .search_filters_to_modify_commercially );
160+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_TODAY ,
161+ R .string .search_filters_today );
162+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_TRACKS ,
163+ R .string .tracks );
164+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_UNDER_4_MIN ,
165+ R .string .search_filters_under_4_min );
166+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_UPLOAD_DATE ,
167+ R .string .search_filters_upload_date );
168+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_USERS ,
169+ R .string .users );
170+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_VIDEOS ,
171+ R .string .videos_string );
172+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_VIEWS ,
173+ R .string .search_filters_views );
174+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_VOD_VIDEOS ,
175+ R .string .search_filters_vod_videos );
176+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_VR180 ,
177+ R .string .search_filters_vr180 );
178+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_THIS_WEEK ,
179+ R .string .search_filters_this_week );
180+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_THIS_YEAR ,
181+ R .string .search_filters_this_year );
182+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_YES ,
183+ R .string .search_filters_yes );
184+ LIBRARY_STRING_ID_TO_RES_ID_MAP .put (LibraryStringIds .SEARCH_FILTERS_YOUTUBE_MUSIC ,
185+ R .string .search_filters_youtube_music );
186+ }
187+
188+ private ServiceHelper () {
189+ }
32190
33191 @ DrawableRes
34192 public static int getIcon (final int serviceId ) {
@@ -48,38 +206,6 @@ public static int getIcon(final int serviceId) {
48206 }
49207 }
50208
51- public static String getTranslatedFilterString (final String filter , final Context c ) {
52- switch (filter ) {
53- case "all" :
54- return c .getString (R .string .all );
55- case "videos" :
56- case "sepia_videos" :
57- case "music_videos" :
58- return c .getString (R .string .videos_string );
59- case "channels" :
60- return c .getString (R .string .channels );
61- case "playlists" :
62- case "music_playlists" :
63- return c .getString (R .string .playlists );
64- case "tracks" :
65- return c .getString (R .string .tracks );
66- case "users" :
67- return c .getString (R .string .users );
68- case "conferences" :
69- return c .getString (R .string .conferences );
70- case "events" :
71- return c .getString (R .string .events );
72- case "music_songs" :
73- return c .getString (R .string .songs );
74- case "music_albums" :
75- return c .getString (R .string .albums );
76- case "music_artists" :
77- return c .getString (R .string .artists );
78- default :
79- return filter ;
80- }
81- }
82-
83209 /**
84210 * Get a resource string with instructions for importing subscriptions for each service.
85211 *
@@ -197,4 +323,13 @@ public static void initServices(final Context context) {
197323 initService (context , s .getServiceId ());
198324 }
199325 }
326+
327+ public static String getTranslatedFilterString (final LibraryStringIds stringId ,
328+ final Context context ) {
329+ if (LIBRARY_STRING_ID_TO_RES_ID_MAP .containsKey (stringId )) {
330+ return context .getString (LIBRARY_STRING_ID_TO_RES_ID_MAP .get (stringId ));
331+ } else {
332+ return stringId .toString ();
333+ }
334+ }
200335}
0 commit comments