mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 18:00:02 +01:00
Add lazy thread creation throughout in preparation for CFV2.
This commit is contained in:
@@ -48,6 +48,7 @@ import org.thoughtcrime.securesms.util.views.SimpleProgressDialog;
|
||||
import org.whispersystems.signalservice.api.push.ServiceId;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@@ -142,13 +143,12 @@ public class CommunicationActions {
|
||||
new AsyncTask<Void, Void, Long>() {
|
||||
@Override
|
||||
protected Long doInBackground(Void... voids) {
|
||||
return SignalDatabase.threads().getThreadIdFor(recipient.getId());
|
||||
return SignalDatabase.threads().getOrCreateThreadIdFor(recipient);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(@Nullable Long threadId) {
|
||||
// TODO [alex] -- ThreadID should *always* exist
|
||||
ConversationIntents.Builder builder = ConversationIntents.createBuilder(context, recipient.getId(), threadId != null ? threadId : -1);
|
||||
protected void onPostExecute(@NonNull Long threadId) {
|
||||
ConversationIntents.Builder builder = ConversationIntents.createBuilderSync(context, recipient.getId(), Objects.requireNonNull(threadId));
|
||||
if (!TextUtils.isEmpty(text)) {
|
||||
builder.withDraftText(text);
|
||||
}
|
||||
|
||||
@@ -216,14 +216,14 @@ public final class ConversationUtil {
|
||||
{
|
||||
Recipient resolved = recipient.resolve();
|
||||
Person[] persons = buildPersons(context, resolved);
|
||||
Long threadId = SignalDatabase.threads().getThreadIdFor(resolved.getId());
|
||||
long threadId = SignalDatabase.threads().getOrCreateThreadIdFor(resolved);
|
||||
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);
|
||||
String shortcutId = getShortcutId(resolved);
|
||||
|
||||
ShortcutInfoCompat.Builder builder = new ShortcutInfoCompat.Builder(context, shortcutId)
|
||||
.setLongLived(true)
|
||||
.setIntent(ConversationIntents.createBuilder(context, resolved.getId(), threadId != null ? threadId : -1).build())
|
||||
.setIntent(ConversationIntents.createBuilderSync(context, resolved.getId(), threadId).build())
|
||||
.setShortLabel(shortName)
|
||||
.setLongLabel(longName)
|
||||
.setIcon(AvatarUtil.getIconCompatForShortcut(context, resolved))
|
||||
|
||||
Reference in New Issue
Block a user