mirror of
				https://github.com/commons-app/apps-android-commons.git
				synced 2025-10-30 22:34:02 +01:00 
			
		
		
		
	Merge pull request #789 from achalshant/fix_for_issue#750
Fix for issue#750
This commit is contained in:
		
						commit
						3db421ad8c
					
				
					 1 changed files with 10 additions and 7 deletions
				
			
		|  | @ -47,7 +47,7 @@ public class PrefixUpdater extends AsyncTask<Void, Void, List<String>> { | |||
|      * @param items Unfiltered list of categories | ||||
|      * @return Filtered category list | ||||
|      */ | ||||
|     private List<String> filterYears(List<String> items) { | ||||
|     private List<String> filterIrrelevantResults(List<String> items) { | ||||
| 
 | ||||
|         Iterator<String> iterator; | ||||
| 
 | ||||
|  | @ -62,15 +62,18 @@ public class PrefixUpdater extends AsyncTask<Void, Void, List<String>> { | |||
|         Timber.d("Previous year: %s", prevYearInString); | ||||
| 
 | ||||
|         //Copy to Iterator to prevent ConcurrentModificationException when removing item | ||||
|         for (iterator = items.iterator(); iterator.hasNext(); ) { | ||||
|         for (iterator = items.iterator(); iterator.hasNext();) { | ||||
|             String s = iterator.next(); | ||||
| 
 | ||||
|             //Check if s contains a 4-digit word anywhere within the string (.* is wildcard) | ||||
|             //And that s does not equal the current year or previous year | ||||
|             if (s.matches(".*(19|20)\\d{2}.*") && !s.contains(yearInString) && !s.contains(prevYearInString)) { | ||||
|                 Timber.d("Filtering out year %s", s); | ||||
|             //And if it is an irrelevant category such as Media_needing_categories_as_of_16_June_2017(Issue #750) | ||||
|             if ((s.matches(".*(19|20)\\d{2}.*") && !s.contains(yearInString) && !s.contains(prevYearInString)) | ||||
|                     || s.matches("(.*)needing(.*)")||s.matches("(.*)taken on(.*)")) { | ||||
|                 Timber.d("Filtering out irrelevant result: %s", s); | ||||
|                 iterator.remove(); | ||||
|             } | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         Timber.d("Items: %s", items); | ||||
|  | @ -83,14 +86,14 @@ public class PrefixUpdater extends AsyncTask<Void, Void, List<String>> { | |||
|         if (TextUtils.isEmpty(filter)) { | ||||
|             ArrayList<String> mergedItems = new ArrayList<>(catFragment.mergeItems()); | ||||
|             Timber.d("Merged items, waiting for filter"); | ||||
|             return new ArrayList<>(filterYears(mergedItems)); | ||||
|             return new ArrayList<>(filterIrrelevantResults(mergedItems)); | ||||
|         } | ||||
| 
 | ||||
|         //if user types in something that is in cache, return cached category | ||||
|         if (catFragment.categoriesCache.containsKey(filter)) { | ||||
|             ArrayList<String> cachedItems = new ArrayList<>(catFragment.categoriesCache.get(filter)); | ||||
|             Timber.d("Found cache items, waiting for filter"); | ||||
|             return new ArrayList<>(filterYears(cachedItems)); | ||||
|             return new ArrayList<>(filterIrrelevantResults(cachedItems)); | ||||
|         } | ||||
| 
 | ||||
|         //otherwise if user has typed something in that isn't in cache, search API for matching categories | ||||
|  | @ -107,6 +110,6 @@ public class PrefixUpdater extends AsyncTask<Void, Void, List<String>> { | |||
|         } | ||||
| 
 | ||||
|         Timber.d("Found categories from Prefix search, waiting for filter"); | ||||
|         return new ArrayList<>(filterYears(categories)); | ||||
|         return new ArrayList<>(filterIrrelevantResults(categories)); | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Josephine Lim
						Josephine Lim