lint: move from resource IDs to fixed, unique Int values for view types

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
This commit is contained in:
Andy Scherzinger 2023-04-14 20:24:25 +02:00
parent f52fd59125
commit cd38c8dbb6
No known key found for this signature in database
GPG Key ID: 6CADC7E3523C308B
15 changed files with 51 additions and 32 deletions

View File

@ -339,7 +339,7 @@ class ConversationItem(
} }
companion object { companion object {
const val VIEW_TYPE = R.layout.rv_item_conversation_with_last_message const val VIEW_TYPE = FlexibleItemViewType.CONVERSATION_ITEM
private const val MILLIES = 1000L private const val MILLIES = 1000L
private const val STATUS_SIZE_IN_DP = 9f private const val STATUS_SIZE_IN_DP = 9f
private const val UNREAD_BUBBLE_STROKE_WIDTH = 6.0f private const val UNREAD_BUBBLE_STROKE_WIDTH = 6.0f

View File

@ -0,0 +1,33 @@
/*
* Nextcloud Talk application
*
* @author Andy Scherzinger
* Copyright (C) 2023 Andy Scherzinger <info@andy-scherzinger.de>
*
* 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 com.nextcloud.talk.adapters.items
class FlexibleItemViewType {
companion object {
const val CONVERSATION_ITEM: Int = 1120391230
const val LOAD_MORE_RESULTS_ITEM: Int = 1120391231
const val MESSAGE_RESULT_ITEM: Int = 1120391232
const val MESSAGES_TEXT_HEADER_ITEM: Int = 1120391233
const val POLL_RESULT_HEADER_ITEM: Int = 1120391234
const val POLL_RESULT_VOTER_ITEM: Int = 1120391235
const val POLL_RESULT_VOTERS_OVERVIEW_ITEM: Int = 1120391236
}
}

View File

@ -36,7 +36,7 @@ object LoadMoreResultsItem :
IFilterable<String> { IFilterable<String> {
// layout is used as view type for uniqueness // layout is used as view type for uniqueness
const val VIEW_TYPE: Int = R.layout.rv_item_load_more const val VIEW_TYPE = FlexibleItemViewType.LOAD_MORE_RESULTS_ITEM
class ViewHolder(view: View, adapter: FlexibleAdapter<*>) : class ViewHolder(view: View, adapter: FlexibleAdapter<*>) :
FlexibleViewHolder(view, adapter) { FlexibleViewHolder(view, adapter) {

View File

@ -92,8 +92,7 @@ data class MessageResultItem constructor(
} }
companion object { companion object {
// layout is used as view type for uniqueness const val VIEW_TYPE = FlexibleItemViewType.MESSAGE_RESULT_ITEM
const val VIEW_TYPE: Int = R.layout.rv_item_search_message
} }
override fun getHeader(): GenericTextHeaderItem = MessagesTextHeaderItem(context, viewThemeUtils) override fun getHeader(): GenericTextHeaderItem = MessagesTextHeaderItem(context, viewThemeUtils)

View File

@ -28,10 +28,7 @@ import com.nextcloud.talk.ui.theme.ViewThemeUtils
class MessagesTextHeaderItem(context: Context, viewThemeUtils: ViewThemeUtils) : class MessagesTextHeaderItem(context: Context, viewThemeUtils: ViewThemeUtils) :
GenericTextHeaderItem(context.getString(R.string.messages), viewThemeUtils) { GenericTextHeaderItem(context.getString(R.string.messages), viewThemeUtils) {
companion object { companion object {
/** const val VIEW_TYPE = FlexibleItemViewType.MESSAGES_TEXT_HEADER_ITEM
* "Random" value, just has to be different than other view types
*/
const val VIEW_TYPE = 1120391230
} }
override fun getItemViewType(): Int = VIEW_TYPE override fun getItemViewType(): Int = VIEW_TYPE

View File

