@@ -32,7 +32,8 @@ public class CategoriesModel implements CategoryClickedListener {
32
32
33
33
@ Inject GpsCategoryModel gpsCategoryModel ;
34
34
@ Inject
35
- public CategoriesModel (MediaWikiApi mwApi , CategoryDao categoryDao ,
35
+ public CategoriesModel (MediaWikiApi mwApi ,
36
+ CategoryDao categoryDao ,
36
37
@ Named ("default_preferences" ) SharedPreferences prefs ,
37
38
@ Named ("direct_nearby_upload_prefs" ) SharedPreferences directPrefs ) {
38
39
this .mwApi = mwApi ;
@@ -97,11 +98,11 @@ boolean cacheContainsKey(String term) {
97
98
//endregion
98
99
99
100
//region Category searching
100
- public Observable <CategoryItem > searchAll (String term ) {
101
+ public Observable <CategoryItem > searchAll (String term , List < String > imageTitleList ) {
101
102
//If user hasn't typed anything in yet, get GPS and recent items
102
103
if (TextUtils .isEmpty (term )) {
103
104
return gpsCategories ()
104
- .concatWith (titleCategories ())
105
+ .concatWith (titleCategories (imageTitleList ))
105
106
.concatWith (recentCategories ());
106
107
}
107
108
@@ -117,11 +118,11 @@ public Observable<CategoryItem> searchAll(String term) {
117
118
.map (name -> new CategoryItem (name , false ));
118
119
}
119
120
120
- public Observable <CategoryItem > searchCategories (String term ) {
121
+ public Observable <CategoryItem > searchCategories (String term , List < String > imageTitleList ) {
121
122
//If user hasn't typed anything in yet, get GPS and recent items
122
123
if (TextUtils .isEmpty (term )) {
123
124
return gpsCategories ()
124
- .concatWith (titleCategories ())
125
+ .concatWith (titleCategories (imageTitleList ))
125
126
.concatWith (recentCategories ());
126
127
}
127
128
@@ -134,18 +135,18 @@ private ArrayList<String> getCachedCategories(String term) {
134
135
return categoriesCache .get (term );
135
136
}
136
137
137
- public Observable <CategoryItem > defaultCategories () {
138
+ public Observable <CategoryItem > defaultCategories (List < String > titleList ) {
138
139
Observable <CategoryItem > directCat = directCategories ();
139
140
if (hasDirectCategories ()) {
140
141
Timber .d ("Image has direct Cat" );
141
142
return directCat
142
143
.concatWith (gpsCategories ())
143
- .concatWith (titleCategories ())
144
+ .concatWith (titleCategories (titleList ))
144
145
.concatWith (recentCategories ());
145
146
} else {
146
147
Timber .d ("Image has no direct Cat" );
147
148
return gpsCategories ()
148
- .concatWith (titleCategories ())
149
+ .concatWith (titleCategories (titleList ))
149
150
.concatWith (recentCategories ());
150
151
}
151
152
}
@@ -171,12 +172,13 @@ Observable<CategoryItem> gpsCategories() {
171
172
.map (name -> new CategoryItem (name , false ));
172
173
}
173
174
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
+ }
177
179
178
- return mwApi
179
- .searchTitles (title , SEARCH_CATS_LIMIT )
180
+ private Observable < CategoryItem > getTitleCategories ( String title ) {
181
+ return mwApi .searchTitles (title , SEARCH_CATS_LIMIT )
180
182
.map (name -> new CategoryItem (name , false ));
181
183
}
182
184
0 commit comments