This commit is contained in:
Mariotaku Lee 2017-03-19 16:22:26 +08:00
parent c4d617a7e0
commit 8a1897be62
No known key found for this signature in database
GPG Key ID: 15C10F89D7C33535
1 changed files with 17 additions and 1 deletions

View File

@ -125,7 +125,16 @@ class GetMessagesTask(
val sinceIds = if (param.hasSinceIds) param.sinceIds 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 {
count(100)
@ -173,6 +182,11 @@ class GetMessagesTask(
addConversationMessage(insertMessages, conversations, details, dm, i, sent.size,
true, profileImageSize, updateLastRead)
}
if (firstFetch) {
preferences.edit().putBoolean(KEY_FIRST_FETCH, false).apply()
}
return DatabaseUpdateData(conversations.values, insertMessages)
}
@ -348,6 +362,8 @@ class GetMessagesTask(
companion object {
private const val KEY_FIRST_FETCH = "state_first_fetch_direct_messages"
fun createDatabaseUpdateData(context: Context, account: AccountDetails,
response: DMResponse, profileImageSize: String = "normal"): DatabaseUpdateData {
val accountKey = account.key