fixed #880
This commit is contained in:
parent
69411b3dd0
commit
265daecbdc
|
@ -22,7 +22,7 @@ package org.mariotaku.twidere.model.event;
|
|||
import android.support.annotation.NonNull;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import org.mariotaku.microblog.library.twitter.model.Relationship;
|
||||
import org.mariotaku.twidere.model.ParcelableRelationship;
|
||||
import org.mariotaku.twidere.model.UserKey;
|
||||
|
||||
/**
|
||||
|
@ -35,9 +35,9 @@ public class FriendshipUpdatedEvent {
|
|||
@NonNull
|
||||
UserKey userKey;
|
||||
@NonNull
|
||||
Relationship relationship;
|
||||
ParcelableRelationship relationship;
|
||||
|
||||
public FriendshipUpdatedEvent(@NonNull UserKey accountKey, @NonNull UserKey userKey, @NonNull Relationship relationship) {
|
||||
public FriendshipUpdatedEvent(@NonNull UserKey accountKey, @NonNull UserKey userKey, @NonNull ParcelableRelationship relationship) {
|
||||
this.accountKey = accountKey;
|
||||
this.userKey = userKey;
|
||||
this.relationship = relationship;
|
||||
|
@ -54,7 +54,7 @@ public class FriendshipUpdatedEvent {
|
|||
}
|
||||
|
||||
@NonNull
|
||||
public Relationship getRelationship() {
|
||||
public ParcelableRelationship getRelationship() {
|
||||
return relationship;
|
||||
}
|
||||
|
||||
|
|
|
@ -1697,8 +1697,11 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||
val userKey = user.key
|
||||
val isFiltering = DataStoreUtils.isFilteringUser(context, userKey)
|
||||
if (accountKey == user.key) {
|
||||
return SingleResponse(ParcelableRelationshipUtils.create(accountKey, userKey,
|
||||
null, isFiltering))
|
||||
return SingleResponse(ParcelableRelationship().apply {
|
||||
account_key = accountKey
|
||||
user_key = userKey
|
||||
filtering = isFiltering
|
||||
})
|
||||
}
|
||||
val details = AccountUtils.getAccountDetails(AccountManager.get(context),
|
||||
accountKey, true) ?: return SingleResponse(MicroBlogException("No Account"))
|
||||
|
|
|
@ -21,7 +21,6 @@ package org.mariotaku.twidere.model.util
|
|||
|
||||
import android.content.ContentResolver
|
||||
import android.support.v4.util.ArraySet
|
||||
import org.mariotaku.microblog.library.twitter.model.Relationship
|
||||
import org.mariotaku.microblog.library.twitter.model.User
|
||||
import org.mariotaku.sqliteqb.library.Expression
|
||||
import org.mariotaku.twidere.extension.bulkInsert
|
||||
|
@ -33,25 +32,6 @@ import org.mariotaku.twidere.util.updateItems
|
|||
|
||||
object ParcelableRelationshipUtils {
|
||||
|
||||
fun create(accountKey: UserKey, userKey: UserKey, relationship: Relationship?,
|
||||
filtering: Boolean = false): ParcelableRelationship {
|
||||
val obj = ParcelableRelationship()
|
||||
obj.account_key = accountKey
|
||||
obj.user_key = userKey
|
||||
if (relationship != null) {
|
||||
obj.following = relationship.isSourceFollowingTarget
|
||||
obj.followed_by = relationship.isSourceFollowedByTarget
|
||||
obj.blocking = relationship.isSourceBlockingTarget
|
||||
obj.blocked_by = relationship.isSourceBlockedByTarget
|
||||
obj.muting = relationship.isSourceMutingTarget
|
||||
obj.retweet_enabled = relationship.isSourceWantRetweetsFromTarget
|
||||
obj.notifications_enabled = relationship.isSourceNotificationsEnabledForTarget
|
||||
obj.can_dm = relationship.canSourceDMTarget()
|
||||
}
|
||||
obj.filtering = filtering
|
||||
return obj
|
||||
}
|
||||
|
||||
fun create(user: ParcelableUser, filtering: Boolean): ParcelableRelationship {
|
||||
val obj = ParcelableRelationship()
|
||||
obj.account_key = user.account_key
|
||||
|
|
|
@ -34,7 +34,10 @@ import org.mariotaku.ktextension.mapToArray
|
|||
import org.mariotaku.ktextension.toNulls
|
||||
import org.mariotaku.microblog.library.MicroBlog
|
||||
import org.mariotaku.microblog.library.MicroBlogException
|
||||
import org.mariotaku.microblog.library.twitter.model.*
|
||||
import org.mariotaku.microblog.library.twitter.model.FriendshipUpdate
|
||||
import org.mariotaku.microblog.library.twitter.model.SavedSearch
|
||||
import org.mariotaku.microblog.library.twitter.model.UserList
|
||||
import org.mariotaku.microblog.library.twitter.model.UserListUpdate
|
||||
import org.mariotaku.sqliteqb.library.Expression
|
||||
import org.mariotaku.twidere.R
|
||||
import org.mariotaku.twidere.TwidereConstants
|
||||
|
@ -336,16 +339,13 @@ class AsyncTwitterWrapper(
|
|||
}
|
||||
|
||||
fun updateFriendship(accountKey: UserKey, userKey: UserKey, update: FriendshipUpdate) {
|
||||
TaskStarter.execute(object : ExceptionHandlingAbstractTask<Any?, Relationship, Exception, Any>(context) {
|
||||
override val exceptionClass = Exception::class.java
|
||||
TaskStarter.execute(object : AbsAccountRequestTask<Any?, ParcelableRelationship, Any>(context, accountKey) {
|
||||
|
||||
override fun onExecute(params: Any?): Relationship {
|
||||
val microBlog = MicroBlogAPIFactory.getInstance(context, accountKey)
|
||||
?: throw MicroBlogException("No account")
|
||||
val relationship = microBlog.updateFriendship(userKey.id, update)
|
||||
override fun onExecute(account: AccountDetails, params: Any?): ParcelableRelationship {
|
||||
val microBlog = account.newMicroBlogInstance(context, MicroBlog::class.java)
|
||||
val relationship = microBlog.updateFriendship(userKey.id, update).toParcelable(accountKey, userKey)
|
||||
val cr = context.contentResolver
|
||||
if (!relationship.isSourceWantRetweetsFromTarget) {
|
||||
// TODO remove cached retweets
|
||||
if (update["retweets"] == false) {
|
||||
val where = Expression.and(
|
||||
Expression.equalsArgs(Statuses.ACCOUNT_KEY),
|
||||
Expression.equalsArgs(Statuses.RETWEETED_BY_USER_KEY)
|
||||
|
@ -354,16 +354,15 @@ class AsyncTwitterWrapper(
|
|||
cr.delete(Statuses.CONTENT_URI, where.sql, selectionArgs)
|
||||
}
|
||||
|
||||
ParcelableRelationshipUtils.insert(cr, listOf(ParcelableRelationshipUtils
|
||||
.create(accountKey, userKey, relationship)))
|
||||
ParcelableRelationshipUtils.insert(cr, listOf(relationship))
|
||||
return relationship
|
||||
}
|
||||
|
||||
override fun onSucceed(callback: Any?, result: Relationship) {
|
||||
override fun onSucceed(callback: Any?, result: ParcelableRelationship) {
|
||||
bus.post(FriendshipUpdatedEvent(accountKey, userKey, result))
|
||||
}
|
||||
|
||||
override fun onException(callback: Any?, exception: Exception) {
|
||||
override fun onException(callback: Any?, exception: MicroBlogException) {
|
||||
if (exception !is MicroBlogException) {
|
||||
Analyzer.logException(exception)
|
||||
return
|
||||
|
|
Loading…
Reference in New Issue