/**
* 搜索用户
* @param searchResult
* @param queryText
*/
public void searchUser(final ISearchResult searchResult,String queryText) {
new AsyncTask<String, Void, List<User>>() {
@Override
protected void onPostExecute(List<User> aVoid) {
searchResult.onSearchResult(aVoid);
}
@Override
protected List<User> doInBackground(String... params) {
UserSearchManager userSearchManager = new UserSearchManager(con);
List<User> userList = null;
try {
String searchService = "search." + con.getServiceName();
Form form = userSearchManager.getSearchForm(searchService);
Form answerForm = form.createAnswerForm();
answerForm.setAnswer("Username", true);
answerForm.setAnswer("search", params[0]);
ReportedData data = userSearchManager.getSearchResults(answerForm, searchService);
List<ReportedData.Row> rowList = data.getRows();
if (rowList != null) {
userList = new ArrayList<>(rowList.size());
for (ReportedData.Row row : rowList) {
User user = new User();
String jid = row.getValues("jid").get(0);
String username = row.getValues("username").get(0);
String name = row.getValues("name").get(0);
user.setJid(jid);
user.setNickname(name);
user.setUsername(username);
userList.add(user);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return userList;
}
}.execute(queryText);
}