fixed adapter return statement

This commit is contained in:
Mariotaku Lee 2017-05-16 10:20:46 +08:00
parent a65243ad38
commit ef1c334200
No known key found for this signature in database
GPG Key ID: 15C10F89D7C33535
8 changed files with 68 additions and 36 deletions

View File

@ -1 +1 @@
7145b54190aa590162fb78938d8278574431620f 816ae2ac6d6d6a87e486ece0709de3093583e647

View File

@ -34,6 +34,7 @@ import org.mariotaku.twidere.annotation.PreviewStyle
import org.mariotaku.twidere.constant.linkHighlightOptionKey import org.mariotaku.twidere.constant.linkHighlightOptionKey
import org.mariotaku.twidere.constant.mediaPreviewStyleKey import org.mariotaku.twidere.constant.mediaPreviewStyleKey
import org.mariotaku.twidere.constant.nameFirstKey import org.mariotaku.twidere.constant.nameFirstKey
import org.mariotaku.twidere.exception.UnsupportedCountIndexException
import org.mariotaku.twidere.extension.model.timestamp import org.mariotaku.twidere.extension.model.timestamp
import org.mariotaku.twidere.model.* import org.mariotaku.twidere.model.*
import org.mariotaku.twidere.model.ParcelableMessage.MessageType import org.mariotaku.twidere.model.ParcelableMessage.MessageType
@ -141,9 +142,9 @@ class MessagesConversationAdapter(
} }
override fun getItemViewType(position: Int): Int { override fun getItemViewType(position: Int): Int {
when (itemCounts.getItemCountIndex(position)) { val countIndex = itemCounts.getItemCountIndex(position)
ITEM_START_MESSAGE -> { when (countIndex) {
when (getMessage(position, reuse = true).message_type) { ITEM_START_MESSAGE -> when (getMessage(position, reuse = true).message_type) {
MessageType.STICKER -> { MessageType.STICKER -> {
return ITEM_TYPE_STICKER_MESSAGE return ITEM_TYPE_STICKER_MESSAGE
} }
@ -154,10 +155,9 @@ class MessagesConversationAdapter(
} }
else -> return ITEM_TYPE_TEXT_MESSAGE else -> return ITEM_TYPE_TEXT_MESSAGE
} }
}
ITEM_START_LOAD_OLDER -> return ITEM_LOAD_OLDER_INDICATOR ITEM_START_LOAD_OLDER -> return ITEM_LOAD_OLDER_INDICATOR
else -> throw UnsupportedCountIndexException(countIndex, position)
} }
throw UnsupportedOperationException()
} }
fun getMessage(position: Int, reuse: Boolean = false): ParcelableMessage { fun getMessage(position: Int, reuse: Boolean = false): ParcelableMessage {

View File

@ -10,6 +10,7 @@ import org.mariotaku.library.objectcursor.ObjectCursor
import org.mariotaku.twidere.adapter.iface.IItemCountsAdapter import org.mariotaku.twidere.adapter.iface.IItemCountsAdapter
import org.mariotaku.twidere.adapter.iface.ILoadMoreSupportAdapter import org.mariotaku.twidere.adapter.iface.ILoadMoreSupportAdapter
import org.mariotaku.twidere.constant.nameFirstKey import org.mariotaku.twidere.constant.nameFirstKey
import org.mariotaku.twidere.exception.UnsupportedCountIndexException
import org.mariotaku.twidere.model.ItemCounts import org.mariotaku.twidere.model.ItemCounts
import org.mariotaku.twidere.model.ParcelableMessageConversation import org.mariotaku.twidere.model.ParcelableMessageConversation
import org.mariotaku.twidere.view.holder.LoadIndicatorViewHolder import org.mariotaku.twidere.view.holder.LoadIndicatorViewHolder
@ -76,11 +77,12 @@ class MessagesEntriesAdapter(
} }
override fun getItemViewType(position: Int): Int { override fun getItemViewType(position: Int): Int {
when (itemCounts.getItemCountIndex(position)) { val countIndex = itemCounts.getItemCountIndex(position)
when (countIndex) {
0 -> return ITEM_TYPE_MESSAGE_ENTRY 0 -> return ITEM_TYPE_MESSAGE_ENTRY
1 -> return ITEM_VIEW_TYPE_LOAD_INDICATOR 1 -> return ITEM_VIEW_TYPE_LOAD_INDICATOR
else -> throw UnsupportedCountIndexException(countIndex, position)
} }
throw UnsupportedOperationException()
} }
private fun updateItemCounts() { private fun updateItemCounts() {

View File

@ -43,10 +43,11 @@ import org.mariotaku.twidere.adapter.iface.IItemCountsAdapter
import org.mariotaku.twidere.adapter.iface.ILoadMoreSupportAdapter import org.mariotaku.twidere.adapter.iface.ILoadMoreSupportAdapter
import org.mariotaku.twidere.annotation.Referral import org.mariotaku.twidere.annotation.Referral
import org.mariotaku.twidere.constant.newDocumentApiKey import org.mariotaku.twidere.constant.newDocumentApiKey
import org.mariotaku.twidere.exception.UnsupportedCountIndexException
import org.mariotaku.twidere.extension.model.activityStatus
import org.mariotaku.twidere.fragment.CursorActivitiesFragment import org.mariotaku.twidere.fragment.CursorActivitiesFragment
import org.mariotaku.twidere.model.* import org.mariotaku.twidere.model.*
import org.mariotaku.twidere.model.util.ParcelableActivityUtils import org.mariotaku.twidere.model.util.ParcelableActivityUtils
import org.mariotaku.twidere.extension.model.activityStatus
import org.mariotaku.twidere.provider.TwidereDataStore.Activities import org.mariotaku.twidere.provider.TwidereDataStore.Activities
import org.mariotaku.twidere.util.IntentUtils import org.mariotaku.twidere.util.IntentUtils
import org.mariotaku.twidere.util.JsonSerializer import org.mariotaku.twidere.util.JsonSerializer
@ -241,7 +242,8 @@ class ParcelableActivitiesAdapter(
} }
override fun getItemViewType(position: Int): Int { override fun getItemViewType(position: Int): Int {
when (getItemCountIndex(position)) { val countIndex = getItemCountIndex(position)
when (countIndex) {
ITEM_INDEX_ACTIVITY -> { ITEM_INDEX_ACTIVITY -> {
if (isGapItem(position)) { if (isGapItem(position)) {
return ITEM_VIEW_TYPE_GAP return ITEM_VIEW_TYPE_GAP
@ -270,8 +272,8 @@ class ParcelableActivitiesAdapter(
ITEM_INDEX_LOAD_MORE_INDICATOR -> { ITEM_INDEX_LOAD_MORE_INDICATOR -> {
return ITEM_VIEW_TYPE_LOAD_INDICATOR return ITEM_VIEW_TYPE_LOAD_INDICATOR
} }
else -> throw UnsupportedCountIndexException(countIndex, position)
} }
throw UnsupportedOperationException()
} }
override fun addGapLoadingId(id: ObjectId) { override fun addGapLoadingId(id: ObjectId) {

View File

@ -40,6 +40,7 @@ import org.mariotaku.twidere.adapter.iface.IStatusesAdapter
import org.mariotaku.twidere.annotation.PreviewStyle import org.mariotaku.twidere.annotation.PreviewStyle
import org.mariotaku.twidere.constant.* import org.mariotaku.twidere.constant.*
import org.mariotaku.twidere.constant.SharedPreferenceConstants.KEY_DISPLAY_SENSITIVE_CONTENTS import org.mariotaku.twidere.constant.SharedPreferenceConstants.KEY_DISPLAY_SENSITIVE_CONTENTS
import org.mariotaku.twidere.exception.UnsupportedCountIndexException
import org.mariotaku.twidere.model.ItemCounts import org.mariotaku.twidere.model.ItemCounts
import org.mariotaku.twidere.model.ObjectId import org.mariotaku.twidere.model.ObjectId
import org.mariotaku.twidere.model.ParcelableStatus import org.mariotaku.twidere.model.ParcelableStatus
@ -334,25 +335,24 @@ abstract class ParcelableStatusesAdapter(
if (position == 0 && ILoadMoreSupportAdapter.START in loadMoreIndicatorPosition) { if (position == 0 && ILoadMoreSupportAdapter.START in loadMoreIndicatorPosition) {
return ITEM_VIEW_TYPE_LOAD_INDICATOR return ITEM_VIEW_TYPE_LOAD_INDICATOR
} }
when (getItemCountIndex(position)) { val countIndex = getItemCountIndex(position)
when (countIndex) {
ITEM_INDEX_LOAD_START_INDICATOR, ITEM_INDEX_LOAD_END_INDICATOR -> { ITEM_INDEX_LOAD_START_INDICATOR, ITEM_INDEX_LOAD_END_INDICATOR -> {
return ITEM_VIEW_TYPE_LOAD_INDICATOR return ITEM_VIEW_TYPE_LOAD_INDICATOR
} }
ITEM_INDEX_PINNED_STATUS -> { ITEM_INDEX_PINNED_STATUS -> {
return VIEW_TYPE_STATUS return VIEW_TYPE_STATUS
} }
ITEM_INDEX_STATUS -> { ITEM_INDEX_STATUS -> return if (isGapItem(position)) {
if (isGapItem(position)) { ITEM_VIEW_TYPE_GAP
return ITEM_VIEW_TYPE_GAP
} else { } else {
return VIEW_TYPE_STATUS VIEW_TYPE_STATUS
}
} }
ITEM_INDEX_FILTER_HEADER -> { ITEM_INDEX_FILTER_HEADER -> {
return VIEW_TYPE_FILTER_HEADER return VIEW_TYPE_FILTER_HEADER
} }
else -> throw UnsupportedCountIndexException(countIndex, position)
} }
throw AssertionError()
} }
protected abstract fun onCreateStatusViewHolder(parent: ViewGroup): IStatusViewHolder protected abstract fun onCreateStatusViewHolder(parent: ViewGroup): IStatusViewHolder

View File

@ -28,6 +28,8 @@ import com.bumptech.glide.RequestManager
import org.mariotaku.twidere.R import org.mariotaku.twidere.R
import org.mariotaku.twidere.adapter.iface.IItemCountsAdapter import org.mariotaku.twidere.adapter.iface.IItemCountsAdapter
import org.mariotaku.twidere.adapter.iface.ILoadMoreSupportAdapter import org.mariotaku.twidere.adapter.iface.ILoadMoreSupportAdapter
import org.mariotaku.twidere.adapter.iface.ILoadMoreSupportAdapter.Companion.ITEM_VIEW_TYPE_LOAD_INDICATOR
import org.mariotaku.twidere.exception.UnsupportedCountIndexException
import org.mariotaku.twidere.model.ItemCounts import org.mariotaku.twidere.model.ItemCounts
import org.mariotaku.twidere.model.ParcelableUser import org.mariotaku.twidere.model.ParcelableUser
import org.mariotaku.twidere.model.UserKey import org.mariotaku.twidere.model.UserKey
@ -71,7 +73,7 @@ class SelectableUsersAdapter(
val holder = SelectableUserViewHolder(view, this) val holder = SelectableUserViewHolder(view, this)
return holder return holder
} }
ILoadMoreSupportAdapter.ITEM_VIEW_TYPE_LOAD_INDICATOR -> { ITEM_VIEW_TYPE_LOAD_INDICATOR -> {
val view = inflater.inflate(R.layout.list_item_load_indicator, parent, false) val view = inflater.inflate(R.layout.list_item_load_indicator, parent, false)
return LoadIndicatorViewHolder(view) return LoadIndicatorViewHolder(view)
} }
@ -90,19 +92,20 @@ class SelectableUsersAdapter(
override fun getItemViewType(position: Int): Int { override fun getItemViewType(position: Int): Int {
val countIndex = itemCounts.getItemCountIndex(position) val countIndex = itemCounts.getItemCountIndex(position)
when (countIndex) { when (countIndex) {
ITEM_TYPE_START_INDICATOR, ITEM_TYPE_END_INDICATOR -> ILoadMoreSupportAdapter.ITEM_VIEW_TYPE_LOAD_INDICATOR ITEM_TYPE_START_INDICATOR, ITEM_TYPE_END_INDICATOR -> return ITEM_VIEW_TYPE_LOAD_INDICATOR
ITEM_TYPE_USER -> return ITEM_VIEW_TYPE_USER ITEM_TYPE_USER -> return ITEM_VIEW_TYPE_USER
else -> throw UnsupportedCountIndexException(countIndex, position)
} }
throw UnsupportedOperationException("Unsupported countIndex $countIndex, position $position")
} }
override fun getItemId(position: Int): Long { override fun getItemId(position: Int): Long {
val countIndex = itemCounts.getItemCountIndex(position) val countIndex = itemCounts.getItemCountIndex(position)
when (countIndex) { return when (countIndex) {
ITEM_TYPE_START_INDICATOR, ITEM_TYPE_END_INDICATOR -> return (countIndex.toLong() shl 32) ITEM_TYPE_START_INDICATOR, ITEM_TYPE_END_INDICATOR -> (countIndex.toLong() shl 32)
ITEM_TYPE_USER -> return (countIndex.toLong() shl 32) or getUser(position).hashCode().toLong() ITEM_TYPE_USER -> (countIndex.toLong() shl 32) or getUser(position).hashCode().toLong()
else -> throw UnsupportedCountIndexException(countIndex, position)
} }
throw UnsupportedOperationException("Unsupported countIndex $countIndex, position $position")
} }
private fun bindUser(holder: SelectableUserViewHolder, position: Int) { private fun bindUser(holder: SelectableUserViewHolder, position: Int) {

View File

@ -0,0 +1,23 @@
/*
* Twidere - Twitter client for Android
*
* Copyright (C) 2012-2017 Mariotaku Lee <mariotaku.lee@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.mariotaku.twidere.exception
class UnsupportedCountIndexException(countIndex: Int, position: Int) :
UnsupportedOperationException("Unsupported countIndex $countIndex, position $position")

View File

@ -76,6 +76,7 @@ import org.mariotaku.twidere.constant.IntentConstants
import org.mariotaku.twidere.constant.IntentConstants.* import org.mariotaku.twidere.constant.IntentConstants.*
import org.mariotaku.twidere.constant.nameFirstKey import org.mariotaku.twidere.constant.nameFirstKey
import org.mariotaku.twidere.constant.profileImageStyleKey import org.mariotaku.twidere.constant.profileImageStyleKey
import org.mariotaku.twidere.exception.UnsupportedCountIndexException
import org.mariotaku.twidere.extension.applyTheme import org.mariotaku.twidere.extension.applyTheme
import org.mariotaku.twidere.extension.getDirectMessageMaxParticipants import org.mariotaku.twidere.extension.getDirectMessageMaxParticipants
import org.mariotaku.twidere.extension.loadProfileImage import org.mariotaku.twidere.extension.loadProfileImage
@ -572,14 +573,15 @@ class MessageConversationInfoFragment : BaseFragment(), IToolBarSupportFragment,
} }
override fun getItemViewType(position: Int): Int { override fun getItemViewType(position: Int): Int {
when (itemCounts.getItemCountIndex(position)) { val countIndex = itemCounts.getItemCountIndex(position)
when (countIndex) {
ITEM_INDEX_TOP_SPACE -> return VIEW_TYPE_TOP_SPACE ITEM_INDEX_TOP_SPACE -> return VIEW_TYPE_TOP_SPACE
ITEM_INDEX_HEADER -> return VIEW_TYPE_HEADER ITEM_INDEX_HEADER -> return VIEW_TYPE_HEADER
ITEM_INDEX_ITEM -> return VIEW_TYPE_USER ITEM_INDEX_ITEM -> return VIEW_TYPE_USER
ITEM_INDEX_ADD_USER -> return VIEW_TYPE_ADD_USER ITEM_INDEX_ADD_USER -> return VIEW_TYPE_ADD_USER
ITEM_INDEX_SPACE -> return VIEW_TYPE_BOTTOM_SPACE ITEM_INDEX_SPACE -> return VIEW_TYPE_BOTTOM_SPACE
else -> throw UnsupportedCountIndexException(countIndex, position)
} }
throw UnsupportedOperationException()
} }
override fun getItemId(position: Int): Long { override fun getItemId(position: Int): Long {