use of im.actor.core.entity.Avatar in project actor-platform by actorapp.
the class GlobalSearchBaseFragment method onCreateOptionsMenu.
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.fragment_global_search, menu);
searchMenu = menu.findItem(R.id.search);
if (messenger().getAppState().getIsAppEmpty().get()) {
searchMenu.setVisible(false);
} else {
searchMenu.setVisible(true);
}
searchView = (SearchView) searchMenu.getActionView();
searchView.setIconifiedByDefault(true);
MenuItemCompat.setOnActionExpandListener(searchMenu, new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
showSearch();
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
hideSearch();
return true;
}
});
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
return false;
}
@Override
public boolean onQueryTextChange(String s) {
searchQuery = s.trim();
if (isSearchVisible) {
if (s.trim().length() > 0) {
String activeSearchQuery = searchQuery;
searchDisplay.initSearch(s.trim().toLowerCase(), false);
scrolledToEnd = false;
searchAdapter.setQuery(s.trim().toLowerCase());
globalSearchResults.clear();
messenger().findPeers(s).start(new CommandCallback<List<PeerSearchEntity>>() {
@Override
public void onResult(List<PeerSearchEntity> res) {
if (searchQuery.equals(activeSearchQuery)) {
int order = 0;
outer: for (PeerSearchEntity pse : res) {
for (int i = 0; i < searchDisplay.getSize(); i++) {
if (searchDisplay.getItem(i).getPeer().equals(pse.getPeer())) {
continue outer;
}
}
Avatar avatar;
Peer peer = pse.getPeer();
String name;
if (peer.getPeerType() == PeerType.PRIVATE) {
UserVM userVM = users().get(peer.getPeerId());
name = userVM.getName().get();
avatar = userVM.getAvatar().get();
} else if (peer.getPeerType() == PeerType.GROUP) {
GroupVM groupVM = groups().get(peer.getPeerId());
name = groupVM.getName().get();
avatar = groupVM.getAvatar().get();
} else {
continue;
}
String optMatchString = pse.getOptMatchString();
globalSearchResults.add(new SearchEntity(pse.getPeer(), order++, avatar, optMatchString == null ? name : optMatchString));
}
if (globalSearchResults.size() > 0) {
globalSearchResults.add(new SearchEntityHeader(order++));
}
checkGlobalSearch();
onSearchChanged();
}
}
@Override
public void onError(Exception e) {
}
});
} else {
searchDisplay.initEmpty();
}
}
return false;
}
});
}
use of im.actor.core.entity.Avatar in project actor-platform by actorapp.
the class JsUser method fromUserVM.
public static JsUser fromUserVM(UserVM userVM, JsMessenger messenger) {
UserPresence presence = userVM.getPresence().get();
String presenceString = messenger.getFormatter().formatPresence(presence, userVM.getSex());
boolean isOnline = presence != null && presence.getState() == UserPresence.State.ONLINE;
if (userVM.isBot()) {
isOnline = true;
presenceString = "bot";
}
String fileUrl = null;
String bigFileUrl = null;
Avatar avatar = userVM.getAvatar().get();
if (avatar != null) {
if (avatar.getSmallImage() != null) {
fileUrl = messenger.getFileUrl(avatar.getSmallImage().getFileReference());
}
if (avatar.getLargeImage() != null) {
bigFileUrl = messenger.getFileUrl(avatar.getLargeImage().getFileReference());
}
}
JsArray<JsPhone> convertedPhones = JsArray.createArray().cast();
ArrayListUserPhone phones = userVM.getPhones().get();
for (UserPhone p : phones) {
convertedPhones.push(JsPhone.create(p.getPhone() + "", p.getTitle()));
}
JsArray<JsEmail> convertedEmails = JsArray.createArray().cast();
ArrayListUserEmail emails = userVM.getEmails().get();
for (UserEmail p : emails) {
convertedEmails.push(JsEmail.create(p.getEmail(), p.getTitle()));
}
return create(userVM.getId(), userVM.getName().get(), userVM.getNick().get(), userVM.getAbout().get(), fileUrl, bigFileUrl, Placeholders.getPlaceholder(userVM.getId()), userVM.isContact().get(), userVM.isBot(), presenceString, isOnline, userVM.getIsBlocked().get(), convertedPhones, convertedEmails, userVM.getTimeZone().get(), userVM.getIsVerified().get());
}
Aggregations