Change summary
src/main/java/eu/siacs/conversations/services/NotificationService.java | 9
src/main/java/eu/siacs/conversations/services/ShortcutService.java | 12
2 files changed, 16 insertions(+), 5 deletions(-)
Detailed changes
@@ -1369,6 +1369,7 @@ public class NotificationService {
mBuilder.setShortcutInfo(info);
if (Build.VERSION.SDK_INT >= 30) {
mXmppConnectionService.getSystemService(ShortcutManager.class).pushDynamicShortcut(info.toShortcutInfo());
+ // mBuilder.setBubbleMetadata(new NotificationCompat.BubbleMetadata.Builder(info.getId()).build());
}
}
return mBuilder;
@@ -1418,11 +1419,9 @@ public class NotificationService {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
final Jid jid = contact == null ? message.getCounterpart() : contact.getJid();
builder.setKey(jid.toString());
- for (Conversation c : mXmppConnectionService.getConversations()) {
- if (c.getAccount().equals(message.getConversation().getAccount()) && c.getJid().asBareJid().equals(jid)) {
- builder.setImportant(c.getBooleanAttribute(Conversation.ATTRIBUTE_PINNED_ON_TOP, false));
- break;
- }
+ final Conversation c = mXmppConnectionService.find(message.getConversation().getAccount(), jid);
+ if (c != null) {
+ builder.setImportant(c.getBooleanAttribute(Conversation.ATTRIBUTE_PINNED_ON_TOP, false));
}
builder.setIcon(
IconCompat.createWithBitmap(
@@ -21,7 +21,9 @@ import java.util.List;
import eu.siacs.conversations.Config;
import eu.siacs.conversations.entities.Account;
import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
import eu.siacs.conversations.ui.StartConversationActivity;
+import eu.siacs.conversations.ui.ConversationsActivity;
import eu.siacs.conversations.utils.ReplacingSerialSingleThreadExecutor;
import eu.siacs.conversations.xmpp.Jid;
@@ -128,6 +130,16 @@ public class ShortcutService {
}
private Intent getShortcutIntent(Contact contact) {
+ final Conversation conversation = xmppConnectionService.find(contact.getAccount(), contact.getJid());
+
+ if (conversation != null) {
+ Intent intent = new Intent(xmppConnectionService, ConversationsActivity.class);
+ intent.setAction(ConversationsActivity.ACTION_VIEW_CONVERSATION);
+ intent.putExtra(ConversationsActivity.EXTRA_CONVERSATION, conversation.getUuid());
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_SINGLE_TOP);
+ return intent;
+ }
+
Intent intent = new Intent(xmppConnectionService, StartConversationActivity.class);
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("xmpp:"+contact.getJid().asBareJid().toEscapedString()));