fixed #731
This commit is contained in:
parent
c4d617a7e0
commit
8a1897be62
|
@ -125,7 +125,16 @@ class GetMessagesTask(
|
||||||
|
|
||||||
val sinceIds = if (param.hasSinceIds) param.sinceIds else null
|
val sinceIds = if (param.hasSinceIds) param.sinceIds else null
|
||||||
val maxIds = if (param.hasMaxIds) param.maxIds else null
|
val maxIds = if (param.hasMaxIds) param.maxIds else null
|
||||||
val updateLastRead = maxIds != null
|
|
||||||
|
val firstFetch by lazy {
|
||||||
|
val firstFetchPref = preferences.getBoolean(KEY_FIRST_FETCH, true)
|
||||||
|
val noConversationsBefore = DataStoreUtils.queryCount(context.contentResolver,
|
||||||
|
Conversations.CONTENT_URI, Expression.equalsArgs(Conversations.ACCOUNT_KEY).sql,
|
||||||
|
arrayOf(accountKey.toString())) <= 0
|
||||||
|
return@lazy noConversationsBefore && firstFetchPref
|
||||||
|
}
|
||||||
|
|
||||||
|
val updateLastRead = maxIds != null || firstFetch
|
||||||
|
|
||||||
val received = microBlog.getDirectMessages(Paging().apply {
|
val received = microBlog.getDirectMessages(Paging().apply {
|
||||||
count(100)
|
count(100)
|
||||||
|
@ -173,6 +182,11 @@ class GetMessagesTask(
|
||||||
addConversationMessage(insertMessages, conversations, details, dm, i, sent.size,
|
addConversationMessage(insertMessages, conversations, details, dm, i, sent.size,
|
||||||
true, profileImageSize, updateLastRead)
|
true, profileImageSize, updateLastRead)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (firstFetch) {
|
||||||
|
preferences.edit().putBoolean(KEY_FIRST_FETCH, false).apply()
|
||||||
|
}
|
||||||
|
|
||||||
return DatabaseUpdateData(conversations.values, insertMessages)
|
return DatabaseUpdateData(conversations.values, insertMessages)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -348,6 +362,8 @@ class GetMessagesTask(
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
|
private const val KEY_FIRST_FETCH = "state_first_fetch_direct_messages"
|
||||||
|
|
||||||
fun createDatabaseUpdateData(context: Context, account: AccountDetails,
|
fun createDatabaseUpdateData(context: Context, account: AccountDetails,
|
||||||
response: DMResponse, profileImageSize: String = "normal"): DatabaseUpdateData {
|
response: DMResponse, profileImageSize: String = "normal"): DatabaseUpdateData {
|
||||||
val accountKey = account.key
|
val accountKey = account.key
|
||||||
|
|
Loading…
Reference in New Issue