项目:TenguChat
文件:NotificationService.java
private void modifyForImage(final Builder builder,final UnreadConversation.Builder uBuilder,final Message message,final ArrayList<Message> messages) {
try {
final Bitmap bitmap = mXmppConnectionService.getFileBackend()
.getThumbnail(message,getPixel(288),false);
final ArrayList<Message> tmp = new ArrayList<>();
for (final Message msg : messages) {
if (msg.getType() == Message.TYPE_TEXT
&& msg.getTransferable() == null) {
tmp.add(msg);
}
}
final BigPictureStyle bigPictureStyle = new NotificationCompat.BigPictureStyle();
bigPictureStyle.bigPicture(bitmap);
if (tmp.size() > 0) {
CharSequence text = getMergedBodies(tmp);
bigPictureStyle.setSummaryText(text);
builder.setContentText(text);
} else {
builder.setContentText(mXmppConnectionService.getString(
R.string.received_x_file,UIHelper.getFileDescriptionString(mXmppConnectionService,message)));
}
builder.setStyle(bigPictureStyle);
} catch (final FileNotFoundException e) {
modifyForTextOnly(builder,uBuilder,messages);
}
}
项目:Pix-Art-Messenger
文件:NotificationService.java
private void modifyForImage(final Builder builder,messages);
}
}
项目:Conversations
文件:NotificationService.java
private void modifyForImage(final Builder builder,messages);
}
}
项目:TenguChat
文件:NotificationService.java
private Builder buildSingleConversations(final ArrayList<Message> messages) {
final Builder mBuilder = new NotificationCompat.Builder(mXmppConnectionService);
if (messages.size() >= 1) {
final Conversation conversation = messages.get(0).getConversation();
final UnreadConversation.Builder mUnreadBuilder = new UnreadConversation.Builder(conversation.getName());
mBuilder.setLargeIcon(mXmppConnectionService.getAvatarService()
.get(conversation,getPixel(64)));
mBuilder.setContentTitle(conversation.getName());
if (Config.HIDE_MESSAGE_TEXT_IN_NOTIFICATION) {
int count = messages.size();
mBuilder.setContentText(mXmppConnectionService.getResources().getQuantityString(R.plurals.x_messages,count,count));
} else {
Message message;
if ((message = getimage(messages)) != null) {
modifyForImage(mBuilder,mUnreadBuilder,message,messages);
} else {
modifyForTextOnly(mBuilder,messages);
}
RemoteInput remoteInput = new RemoteInput.Builder("text_reply").setLabel(UIHelper.getMessageHint(mXmppConnectionService,conversation)).build();
NotificationCompat.Action markReadAction = new NotificationCompat.Action.Builder(R.drawable.ic_send_text_offline,"Mark As Read",createReadPendingIntent(conversation)).build();
NotificationCompat.Action replyAction = new NotificationCompat.Action.Builder(R.drawable.ic_send_text_offline,"Reply",createReplyIntent(conversation,false)).addRemoteInput(remoteInput).build();
NotificationCompat.Action wearReplyAction = new NotificationCompat.Action.Builder(R.drawable.ic_wear_reply,true)).addRemoteInput(remoteInput).build();
mBuilder.extend(new NotificationCompat.WearableExtender().addAction(wearReplyAction));
mUnreadBuilder.setReplyAction(createReplyIntent(conversation,true),remoteInput);
mUnreadBuilder.setReadPendingIntent(createReadPendingIntent(conversation));
mBuilder.extend(new NotificationCompat.CarExtender().setUnreadConversation(mUnreadBuilder.build()));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
mBuilder.addAction(markReadAction);
mBuilder.addAction(replyAction);
}
if ((message = getFirstDownloadableMessage(messages)) != null) {
mBuilder.addAction(
Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ?
R.drawable.ic_file_download_white_24dp : R.drawable.ic_action_download,mXmppConnectionService.getResources().getString(R.string.download_x_file,message)),createDownloadIntent(message)
);
}
if ((message = getFirstLocationMessage(messages)) != null) {
mBuilder.addAction(R.drawable.ic_room_white_24dp,mXmppConnectionService.getString(R.string.show_location),createShowLocationIntent(message));
}
}
if (conversation.getMode() == Conversation.MODE_SINGLE) {
Contact contact = conversation.getContact();
Uri systemAccount = contact.getSystemAccount();
if (systemAccount != null) {
mBuilder.addPerson(systemAccount.toString());
}
}
mBuilder.setWhen(conversation.getLatestMessage().getTimeSent());
mBuilder.setSmallIcon(R.drawable.ic_notification);
mBuilder.setDeleteIntent(createDeleteIntent(conversation));
mBuilder.setContentIntent(createContentIntent(conversation));
}
return mBuilder;
}
项目:Pix-Art-Messenger
文件:NotificationService.java
private Builder buildSingleConversations(final ArrayList<Message> messages) {
final Builder mBuilder = new NotificationCompat.Builder(mXmppConnectionService);
if (messages.size() >= 1) {
final Conversation conversation = messages.get(0).getConversation();
final UnreadConversation.Builder mUnreadBuilder = new UnreadConversation.Builder(conversation.getName());
mBuilder.setLargeIcon(mXmppConnectionService.getAvatarService()
.get(conversation,mXmppConnectionService.getResources().getString(R.string.mark_as_read),mXmppConnectionService.getResources().getString(R.string.reply),createShowLocationIntent(message));
}
}
if (conversation.getMode() == Conversation.MODE_SINGLE) {
Contact contact = conversation.getContact();
Uri systemAccount = contact.getSystemAccount();
if (systemAccount != null) {
mBuilder.addPerson(systemAccount.toString());
}
}
mBuilder.setWhen(conversation.getLatestMessage().getTimeSent());
mBuilder.setSmallIcon(R.drawable.ic_notification);
mBuilder.setDeleteIntent(createDeleteIntent(conversation));
mBuilder.setContentIntent(createContentIntent(conversation));
}
return mBuilder;
}
项目:io2015-codelabs
文件:MessagingService.java
private void sendNotificationForConversation(int conversationId,String sender,String message,long timestamp) {
// A pending Intent for reads
PendingIntent readPendingIntent = PendingIntent.getbroadcast(getApplicationContext(),conversationId,getMessageReadIntent(conversationId),PendingIntent.FLAG_UPDATE_CURRENT);
/// Add the code to create the UnreadConversation
// Build a RemoteInput for receiving voice input in a Car Notification
RemoteInput remoteInput = new RemoteInput.Builder(EXTRA_VOICE_REPLY).build();
// Building a Pending Intent for the reply action to trigger
PendingIntent replyIntent = PendingIntent.getbroadcast(getApplicationContext(),getMessageReplyIntent(conversationId),PendingIntent.FLAG_UPDATE_CURRENT);
// Create the UnreadConversation and populate it with the participant name,// read and reply intents.
UnreadConversation.Builder unreadConversationBuilder =
new UnreadConversation.Builder(sender)
.setLatestTimestamp(timestamp)
.setReadPendingIntent(readPendingIntent)
.setReplyAction(replyIntent,remoteInput);
// Note: Add messages from oldest to newest to the UnreadConversation.Builder
// Since we are sending a single message here we simply add the message.
// In a real world application there Could be multiple messages which should be ordered
// and added from oldest to newest.
unreadConversationBuilder.addMessage(message);
/// End create UnreadConversation
NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext())
.setSmallIcon(R.drawable.notification_icon)
.setLargeIcon(BitmapFactory.decodeResource(
getApplicationContext().getResources(),R.drawable.android_contact))
.setContentText(message)
.setWhen(timestamp)
.setContentTitle(sender)
.setContentIntent(readPendingIntent)
/// Extend the notification with CarExtender.
.extend(new CarExtender()
.setUnreadConversation(unreadConversationBuilder.build()))
.setColor(getResources().getColor(R.color.default_color_light));
/// End
;
Log.d(TAG,"Sending notification "
+ conversationId + " conversation: " + message);
notificationmanagerCompat.from(this)
.notify(conversationId,builder.build());
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。