From a58607b54705364fba42b012be9206d49ce6144a Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Mon, 6 Jan 2025 12:41:03 +0100 Subject: [PATCH] resolve detekt warnings Signed-off-by: Marcel Hibbe --- .../OutcomingTextMessageViewHolder.kt | 1 + .../com/nextcloud/talk/api/NcApiCoroutines.kt | 1 + .../network/OfflineFirstChatRepository.kt | 55 ++++++++++--------- .../chat/viewmodels/MessageInputViewModel.kt | 2 + .../talk/dagger/modules/RepositoryModule.kt | 3 - .../talk/data/database/dao/ChatMessagesDao.kt | 1 + 6 files changed, 35 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingTextMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingTextMessageViewHolder.kt index 086038720..be4c238d9 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingTextMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingTextMessageViewHolder.kt @@ -64,6 +64,7 @@ class OutcomingTextMessageViewHolder(itemView: View) : lateinit var commonMessageInterface: CommonMessageInterface + @Suppress("Detekt.LongMethod") override fun onBind(message: ChatMessage) { super.onBind(message) sharedApplication!!.componentApplication.inject(this) diff --git a/app/src/main/java/com/nextcloud/talk/api/NcApiCoroutines.kt b/app/src/main/java/com/nextcloud/talk/api/NcApiCoroutines.kt index 88ebffd82..af291d4cf 100644 --- a/app/src/main/java/com/nextcloud/talk/api/NcApiCoroutines.kt +++ b/app/src/main/java/com/nextcloud/talk/api/NcApiCoroutines.kt @@ -31,6 +31,7 @@ import retrofit2.http.Query import retrofit2.http.QueryMap import retrofit2.http.Url +@Suppress("TooManyFunctions") interface NcApiCoroutines { @GET @JvmSuppressWildcards diff --git a/app/src/main/java/com/nextcloud/talk/chat/data/network/OfflineFirstChatRepository.kt b/app/src/main/java/com/nextcloud/talk/chat/data/network/OfflineFirstChatRepository.kt index 9608dfd9f..854c01ce6 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/data/network/OfflineFirstChatRepository.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/data/network/OfflineFirstChatRepository.kt @@ -47,6 +47,7 @@ import kotlinx.coroutines.launch import java.io.IOException import javax.inject.Inject +@Suppress("LargeClass", "TooManyFunctions") class OfflineFirstChatRepository @Inject constructor( private val chatDao: ChatMessagesDao, private val chatBlocksDao: ChatBlocksDao, @@ -178,35 +179,39 @@ class OfflineFirstChatRepository @Inject constructor( Log.d(TAG, "newestMessageIdFromDb after sync: $newestMessageIdFromDb") } - if (newestMessageIdFromDb.toInt() != 0) { - val limit = getCappedMessagesAmountOfChatBlock(newestMessageIdFromDb) - - val list = getMessagesBeforeAndEqual( - newestMessageIdFromDb, - internalConversationId, - limit - ) - if (list.isNotEmpty()) { - handleNewAndTempMessages( - receivedChatMessages = list, - lookIntoFuture = false, - showUnreadMessagesMarker = false - ) - } - - sendTempChatMessages(credentials, urlForChatting) - - // delay is a dirty workaround to make sure messages are added to adapter on initial load before dealing - // with them (otherwise there is a race condition). - delay(DELAY_TO_ENSURE_MESSAGES_ARE_ADDED) - - updateUiForLastCommonRead() - updateUiForLastReadMessage(newestMessageIdFromDb) - } + handleMessagesFromDb(newestMessageIdFromDb) initMessagePolling(newestMessageIdFromDb) } + private suspend fun handleMessagesFromDb(newestMessageIdFromDb: Long) { + if (newestMessageIdFromDb.toInt() != 0) { + val limit = getCappedMessagesAmountOfChatBlock(newestMessageIdFromDb) + + val list = getMessagesBeforeAndEqual( + newestMessageIdFromDb, + internalConversationId, + limit + ) + if (list.isNotEmpty()) { + handleNewAndTempMessages( + receivedChatMessages = list, + lookIntoFuture = false, + showUnreadMessagesMarker = false + ) + } + + sendTempChatMessages(credentials, urlForChatting) + + // delay is a dirty workaround to make sure messages are added to adapter on initial load before dealing + // with them (otherwise there is a race condition). + delay(DELAY_TO_ENSURE_MESSAGES_ARE_ADDED) + + updateUiForLastCommonRead() + updateUiForLastReadMessage(newestMessageIdFromDb) + } + } + private suspend fun getCappedMessagesAmountOfChatBlock(messageId: Long): Int { val chatBlock = getBlockOfMessage(messageId.toInt()) diff --git a/app/src/main/java/com/nextcloud/talk/chat/viewmodels/MessageInputViewModel.kt b/app/src/main/java/com/nextcloud/talk/chat/viewmodels/MessageInputViewModel.kt index c8e313c45..cc144f8c1 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/viewmodels/MessageInputViewModel.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/viewmodels/MessageInputViewModel.kt @@ -27,6 +27,7 @@ import io.reactivex.disposables.Disposable import kotlinx.coroutines.launch import javax.inject.Inject +@Suppress("Detekt.TooManyFunctions") class MessageInputViewModel @Inject constructor( private val audioRecorderManager: AudioRecorderManager, private val mediaPlayerManager: MediaPlayerManager, @@ -116,6 +117,7 @@ class MessageInputViewModel @Inject constructor( val callStartedFlow: LiveData> get() = _callStartedFlow + @Suppress("LongParameterList") fun sendChatMessage( credentials: String, url: String, diff --git a/app/src/main/java/com/nextcloud/talk/dagger/modules/RepositoryModule.kt b/app/src/main/java/com/nextcloud/talk/dagger/modules/RepositoryModule.kt index b81a1604b..b79b4d573 100644 --- a/app/src/main/java/com/nextcloud/talk/dagger/modules/RepositoryModule.kt +++ b/app/src/main/java/com/nextcloud/talk/dagger/modules/RepositoryModule.kt @@ -61,7 +61,6 @@ import com.nextcloud.talk.translate.repositories.TranslateRepositoryImpl import com.nextcloud.talk.users.UserManager import com.nextcloud.talk.utils.DateUtils import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew -import com.nextcloud.talk.utils.preferences.AppPreferences import dagger.Module import dagger.Provides import okhttp3.OkHttpClient @@ -156,7 +155,6 @@ class RepositoryModule { chatMessagesDao: ChatMessagesDao, chatBlocksDao: ChatBlocksDao, dataSource: ChatNetworkDataSource, - appPreferences: AppPreferences, networkMonitor: NetworkMonitor, userProvider: CurrentUserProviderNew ): ChatMessageRepository = @@ -164,7 +162,6 @@ class RepositoryModule { chatMessagesDao, chatBlocksDao, dataSource, - appPreferences, networkMonitor, userProvider ) diff --git a/app/src/main/java/com/nextcloud/talk/data/database/dao/ChatMessagesDao.kt b/app/src/main/java/com/nextcloud/talk/data/database/dao/ChatMessagesDao.kt index 7fb423767..1008ce853 100644 --- a/app/src/main/java/com/nextcloud/talk/data/database/dao/ChatMessagesDao.kt +++ b/app/src/main/java/com/nextcloud/talk/data/database/dao/ChatMessagesDao.kt @@ -16,6 +16,7 @@ import com.nextcloud.talk.data.database.model.ChatMessageEntity import kotlinx.coroutines.flow.Flow @Dao +@Suppress("Detekt.TooManyFunctions") interface ChatMessagesDao { @Query( """