diff options
author | jaffersulaiman <jaffersulaiman.mh@sasken.com> | 2016-03-30 15:03:43 +0530 |
---|---|---|
committer | jaffersulaiman <jaffersulaiman.mh@sasken.com> | 2016-03-30 15:48:53 +0530 |
commit | de3fb3d06544e81544122382c7b29684884d2f5c (patch) | |
tree | 6ba59980714a3f770e93ac23c6ee351a17cd46b8 | |
parent | ef48c44a1f441bd4f3f080fe86d75b509e9b90bd (diff) | |
download | android_packages_apps_CMFileManager-de3fb3d06544e81544122382c7b29684884d2f5c.tar.gz android_packages_apps_CMFileManager-de3fb3d06544e81544122382c7b29684884d2f5c.tar.bz2 android_packages_apps_CMFileManager-de3fb3d06544e81544122382c7b29684884d2f5c.zip |
Default file manager fails to search files with Russian file name
Changed Find command argument name to iname in command_list xml.
square brackets and upper case format removed from searchHelper class
Bug: CYNGNOS-2273
Change-Id: I40fe203929656055e209f10f6284c0b39634a6fb
5 files changed, 6 insertions, 24 deletions
diff --git a/res/xml/command_list.xml b/res/xml/command_list.xml index 6b399a4c..5fe0608d 100644 --- a/res/xml/command_list.xml +++ b/res/xml/command_list.xml @@ -50,7 +50,7 @@ <!-- List/Find/Info --> <command commandId="ls" commandPath="/system/bin/ls" commandArgs="%1$s 1> /dev/null && /system/bin/stat -t %1$s.* %1$s* 2> /dev/null" /> <command commandId="fileinfo" commandPath="/system/bin/stat" commandArgs="-t %1$s" /> - <command commandId="find" commandPath="/system/bin/find" commandArgs="%1$s \\( -name %2$s -o -name %3$s -o -name %4$s -o -name %5$s -o -name %6$s \\) -exec /system/bin/stat -t {} 2>&1 \\;" /> + <command commandId="find" commandPath="/system/bin/find" commandArgs="%1$s \\( -iname %2$s -o -name %3$s -o -name %4$s -o -name %5$s -o -name %6$s \\) -exec /system/bin/stat -t {} 2>&1 \\;" /> <command commandId="quickfoldersearch" commandPath="/system/bin/ls" commandArgs="-aFd %1$s.* %1$s* 2> /dev/null | /system/bin/grep -e '^d' -e '^ld' | /system/bin/cut -d" " -f2-" /> <command commandId="readlink" commandPath="/system/bin/ls" commandArgs="%1$s 1> /dev/null && /system/bin/stat -t -L %1$s 2>&1" /> diff --git a/src/com/cyanogenmod/filemanager/commands/java/FindCommand.java b/src/com/cyanogenmod/filemanager/commands/java/FindCommand.java index e4f1b08c..0dcdfe8d 100644 --- a/src/com/cyanogenmod/filemanager/commands/java/FindCommand.java +++ b/src/com/cyanogenmod/filemanager/commands/java/FindCommand.java @@ -268,7 +268,7 @@ public class FindCommand extends Program implements FindExecutable { String[] args = new String[query.getSlotsCount()]; int cc = query.getSlotsCount(); for (int i = 0; i < cc; i++) { - args[i] = SearchHelper.toIgnoreCaseRegExp(query.getSlot(i), true); + args[i] = SearchHelper.toRegExp(query.getSlot(i), true); } return args; } diff --git a/src/com/cyanogenmod/filemanager/commands/secure/FindCommand.java b/src/com/cyanogenmod/filemanager/commands/secure/FindCommand.java index 35289e5a..11eac1ab 100644 --- a/src/com/cyanogenmod/filemanager/commands/secure/FindCommand.java +++ b/src/com/cyanogenmod/filemanager/commands/secure/FindCommand.java @@ -276,7 +276,7 @@ public class FindCommand extends Program implements FindExecutable { String[] args = new String[query.getSlotsCount()]; int cc = query.getSlotsCount(); for (int i = 0; i < cc; i++) { - args[i] = SearchHelper.toIgnoreCaseRegExp(query.getSlot(i), true); + args[i] = SearchHelper.toRegExp(query.getSlot(i), true); } return args; } diff --git a/src/com/cyanogenmod/filemanager/commands/shell/FindCommand.java b/src/com/cyanogenmod/filemanager/commands/shell/FindCommand.java index dfad941f..cb8e4ac8 100644 --- a/src/com/cyanogenmod/filemanager/commands/shell/FindCommand.java +++ b/src/com/cyanogenmod/filemanager/commands/shell/FindCommand.java @@ -193,7 +193,7 @@ public class FindCommand extends AsyncResultProgram implements FindExecutable { args[0] = directory; int cc = query.getSlotsCount(); for (int i = 0; i < cc; i++) { - args[i + 1] = SearchHelper.toIgnoreCaseRegExp(query.getSlot(i), false); + args[i + 1] = SearchHelper.toRegExp(query.getSlot(i), false); } return args; } diff --git a/src/com/cyanogenmod/filemanager/util/SearchHelper.java b/src/com/cyanogenmod/filemanager/util/SearchHelper.java index 55ff5e8f..ee6cb799 100644 --- a/src/com/cyanogenmod/filemanager/util/SearchHelper.java +++ b/src/com/cyanogenmod/filemanager/util/SearchHelper.java @@ -58,7 +58,7 @@ public final class SearchHelper { * @return String The regular expressions of the query to match an ignore case search */ @SuppressWarnings("boxing") - public static String toIgnoreCaseRegExp(final String query, boolean javaRegExp) { + public static String toRegExp(final String query, boolean javaRegExp) { //Check that all is correct if (query == null || query.trim().length() == 0) { return ""; //$NON-NLS-1$ @@ -70,28 +70,10 @@ public final class SearchHelper { q = prepareQuery(q); } - //Convert the string to lower and upper - final String lowerCase = q.toLowerCase(Locale.ROOT); - final String upperCase = q.toUpperCase(Locale.ROOT); - - //Create the regular expression filter - StringBuffer sb = new StringBuffer(); - int cc = lowerCase.length(); - for (int i = 0; i < cc; i++) { - char lower = lowerCase.charAt(i); - char upper = upperCase.charAt(i); - if (lower != upper) { - //Convert to expression - sb.append(String.format("[%s%s]", lower, upper)); //$NON-NLS-1$ - } else { - //Not need to convert - sb.append(lower); - } - } return String.format( "%s%s%s", //$NON-NLS-1$; javaRegExp ? REGEXP_WILCARD_JAVA : REGEXP_WILCARD, - sb.toString(), javaRegExp ? REGEXP_WILCARD_JAVA : REGEXP_WILCARD); + q, javaRegExp ? REGEXP_WILCARD_JAVA : REGEXP_WILCARD); } /** |