Skip to content

Commit 0ee5e87

Browse files
committed
Optimize getItemPositionForId
1 parent 944b549 commit 0ee5e87

2 files changed

Lines changed: 15 additions & 7 deletions

File tree

app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapter.kt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ import android.view.ViewGroup
88
import androidx.recyclerview.widget.RecyclerView.ViewHolder
99
import com.bumptech.glide.RequestManager
1010
import org.session.libsession.messaging.sending_receiving.attachments.DatabaseAttachment
11-
import org.session.libsession.utilities.Address
1211
import org.session.libsession.utilities.recipients.Recipient
13-
import org.session.libsignal.utilities.Log
1412
import org.thoughtcrime.securesms.conversation.v2.messages.ControlMessageView
1513
import org.thoughtcrime.securesms.conversation.v2.messages.VisibleMessageView
1614
import org.thoughtcrime.securesms.conversation.v2.messages.VisibleMessageViewDelegate
@@ -19,7 +17,6 @@ import org.thoughtcrime.securesms.database.MmsSmsColumns
1917
import org.thoughtcrime.securesms.database.MmsSmsDatabase
2018
import org.thoughtcrime.securesms.database.model.MessageId
2119
import org.thoughtcrime.securesms.database.model.MessageRecord
22-
import java.util.concurrent.atomic.AtomicLong
2320
import java.util.concurrent.atomic.AtomicReference
2421
import kotlin.math.min
2522

@@ -155,8 +152,7 @@ class ConversationAdapter(
155152
val c = cursor ?: return null
156153
for (i in 0 until itemCount) {
157154
if (!c.moveToPosition(i)) break
158-
val rec = messageDB.readerFor(c).current ?: continue
159-
if (rec.messageId == target) return i
155+
if (messageDB.readCurrentMessageId(c) == target) return i
160156
}
161157
return null
162158
}

app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsDatabase.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@
5555
import dagger.hilt.android.qualifiers.ApplicationContext;
5656
import kotlin.Pair;
5757
import kotlin.Triple;
58-
import network.loki.messenger.libsession_util.protocol.ProFeature;
59-
import network.loki.messenger.libsession_util.protocol.ProMessageFeature;
6058

6159
@Singleton
6260
public class MmsSmsDatabase extends Database {
@@ -599,6 +597,20 @@ public Reader readerFor(@NonNull Cursor cursor, boolean getQuote) {
599597
return new Reader(cursor, getQuote);
600598
}
601599

600+
@NonNull
601+
public MessageId readCurrentMessageId(@NonNull Cursor cursor) {
602+
String type = cursor.getString(cursor.getColumnIndexOrThrow(TRANSPORT));
603+
long id = cursor.getLong(cursor.getColumnIndexOrThrow(ID));
604+
605+
if (MMS_TRANSPORT.equals(type)) {
606+
return new MessageId(id, true);
607+
} else if (SMS_TRANSPORT.equals(type)) {
608+
return new MessageId(id, false);
609+
} else {
610+
throw new AssertionError("Bad type: " + type);
611+
}
612+
}
613+
602614
@NonNull
603615
public Pair<Boolean, Long> timestampAndDirectionForCurrent(@NonNull Cursor cursor) {
604616
int sentColumn = cursor.getColumnIndex(MmsSmsColumns.NORMALIZED_DATE_SENT);

0 commit comments

Comments
 (0)