@@ -72,13 +72,16 @@ public class CategorizationFragment extends CommonsDaggerSupportFragment {
72
72
73
73
@ Inject MediaWikiApi mwApi ;
74
74
@ Inject @ Named ("default_preferences" ) SharedPreferences prefs ;
75
+ @ Inject @ Named ("prefs" ) SharedPreferences prefsPrefs ;
76
+ @ Inject @ Named ("direct_nearby_upload_prefs" ) SharedPreferences directPrefs ;
75
77
@ Inject CategoryDao categoryDao ;
76
78
77
79
private RVRendererAdapter <CategoryItem > categoriesAdapter ;
78
80
private OnCategoriesSaveHandler onCategoriesSaveHandler ;
79
81
private HashMap <String , ArrayList <String >> categoriesCache ;
80
82
private List <CategoryItem > selectedCategories = new ArrayList <>();
81
83
private TitleTextWatcher textWatcher = new TitleTextWatcher ();
84
+ private boolean hasDirectCategories = false ;
82
85
83
86
private final CategoriesAdapterFactory adapterFactory = new CategoriesAdapterFactory (item -> {
84
87
if (item .isSelected ()) {
@@ -127,7 +130,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
127
130
}
128
131
129
132
public void hideKeyboard (View view ) {
130
- InputMethodManager inputMethodManager =(InputMethodManager )getActivity ().getSystemService (Activity .INPUT_METHOD_SERVICE );
133
+ InputMethodManager inputMethodManager = (InputMethodManager ) getActivity ().getSystemService (Activity .INPUT_METHOD_SERVICE );
131
134
inputMethodManager .hideSoftInputFromWindow (view .getWindowToken (), 0 );
132
135
}
133
136
@@ -222,7 +225,7 @@ private void updateCategoryList(String filter) {
222
225
.observeOn (AndroidSchedulers .mainThread ())
223
226
.subscribe (
224
227
s -> categoriesAdapter .add (s ),
225
- Timber ::e ,
228
+ Timber ::e ,
226
229
() -> {
227
230
categoriesAdapter .notifyDataSetChanged ();
228
231
categoriesSearchInProgress .setVisibility (View .GONE );
@@ -257,9 +260,34 @@ private List<String> getStringList(List<CategoryItem> input) {
257
260
}
258
261
259
262
private Observable <CategoryItem > defaultCategories () {
260
- return gpsCategories ()
261
- .concatWith (titleCategories ())
262
- .concatWith (recentCategories ());
263
+
264
+ Observable <CategoryItem > directCat = directCategories ();
265
+ if (hasDirectCategories ) {
266
+ Timber .d ("Image has direct Cat" );
267
+ return directCat
268
+ .concatWith (gpsCategories ())
269
+ .concatWith (titleCategories ())
270
+ .concatWith (recentCategories ());
271
+ }
272
+ else {
273
+ Timber .d ("Image has no direct Cat" );
274
+ return gpsCategories ()
275
+ .concatWith (titleCategories ())
276
+ .concatWith (recentCategories ());
277
+ }
278
+ }
279
+
280
+ private Observable <CategoryItem > directCategories () {
281
+ String directCategory = directPrefs .getString ("Category" , "" );
282
+ List <String > categoryList = new ArrayList <>();
283
+ Timber .d ("Direct category found: " + directCategory );
284
+
285
+ if (!directCategory .equals ("" )) {
286
+ hasDirectCategories = true ;
287
+ categoryList .add (directCategory );
288
+ Timber .d ("DirectCat does not equal emptyString. Direct Cat list has " + categoryList );
289
+ }
290
+ return Observable .fromIterable (categoryList ).map (name -> new CategoryItem (name , false ));
263
291
}
264
292
265
293
private Observable <CategoryItem > gpsCategories () {
0 commit comments