[Quick search] added search favs by category
This commit is contained in:
parent
041cc8a4e9
commit
971fcf53bb
1 changed files with 31 additions and 2 deletions
|
@ -22,6 +22,7 @@ import java.util.List;
|
||||||
public class QuickSearchHelper {
|
public class QuickSearchHelper {
|
||||||
|
|
||||||
public static final int SEARCH_FAVORITE_API_PRIORITY = 2;
|
public static final int SEARCH_FAVORITE_API_PRIORITY = 2;
|
||||||
|
public static final int SEARCH_FAVORITE_API_CATEGORY_PRIORITY = 7;
|
||||||
public static final int SEARCH_FAVORITE_OBJECT_PRIORITY = 10;
|
public static final int SEARCH_FAVORITE_OBJECT_PRIORITY = 10;
|
||||||
public static final int SEARCH_WPT_API_PRIORITY = 2;
|
public static final int SEARCH_WPT_API_PRIORITY = 2;
|
||||||
public static final int SEARCH_WPT_OBJECT_PRIORITY = 10;
|
public static final int SEARCH_WPT_OBJECT_PRIORITY = 10;
|
||||||
|
@ -69,8 +70,6 @@ public class QuickSearchHelper {
|
||||||
resultMatcher.publish(sr);
|
resultMatcher.publish(sr);
|
||||||
} else if (phrase.getNameStringMatcher().matches(sr.localeName)) {
|
} else if (phrase.getNameStringMatcher().matches(sr.localeName)) {
|
||||||
resultMatcher.publish(sr);
|
resultMatcher.publish(sr);
|
||||||
} else if (point.getCategory() != null && phrase.getNameStringMatcher().matches(point.getCategory())) {
|
|
||||||
resultMatcher.publish(sr);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -85,6 +84,36 @@ public class QuickSearchHelper {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Register favorites by category search api
|
||||||
|
core.registerAPI(new SearchCoreFactory.SearchBaseAPI() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean search(SearchPhrase phrase, SearchUICore.SearchResultMatcher resultMatcher) {
|
||||||
|
List<FavouritePoint> favList = app.getFavorites().getFavouritePoints();
|
||||||
|
for (FavouritePoint point : favList) {
|
||||||
|
SearchResult sr = new SearchResult(phrase);
|
||||||
|
sr.localeName = point.getName();
|
||||||
|
sr.object = point;
|
||||||
|
sr.priority = SEARCH_FAVORITE_OBJECT_PRIORITY;
|
||||||
|
sr.objectType = ObjectType.FAVORITE;
|
||||||
|
sr.location = new LatLon(point.getLatitude(), point.getLongitude());
|
||||||
|
sr.preferredZoom = 17;
|
||||||
|
if (point.getCategory() != null && phrase.getNameStringMatcher().matches(point.getCategory())) {
|
||||||
|
resultMatcher.publish(sr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSearchPriority(SearchPhrase p) {
|
||||||
|
if(!p.isNoSelectedType() || !p.isUnknownSearchWordPresent()) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return SEARCH_FAVORITE_API_CATEGORY_PRIORITY;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Register WptPt search api
|
// Register WptPt search api
|
||||||
core.registerAPI(new SearchWptAPI(app));
|
core.registerAPI(new SearchWptAPI(app));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue