From 1c3fd70cb3aed1ce5ec123095bef7d44d6753f81 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 16:43:29 +1300 Subject: [PATCH 01/33] Add regular expression and remove those items --- .../free/nrw/commons/category/CategorizationFragment.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index d8f5cef48..86cabad28 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -218,6 +218,13 @@ public class CategorizationFragment extends Fragment { mergedItems.addAll(recentItems); Log.d(TAG, "Adding recent items: " + recentItems); + for (String item : mergedItems) { + if (item.matches("(19|20)\\d{2}")) { + Log.d(TAG, "Filtering out year " + item); + mergedItems.remove(item); + } + } + //Needs to be an ArrayList and not a List unless we want to modify a big portion of preexisting code ArrayList mergedItemsList = new ArrayList(mergedItems); Log.d(TAG, "Merged item list: " + mergedItemsList); From 87f4509db4ea21a35b4dbe6f2d2bfacf8585d567 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 16:44:34 +1300 Subject: [PATCH 02/33] Switch to contains() instead of matches() --- .../fr/free/nrw/commons/category/CategorizationFragment.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 86cabad28..3a26bed28 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -219,12 +219,12 @@ public class CategorizationFragment extends Fragment { Log.d(TAG, "Adding recent items: " + recentItems); for (String item : mergedItems) { - if (item.matches("(19|20)\\d{2}")) { + if (item.contains("(19|20)\\d{2}")) { Log.d(TAG, "Filtering out year " + item); mergedItems.remove(item); } } - + //Needs to be an ArrayList and not a List unless we want to modify a big portion of preexisting code ArrayList mergedItemsList = new ArrayList(mergedItems); Log.d(TAG, "Merged item list: " + mergedItemsList); From 87b3bff40593a9c074cc17d1a81c918d401ddcf5 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 16:46:46 +1300 Subject: [PATCH 03/33] DEBUG MODE ON --- .../main/java/fr/free/nrw/commons/upload/UploadController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java index 049249421..6d95bd717 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java @@ -156,7 +156,7 @@ public class UploadController { @Override protected void onPostExecute(Contribution contribution) { super.onPostExecute(contribution); - uploadService.queue(UploadService.ACTION_UPLOAD_FILE, contribution); + //uploadService.queue(UploadService.ACTION_UPLOAD_FILE, contribution); onComplete.onUploadStarted(contribution); } }); From 3894d5f7b4748bdf3532d2370064e162dafa59ae Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 16:47:25 +1300 Subject: [PATCH 04/33] Add log --- .../fr/free/nrw/commons/category/CategorizationFragment.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 3a26bed28..49a14d058 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -219,6 +219,7 @@ public class CategorizationFragment extends Fragment { Log.d(TAG, "Adding recent items: " + recentItems); for (String item : mergedItems) { + Log.d(TAG, "Filtering item: " + item); if (item.contains("(19|20)\\d{2}")) { Log.d(TAG, "Filtering out year " + item); mergedItems.remove(item); From c118d31a6f948007db7c938607be403535fe1c00 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 17:17:38 +1300 Subject: [PATCH 05/33] Add Iterator to fix ConcurrentModificationException --- .../category/CategorizationFragment.java | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 49a14d058..5226f7ec4 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -41,6 +41,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; @@ -218,16 +219,35 @@ public class CategorizationFragment extends Fragment { mergedItems.addAll(recentItems); Log.d(TAG, "Adding recent items: " + recentItems); - for (String item : mergedItems) { - Log.d(TAG, "Filtering item: " + item); - if (item.contains("(19|20)\\d{2}")) { - Log.d(TAG, "Filtering out year " + item); - mergedItems.remove(item); - } - } + //Needs to be an ArrayList and not a List unless we want to modify a big portion of preexisting code ArrayList mergedItemsList = new ArrayList(mergedItems); + + //"(19|20)\\d{2}" + //"\\b(19|20)\\d{2}\\b" + + for(Iterator item = mergedItemsList.iterator(); item.hasNext();) { + String s = item.next(); + if(s.contains("2016")) { + Log.d(TAG, "Filtering out year " + item); + item.remove(); + } + } + + /* + for (String item : mergedItemsList) { + Log.d(TAG, "Filtering item: " + item); + //"(19|20)\\d{2}" + //"\\b(19|20)\\d{2}\\b" + if (item.contains("2016")) { + Log.d(TAG, "Filtering out year " + item); + mergedItemsList.remove(item); + } + } +*/ + + Log.d(TAG, "Merged item list: " + mergedItemsList); return mergedItemsList; From bc02ac5c403e09a50eef51c185f917c9890233f2 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 17:19:35 +1300 Subject: [PATCH 06/33] Remove old for block --- .../commons/category/CategorizationFragment.java | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 5226f7ec4..06d2eb570 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -230,26 +230,12 @@ public class CategorizationFragment extends Fragment { for(Iterator item = mergedItemsList.iterator(); item.hasNext();) { String s = item.next(); if(s.contains("2016")) { - Log.d(TAG, "Filtering out year " + item); + Log.d(TAG, "Filtering out year " + s); item.remove(); } } - /* - for (String item : mergedItemsList) { - Log.d(TAG, "Filtering item: " + item); - //"(19|20)\\d{2}" - //"\\b(19|20)\\d{2}\\b" - if (item.contains("2016")) { - Log.d(TAG, "Filtering out year " + item); - mergedItemsList.remove(item); - } - } -*/ - - Log.d(TAG, "Merged item list: " + mergedItemsList); - return mergedItemsList; } From 2b4960afb81a89ea59b4656394813bec382f9d7e Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 17:20:18 +1300 Subject: [PATCH 07/33] Change literal 2016 to regexp --- .../fr/free/nrw/commons/category/CategorizationFragment.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 06d2eb570..6045e6450 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -226,10 +226,9 @@ public class CategorizationFragment extends Fragment { //"(19|20)\\d{2}" //"\\b(19|20)\\d{2}\\b" - for(Iterator item = mergedItemsList.iterator(); item.hasNext();) { String s = item.next(); - if(s.contains("2016")) { + if(s.contains("(19|20)\\d{2}")) { Log.d(TAG, "Filtering out year " + s); item.remove(); } From 87ceeb81a063cab9de4291042eb30afcbfd20b0b Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 17:22:54 +1300 Subject: [PATCH 08/33] Try only double escaping \\d --- .../fr/free/nrw/commons/category/CategorizationFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 6045e6450..13433848f 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -228,7 +228,7 @@ public class CategorizationFragment extends Fragment { //"\\b(19|20)\\d{2}\\b" for(Iterator item = mergedItemsList.iterator(); item.hasNext();) { String s = item.next(); - if(s.contains("(19|20)\\d{2}")) { + if(s.contains("\b(19|20)\\d{2}\b)")) { Log.d(TAG, "Filtering out year " + s); item.remove(); } From f14c7eb7ba6c3635f2c1f356c9b40919650f8a76 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 17:24:09 +1300 Subject: [PATCH 09/33] Remove wrong parantheses --- .../fr/free/nrw/commons/category/CategorizationFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 13433848f..1e2c4471b 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -228,7 +228,7 @@ public class CategorizationFragment extends Fragment { //"\\b(19|20)\\d{2}\\b" for(Iterator item = mergedItemsList.iterator(); item.hasNext();) { String s = item.next(); - if(s.contains("\b(19|20)\\d{2}\b)")) { + if(s.contains("\b(19|20)\\d{2}\b")) { Log.d(TAG, "Filtering out year " + s); item.remove(); } From ab4669b99df928c32f8276f655c99ea9f1c1102b Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 17:28:06 +1300 Subject: [PATCH 10/33] Use matches instead of contains --- .../fr/free/nrw/commons/category/CategorizationFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 1e2c4471b..c05368b30 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -228,7 +228,7 @@ public class CategorizationFragment extends Fragment { //"\\b(19|20)\\d{2}\\b" for(Iterator item = mergedItemsList.iterator(); item.hasNext();) { String s = item.next(); - if(s.contains("\b(19|20)\\d{2}\b")) { + if(s.matches("\\b(19|20)\\d{2}\\b")) { Log.d(TAG, "Filtering out year " + s); item.remove(); } From 3e74809d43c8d50c3254bacf84381140d1901142 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 17:28:51 +1300 Subject: [PATCH 11/33] Add FIXME for failed regexp --- .../fr/free/nrw/commons/category/CategorizationFragment.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index c05368b30..7ed3a9b04 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -226,6 +226,7 @@ public class CategorizationFragment extends Fragment { //"(19|20)\\d{2}" //"\\b(19|20)\\d{2}\\b" + //FIXME: Regex not working for(Iterator item = mergedItemsList.iterator(); item.hasNext();) { String s = item.next(); if(s.matches("\\b(19|20)\\d{2}\\b")) { From 91adefb7339ee53d4e35c1ee1d9142404d3c5b61 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 17:31:11 +1300 Subject: [PATCH 12/33] Try simpler regexp --- .../fr/free/nrw/commons/category/CategorizationFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 7ed3a9b04..39f92678c 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -229,7 +229,7 @@ public class CategorizationFragment extends Fragment { //FIXME: Regex not working for(Iterator item = mergedItemsList.iterator(); item.hasNext();) { String s = item.next(); - if(s.matches("\\b(19|20)\\d{2}\\b")) { + if(s.matches("\\b\\d{4}\\b")) { Log.d(TAG, "Filtering out year " + s); item.remove(); } From b15faa9a35541d1da443e135d99519e2dbe96ca4 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 17:42:05 +1300 Subject: [PATCH 13/33] Fix regular expression --- .../free/nrw/commons/category/CategorizationFragment.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 39f92678c..48cd97206 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -223,13 +223,11 @@ public class CategorizationFragment extends Fragment { //Needs to be an ArrayList and not a List unless we want to modify a big portion of preexisting code ArrayList mergedItemsList = new ArrayList(mergedItems); - - //"(19|20)\\d{2}" - //"\\b(19|20)\\d{2}\\b" - //FIXME: Regex not working + for(Iterator item = mergedItemsList.iterator(); item.hasNext();) { String s = item.next(); - if(s.matches("\\b\\d{4}\\b")) { + + if(s.matches(".*\\d{4}.*")) { Log.d(TAG, "Filtering out year " + s); item.remove(); } From e2c8f30a95a19f63cc074555923ec9e46cef6899 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 17:43:34 +1300 Subject: [PATCH 14/33] Add comments --- .../fr/free/nrw/commons/category/CategorizationFragment.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 48cd97206..8975270db 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -223,10 +223,12 @@ public class CategorizationFragment extends Fragment { //Needs to be an ArrayList and not a List unless we want to modify a big portion of preexisting code ArrayList mergedItemsList = new ArrayList(mergedItems); - + + //Copy to Iterator to prevent ConcurrentModificationException for(Iterator item = mergedItemsList.iterator(); item.hasNext();) { String s = item.next(); + //Check if s contains a 4-digit word anywhere within the string (.* is wildcard) if(s.matches(".*\\d{4}.*")) { Log.d(TAG, "Filtering out year " + s); item.remove(); From 0234b09f17d4d8a11116557a229f41bfb81a597f Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 17:45:16 +1300 Subject: [PATCH 15/33] Add comment --- .../fr/free/nrw/commons/category/CategorizationFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 8975270db..661623e8b 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -224,7 +224,7 @@ public class CategorizationFragment extends Fragment { //Needs to be an ArrayList and not a List unless we want to modify a big portion of preexisting code ArrayList mergedItemsList = new ArrayList(mergedItems); - //Copy to Iterator to prevent ConcurrentModificationException + //Copy to Iterator to prevent ConcurrentModificationException when removing item for(Iterator item = mergedItemsList.iterator(); item.hasNext();) { String s = item.next(); From 6eb58497a34cea785c461b671a069ac78fc939ee Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 17:46:49 +1300 Subject: [PATCH 16/33] Whitespace --- .../fr/free/nrw/commons/category/CategorizationFragment.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 661623e8b..333921645 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -218,9 +218,7 @@ public class CategorizationFragment extends Fragment { Log.d(TAG, "Adding title items: " + titleItems); mergedItems.addAll(recentItems); Log.d(TAG, "Adding recent items: " + recentItems); - - - + //Needs to be an ArrayList and not a List unless we want to modify a big portion of preexisting code ArrayList mergedItemsList = new ArrayList(mergedItems); From 242f2ca12ddf56994dff5ed2b7816187a5dd1c91 Mon Sep 17 00:00:00 2001 From: misaochan Date: Tue, 25 Oct 2016 17:47:04 +1300 Subject: [PATCH 17/33] DEBUG MODE OFF --- .../main/java/fr/free/nrw/commons/upload/UploadController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java index 6d95bd717..049249421 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java @@ -156,7 +156,7 @@ public class UploadController { @Override protected void onPostExecute(Contribution contribution) { super.onPostExecute(contribution); - //uploadService.queue(UploadService.ACTION_UPLOAD_FILE, contribution); + uploadService.queue(UploadService.ACTION_UPLOAD_FILE, contribution); onComplete.onUploadStarted(contribution); } }); From 339dcdb8053155353bad878e5508ec4498106ffd Mon Sep 17 00:00:00 2001 From: Nicolas Raoul Date: Wed, 26 Oct 2016 19:56:49 +0900 Subject: [PATCH 18/33] Updated path --- find-broken-strings-variables.sh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/find-broken-strings-variables.sh b/find-broken-strings-variables.sh index 7110fb4ab..f5f3cee66 100755 --- a/find-broken-strings-variables.sh +++ b/find-broken-strings-variables.sh @@ -2,11 +2,13 @@ # Spot malformed string replacement patterns in Android localization files. # First install Lint from the Android SDK -grep -R "%1$ s" res/values* -grep -R "%1$ d" res/values* -grep -R "%1" res/values* | grep -v "%1\\$" +VALUES=app/src/main/res/values -grep -RH '%' res/values* | +grep -R "%1$ s" $VALUES* +grep -R "%1$ d" $VALUES* +grep -R "%1" $VALUES* | grep -v "%1\\$" + +grep -RH '%' $VALUES* | sed -e 's/%/\n%/g' | # Split lines that contain several expressions grep '%' | # Filter out lines that do not contain expressions grep -v ' % ' | # Lone % character, not a variable @@ -23,10 +25,10 @@ grep -RH '%' res/values* | grep -v '%20' # Ignore URL whitespace exit # Double-width percent sign -grep -R '%' res/values* +grep -R '%' $VALUES* # Broken CDATA syntax -grep -R "CDATA " res/values* +grep -R "CDATA " $VALUES* # Android SDK Lint (does not detect most syntax errors) lint --check StringFormatInvalid commons From 5a825b0c1e67054132983e8a6f08e3afc290198c Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 27 Oct 2016 16:00:21 +1300 Subject: [PATCH 19/33] DEBUG MODE ON --- .../main/java/fr/free/nrw/commons/upload/UploadController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java index 049249421..6d95bd717 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java @@ -156,7 +156,7 @@ public class UploadController { @Override protected void onPostExecute(Contribution contribution) { super.onPostExecute(contribution); - uploadService.queue(UploadService.ACTION_UPLOAD_FILE, contribution); + //uploadService.queue(UploadService.ACTION_UPLOAD_FILE, contribution); onComplete.onUploadStarted(contribution); } }); From a058adcc424dcaf661d57610555d1e1b847a10d5 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 27 Oct 2016 16:02:54 +1300 Subject: [PATCH 20/33] Switch to checking for 19/20 years only --- .../fr/free/nrw/commons/category/CategorizationFragment.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 333921645..0481dec7d 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -226,8 +226,9 @@ public class CategorizationFragment extends Fragment { for(Iterator item = mergedItemsList.iterator(); item.hasNext();) { String s = item.next(); + //\b(19|20)\d{2}\b //Check if s contains a 4-digit word anywhere within the string (.* is wildcard) - if(s.matches(".*\\d{4}.*")) { + if(s.matches(".*(19|20)\\d{2}.*")) { Log.d(TAG, "Filtering out year " + s); item.remove(); } From aaf91ac2648741db018c9d4d13a339ec79fdc8c5 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 27 Oct 2016 16:06:53 +1300 Subject: [PATCH 21/33] Remove comment --- .../fr/free/nrw/commons/category/CategorizationFragment.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 0481dec7d..cc81c0a67 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -225,8 +225,7 @@ public class CategorizationFragment extends Fragment { //Copy to Iterator to prevent ConcurrentModificationException when removing item for(Iterator item = mergedItemsList.iterator(); item.hasNext();) { String s = item.next(); - - //\b(19|20)\d{2}\b + //Check if s contains a 4-digit word anywhere within the string (.* is wildcard) if(s.matches(".*(19|20)\\d{2}.*")) { Log.d(TAG, "Filtering out year " + s); From bff5ce96b051e38bdaa58e42932d6c13d26858da Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 27 Oct 2016 16:09:47 +1300 Subject: [PATCH 22/33] Add filterYears method --- .../commons/category/CategorizationFragment.java | 11 +---------- .../free/nrw/commons/category/PrefixUpdater.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index cc81c0a67..aad549bef 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -222,16 +222,7 @@ public class CategorizationFragment extends Fragment { //Needs to be an ArrayList and not a List unless we want to modify a big portion of preexisting code ArrayList mergedItemsList = new ArrayList(mergedItems); - //Copy to Iterator to prevent ConcurrentModificationException when removing item - for(Iterator item = mergedItemsList.iterator(); item.hasNext();) { - String s = item.next(); - - //Check if s contains a 4-digit word anywhere within the string (.* is wildcard) - if(s.matches(".*(19|20)\\d{2}.*")) { - Log.d(TAG, "Filtering out year " + s); - item.remove(); - } - } + Log.d(TAG, "Merged item list: " + mergedItemsList); return mergedItemsList; diff --git a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java index b095bfe6a..2be982ff6 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java @@ -10,6 +10,7 @@ import org.mediawiki.api.MWApi; import java.io.IOException; import java.util.ArrayList; +import java.util.Iterator; import javax.net.ssl.SSLPeerUnverifiedException; @@ -41,6 +42,21 @@ public class PrefixUpdater extends AsyncTask> { catFragment.categoriesSkip.setVisibility(View.GONE); } + protected ArrayList filterYears(ArrayList items) { + //Copy to Iterator to prevent ConcurrentModificationException when removing item + for(Iterator item = items.iterator(); item.hasNext();) { + String s = item.next(); + + //Check if s contains a 4-digit word anywhere within the string (.* is wildcard) + if(s.matches(".*(19|20)\\d{2}.*")) { + Log.d(TAG, "Filtering out year " + s); + item.remove(); + } + } + + return items; + } + @Override protected ArrayList doInBackground(Void... voids) { //If user hasn't typed anything in yet, get GPS and recent items From 37bd557a062883c2df7beafd2f7ef4855e894bf0 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 27 Oct 2016 16:13:20 +1300 Subject: [PATCH 23/33] Test filterYears() with gps/recent/title cats --- .../main/java/fr/free/nrw/commons/category/PrefixUpdater.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java index 2be982ff6..fb50137d9 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java @@ -61,7 +61,9 @@ public class PrefixUpdater extends AsyncTask> { protected ArrayList doInBackground(Void... voids) { //If user hasn't typed anything in yet, get GPS and recent items if(TextUtils.isEmpty(filter)) { - return catFragment.mergeItems(); + ArrayList mergedItems = new ArrayList(catFragment.mergeItems()); + ArrayList filteredItems = new ArrayList(filterYears(mergedItems)); + return filteredItems; } //if user types in something that is in cache, return cached category From 464d6e0bac390937b7fa7a523fd839efb3b51175 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 27 Oct 2016 16:21:21 +1300 Subject: [PATCH 24/33] Add logs and additional var filteredItems to store list --- .../fr/free/nrw/commons/category/CategorizationFragment.java | 2 -- .../java/fr/free/nrw/commons/category/PrefixUpdater.java | 5 ++++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index aad549bef..ca8300172 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -222,8 +222,6 @@ public class CategorizationFragment extends Fragment { //Needs to be an ArrayList and not a List unless we want to modify a big portion of preexisting code ArrayList mergedItemsList = new ArrayList(mergedItems); - - Log.d(TAG, "Merged item list: " + mergedItemsList); return mergedItemsList; } diff --git a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java index fb50137d9..015b397a7 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java @@ -43,6 +43,7 @@ public class PrefixUpdater extends AsyncTask> { } protected ArrayList filterYears(ArrayList items) { + //Copy to Iterator to prevent ConcurrentModificationException when removing item for(Iterator item = items.iterator(); item.hasNext();) { String s = item.next(); @@ -54,7 +55,8 @@ public class PrefixUpdater extends AsyncTask> { } } - return items; + ArrayList filteredItems = new ArrayList(items); + return filteredItems; } @Override @@ -62,6 +64,7 @@ public class PrefixUpdater extends AsyncTask> { //If user hasn't typed anything in yet, get GPS and recent items if(TextUtils.isEmpty(filter)) { ArrayList mergedItems = new ArrayList(catFragment.mergeItems()); + Log.d(TAG, "Merged items, waiting for filter"); ArrayList filteredItems = new ArrayList(filterYears(mergedItems)); return filteredItems; } From ae0ab0cf2d360dc1a5008ec60baa629cdd0c9c95 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 27 Oct 2016 16:26:17 +1300 Subject: [PATCH 25/33] Rename item to iterator --- .../free/nrw/commons/category/PrefixUpdater.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java index 015b397a7..9f9055a11 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java @@ -11,11 +11,14 @@ import org.mediawiki.api.MWApi; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; +import java.util.List; import javax.net.ssl.SSLPeerUnverifiedException; import fr.free.nrw.commons.CommonsApplication; +import static android.R.id.list; + /** * Sends asynchronous queries to the Commons MediaWiki API to retrieve categories that share the * same prefix as the keyword typed in by the user. The 'acprefix' action-specific parameter is used @@ -44,18 +47,22 @@ public class PrefixUpdater extends AsyncTask> { protected ArrayList filterYears(ArrayList items) { + Iterator iterator; + //Copy to Iterator to prevent ConcurrentModificationException when removing item - for(Iterator item = items.iterator(); item.hasNext();) { - String s = item.next(); + for(iterator = items.iterator(); iterator.hasNext();) { + String s = iterator.next(); //Check if s contains a 4-digit word anywhere within the string (.* is wildcard) if(s.matches(".*(19|20)\\d{2}.*")) { Log.d(TAG, "Filtering out year " + s); - item.remove(); + iterator.remove(); } } - ArrayList filteredItems = new ArrayList(items); + ArrayList filteredItems = new ArrayList<>(); + + return filteredItems; } From b83999b9b1b0935d47817a40d400ac92994df7e4 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 27 Oct 2016 16:28:14 +1300 Subject: [PATCH 26/33] Call remove() on ArrayList instead of Iterator --- .../java/fr/free/nrw/commons/category/PrefixUpdater.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java index 9f9055a11..aaaf85518 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java @@ -56,14 +56,11 @@ public class PrefixUpdater extends AsyncTask> { //Check if s contains a 4-digit word anywhere within the string (.* is wildcard) if(s.matches(".*(19|20)\\d{2}.*")) { Log.d(TAG, "Filtering out year " + s); - iterator.remove(); + items.remove(s); } } - - ArrayList filteredItems = new ArrayList<>(); - - - return filteredItems; + + return items; } @Override From 4c3ca2fd41a8057e9a25b663f30ad3fc7317ca38 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 27 Oct 2016 16:32:48 +1300 Subject: [PATCH 27/33] remove() iterator again --- .../java/fr/free/nrw/commons/category/PrefixUpdater.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java index aaaf85518..0f370aedc 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java @@ -31,6 +31,8 @@ public class PrefixUpdater extends AsyncTask> { private static final String TAG = PrefixUpdater.class.getName(); private CategorizationFragment catFragment; + ArrayList filteredItems = new ArrayList<> (); + public PrefixUpdater(CategorizationFragment catFragment) { this.catFragment = catFragment; } @@ -56,10 +58,11 @@ public class PrefixUpdater extends AsyncTask> { //Check if s contains a 4-digit word anywhere within the string (.* is wildcard) if(s.matches(".*(19|20)\\d{2}.*")) { Log.d(TAG, "Filtering out year " + s); - items.remove(s); + iterator.remove(); } } - + + Log.d(TAG, "Items: " + items.toString()); return items; } From b7fef046d3a4b3161397ddf52fe168938e230711 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 27 Oct 2016 16:33:40 +1300 Subject: [PATCH 28/33] Add similar method to MethodAUpdater --- .../nrw/commons/category/MethodAUpdater.java | 26 ++++++++++++++++++- .../nrw/commons/category/PrefixUpdater.java | 4 +-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java index 5ac3f3bf2..ff1d72fba 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java @@ -10,6 +10,7 @@ import org.mediawiki.api.MWApi; import java.io.IOException; import java.util.ArrayList; +import java.util.Iterator; import fr.free.nrw.commons.CommonsApplication; @@ -38,11 +39,34 @@ public class MethodAUpdater extends AsyncTask> { catFragment.categoriesSkip.setVisibility(View.GONE); } + private ArrayList filterYears(ArrayList items) { + + Iterator iterator; + + //Copy to Iterator to prevent ConcurrentModificationException when removing item + for(iterator = items.iterator(); iterator.hasNext();) { + String s = iterator.next(); + + //Check if s contains a 4-digit word anywhere within the string (.* is wildcard) + if(s.matches(".*(19|20)\\d{2}.*")) { + Log.d(TAG, "Filtering out year " + s); + iterator.remove(); + } + } + + Log.d(TAG, "Items: " + items.toString()); + return items; + } + + @Override protected ArrayList doInBackground(Void... voids) { //If user hasn't typed anything in yet, get GPS and recent items if(TextUtils.isEmpty(filter)) { - return catFragment.mergeItems(); + ArrayList mergedItems = new ArrayList(catFragment.mergeItems()); + Log.d(TAG, "Merged items, waiting for filter"); + ArrayList filteredItems = new ArrayList(filterYears(mergedItems)); + return filteredItems; } //if user types in something that is in cache, return cached category diff --git a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java index 0f370aedc..400eee3af 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java @@ -31,8 +31,6 @@ public class PrefixUpdater extends AsyncTask> { private static final String TAG = PrefixUpdater.class.getName(); private CategorizationFragment catFragment; - ArrayList filteredItems = new ArrayList<> (); - public PrefixUpdater(CategorizationFragment catFragment) { this.catFragment = catFragment; } @@ -47,7 +45,7 @@ public class PrefixUpdater extends AsyncTask> { catFragment.categoriesSkip.setVisibility(View.GONE); } - protected ArrayList filterYears(ArrayList items) { + private ArrayList filterYears(ArrayList items) { Iterator iterator; From 9a475ef3c98c940b1db9ae65a19c251187c35549 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 27 Oct 2016 16:37:36 +1300 Subject: [PATCH 29/33] Add filterYears() call to all category return methods --- .../fr/free/nrw/commons/category/MethodAUpdater.java | 9 +++++++-- .../java/fr/free/nrw/commons/category/PrefixUpdater.java | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java index ff1d72fba..3bada7fe5 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java @@ -71,7 +71,10 @@ public class MethodAUpdater extends AsyncTask> { //if user types in something that is in cache, return cached category if(catFragment.categoriesCache.containsKey(filter)) { - return catFragment.categoriesCache.get(filter); + ArrayList cachedItems = new ArrayList(catFragment.categoriesCache.get(filter)); + Log.d(TAG, "Found cache items, waiting for filter"); + ArrayList filteredItems = new ArrayList(filterYears(cachedItems)); + return filteredItems; } //otherwise if user has typed something in that isn't in cache, search API for matching categories @@ -103,6 +106,8 @@ public class MethodAUpdater extends AsyncTask> { categories.add(catString); } - return categories; + Log.d(TAG, "Found categories from Method A search, waiting for filter"); + ArrayList filteredItems = new ArrayList(filterYears(categories)); + return filteredItems; } } diff --git a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java index 400eee3af..ad88e3b0d 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java @@ -76,7 +76,10 @@ public class PrefixUpdater extends AsyncTask> { //if user types in something that is in cache, return cached category if(catFragment.categoriesCache.containsKey(filter)) { - return catFragment.categoriesCache.get(filter); + ArrayList cachedItems = new ArrayList(catFragment.categoriesCache.get(filter)); + Log.d(TAG, "Found cache items, waiting for filter"); + ArrayList filteredItems = new ArrayList(filterYears(cachedItems)); + return filteredItems; } //otherwise if user has typed something in that isn't in cache, search API for matching categories @@ -102,6 +105,8 @@ public class PrefixUpdater extends AsyncTask> { categories.add(categoryNode.getDocument().getTextContent()); } - return categories; + Log.d(TAG, "Found categories from Prefix search, waiting for filter"); + ArrayList filteredItems = new ArrayList(filterYears(categories)); + return filteredItems; } } From a380082008ccaadd16e048dd1fc74266173c578a Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 27 Oct 2016 16:55:16 +1300 Subject: [PATCH 30/33] Add current and prev year to PrefixUpdater --- .../fr/free/nrw/commons/category/PrefixUpdater.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java index ad88e3b0d..9ce3e96e2 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java @@ -10,6 +10,7 @@ import org.mediawiki.api.MWApi; import java.io.IOException; import java.util.ArrayList; +import java.util.Calendar; import java.util.Iterator; import java.util.List; @@ -49,12 +50,21 @@ public class PrefixUpdater extends AsyncTask> { Iterator iterator; + Calendar now = Calendar.getInstance(); + int year = now.get(Calendar.YEAR); + String yearInString = String.valueOf(year); + + int prevYear = year - 1; + String prevYearInString = String.valueOf(prevYear); + + //Copy to Iterator to prevent ConcurrentModificationException when removing item for(iterator = items.iterator(); iterator.hasNext();) { String s = iterator.next(); //Check if s contains a 4-digit word anywhere within the string (.* is wildcard) - if(s.matches(".*(19|20)\\d{2}.*")) { + //And that s does not equal the current year or previous year + if(s.matches(".*(19|20)\\d{2}.*") && !s.equals(yearInString) && !s.equals(prevYearInString)) { Log.d(TAG, "Filtering out year " + s); iterator.remove(); } From 03b3f70ca84d77d3ef34474e4f4f10609dfef388 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 27 Oct 2016 16:57:58 +1300 Subject: [PATCH 31/33] Change equals to contains --- .../java/fr/free/nrw/commons/category/PrefixUpdater.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java index 9ce3e96e2..1b98b187c 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java @@ -53,10 +53,11 @@ public class PrefixUpdater extends AsyncTask> { Calendar now = Calendar.getInstance(); int year = now.get(Calendar.YEAR); String yearInString = String.valueOf(year); + Log.d(TAG, "Year: " + yearInString); int prevYear = year - 1; String prevYearInString = String.valueOf(prevYear); - + Log.d(TAG, "Previous year: " + prevYearInString); //Copy to Iterator to prevent ConcurrentModificationException when removing item for(iterator = items.iterator(); iterator.hasNext();) { @@ -64,7 +65,7 @@ public class PrefixUpdater extends AsyncTask> { //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.equals(yearInString) && !s.equals(prevYearInString)) { + if(s.matches(".*(19|20)\\d{2}.*") && !s.contains(yearInString) && !s.contains(prevYearInString)) { Log.d(TAG, "Filtering out year " + s); iterator.remove(); } From 4ce2354cd6c643deecc833df4eca561e9b23ab97 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 27 Oct 2016 17:03:06 +1300 Subject: [PATCH 32/33] Add comments and copy entire method to MethodAUpdater --- .../nrw/commons/category/MethodAUpdater.java | 22 +++++++++++++++++-- .../nrw/commons/category/PrefixUpdater.java | 8 +++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java index 3bada7fe5..32f8660bf 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java @@ -10,6 +10,7 @@ import org.mediawiki.api.MWApi; import java.io.IOException; import java.util.ArrayList; +import java.util.Calendar; import java.util.Iterator; import fr.free.nrw.commons.CommonsApplication; @@ -39,16 +40,34 @@ public class MethodAUpdater extends AsyncTask> { catFragment.categoriesSkip.setVisibility(View.GONE); } + /** + * Remove categories that contain a year in them (starting with 19__ or 20__), except for this year + * and previous year + * Rationale: https://github.com/commons-app/apps-android-commons/issues/47 + * @param items Unfiltered list of categories + * @return Filtered category list + */ private ArrayList filterYears(ArrayList items) { Iterator iterator; + //Check for current and previous year to exclude these categories from removal + Calendar now = Calendar.getInstance(); + int year = now.get(Calendar.YEAR); + String yearInString = String.valueOf(year); + Log.d(TAG, "Year: " + yearInString); + + int prevYear = year - 1; + String prevYearInString = String.valueOf(prevYear); + Log.d(TAG, "Previous year: " + prevYearInString); + //Copy to Iterator to prevent ConcurrentModificationException when removing item for(iterator = items.iterator(); iterator.hasNext();) { String s = iterator.next(); //Check if s contains a 4-digit word anywhere within the string (.* is wildcard) - if(s.matches(".*(19|20)\\d{2}.*")) { + //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)) { Log.d(TAG, "Filtering out year " + s); iterator.remove(); } @@ -58,7 +77,6 @@ public class MethodAUpdater extends AsyncTask> { return items; } - @Override protected ArrayList doInBackground(Void... voids) { //If user hasn't typed anything in yet, get GPS and recent items diff --git a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java index 1b98b187c..39acc0385 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java @@ -46,10 +46,18 @@ public class PrefixUpdater extends AsyncTask> { catFragment.categoriesSkip.setVisibility(View.GONE); } + /** + * Remove categories that contain a year in them (starting with 19__ or 20__), except for this year + * and previous year + * Rationale: https://github.com/commons-app/apps-android-commons/issues/47 + * @param items Unfiltered list of categories + * @return Filtered category list + */ private ArrayList filterYears(ArrayList items) { Iterator iterator; + //Check for current and previous year to exclude these categories from removal Calendar now = Calendar.getInstance(); int year = now.get(Calendar.YEAR); String yearInString = String.valueOf(year); From 27be5943f763c005c6d6dfca4524d4179c47cd73 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 27 Oct 2016 17:06:34 +1300 Subject: [PATCH 33/33] DEBUG MODE OFF --- .../main/java/fr/free/nrw/commons/upload/UploadController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java index 6d95bd717..049249421 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java @@ -156,7 +156,7 @@ public class UploadController { @Override protected void onPostExecute(Contribution contribution) { super.onPostExecute(contribution); - //uploadService.queue(UploadService.ACTION_UPLOAD_FILE, contribution); + uploadService.queue(UploadService.ACTION_UPLOAD_FILE, contribution); onComplete.onUploadStarted(contribution); } });