From 5eace49739a4b0da391c0031c2307f7d7134d074 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 22 Oct 2020 11:57:18 -0400 Subject: [PATCH] Improve PushProcessMessageJob logging. --- .../securesms/jobs/PushProcessMessageJob.java | 139 ++++++++---------- 1 file changed, 62 insertions(+), 77 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageJob.java index c80d10df43..bc3e83f9fc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageJob.java @@ -250,7 +250,7 @@ public final class PushProcessMessageJob extends BaseJob { } } } catch (BadGroupIdException e) { - Log.w(TAG, "Bad groupId! Using default queue."); + Log.w(TAG, "Bad groupId! Using default queue. ID: " + content.getTimestamp()); } } else { queueName = getQueueName(RecipientId.fromHighTrust(content.getSender())); @@ -302,7 +302,7 @@ public final class PushProcessMessageJob extends BaseJob { .retrieve(Recipient.externalPush(context, content.getSender()).getId(), content.getTimestamp()); if (earlyContent.isPresent()) { - Log.i(TAG, "Found " + earlyContent.get().size() + " dependent item(s) that were retrieved earlier. Processing."); + log(TAG, String.valueOf(content.getTimestamp()), "Found " + earlyContent.get().size() + " dependent item(s) that were retrieved earlier. Processing."); for (SignalServiceContent earlyItem : earlyContent.get()) { handleMessage(earlyItem, Optional.absent()); @@ -311,7 +311,7 @@ public final class PushProcessMessageJob extends BaseJob { } else if (exceptionMetadata != null) { handleExceptionMessage(exceptionMetadata, optionalSmsMessageId); } else { - Log.w(TAG, "Bad state! messageState: " + messageState); + warn(TAG, "Bad state! messageState: " + messageState); } } @@ -333,11 +333,11 @@ public final class PushProcessMessageJob extends BaseJob { GroupDatabase groupDatabase = DatabaseFactory.getGroupDatabase(context); if (content == null || shouldIgnore(content)) { - Log.i(TAG, "Ignoring message."); + log(TAG, content != null ? String.valueOf(content.getTimestamp()) : "null", "Ignoring message."); return; } - Log.i(TAG, "Processing message ID " + content.getTimestamp()); + log(TAG, String.valueOf(content.getTimestamp()), "Beginning message processing."); if (content.getDataMessage().isPresent()) { SignalServiceDataMessage message = content.getDataMessage().get(); @@ -349,13 +349,13 @@ public final class PushProcessMessageJob extends BaseJob { GroupId.V2 groupIdV2 = groupId.get().requireV2(); if (!updateGv2GroupFromServerOrP2PChange(content, message.getGroupContext().get().getGroupV2().get())) { - Log.i(TAG, "Ignoring GV2 message for group we are not currently in " + groupIdV2); + log(TAG, String.valueOf(content.getTimestamp()), "Ignoring GV2 message for group we are not currently in " + groupIdV2); return; } Recipient sender = Recipient.externalPush(context, content.getSender()); if (!groupDatabase.isCurrentMember(groupIdV2, sender.getId())) { - Log.i(TAG, "Ignoring GV2 message from member not in group " + groupIdV2); + log(TAG, String.valueOf(content.getTimestamp()), "Ignoring GV2 message from member not in group " + groupIdV2); return; } } @@ -395,15 +395,15 @@ public final class PushProcessMessageJob extends BaseJob { else if (syncMessage.getBlockedList().isPresent()) handleSynchronizeBlockedListMessage(syncMessage.getBlockedList().get()); else if (syncMessage.getFetchType().isPresent()) handleSynchronizeFetchMessage(syncMessage.getFetchType().get()); else if (syncMessage.getMessageRequestResponse().isPresent()) handleSynchronizeMessageRequestResponse(syncMessage.getMessageRequestResponse().get()); - else Log.w(TAG, "Contains no known sync types..."); + else warn(TAG, String.valueOf(content.getTimestamp()), "Contains no known sync types..."); } else if (content.getCallMessage().isPresent()) { - Log.i(TAG, "Got call message..."); + log(TAG, String.valueOf(content.getTimestamp()), "Got call message..."); SignalServiceCallMessage message = content.getCallMessage().get(); Optional destinationDeviceId = message.getDestinationDeviceId(); if (destinationDeviceId.isPresent() && destinationDeviceId.get() != 1) { - Log.i(TAG, String.format(Locale.US, "Ignoring call message that is not for this device! intended: %d, this: %d", destinationDeviceId.get(), 1)); + log(TAG, String.valueOf(content.getTimestamp()), String.format(Locale.US, "Ignoring call message that is not for this device! intended: %d, this: %d", destinationDeviceId.get(), 1)); return; } @@ -420,15 +420,15 @@ public final class PushProcessMessageJob extends BaseJob { } else if (content.getTypingMessage().isPresent()) { handleTypingMessage(content, content.getTypingMessage().get()); } else { - Log.w(TAG, "Got unrecognized message..."); + warn(TAG, String.valueOf(content.getTimestamp()), "Got unrecognized message!"); } resetRecipientToPush(Recipient.externalPush(context, content.getSender())); } catch (StorageFailedException e) { - Log.w(TAG, e); + warn(TAG, String.valueOf(content.getTimestamp()), e); handleCorruptMessage(e.getSender(), e.getSenderDevice(), timestamp, smsMessageId); } catch (BadGroupIdException e) { - Log.w(TAG, "Ignoring message with bad group id", e); + warn(TAG, String.valueOf(content.getTimestamp()), "Ignoring message with bad group id", e); } } @@ -449,7 +449,7 @@ public final class PushProcessMessageJob extends BaseJob { GroupManager.updateGroupFromServer(context, groupV2.getMasterKey(), groupV2.getRevision(), content.getTimestamp(), groupV2.getSignedGroupChange()); return true; } catch (GroupNotAMemberException e) { - Log.w(TAG, "Ignoring message for a group we're not in"); + warn(TAG, String.valueOf(content.getTimestamp()), "Ignoring message for a group we're not in"); return false; } } @@ -458,39 +458,38 @@ public final class PushProcessMessageJob extends BaseJob { Recipient sender = Recipient.external(context, e.sender); if (sender.isBlocked()) { - Log.w(TAG, "Ignoring exception content from blocked sender, message state:" + messageState); + warn(TAG, "Ignoring exception content from blocked sender, message state:" + messageState); return; } switch (messageState) { case INVALID_VERSION: - Log.w(TAG, "Handling invalid version (" + timestamp + ")"); + warn(TAG, String.valueOf(timestamp), "Handling invalid version."); handleInvalidVersionMessage(e.sender, e.senderDevice, timestamp, smsMessageId); break; case CORRUPT_MESSAGE: - Log.w(TAG, "Handling corrupt message (" + timestamp + ")"); + warn(TAG, String.valueOf(timestamp), "Handling corrupt message."); handleCorruptMessage(e.sender, e.senderDevice, timestamp, smsMessageId); break; case NO_SESSION: - Log.w(TAG, "Handling no session (" + timestamp + ")"); + warn(TAG, String.valueOf(timestamp), "Handling no session."); handleNoSessionMessage(e.sender, e.senderDevice, timestamp, smsMessageId); break; case LEGACY_MESSAGE: - Log.w(TAG, "Handling legacy message (" + timestamp + ")"); + warn(TAG, String.valueOf(timestamp), "Handling legacy message."); handleLegacyMessage(e.sender, e.senderDevice, timestamp, smsMessageId); break; case DUPLICATE_MESSAGE: - Log.w(TAG, "Handling duplicate message (" + timestamp + ")"); - handleDuplicateMessage(e.sender, e.senderDevice, timestamp, smsMessageId); + warn(TAG, String.valueOf(timestamp), "Duplicate message. Dropping."); break; case UNSUPPORTED_DATA_MESSAGE: - Log.w(TAG, "Handling unsupported data message (" + timestamp + ")"); + warn(TAG, String.valueOf(timestamp), "Handling unsupported data message."); handleUnsupportedDataMessage(e.sender, e.senderDevice, Optional.fromNullable(e.groupId), timestamp, smsMessageId); break; @@ -503,7 +502,7 @@ public final class PushProcessMessageJob extends BaseJob { @NonNull OfferMessage message, @NonNull Optional smsMessageId) { - Log.i(TAG, "handleCallOfferMessage..."); + log(TAG, String.valueOf(content.getTimestamp()), "handleCallOfferMessage..."); if (smsMessageId.isPresent()) { MessageDatabase database = DatabaseFactory.getSmsDatabase(context); @@ -534,7 +533,7 @@ public final class PushProcessMessageJob extends BaseJob { private void handleCallAnswerMessage(@NonNull SignalServiceContent content, @NonNull AnswerMessage message) { - Log.i(TAG, "handleCallAnswerMessage..."); + log(TAG, String.valueOf(content), "handleCallAnswerMessage..."); Intent intent = new Intent(context, WebRtcCallService.class); Recipient recipient = Recipient.externalHighTrustPush(context, content.getSender()); RemotePeer remotePeer = new RemotePeer(recipient.getId()); @@ -555,7 +554,7 @@ public final class PushProcessMessageJob extends BaseJob { private void handleCallIceUpdateMessage(@NonNull SignalServiceContent content, @NonNull List messages) { - Log.i(TAG, "handleCallIceUpdateMessage... " + messages.size()); + log(TAG, String.valueOf(content), "handleCallIceUpdateMessage... " + messages.size()); ArrayList iceCandidates = new ArrayList<>(messages.size()); long callId = -1; @@ -580,7 +579,7 @@ public final class PushProcessMessageJob extends BaseJob { @NonNull HangupMessage message, @NonNull Optional smsMessageId) { - Log.i(TAG, "handleCallHangupMessage"); + log(TAG, String.valueOf(content), "handleCallHangupMessage"); if (smsMessageId.isPresent()) { DatabaseFactory.getSmsDatabase(context).markAsMissedCall(smsMessageId.get()); } else { @@ -602,7 +601,7 @@ public final class PushProcessMessageJob extends BaseJob { private void handleCallBusyMessage(@NonNull SignalServiceContent content, @NonNull BusyMessage message) { - Log.i(TAG, "handleCallBusyMessage"); + log(TAG, String.valueOf(content.getTimestamp()), "handleCallBusyMessage"); Intent intent = new Intent(context, WebRtcCallService.class); RemotePeer remotePeer = new RemotePeer(Recipient.externalHighTrustPush(context, content.getSender()).getId()); @@ -699,10 +698,10 @@ public final class PushProcessMessageJob extends BaseJob { if (groupV1.getType() != SignalServiceGroup.Type.REQUEST_INFO) { ApplicationDependencies.getJobManager().add(new RequestGroupInfoJob(Recipient.externalHighTrustPush(context, content.getSender()).getId(), GroupId.v1(groupV1.getGroupId()))); } else { - Log.w(TAG, "Received a REQUEST_INFO message for a group we don't know about. Ignoring."); + warn(TAG, String.valueOf(content.getTimestamp()), "Received a REQUEST_INFO message for a group we don't know about. Ignoring."); } } else { - Log.w(TAG, "Received a message for a group we don't know about without a GV1 context. Ignoring."); + warn(TAG, String.valueOf(content.getTimestamp()), "Received a message for a group we don't know about without a GV1 context. Ignoring."); } } @@ -713,7 +712,7 @@ public final class PushProcessMessageJob extends BaseJob { throws StorageFailedException, BadGroupIdException { if (groupId.isPresent() && groupId.get().isV2()) { - Log.w(TAG, "Expiration update received for GV2. Ignoring."); + warn(TAG, String.valueOf(content.getTimestamp()), "Expiration update received for GV2. Ignoring."); return; } @@ -722,7 +721,7 @@ public final class PushProcessMessageJob extends BaseJob { Recipient recipient = getMessageDestination(content, groupContext); if (recipient.getExpireMessages() == expiresInSeconds) { - Log.i(TAG, "No change in message expiry for group. Ignoring."); + log(TAG, String.valueOf(content.getTimestamp()), "No change in message expiry for group. Ignoring."); return; } @@ -777,9 +776,9 @@ public final class PushProcessMessageJob extends BaseJob { ApplicationDependencies.getMessageNotifier().updateNotification(context, targetMessage.getThreadId(), false); } } else if (targetMessage != null) { - Log.w(TAG, "[handleReaction] Found a matching message, but it's flagged as remotely deleted. timestamp: " + reaction.getTargetSentTimestamp() + " author: " + targetAuthor.getId()); + warn(TAG, String.valueOf(content.getTimestamp()), "[handleReaction] Found a matching message, but it's flagged as remotely deleted. timestamp: " + reaction.getTargetSentTimestamp() + " author: " + targetAuthor.getId()); } else { - Log.w(TAG, "[handleReaction] Could not find matching message! timestamp: " + reaction.getTargetSentTimestamp() + " author: " + targetAuthor.getId()); + warn(TAG, String.valueOf(content.getTimestamp()), "[handleReaction] Could not find matching message! timestamp: " + reaction.getTargetSentTimestamp() + " author: " + targetAuthor.getId()); ApplicationDependencies.getEarlyMessageCache().store(targetAuthor.getId(), reaction.getTargetSentTimestamp(), content); } } @@ -795,11 +794,11 @@ public final class PushProcessMessageJob extends BaseJob { db.markAsRemoteDelete(targetMessage.getId()); ApplicationDependencies.getMessageNotifier().updateNotification(context, targetMessage.getThreadId(), false); } else if (targetMessage == null) { - Log.w(TAG, "[handleRemoteDelete] Could not find matching message! timestamp: " + delete.getTargetSentTimestamp() + " author: " + sender.getId()); + warn(TAG, String.valueOf(content.getTimestamp()), "[handleRemoteDelete] Could not find matching message! timestamp: " + delete.getTargetSentTimestamp() + " author: " + sender.getId()); ApplicationDependencies.getEarlyMessageCache().store(sender.getId(), delete.getTargetSentTimestamp(), content); } else { - Log.w(TAG, String.format(Locale.ENGLISH, "[handleRemoteDelete] Invalid remote delete! deleteTime: %d, targetTime: %d, deleteAuthor: %s, targetAuthor: %s", - content.getServerReceivedTimestamp(), targetMessage.getServerTimestamp(), sender.getId(), targetMessage.getRecipient().getId())); + warn(TAG, String.valueOf(content.getTimestamp()), String.format(Locale.ENGLISH, "[handleRemoteDelete] Invalid remote delete! deleteTime: %d, targetTime: %d, deleteAuthor: %s, targetAuthor: %s", + content.getServerReceivedTimestamp(), targetMessage.getServerTimestamp(), sender.getId(), targetMessage.getRecipient().getId())); } } @@ -824,7 +823,7 @@ public final class PushProcessMessageJob extends BaseJob { break; } } else { - Log.w(TAG, "Received incomplete sticker pack operation sync."); + warn(TAG, "Received incomplete sticker pack operation sync."); } } } @@ -851,8 +850,8 @@ public final class PushProcessMessageJob extends BaseJob { DatabaseFactory.getRecipientDatabase(context).applyBlockedUpdate(blockMessage.getAddresses(), blockMessage.getGroupIds()); } - private static void handleSynchronizeFetchMessage(@NonNull SignalServiceSyncMessage.FetchType fetchType) { - Log.i(TAG, "Received fetch request with type: " + fetchType); + private void handleSynchronizeFetchMessage(@NonNull SignalServiceSyncMessage.FetchType fetchType) { + log(TAG, "Received fetch request with type: " + fetchType); switch (fetchType) { case LOCAL_PROFILE: @@ -880,7 +879,7 @@ public final class PushProcessMessageJob extends BaseJob { GroupId groupId = GroupId.v1(response.getGroupId().get()); recipient = Recipient.externalGroup(context, groupId); } else { - Log.w(TAG, "Message request response was missing a thread recipient! Skipping."); + warn(TAG, "Message request response was missing a thread recipient! Skipping."); return; } @@ -905,7 +904,7 @@ public final class PushProcessMessageJob extends BaseJob { if (threadId > 0) threadDatabase.deleteConversation(threadId); break; default: - Log.w(TAG, "Got an unknown response type! Skipping"); + warn(TAG, "Got an unknown response type! Skipping"); break; } } @@ -914,6 +913,8 @@ public final class PushProcessMessageJob extends BaseJob { @NonNull SentTranscriptMessage message) throws StorageFailedException, BadGroupIdException, IOException, GroupChangeBusyException { + log(TAG, String.valueOf(content.getTimestamp()), "Processing sent transcript for message with ID " + message.getTimestamp()); + try { GroupDatabase groupDatabase = DatabaseFactory.getGroupDatabase(context); @@ -973,7 +974,7 @@ public final class PushProcessMessageJob extends BaseJob { GroupId.V2 groupIdV2 = GroupId.v2(signalServiceGroupV2.getMasterKey()); if (!updateGv2GroupFromServerOrP2PChange(content, signalServiceGroupV2)) { - Log.i(TAG, "Ignoring GV2 message for group we are not currently in " + groupIdV2); + log(TAG, String.valueOf(content.getTimestamp()), "Ignoring GV2 message for group we are not currently in " + groupIdV2); } } @@ -1221,7 +1222,7 @@ public final class PushProcessMessageJob extends BaseJob { Recipient recipient = getSyncMessageDestination(message); if (!recipient.isGroup()) { - Log.w(TAG, "Got recipient update for a non-group message! Skipping."); + warn(TAG, "Got recipient update for a non-group message! Skipping."); return; } @@ -1229,12 +1230,12 @@ public final class PushProcessMessageJob extends BaseJob { MessageRecord record = database.getMessageFor(message.getTimestamp(), Recipient.self().getId()); if (record == null) { - Log.w(TAG, "Got recipient update for non-existing message! Skipping."); + warn(TAG, "Got recipient update for non-existing message! Skipping."); return; } if (!record.isMms()) { - Log.w(TAG, "Recipient update matched a non-MMS message! Skipping."); + warn(TAG, "Recipient update matched a non-MMS message! Skipping."); return; } @@ -1477,22 +1478,6 @@ public final class PushProcessMessageJob extends BaseJob { } } - @SuppressWarnings("unused") - private void handleDuplicateMessage(@NonNull String sender, int senderDeviceId, long timestamp, - @NonNull Optional smsMessageId) - { - // Let's start ignoring these now -// SmsDatabase smsDatabase = DatabaseFactory.getEncryptingSmsDatabase(context); -// -// if (smsMessageId <= 0) { -// Pair messageAndThreadId = insertPlaceholder(masterSecret, envelope); -// smsDatabase.markAsDecryptDuplicate(messageAndThreadId.first); -// ApplicationDependencies.getMessageNotifier().updateNotification(context, masterSecret, messageAndThreadId.second); -// } else { -// smsDatabase.markAsDecryptDuplicate(smsMessageId); -// } - } - private void handleProfileKey(@NonNull SignalServiceContent content, @NonNull byte[] messageProfileKeyBytes) { @@ -1505,7 +1490,7 @@ public final class PushProcessMessageJob extends BaseJob { ApplicationDependencies.getJobManager().add(RetrieveProfileJob.forRecipient(recipient.getId())); } } else { - Log.w(TAG, "Ignored invalid profile key seen in message"); + warn(TAG, String.valueOf(content.getTimestamp()), "Ignored invalid profile key seen in message"); } } @@ -1520,7 +1505,7 @@ public final class PushProcessMessageJob extends BaseJob { @NonNull SignalServiceReceiptMessage message) { for (long timestamp : message.getTimestamps()) { - Log.i(TAG, String.format("Received encrypted delivery receipt: (XXXXX, %d)", timestamp)); + log(TAG, String.format("Received encrypted delivery receipt: (XXXXX, %d)", timestamp)); DatabaseFactory.getMmsSmsDatabase(context) .incrementDeliveryReceiptCount(new SyncMessageId(RecipientId.fromHighTrust(content.getSender()), timestamp), System.currentTimeMillis()); } @@ -1532,7 +1517,7 @@ public final class PushProcessMessageJob extends BaseJob { { if (TextSecurePreferences.isReadReceiptsEnabled(context)) { for (long timestamp : message.getTimestamps()) { - Log.i(TAG, String.format("Received encrypted read receipt: (XXXXX, %d)", timestamp)); + log(TAG, String.format("Received encrypted read receipt: (XXXXX, %d)", timestamp)); Recipient sender = Recipient.externalHighTrustPush(context, content.getSender()); SyncMessageId id = new SyncMessageId(sender.getId(), timestamp); @@ -1540,7 +1525,7 @@ public final class PushProcessMessageJob extends BaseJob { .incrementReadReceiptCount(id, content.getTimestamp()); if (!handled) { - Log.w(TAG, "[handleReadReceipt] Could not find matching message! timestamp: " + timestamp + " author: " + sender.getId()); + warn(TAG, String.valueOf(content.getTimestamp()), "[handleReadReceipt] Could not find matching message! timestamp: " + timestamp + " author: " + sender.getId()); ApplicationDependencies.getEarlyMessageCache().store(sender.getId(), timestamp, content); } } @@ -1563,7 +1548,7 @@ public final class PushProcessMessageJob extends BaseJob { GroupId.Push groupId = GroupId.push(typingMessage.getGroupId().get()); if (!DatabaseFactory.getGroupDatabase(context).isCurrentMember(groupId, author.getId())) { - Log.w(TAG, "Seen typing indicator for non-member"); + warn(TAG, String.valueOf(content.getTimestamp()), "Seen typing indicator for non-member"); return; } @@ -1575,7 +1560,7 @@ public final class PushProcessMessageJob extends BaseJob { } if (threadId <= 0) { - Log.w(TAG, "Couldn't find a matching thread for a typing message."); + warn(TAG, String.valueOf(content.getTimestamp()), "Couldn't find a matching thread for a typing message."); return; } @@ -1607,12 +1592,12 @@ public final class PushProcessMessageJob extends BaseJob { if (!quote.isPresent()) return Optional.absent(); if (quote.get().getId() <= 0) { - Log.w(TAG, "Received quote without an ID! Ignoring..."); + warn(TAG, "Received quote without an ID! Ignoring..."); return Optional.absent(); } if (quote.get().getAuthor() == null) { - Log.w(TAG, "Received quote without an author! Ignoring..."); + warn(TAG, "Received quote without an author! Ignoring..."); return Optional.absent(); } @@ -1620,7 +1605,7 @@ public final class PushProcessMessageJob extends BaseJob { MessageRecord message = DatabaseFactory.getMmsSmsDatabase(context).getMessageFor(quote.get().getId(), author); if (message != null && !message.isRemoteDelete()) { - Log.i(TAG, "Found matching message record..."); + log(TAG, "Found matching message record..."); List attachments = new LinkedList<>(); List mentions = new LinkedList<>(); @@ -1646,10 +1631,10 @@ public final class PushProcessMessageJob extends BaseJob { return Optional.of(new QuoteModel(quote.get().getId(), author, message.getBody(), false, attachments, mentions)); } else if (message != null) { - Log.w(TAG, "Found the target for the quote, but it's flagged as remotely deleted."); + warn(TAG, "Found the target for the quote, but it's flagged as remotely deleted."); } - Log.w(TAG, "Didn't find matching message record..."); + warn(TAG, "Didn't find matching message record..."); return Optional.of(new QuoteModel(quote.get().getId(), author, @@ -1665,7 +1650,7 @@ public final class PushProcessMessageJob extends BaseJob { } if (sticker.get().getPackId() == null || sticker.get().getPackKey() == null || sticker.get().getAttachment() == null) { - Log.w(TAG, "Malformed sticker!"); + warn(TAG, "Malformed sticker!"); return Optional.absent(); } @@ -1711,7 +1696,7 @@ public final class PushProcessMessageJob extends BaseJob { return Optional.of(contacts); } - private static Optional> getLinkPreviews(Optional> previews, @NonNull String message) { + private Optional> getLinkPreviews(Optional> previews, @NonNull String message) { if (!previews.isPresent()) return Optional.absent(); List linkPreviews = new ArrayList<>(previews.get().size()); @@ -1729,7 +1714,7 @@ public final class PushProcessMessageJob extends BaseJob { LinkPreview linkPreview = new LinkPreview(url.get(), title.or(""), description.or(""), preview.getDate(), thumbnail); linkPreviews.add(linkPreview); } else { - Log.w(TAG, String.format("Discarding an invalid link preview. hasTitle: %b presentInBody: %b validDomain: %b", hasTitle, presentInBody, validDomain)); + warn(TAG, String.format("Discarding an invalid link preview. hasTitle: %b presentInBody: %b validDomain: %b", hasTitle, presentInBody, validDomain)); } } @@ -1813,7 +1798,7 @@ public final class PushProcessMessageJob extends BaseJob { throws BadGroupIdException { if (content == null) { - Log.w(TAG, "Got a message with null content."); + warn(TAG, "Got a message with null content."); return true; } @@ -1880,7 +1865,7 @@ public final class PushProcessMessageJob extends BaseJob { downloadJob.setContext(context); downloadJob.doWork(); } catch (Exception e) { - Log.w(TAG, "Failed to download sticker inline. Scheduling."); + warn(TAG, "Failed to download sticker inline. Scheduling."); ApplicationDependencies.getJobManager().add(downloadJob); } }