From cfe167b63943d3be09e1529334c699c1eb0f1b2e Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Fri, 12 Aug 2022 15:17:58 -0400 Subject: [PATCH] Fix crash when submitting debuglog via registration flow. --- .../securesms/logsubmit/LogSectionStories.kt | 23 +++++++++++-------- .../securesms/recipients/Recipient.java | 4 ++++ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionStories.kt b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionStories.kt index 70ef87c94..988a5a4c6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionStories.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionStories.kt @@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.logsubmit import android.content.Context import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.DistributionListId +import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.whispersystems.signalservice.api.push.DistributionId @@ -14,19 +15,23 @@ class LogSectionStories : LogSection { override fun getTitle(): String = "STORIES" override fun getContent(context: Context): CharSequence { - val myStoryRecord = SignalDatabase.distributionLists.getList(DistributionListId.MY_STORY) - val myStoryRecipientId = SignalDatabase.distributionLists.getRecipientId(DistributionListId.MY_STORY) val output = StringBuilder() - output.append("--- My Story\n\n") - if (myStoryRecord != null) { - output.append("Database ID : ${myStoryRecord.id}\n") - output.append("Distribution ID: ${myStoryRecord.distributionId} (Matches expected value? ${myStoryRecord.distributionId == DistributionId.MY_STORY})\n") - output.append("Recipient ID : ${presentRecipientId(myStoryRecipientId)}\n") - output.append("toString() Test: ${DistributionId.MY_STORY} | ${DistributionId.MY_STORY.asUuid()}") + if (Recipient.isSelfSet()) { + val myStoryRecord = SignalDatabase.distributionLists.getList(DistributionListId.MY_STORY) + val myStoryRecipientId = SignalDatabase.distributionLists.getRecipientId(DistributionListId.MY_STORY) + + if (myStoryRecord != null) { + output.append("Database ID : ${myStoryRecord.id}\n") + output.append("Distribution ID: ${myStoryRecord.distributionId} (Matches expected value? ${myStoryRecord.distributionId == DistributionId.MY_STORY})\n") + output.append("Recipient ID : ${presentRecipientId(myStoryRecipientId)}\n") + output.append("toString() Test: ${DistributionId.MY_STORY} | ${DistributionId.MY_STORY.asUuid()}") + } else { + output.append("< My story does not exist >\n") + } } else { - output.append("< My story does not exist >\n") + output.append("< Self is not set yet, my story does not exist >\n") } return output diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.java index 2158ed7d1..a8ae572a7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.java @@ -359,6 +359,10 @@ public class Recipient { return ApplicationDependencies.getRecipientCache().getSelf(); } + public static boolean isSelfSet() { + return ApplicationDependencies.getRecipientCache().getSelfId() != null; + } + Recipient(@NonNull RecipientId id) { this.id = id; this.resolving = true;