public void doForwardContent(Peer peer, AbsContent content) { long rid = RandomUtils.nextRid(); long date = createPendingDate(); long sortDate = date + 365 * 24 * 60 * 60 * 1000L; Message message = new Message(rid, sortDate, date, myUid(), MessageState.PENDING, content); context().getMessagesModule().getRouter().onOutgoingMessage(peer, message); pendingMessages.getPendingMessages().add(new PendingMessage(peer, rid, content)); savePending(); performSendContent(peer, rid, content); }
public void doSendText( @NotNull Peer peer, @NotNull String text, @Nullable ArrayList<Integer> mentions, /*Ignored*/ @Nullable String markDownText, boolean autoDetect) { text = text.trim(); long rid = RandomUtils.nextRid(); long date = createPendingDate(); long sortDate = date + 365 * 24 * 60 * 60 * 1000L; if (autoDetect) { mentions = new ArrayList<>(); if (peer.getPeerType() == PeerType.GROUP) { Group group = getGroup(peer.getPeerId()); String lowText = text.toLowerCase(); if (group.getMembers() != null) { for (GroupMember member : group.getMembers()) { User user = getUser(member.getUid()); if (user.getNick() != null) { String nick = "@" + user.getNick().toLowerCase(); // TODO: Better filtering if (lowText.contains(nick + ":") || lowText.contains(nick + " ") || lowText.contains(" " + nick) || lowText.endsWith(nick) || lowText.equals(nick)) { mentions.add(user.getUid()); } } } } } } TextContent content = TextContent.create(text, null, mentions); Message message = new Message(rid, sortDate, date, myUid(), MessageState.PENDING, content); context().getMessagesModule().getRouter().onOutgoingMessage(peer, message); pendingMessages.getPendingMessages().add(new PendingMessage(peer, rid, content)); savePending(); performSendContent(peer, rid, content); }
public void doSendAudio( Peer peer, String descriptor, String fileName, int fileSize, int duration) { long rid = RandomUtils.nextRid(); long date = createPendingDate(); long sortDate = date + 365 * 24 * 60 * 60 * 1000L; VoiceContent audioContent = VoiceContent.createLocalAudio(descriptor, fileName, fileSize, duration); Message message = new Message(rid, sortDate, date, myUid(), MessageState.PENDING, audioContent); context().getMessagesModule().getRouter().onOutgoingMessage(peer, message); pendingMessages.getPendingMessages().add(new PendingMessage(peer, rid, audioContent)); savePending(); performUploadFile(rid, descriptor, fileName); }
public void doSendLocation( @NotNull Peer peer, @NotNull Double longitude, @NotNull Double latitude, @Nullable String street, @Nullable String place) { long rid = RandomUtils.nextRid(); long date = createPendingDate(); long sortDate = date + 365 * 24 * 60 * 60 * 1000L; LocationContent content = LocationContent.create(longitude, latitude, street, place); Message message = new Message(rid, sortDate, date, myUid(), MessageState.PENDING, content); context().getMessagesModule().getRouter().onOutgoingMessage(peer, message); pendingMessages.getPendingMessages().add(new PendingMessage(peer, rid, content)); savePending(); performSendContent(peer, rid, content); }
public void doSendContact( @NotNull Peer peer, @NotNull ArrayList<String> emails, @NotNull ArrayList<String> phones, @Nullable String name, @Nullable String base64photo) { long rid = RandomUtils.nextRid(); long date = createPendingDate(); long sortDate = date + 365 * 24 * 60 * 60 * 1000L; ContactContent content = ContactContent.create(name, phones, emails, base64photo); Message message = new Message(rid, sortDate, date, myUid(), MessageState.PENDING, content); context().getMessagesModule().getRouter().onOutgoingMessage(peer, message); pendingMessages.getPendingMessages().add(new PendingMessage(peer, rid, content)); savePending(); performSendContent(peer, rid, content); }
public void doSendPhoto( Peer peer, FastThumb fastThumb, String descriptor, String fileName, int fileSize, int w, int h) { long rid = RandomUtils.nextRid(); long date = createPendingDate(); long sortDate = date + 365 * 24 * 60 * 60 * 1000L; PhotoContent photoContent = PhotoContent.createLocalPhoto(descriptor, fileName, fileSize, w, h, fastThumb); Message message = new Message(rid, sortDate, date, myUid(), MessageState.PENDING, photoContent); context().getMessagesModule().getRouter().onOutgoingMessage(peer, message); pendingMessages.getPendingMessages().add(new PendingMessage(peer, rid, photoContent)); savePending(); performUploadFile(rid, descriptor, fileName); }