improved participants limitation

This commit is contained in:
Mariotaku Lee 2017-02-26 00:04:57 +08:00
parent 5619207ac7
commit 5e4476c903
No known key found for this signature in database
GPG Key ID: 15C10F89D7C33535
2 changed files with 28 additions and 3 deletions

View File

@ -28,6 +28,7 @@ import org.mariotaku.twidere.constant.displayProfileImageKey
import org.mariotaku.twidere.constant.profileImageStyleKey
import org.mariotaku.twidere.constant.showAbsoluteTimeKey
import org.mariotaku.twidere.constant.textSizeKey
import org.mariotaku.twidere.model.DefaultFeatures
import org.mariotaku.twidere.util.*
import org.mariotaku.twidere.util.dagger.GeneralComponentHelper
import javax.inject.Inject
@ -45,13 +46,15 @@ abstract class BaseRecyclerViewAdapter<VH : RecyclerView.ViewHolder>(
@Inject
override final lateinit var userColorNameManager: UserColorNameManager
@Inject
override final lateinit var bidiFormatter: BidiFormatter
@Inject
lateinit var preferences: SharedPreferencesWrapper
@Inject
lateinit var readStateManager: ReadStateManager
@Inject
lateinit var multiSelectManager: MultiSelectManager
@Inject
override final lateinit var bidiFormatter: BidiFormatter
lateinit var defaultFeatures: DefaultFeatures
override final val profileImageStyle: Int
override final val textSize: Float

View File

@ -68,6 +68,8 @@ import org.mariotaku.twidere.fragment.iface.IToolBarSupportFragment
import org.mariotaku.twidere.fragment.message.MessageConversationInfoFragment.ConversationInfoAdapter.Companion.VIEW_TYPE_HEADER
import org.mariotaku.twidere.fragment.message.MessageConversationInfoFragment.ConversationInfoAdapter.Companion.VIEW_TYPE_SPACE
import org.mariotaku.twidere.model.*
import org.mariotaku.twidere.model.ParcelableMessageConversation.ConversationType
import org.mariotaku.twidere.model.ParcelableMessageConversation.ExtrasType
import org.mariotaku.twidere.provider.TwidereDataStore.Messages.Conversations
import org.mariotaku.twidere.task.twitter.message.AddParticipantsTask
import org.mariotaku.twidere.task.twitter.message.DestroyConversationTask
@ -313,9 +315,22 @@ class MessageConversationInfoFragment : BaseFragment(), IToolBarSupportFragment,
override fun getItemCount(): Int {
val conversation = this.conversation ?: return 0
val participantsSize = conversation.participants.size
itemCounts[ITEM_INDEX_HEADER] = 1
itemCounts[ITEM_INDEX_ITEM] = conversation.participants.size
itemCounts[ITEM_INDEX_ADD_USER] = 1
itemCounts[ITEM_INDEX_ITEM] = participantsSize
when (conversation.conversation_type) {
ConversationType.GROUP -> {
if (participantsSize < defaultFeatures.getDirectMessageMaxParticipants(conversation.conversation_extras_type)) {
itemCounts[ITEM_INDEX_ADD_USER] = 1
} else {
itemCounts[ITEM_INDEX_ADD_USER] = 0
}
}
else -> {
itemCounts[ITEM_INDEX_ADD_USER] = 0
}
}
itemCounts[ITEM_INDEX_SPACE] = 1
return itemCounts.itemCount
}
@ -508,3 +523,10 @@ class MessageConversationInfoFragment : BaseFragment(), IToolBarSupportFragment,
const val REQUEST_CONVERSATION_ADD_USER = 101
}
}
private fun DefaultFeatures.getDirectMessageMaxParticipants(extrasType: String?): Long {
when (extrasType) {
ExtrasType.TWITTER_OFFICIAL -> return twitterDirectMessageMaxParticipants
}
return 2
}