Search in sources :

Example 6 with Avatar

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;
        }
    });
}
Also used : MenuItemCompat(android.support.v4.view.MenuItemCompat) GroupVM(im.actor.core.viewmodel.GroupVM) Peer(im.actor.core.entity.Peer) MenuItem(android.view.MenuItem) Avatar(im.actor.core.entity.Avatar) PeerSearchEntity(im.actor.core.entity.PeerSearchEntity) UserVM(im.actor.core.viewmodel.UserVM) SearchView(android.support.v7.widget.SearchView) SearchEntity(im.actor.core.entity.SearchEntity) PeerSearchEntity(im.actor.core.entity.PeerSearchEntity) ArrayList(java.util.ArrayList) BindedDisplayList(im.actor.runtime.generic.mvvm.BindedDisplayList) List(java.util.List) DisplayList(im.actor.runtime.generic.mvvm.DisplayList) CommandCallback(im.actor.core.viewmodel.CommandCallback)

Example 7 with Avatar

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());
}
Also used : ArrayListUserPhone(im.actor.core.viewmodel.generics.ArrayListUserPhone) ArrayListUserPhone(im.actor.core.viewmodel.generics.ArrayListUserPhone) UserPhone(im.actor.core.viewmodel.UserPhone) ArrayListUserEmail(im.actor.core.viewmodel.generics.ArrayListUserEmail) UserPresence(im.actor.core.viewmodel.UserPresence) UserEmail(im.actor.core.viewmodel.UserEmail) ArrayListUserEmail(im.actor.core.viewmodel.generics.ArrayListUserEmail) Avatar(im.actor.core.entity.Avatar)

Aggregations

Avatar (im.actor.core.entity.Avatar)7 Peer (im.actor.core.entity.Peer)3 ArrayList (java.util.ArrayList)3 Notification (im.actor.core.entity.Notification)2 GroupVM (im.actor.core.viewmodel.GroupVM)2 UserVM (im.actor.core.viewmodel.UserVM)2 NotificationManager (android.app.NotificationManager)1 PendingIntent (android.app.PendingIntent)1 Intent (android.content.Intent)1 Drawable (android.graphics.drawable.Drawable)1 NotificationCompat (android.support.v4.app.NotificationCompat)1 RoundedBitmapDrawable (android.support.v4.graphics.drawable.RoundedBitmapDrawable)1 MenuItemCompat (android.support.v4.view.MenuItemCompat)1 SearchView (android.support.v7.widget.SearchView)1 SpannableStringBuilder (android.text.SpannableStringBuilder)1 MenuItem (android.view.MenuItem)1 ApiDialogGroup (im.actor.core.api.ApiDialogGroup)1 Group (im.actor.core.entity.Group)1 GroupMember (im.actor.core.entity.GroupMember)1 PeerSearchEntity (im.actor.core.entity.PeerSearchEntity)1