@ -37,7 +37,6 @@ import com.nextcloud.talk.databinding.ItemCustomIncomingLinkPreviewMessageBindin
import com.nextcloud.talk.extensions.loadBotsAvatar import com.nextcloud.talk.extensions.loadBotsAvatar
import com.nextcloud.talk.extensions.loadChangelogBotAvatar import com.nextcloud.talk.extensions.loadChangelogBotAvatar
import com.nextcloud.talk.models.json.chat.ChatMessage import com.nextcloud.talk.models.json.chat.ChatMessage
import com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback
import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.DateUtils import com.nextcloud.talk.utils.DateUtils
@ -98,7 +97,7 @@ class IncomingLinkPreviewMessageViewHolder(incomingView: View, payload: Any) : M
true true
} }
itemView.setTag(MessageSwipeCallback.REPLYABLE_VIEW_TAG, message.replyable) itemView.setTag(R.string.replyable_message_view_tag, message.replyable)
Reaction().showReactions( Reaction().showReactions(
message, message,

View File

@ -45,7 +45,6 @@ import com.nextcloud.talk.databinding.ItemCustomIncomingTextMessageBinding
import com.nextcloud.talk.extensions.loadBotsAvatar import com.nextcloud.talk.extensions.loadBotsAvatar
import com.nextcloud.talk.extensions.loadChangelogBotAvatar import com.nextcloud.talk.extensions.loadChangelogBotAvatar
import com.nextcloud.talk.models.json.chat.ChatMessage import com.nextcloud.talk.models.json.chat.ChatMessage
import com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback
import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.DateUtils import com.nextcloud.talk.utils.DateUtils
@ -111,7 +110,7 @@ class IncomingTextMessageViewHolder(itemView: View, payload: Any) : MessageHolde
binding.messageQuote.quotedChatMessageView.visibility = View.GONE binding.messageQuote.quotedChatMessageView.visibility = View.GONE
} }
itemView.setTag(MessageSwipeCallback.REPLYABLE_VIEW_TAG, message.replyable) itemView.setTag(R.string.replyable_message_view_tag, message.replyable)
Reaction().showReactions( Reaction().showReactions(
message, message,

View File

@ -36,7 +36,6 @@ import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedA
import com.nextcloud.talk.databinding.ItemCustomOutcomingLinkPreviewMessageBinding import com.nextcloud.talk.databinding.ItemCustomOutcomingLinkPreviewMessageBinding
import com.nextcloud.talk.models.json.chat.ChatMessage import com.nextcloud.talk.models.json.chat.ChatMessage
import com.nextcloud.talk.models.json.chat.ReadStatus import com.nextcloud.talk.models.json.chat.ReadStatus
import com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback
import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.DateUtils import com.nextcloud.talk.utils.DateUtils
@ -121,7 +120,7 @@ class OutcomingLinkPreviewMessageViewHolder(outcomingView: View, payload: Any) :
true true
} }
itemView.setTag(MessageSwipeCallback.REPLYABLE_VIEW_TAG, message.replyable) itemView.setTag(R.string.replyable_message_view_tag, message.replyable)
Reaction().showReactions( Reaction().showReactions(
message, message,

View File

@ -42,7 +42,6 @@ import com.nextcloud.talk.chat.ChatActivity
import com.nextcloud.talk.databinding.ItemCustomOutcomingTextMessageBinding import com.nextcloud.talk.databinding.ItemCustomOutcomingTextMessageBinding
import com.nextcloud.talk.models.json.chat.ChatMessage import com.nextcloud.talk.models.json.chat.ChatMessage
import com.nextcloud.talk.models.json.chat.ReadStatus import com.nextcloud.talk.models.json.chat.ReadStatus
import com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback
import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.DateUtils import com.nextcloud.talk.utils.DateUtils
@ -127,7 +126,7 @@ class OutcomingTextMessageViewHolder(itemView: View) : OutcomingTextMessageViewH
binding.checkMark.setContentDescription(readStatusContentDescriptionString) binding.checkMark.setContentDescription(readStatusContentDescriptionString)
itemView.setTag(MessageSwipeCallback.REPLYABLE_VIEW_TAG, message.replyable) itemView.setTag(R.string.replyable_message_view_tag, message.replyable)
Reaction().showReactions( Reaction().showReactions(
message, message,

View File

@ -54,7 +54,6 @@ import com.nextcloud.talk.data.user.model.User
import com.nextcloud.talk.databinding.ReactionsInsideMessageBinding import com.nextcloud.talk.databinding.ReactionsInsideMessageBinding
import com.nextcloud.talk.extensions.loadChangelogBotAvatar import com.nextcloud.talk.extensions.loadChangelogBotAvatar
import com.nextcloud.talk.models.json.chat.ChatMessage import com.nextcloud.talk.models.json.chat.ChatMessage
import com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback
import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.nextcloud.talk.utils.DateUtils import com.nextcloud.talk.utils.DateUtils
import com.nextcloud.talk.utils.DisplayUtils import com.nextcloud.talk.utils.DisplayUtils
@ -159,7 +158,7 @@ abstract class PreviewMessageViewHolder(itemView: View?, payload: Any?) :
} }
messageText.text = "" messageText.text = ""
} }
itemView.setTag(MessageSwipeCallback.REPLYABLE_VIEW_TAG, message.replyable) itemView.setTag(R.string.replyable_message_view_tag, message.replyable)
Reaction().showReactions( Reaction().showReactions(
message, message,
::clickOnReaction, ::clickOnReaction,

View File

@ -43,8 +43,6 @@ import javax.inject.Inject;
import androidx.core.view.ViewCompat; import androidx.core.view.ViewCompat;
import autodagger.AutoInjector; import autodagger.AutoInjector;
import static com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback.REPLYABLE_VIEW_TAG;
@AutoInjector(NextcloudTalkApplication.class) @AutoInjector(NextcloudTalkApplication.class)
public class SystemMessageViewHolder extends MessageHolders.IncomingTextMessageViewHolder<ChatMessage> { public class SystemMessageViewHolder extends MessageHolders.IncomingTextMessageViewHolder<ChatMessage> {
@ -109,6 +107,6 @@ public class SystemMessageViewHolder extends MessageHolders.IncomingTextMessageV
time.setText(dateUtils.getLocalTimeStringFromTimestamp(message.getTimestamp())); time.setText(dateUtils.getLocalTimeStringFromTimestamp(message.getTimestamp()));
} }
itemView.setTag(REPLYABLE_VIEW_TAG, message.getReplyable()); itemView.setTag(R.string.replyable_message_view_tag, message.getReplyable());
} }
} }

