2012-07-19 23:22:03 +02:00
|
|
|
package org.thoughtcrime.securesms.database.loaders;
|
|
|
|
|
|
|
|
import android.content.Context;
|
|
|
|
import android.database.Cursor;
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
2014-09-24 22:54:56 +02:00
|
|
|
import org.thoughtcrime.securesms.util.AbstractCursorLoader;
|
2021-05-18 01:26:08 +02:00
|
|
|
import org.session.libsignal.utilities.Pair;
|
2012-07-19 23:22:03 +02:00
|
|
|
|
2014-09-24 22:54:56 +02:00
|
|
|
public class ConversationLoader extends AbstractCursorLoader {
|
2017-08-19 02:28:56 +02:00
|
|
|
private final long threadId;
|
2018-04-07 03:15:24 +02:00
|
|
|
private int offset;
|
|
|
|
private int limit;
|
2017-08-19 02:28:56 +02:00
|
|
|
private long lastSeen;
|
|
|
|
private boolean hasSent;
|
2012-07-19 23:22:03 +02:00
|
|
|
|
2018-04-07 03:15:24 +02:00
|
|
|
public ConversationLoader(Context context, long threadId, int offset, int limit, long lastSeen) {
|
2012-07-19 23:22:03 +02:00
|
|
|
super(context);
|
2013-04-26 03:59:49 +02:00
|
|
|
this.threadId = threadId;
|
2018-04-07 03:15:24 +02:00
|
|
|
this.offset = offset;
|
2017-02-14 07:35:47 +01:00
|
|
|
this.limit = limit;
|
|
|
|
this.lastSeen = lastSeen;
|
2017-08-19 02:28:56 +02:00
|
|
|
this.hasSent = true;
|
2015-08-04 21:29:26 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public boolean hasLimit() {
|
|
|
|
return limit > 0;
|
2012-07-19 23:22:03 +02:00
|
|
|
}
|
|
|
|
|
2018-04-07 03:15:24 +02:00
|
|
|
public boolean hasOffset() {
|
|
|
|
return offset > 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
public int getOffset() {
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2017-02-14 07:35:47 +01:00
|
|
|
public long getLastSeen() {
|
|
|
|
return lastSeen;
|
|
|
|
}
|
|
|
|
|
2017-08-19 02:28:56 +02:00
|
|
|
public boolean hasSent() {
|
|
|
|
return hasSent;
|
|
|
|
}
|
|
|
|
|
2012-07-19 23:22:03 +02:00
|
|
|
@Override
|
2014-09-24 22:54:56 +02:00
|
|
|
public Cursor getCursor() {
|
2017-08-19 02:28:56 +02:00
|
|
|
Pair<Long, Boolean> lastSeenAndHasSent = DatabaseFactory.getThreadDatabase(context).getLastSeenAndHasSent(threadId);
|
|
|
|
|
|
|
|
this.hasSent = lastSeenAndHasSent.second();
|
|
|
|
|
2017-02-14 07:35:47 +01:00
|
|
|
if (lastSeen == -1) {
|
2017-08-19 02:28:56 +02:00
|
|
|
this.lastSeen = lastSeenAndHasSent.first();
|
2017-02-14 07:35:47 +01:00
|
|
|
}
|
|
|
|
|
2018-04-07 03:15:24 +02:00
|
|
|
return DatabaseFactory.getMmsSmsDatabase(context).getConversation(threadId, offset, limit);
|
2012-07-19 23:22:03 +02:00
|
|
|
}
|
|
|
|
}
|