Clean up bookkeeping around threads.

This commit is contained in:
Greyson Parrelli
2021-07-27 13:52:49 -04:00
committed by GitHub
parent 0478757af4
commit 7d8f780d60
23 changed files with 81 additions and 70 deletions

View File

@@ -101,12 +101,12 @@ public class CommunicationActions {
new AsyncTask<Void, Void, Long>() {
@Override
protected Long doInBackground(Void... voids) {
return DatabaseFactory.getThreadDatabase(context).getThreadIdFor(recipient);
return DatabaseFactory.getThreadDatabase(context).getThreadIdFor(recipient.getId());
}
@Override
protected void onPostExecute(Long threadId) {
ConversationIntents.Builder builder = ConversationIntents.createBuilder(context, recipient.getId(), threadId);
protected void onPostExecute(@Nullable Long threadId) {
ConversationIntents.Builder builder = ConversationIntents.createBuilder(context, recipient.getId(), threadId != null ? threadId : -1);
if (!TextUtils.isEmpty(text)) {
builder.withDraftText(text);
}

View File

@@ -193,13 +193,13 @@ public final class ConversationUtil {
{
Recipient resolved = recipient.resolve();
Person[] persons = buildPersons(context, resolved);
long threadId = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(resolved);
Long threadId = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(resolved.getId());
String shortName = resolved.isSelf() ? context.getString(R.string.note_to_self) : resolved.getShortDisplayName(context);
String longName = resolved.isSelf() ? context.getString(R.string.note_to_self) : resolved.getDisplayName(context);
return new ShortcutInfoCompat.Builder(context, getShortcutId(resolved))
.setLongLived(true)
.setIntent(ConversationIntents.createBuilder(context, resolved.getId(), threadId).build())
.setIntent(ConversationIntents.createBuilder(context, resolved.getId(), threadId != null ? threadId : -1).build())
.setShortLabel(shortName)
.setLongLabel(longName)
.setIcon(AvatarUtil.getIconCompatForShortcut(context, resolved))

View File

@@ -83,7 +83,7 @@ public final class IdentityUtil {
} else {
RecipientId recipientId = DatabaseFactory.getRecipientDatabase(context).getOrInsertFromGroupId(groupRecord.getId());
Recipient groupRecipient = Recipient.resolved(recipientId);
long threadId = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(groupRecipient);
long threadId = DatabaseFactory.getThreadDatabase(context).getOrCreateThreadIdFor(groupRecipient);
OutgoingTextMessage outgoing ;
if (verified) outgoing = new OutgoingIdentityVerifiedMessage(recipient);
@@ -108,7 +108,7 @@ public final class IdentityUtil {
if (verified) outgoing = new OutgoingIdentityVerifiedMessage(recipient);
else outgoing = new OutgoingIdentityDefaultMessage(recipient);
long threadId = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(recipient);
long threadId = DatabaseFactory.getThreadDatabase(context).getOrCreateThreadIdFor(recipient);
Log.i(TAG, "Inserting verified outbox...");
DatabaseFactory.getSmsDatabase(context).insertMessageOutbox(threadId, outgoing, false, time, null);