improved status activity summary

This commit is contained in:
Mariotaku Lee 2017-12-31 05:10:40 +08:00
parent bdd8a9bab6
commit 927e21891c
No known key found for this signature in database
GPG Key ID: 15C10F89D7C33535
4 changed files with 10 additions and 23 deletions

View File

@ -46,8 +46,6 @@ public class StatusActivitySummary extends MicroBlogResponseObject implements Mi
long repliersCount; long repliersCount;
@JsonField(name = "retweeters_count") @JsonField(name = "retweeters_count")
long retweetersCount; long retweetersCount;
@JsonField(name = "descendent_reply_count")
long descendentReplyCount;
public IDs getFavoriters() { public IDs getFavoriters() {
return favoriters; return favoriters;
@ -73,10 +71,6 @@ public class StatusActivitySummary extends MicroBlogResponseObject implements Mi
return retweetersCount; return retweetersCount;
} }
public long getDescendentReplyCount() {
return descendentReplyCount;
}
@Override @Override
public int describeContents() { public int describeContents() {
return 0; return 0;

View File

@ -22,7 +22,6 @@ package org.mariotaku.twidere.data.status
import android.accounts.AccountManager import android.accounts.AccountManager
import android.content.ContentValues import android.content.ContentValues
import android.content.Context import android.content.Context
import org.mariotaku.ktextension.addAllTo
import org.mariotaku.microblog.library.Twitter import org.mariotaku.microblog.library.Twitter
import org.mariotaku.microblog.library.model.Paging import org.mariotaku.microblog.library.model.Paging
import org.mariotaku.sqliteqb.library.Expression import org.mariotaku.sqliteqb.library.Expression
@ -96,28 +95,22 @@ class StatusActivitySummaryLiveData(val context: Context) : ComputableExceptionL
val status = showStatus(statusId) val status = showStatus(statusId)
result.favoriteCount = status.favoriteCount result.favoriteCount = status.favoriteCount
result.retweetCount = status.retweetCount result.retweetCount = status.retweetCount
result.replyCount = status.descendentReplyCount result.replyCount = status.replyCount
return result return result
} }
private fun Twitter.getActivitySummaryOfficial(statusId: String, account: AccountDetails): StatusActivity { private fun Twitter.getActivitySummaryOfficial(statusId: String, account: AccountDetails): StatusActivity {
val summary = getStatusActivitySummary(statusId) val paging = Paging().count(5)
val relatedIds = mutableSetOf<String>() val relatedUsers = (getRetweetedBy(statusId, paging) + getFavoritedBy(statusId, paging))
summary.favoriters?.iDs?.let {
it.slice(0 until (10.coerceAtMost(it.size)))
}?.addAllTo(relatedIds)
summary.retweeters?.iDs?.let {
it.slice(0 until (10.coerceAtMost(it.size)))
}?.addAllTo(relatedIds)
val relatedUsers = lookupUsers(relatedIds.toTypedArray())
.filterNot { DataStoreUtils.isFilteringUser(context, it.key) } .filterNot { DataStoreUtils.isFilteringUser(context, it.key) }
.map { it.toParcelable(account) } .map { it.toParcelable(account) }
val result = StatusActivity(statusId, relatedUsers) val result = StatusActivity(statusId, relatedUsers)
result.favoriteCount = summary.favoritersCount val status = showStatus(statusId)
result.retweetCount = summary.retweetersCount result.favoriteCount = status.favoriteCount
result.replyCount = summary.descendentReplyCount result.retweetCount = status.retweetCount
result.replyCount = status.replyCount
return result return result
} }

View File

@ -143,7 +143,7 @@ fun Status.applyTo(accountKey: UserKey, accountType: String, profileImageSize: S
result.addFilterFlag(ParcelableStatus.FilterFlags.QUOTE_NOT_AVAILABLE) result.addFilterFlag(ParcelableStatus.FilterFlags.QUOTE_NOT_AVAILABLE)
} }
result.reply_count = status.descendentReplyCount result.reply_count = status.replyCount
result.retweet_count = status.retweetCount result.retweet_count = status.retweetCount
result.favorite_count = status.favoriteCount result.favorite_count = status.favoriteCount

View File

@ -443,7 +443,7 @@ class StatusFragment : BaseFragment(), LoaderCallbacks<SingleResponse<Parcelable
private fun loadActivity(status: ParcelableStatus?) { private fun loadActivity(status: ParcelableStatus?) {
if (status == null || host == null || isDetached) return if (status == null || host == null || isDetached) return
statusActivitySummaryLiveData.accountKey = status.account_key statusActivitySummaryLiveData.accountKey = status.account_key
statusActivitySummaryLiveData.statusId = status.id statusActivitySummaryLiveData.statusId = status.originalId
statusActivitySummaryLiveData.load() statusActivitySummaryLiveData.load()
} }