微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android.support.v4.app.NotificationCompat.CarExtender.UnreadConversation的实例源码

项目: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] 举报,一经查实,本站将立刻删除。