View File

@ -20,7 +20,7 @@
package com.nextcloud.talk.polls.adapters package com.nextcloud.talk.polls.adapters
import com.nextcloud.talk.R import com.nextcloud.talk.adapters.items.FlexibleItemViewType
data class PollResultHeaderItem( data class PollResultHeaderItem(
val name: String, val name: String,
@ -33,7 +33,6 @@ data class PollResultHeaderItem(
} }
companion object { companion object {
// layout is used as view type for uniqueness const val VIEW_TYPE = FlexibleItemViewType.POLL_RESULT_HEADER_ITEM
const val VIEW_TYPE: Int = R.layout.poll_result_header_item
} }
} }

View File

@ -20,7 +20,7 @@
package com.nextcloud.talk.polls.adapters package com.nextcloud.talk.polls.adapters
import com.nextcloud.talk.R import com.nextcloud.talk.adapters.items.FlexibleItemViewType
import com.nextcloud.talk.polls.model.PollDetails import com.nextcloud.talk.polls.model.PollDetails
data class PollResultVoterItem( data class PollResultVoterItem(
@ -32,7 +32,6 @@ data class PollResultVoterItem(
} }
companion object { companion object {
// layout is used as view type for uniqueness const val VIEW_TYPE = FlexibleItemViewType.POLL_RESULT_VOTER_ITEM
const val VIEW_TYPE: Int = R.layout.poll_result_voter_item
} }
} }

View File

@ -20,7 +20,7 @@
package com.nextcloud.talk.polls.adapters package com.nextcloud.talk.polls.adapters
import com.nextcloud.talk.R import com.nextcloud.talk.adapters.items.FlexibleItemViewType
import com.nextcloud.talk.polls.model.PollDetails import com.nextcloud.talk.polls.model.PollDetails
data class PollResultVotersOverviewItem( data class PollResultVotersOverviewItem(
@ -33,6 +33,6 @@ data class PollResultVotersOverviewItem(
companion object { companion object {
// layout is used as view type for uniqueness // layout is used as view type for uniqueness
const val VIEW_TYPE: Int = R.layout.poll_result_voters_overview_item const val VIEW_TYPE = FlexibleItemViewType.POLL_RESULT_VOTERS_OVERVIEW_ITEM
} }
} }

View File

@ -74,8 +74,8 @@ class MessageSwipeCallback(private val context: Context, private val messageSwip
override fun getMovementFlags(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder): Int { override fun getMovementFlags(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder): Int {
view = viewHolder.itemView view = viewHolder.itemView
if (viewHolder.itemView.getTag(REPLYABLE_VIEW_TAG) != null && if (viewHolder.itemView.getTag(R.string.replyable_message_view_tag) != null &&
viewHolder.itemView.getTag(REPLYABLE_VIEW_TAG) as Boolean viewHolder.itemView.getTag(R.string.replyable_message_view_tag) as Boolean
) { ) {
imageDrawable = AppCompatResources.getDrawable(context, R.drawable.ic_reply)!! imageDrawable = AppCompatResources.getDrawable(context, R.drawable.ic_reply)!!
shareRound = AppCompatResources.getDrawable(context, R.drawable.round_bgnd)!! shareRound = AppCompatResources.getDrawable(context, R.drawable.round_bgnd)!!
@ -291,6 +291,5 @@ class MessageSwipeCallback(private val context: Context, private val messageSwip
const val ICON_BOUNDS_PIXEL_TOP: Int = 13 const val ICON_BOUNDS_PIXEL_TOP: Int = 13
const val ICON_BOUNDS_PIXEL_RIGHT: Int = 12 const val ICON_BOUNDS_PIXEL_RIGHT: Int = 12
const val ICON_BOUNDS_PIXEL_BOTTOM: Int = 11 const val ICON_BOUNDS_PIXEL_BOTTOM: Int = 11
const val REPLYABLE_VIEW_TAG: Int = R.string.replyable_message_view_tag
} }
} }