Merge "optimization of searching apps in Chinese" am: a0357329e0
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/1425241 Change-Id: Ib6cc9b8979c42f93b7d2666297a46590a6ee6d4d
This commit is contained in:
commit
f655c6e433
|
@ -81,6 +81,10 @@ public class DefaultAppSearchAlgorithm implements SearchAlgorithm {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (requestSimpleFuzzySearch(query)) {
|
||||||
|
return title.toLowerCase().contains(query);
|
||||||
|
}
|
||||||
|
|
||||||
int lastType;
|
int lastType;
|
||||||
int thisType = Character.UNASSIGNED;
|
int thisType = Character.UNASSIGNED;
|
||||||
int nextType = Character.getType(title.codePointAt(0));
|
int nextType = Character.getType(title.codePointAt(0));
|
||||||
|
@ -181,4 +185,17 @@ public class DefaultAppSearchAlgorithm implements SearchAlgorithm {
|
||||||
return new StringMatcher();
|
return new StringMatcher();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean requestSimpleFuzzySearch(String s) {
|
||||||
|
for (int i = 0; i < s.length(); ) {
|
||||||
|
int codepoint = s.codePointAt(i);
|
||||||
|
i += Character.charCount(codepoint);
|
||||||
|
switch (Character.UnicodeScript.of(codepoint)) {
|
||||||
|
case HAN:
|
||||||
|
//Character.UnicodeScript.HAN: use String.contains to match
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,8 +68,8 @@ public class DefaultAppSearchAlgorithmTest {
|
||||||
|
|
||||||
assertTrue(DefaultAppSearchAlgorithm.matches(getInfo("电子邮件"), "电", MATCHER));
|
assertTrue(DefaultAppSearchAlgorithm.matches(getInfo("电子邮件"), "电", MATCHER));
|
||||||
assertTrue(DefaultAppSearchAlgorithm.matches(getInfo("电子邮件"), "电子", MATCHER));
|
assertTrue(DefaultAppSearchAlgorithm.matches(getInfo("电子邮件"), "电子", MATCHER));
|
||||||
assertFalse(DefaultAppSearchAlgorithm.matches(getInfo("电子邮件"), "子", MATCHER));
|
assertTrue(DefaultAppSearchAlgorithm.matches(getInfo("电子邮件"), "子", MATCHER));
|
||||||
assertFalse(DefaultAppSearchAlgorithm.matches(getInfo("电子邮件"), "邮件", MATCHER));
|
assertTrue(DefaultAppSearchAlgorithm.matches(getInfo("电子邮件"), "邮件", MATCHER));
|
||||||
|
|
||||||
assertFalse(DefaultAppSearchAlgorithm.matches(getInfo("Bot"), "ba", MATCHER));
|
assertFalse(DefaultAppSearchAlgorithm.matches(getInfo("Bot"), "ba", MATCHER));
|
||||||
assertFalse(DefaultAppSearchAlgorithm.matches(getInfo("bot"), "ba", MATCHER));
|
assertFalse(DefaultAppSearchAlgorithm.matches(getInfo("bot"), "ba", MATCHER));
|
||||||
|
|
Loading…
Reference in New Issue