@@ -32,7 +32,8 @@ public class CategoriesModel implements CategoryClickedListener {
3232
3333 @ Inject GpsCategoryModel gpsCategoryModel ;
3434 @ Inject
35- public CategoriesModel (MediaWikiApi mwApi , CategoryDao categoryDao ,
35+ public CategoriesModel (MediaWikiApi mwApi ,
36+ CategoryDao categoryDao ,
3637 @ Named ("default_preferences" ) SharedPreferences prefs ,
3738 @ Named ("direct_nearby_upload_prefs" ) SharedPreferences directPrefs ) {
3839 this .mwApi = mwApi ;
@@ -97,11 +98,11 @@ boolean cacheContainsKey(String term) {
9798 //endregion
9899
99100 //region Category searching
100- public Observable <CategoryItem > searchAll (String term ) {
101+ public Observable <CategoryItem > searchAll (String term , List < String > imageTitleList ) {
101102 //If user hasn't typed anything in yet, get GPS and recent items
102103 if (TextUtils .isEmpty (term )) {
103104 return gpsCategories ()
104- .concatWith (titleCategories ())
105+ .concatWith (titleCategories (imageTitleList ))
105106 .concatWith (recentCategories ());
106107 }
107108
@@ -117,11 +118,11 @@ public Observable<CategoryItem> searchAll(String term) {
117118 .map (name -> new CategoryItem (name , false ));
118119 }
119120
120- public Observable <CategoryItem > searchCategories (String term ) {
121+ public Observable <CategoryItem > searchCategories (String term , List < String > imageTitleList ) {
121122 //If user hasn't typed anything in yet, get GPS and recent items
122123 if (TextUtils .isEmpty (term )) {
123124 return gpsCategories ()
124- .concatWith (titleCategories ())
125+ .concatWith (titleCategories (imageTitleList ))
125126 .concatWith (recentCategories ());
126127 }
127128
@@ -134,18 +135,18 @@ private ArrayList<String> getCachedCategories(String term) {
134135 return categoriesCache .get (term );
135136 }
136137
137- public Observable <CategoryItem > defaultCategories () {
138+ public Observable <CategoryItem > defaultCategories (List < String > titleList ) {
138139 Observable <CategoryItem > directCat = directCategories ();
139140 if (hasDirectCategories ()) {
140141 Timber .d ("Image has direct Cat" );
141142 return directCat
142143 .concatWith (gpsCategories ())
143- .concatWith (titleCategories ())
144+ .concatWith (titleCategories (titleList ))
144145 .concatWith (recentCategories ());
145146 } else {
146147 Timber .d ("Image has no direct Cat" );
147148 return gpsCategories ()
148- .concatWith (titleCategories ())
149+ .concatWith (titleCategories (titleList ))
149150 .concatWith (recentCategories ());
150151 }
151152 }
@@ -171,12 +172,13 @@ Observable<CategoryItem> gpsCategories() {
171172 .map (name -> new CategoryItem (name , false ));
172173 }
173174
174- private Observable <CategoryItem > titleCategories () {
175- //Retrieve the title that was saved when user tapped submit icon
176- String title = prefs .getString ("Title" , "" );
175+ private Observable <CategoryItem > titleCategories (List <String > titleList ) {
176+ return Observable .fromIterable (titleList )
177+ .concatMap (this ::getTitleCategories );
178+ }
177179
178- return mwApi
179- .searchTitles (title , SEARCH_CATS_LIMIT )
180+ private Observable < CategoryItem > getTitleCategories ( String title ) {
181+ return mwApi .searchTitles (title , SEARCH_CATS_LIMIT )
180182 .map (name -> new CategoryItem (name , false ));
181183 }
182184
0 commit comments