mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-19 03:29:28 +01:00
Merge pull request #4052 from nextcloud/renovate/com.google.devtools.ksp-2.x
chore(deps): update plugin com.google.devtools.ksp to v2.0.10-1.0.24
This commit is contained in:
commit
b5806df2f8
@ -15,7 +15,7 @@ import com.github.spotbugs.snom.SpotBugsTask
|
|||||||
plugins {
|
plugins {
|
||||||
id "org.jetbrains.kotlin.plugin.compose" version "2.0.10"
|
id "org.jetbrains.kotlin.plugin.compose" version "2.0.10"
|
||||||
id "org.jetbrains.kotlin.kapt"
|
id "org.jetbrains.kotlin.kapt"
|
||||||
id 'com.google.devtools.ksp' version '2.0.0-1.0.24'
|
id 'com.google.devtools.ksp' version '2.0.10-1.0.24'
|
||||||
}
|
}
|
||||||
|
|
||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
|
@ -52,7 +52,6 @@ class ChatBlocksDaoTest {
|
|||||||
@Test
|
@Test
|
||||||
fun testGetConnectedChatBlocks() =
|
fun testGetConnectedChatBlocks() =
|
||||||
runTest {
|
runTest {
|
||||||
|
|
||||||
usersDao.saveUser(createUserEntity("account1", "Account 1"))
|
usersDao.saveUser(createUserEntity("account1", "Account 1"))
|
||||||
val account1 = usersDao.getUserWithUserId("account1").blockingGet()
|
val account1 = usersDao.getUserWithUserId("account1").blockingGet()
|
||||||
|
|
||||||
@ -67,7 +66,7 @@ class ChatBlocksDaoTest {
|
|||||||
accountId = account1.id,
|
accountId = account1.id,
|
||||||
"def",
|
"def",
|
||||||
roomName = "Conversation Two"
|
roomName = "Conversation Two"
|
||||||
),
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -13,21 +13,19 @@ import android.text.TextUtils
|
|||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.lifecycle.lifecycleScope
|
|
||||||
import autodagger.AutoInjector
|
import autodagger.AutoInjector
|
||||||
import coil.load
|
import coil.load
|
||||||
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
||||||
import com.nextcloud.talk.R
|
import com.nextcloud.talk.R
|
||||||
import com.nextcloud.talk.adapters.messages.OutcomingPollMessageViewHolder.Companion
|
|
||||||
import com.nextcloud.talk.api.NcApi
|
import com.nextcloud.talk.api.NcApi
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
||||||
import com.nextcloud.talk.chat.ChatActivity
|
import com.nextcloud.talk.chat.ChatActivity
|
||||||
|
import com.nextcloud.talk.chat.data.model.ChatMessage
|
||||||
import com.nextcloud.talk.databinding.ItemCustomIncomingLinkPreviewMessageBinding
|
import com.nextcloud.talk.databinding.ItemCustomIncomingLinkPreviewMessageBinding
|
||||||
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.extensions.loadFederatedUserAvatar
|
import com.nextcloud.talk.extensions.loadFederatedUserAvatar
|
||||||
import com.nextcloud.talk.chat.data.model.ChatMessage
|
|
||||||
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
|
||||||
|
@ -20,21 +20,19 @@ import android.view.MotionEvent
|
|||||||
import android.view.View
|
import android.view.View
|
||||||
import android.webkit.WebView
|
import android.webkit.WebView
|
||||||
import android.webkit.WebViewClient
|
import android.webkit.WebViewClient
|
||||||
import androidx.lifecycle.lifecycleScope
|
|
||||||
import autodagger.AutoInjector
|
import autodagger.AutoInjector
|
||||||
import coil.load
|
import coil.load
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
||||||
import com.nextcloud.talk.R
|
import com.nextcloud.talk.R
|
||||||
import com.nextcloud.talk.adapters.messages.IncomingPollMessageViewHolder.Companion
|
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
||||||
import com.nextcloud.talk.chat.ChatActivity
|
import com.nextcloud.talk.chat.ChatActivity
|
||||||
|
import com.nextcloud.talk.chat.data.model.ChatMessage
|
||||||
import com.nextcloud.talk.databinding.ItemCustomIncomingLocationMessageBinding
|
import com.nextcloud.talk.databinding.ItemCustomIncomingLocationMessageBinding
|
||||||
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.extensions.loadFederatedUserAvatar
|
import com.nextcloud.talk.extensions.loadFederatedUserAvatar
|
||||||
import com.nextcloud.talk.chat.data.model.ChatMessage
|
|
||||||
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
|
||||||
|
@ -12,21 +12,19 @@ import android.text.TextUtils
|
|||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.lifecycle.lifecycleScope
|
|
||||||
import autodagger.AutoInjector
|
import autodagger.AutoInjector
|
||||||
import coil.load
|
import coil.load
|
||||||
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
||||||
import com.nextcloud.talk.R
|
import com.nextcloud.talk.R
|
||||||
import com.nextcloud.talk.adapters.messages.IncomingTextMessageViewHolder.Companion
|
|
||||||
import com.nextcloud.talk.api.NcApi
|
import com.nextcloud.talk.api.NcApi
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
||||||
import com.nextcloud.talk.chat.ChatActivity
|
import com.nextcloud.talk.chat.ChatActivity
|
||||||
|
import com.nextcloud.talk.chat.data.model.ChatMessage
|
||||||
import com.nextcloud.talk.databinding.ItemCustomIncomingPollMessageBinding
|
import com.nextcloud.talk.databinding.ItemCustomIncomingPollMessageBinding
|
||||||
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.extensions.loadFederatedUserAvatar
|
import com.nextcloud.talk.extensions.loadFederatedUserAvatar
|
||||||
import com.nextcloud.talk.chat.data.model.ChatMessage
|
|
||||||
import com.nextcloud.talk.polls.ui.PollMainDialogFragment
|
import com.nextcloud.talk.polls.ui.PollMainDialogFragment
|
||||||
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
|
||||||
|
@ -15,7 +15,6 @@ import android.util.Log
|
|||||||
import android.util.TypedValue
|
import android.util.TypedValue
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.lifecycle.lifecycleScope
|
|
||||||
import autodagger.AutoInjector
|
import autodagger.AutoInjector
|
||||||
import coil.load
|
import coil.load
|
||||||
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
||||||
@ -23,11 +22,11 @@ import com.nextcloud.talk.R
|
|||||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
||||||
import com.nextcloud.talk.chat.ChatActivity
|
import com.nextcloud.talk.chat.ChatActivity
|
||||||
|
import com.nextcloud.talk.chat.data.model.ChatMessage
|
||||||
import com.nextcloud.talk.databinding.ItemCustomIncomingTextMessageBinding
|
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.extensions.loadFederatedUserAvatar
|
import com.nextcloud.talk.extensions.loadFederatedUserAvatar
|
||||||
import com.nextcloud.talk.chat.data.model.ChatMessage
|
|
||||||
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
|
||||||
@ -37,9 +36,7 @@ import com.nextcloud.talk.utils.preferences.AppPreferences
|
|||||||
import com.stfalcon.chatkit.messages.MessageHolders
|
import com.stfalcon.chatkit.messages.MessageHolders
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.coroutineScope
|
|
||||||
import kotlinx.coroutines.flow.first
|
import kotlinx.coroutines.flow.first
|
||||||
import kotlinx.coroutines.flow.flowOf
|
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
@ -12,18 +12,16 @@ import android.content.Context
|
|||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.appcompat.content.res.AppCompatResources
|
import androidx.appcompat.content.res.AppCompatResources
|
||||||
import androidx.lifecycle.lifecycleScope
|
|
||||||
import autodagger.AutoInjector
|
import autodagger.AutoInjector
|
||||||
import coil.load
|
import coil.load
|
||||||
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
||||||
import com.nextcloud.talk.R
|
import com.nextcloud.talk.R
|
||||||
import com.nextcloud.talk.adapters.messages.OutcomingPollMessageViewHolder.Companion
|
|
||||||
import com.nextcloud.talk.api.NcApi
|
import com.nextcloud.talk.api.NcApi
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
||||||
import com.nextcloud.talk.chat.ChatActivity
|
import com.nextcloud.talk.chat.ChatActivity
|
||||||
import com.nextcloud.talk.databinding.ItemCustomOutcomingLinkPreviewMessageBinding
|
|
||||||
import com.nextcloud.talk.chat.data.model.ChatMessage
|
import com.nextcloud.talk.chat.data.model.ChatMessage
|
||||||
|
import com.nextcloud.talk.databinding.ItemCustomOutcomingLinkPreviewMessageBinding
|
||||||
import com.nextcloud.talk.models.json.chat.ReadStatus
|
import com.nextcloud.talk.models.json.chat.ReadStatus
|
||||||
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
|
||||||
|
@ -18,19 +18,17 @@ import android.view.View
|
|||||||
import android.webkit.WebView
|
import android.webkit.WebView
|
||||||
import android.webkit.WebViewClient
|
import android.webkit.WebViewClient
|
||||||
import androidx.appcompat.content.res.AppCompatResources
|
import androidx.appcompat.content.res.AppCompatResources
|
||||||
import androidx.lifecycle.lifecycleScope
|
|
||||||
import autodagger.AutoInjector
|
import autodagger.AutoInjector
|
||||||
import coil.load
|
import coil.load
|
||||||
import com.google.android.flexbox.FlexboxLayout
|
import com.google.android.flexbox.FlexboxLayout
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
||||||
import com.nextcloud.talk.R
|
import com.nextcloud.talk.R
|
||||||
import com.nextcloud.talk.adapters.messages.IncomingPollMessageViewHolder.Companion
|
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
||||||
import com.nextcloud.talk.chat.ChatActivity
|
import com.nextcloud.talk.chat.ChatActivity
|
||||||
import com.nextcloud.talk.databinding.ItemCustomOutcomingLocationMessageBinding
|
|
||||||
import com.nextcloud.talk.chat.data.model.ChatMessage
|
import com.nextcloud.talk.chat.data.model.ChatMessage
|
||||||
|
import com.nextcloud.talk.databinding.ItemCustomOutcomingLocationMessageBinding
|
||||||
import com.nextcloud.talk.models.json.chat.ReadStatus
|
import com.nextcloud.talk.models.json.chat.ReadStatus
|
||||||
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
|
||||||
|
@ -12,18 +12,16 @@ import android.content.Context
|
|||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.appcompat.content.res.AppCompatResources
|
import androidx.appcompat.content.res.AppCompatResources
|
||||||
import androidx.lifecycle.lifecycleScope
|
|
||||||
import autodagger.AutoInjector
|
import autodagger.AutoInjector
|
||||||
import coil.load
|
import coil.load
|
||||||
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
||||||
import com.nextcloud.talk.R
|
import com.nextcloud.talk.R
|
||||||
import com.nextcloud.talk.adapters.messages.IncomingPollMessageViewHolder.Companion
|
|
||||||
import com.nextcloud.talk.api.NcApi
|
import com.nextcloud.talk.api.NcApi
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
||||||
import com.nextcloud.talk.chat.ChatActivity
|
import com.nextcloud.talk.chat.ChatActivity
|
||||||
import com.nextcloud.talk.databinding.ItemCustomOutcomingPollMessageBinding
|
|
||||||
import com.nextcloud.talk.chat.data.model.ChatMessage
|
import com.nextcloud.talk.chat.data.model.ChatMessage
|
||||||
|
import com.nextcloud.talk.databinding.ItemCustomOutcomingPollMessageBinding
|
||||||
import com.nextcloud.talk.models.json.chat.ReadStatus
|
import com.nextcloud.talk.models.json.chat.ReadStatus
|
||||||
import com.nextcloud.talk.polls.ui.PollMainDialogFragment
|
import com.nextcloud.talk.polls.ui.PollMainDialogFragment
|
||||||
import com.nextcloud.talk.ui.theme.ViewThemeUtils
|
import com.nextcloud.talk.ui.theme.ViewThemeUtils
|
||||||
|
@ -17,19 +17,17 @@ import android.view.View
|
|||||||
import android.widget.SeekBar
|
import android.widget.SeekBar
|
||||||
import androidx.appcompat.content.res.AppCompatResources
|
import androidx.appcompat.content.res.AppCompatResources
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.lifecycle.lifecycleScope
|
|
||||||
import androidx.work.WorkInfo
|
import androidx.work.WorkInfo
|
||||||
import androidx.work.WorkManager
|
import androidx.work.WorkManager
|
||||||
import autodagger.AutoInjector
|
import autodagger.AutoInjector
|
||||||
import coil.load
|
import coil.load
|
||||||
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
import com.nextcloud.android.common.ui.theme.utils.ColorRole
|
||||||
import com.nextcloud.talk.R
|
import com.nextcloud.talk.R
|
||||||
import com.nextcloud.talk.adapters.messages.IncomingPollMessageViewHolder.Companion
|
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
||||||
import com.nextcloud.talk.chat.ChatActivity
|
import com.nextcloud.talk.chat.ChatActivity
|
||||||
import com.nextcloud.talk.databinding.ItemCustomOutcomingVoiceMessageBinding
|
|
||||||
import com.nextcloud.talk.chat.data.model.ChatMessage
|
import com.nextcloud.talk.chat.data.model.ChatMessage
|
||||||
|
import com.nextcloud.talk.databinding.ItemCustomOutcomingVoiceMessageBinding
|
||||||
import com.nextcloud.talk.models.json.chat.ReadStatus
|
import com.nextcloud.talk.models.json.chat.ReadStatus
|
||||||
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
|
||||||
|
@ -162,7 +162,6 @@ import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID
|
|||||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_IS_BREAKOUT_ROOM
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_IS_BREAKOUT_ROOM
|
||||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_IS_MODERATOR
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_IS_MODERATOR
|
||||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_RECORDING_STATE
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_RECORDING_STATE
|
||||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_ID
|
|
||||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN
|
||||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_START_CALL_AFTER_ROOM_SWITCH
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_START_CALL_AFTER_ROOM_SWITCH
|
||||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_SWITCH_TO_ROOM
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_SWITCH_TO_ROOM
|
||||||
@ -187,7 +186,6 @@ import kotlinx.coroutines.withContext
|
|||||||
import org.greenrobot.eventbus.Subscribe
|
import org.greenrobot.eventbus.Subscribe
|
||||||
import org.greenrobot.eventbus.ThreadMode
|
import org.greenrobot.eventbus.ThreadMode
|
||||||
import retrofit2.HttpException
|
import retrofit2.HttpException
|
||||||
import retrofit2.Response
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.net.HttpURLConnection
|
import java.net.HttpURLConnection
|
||||||
@ -291,6 +289,7 @@ class ChatActivity :
|
|||||||
var newMessagesCount = 0
|
var newMessagesCount = 0
|
||||||
var startCallFromNotification: Boolean = false
|
var startCallFromNotification: Boolean = false
|
||||||
var startCallFromRoomSwitch: Boolean = false
|
var startCallFromRoomSwitch: Boolean = false
|
||||||
|
|
||||||
// lateinit var roomId: String
|
// lateinit var roomId: String
|
||||||
var voiceOnly: Boolean = true
|
var voiceOnly: Boolean = true
|
||||||
private lateinit var path: String
|
private lateinit var path: String
|
||||||
@ -600,7 +599,7 @@ class ChatActivity :
|
|||||||
|
|
||||||
chatViewModel.loadMessages(
|
chatViewModel.loadMessages(
|
||||||
withCredentials = credentials!!,
|
withCredentials = credentials!!,
|
||||||
withUrl = urlForChatting,
|
withUrl = urlForChatting
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -985,7 +984,8 @@ class ChatActivity :
|
|||||||
|
|
||||||
if (newState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
|
if (newState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
|
||||||
if (layoutManager!!.findFirstCompletelyVisibleItemPosition() > 0 &&
|
if (layoutManager!!.findFirstCompletelyVisibleItemPosition() > 0 &&
|
||||||
!binding.unreadMessagesPopup.isShown) {
|
!binding.unreadMessagesPopup.isShown
|
||||||
|
) {
|
||||||
binding.scrollDownButton.visibility = View.VISIBLE
|
binding.scrollDownButton.visibility = View.VISIBLE
|
||||||
} else {
|
} else {
|
||||||
binding.scrollDownButton.visibility = View.GONE
|
binding.scrollDownButton.visibility = View.GONE
|
||||||
@ -2504,7 +2504,6 @@ class ChatActivity :
|
|||||||
unreadChatMessage.message = context.getString(R.string.nc_new_messages)
|
unreadChatMessage.message = context.getString(R.string.nc_new_messages)
|
||||||
adapter?.addToStart(unreadChatMessage, false)
|
adapter?.addToStart(unreadChatMessage, false)
|
||||||
|
|
||||||
|
|
||||||
if (scrollToEndOnUpdate) {
|
if (scrollToEndOnUpdate) {
|
||||||
binding.scrollDownButton.visibility = View.GONE
|
binding.scrollDownButton.visibility = View.GONE
|
||||||
newMessagesCount = 0
|
newMessagesCount = 0
|
||||||
@ -2519,7 +2518,6 @@ class ChatActivity :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for (chatMessage in chatMessageList) {
|
for (chatMessage in chatMessageList) {
|
||||||
chatMessage.activeUser = conversationUser
|
chatMessage.activeUser = conversationUser
|
||||||
|
|
||||||
@ -2630,7 +2628,6 @@ class ChatActivity :
|
|||||||
// see getImageUrl() source code
|
// see getImageUrl() source code
|
||||||
setUpWaveform(currentlyPlayedVoiceMessage!!, voiceMessageToRestoreWasPlaying)
|
setUpWaveform(currentlyPlayedVoiceMessage!!, voiceMessageToRestoreWasPlaying)
|
||||||
Log.d(RESUME_AUDIO_TAG, "resume audio procedure completed")
|
Log.d(RESUME_AUDIO_TAG, "resume audio procedure completed")
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Log.d(RESUME_AUDIO_TAG, "No voice message to restore")
|
Log.d(RESUME_AUDIO_TAG, "No voice message to restore")
|
||||||
}
|
}
|
||||||
@ -2652,9 +2649,7 @@ class ChatActivity :
|
|||||||
Log.d(TAG, "currentItem retrieved was not chatmessage or its id was not correct")
|
Log.d(TAG, "currentItem retrieved was not chatmessage or its id was not correct")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.d(
|
Log.d(TAG, "messagePosition is -1, adapter # of items: " + adapter!!.itemCount)
|
||||||
TAG, "messagePosition is -1, adapter # of items: " + adapter!!.itemCount
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.d(TAG, "TalkMessagesListAdapter is null")
|
Log.d(TAG, "TalkMessagesListAdapter is null")
|
||||||
@ -2831,7 +2826,6 @@ class ChatActivity :
|
|||||||
while (chatMessageIterator.hasNext()) {
|
while (chatMessageIterator.hasNext()) {
|
||||||
val currentMessage = chatMessageIterator.next()
|
val currentMessage = chatMessageIterator.next()
|
||||||
|
|
||||||
|
|
||||||
if (isInfoMessageAboutDeletion(currentMessage) ||
|
if (isInfoMessageAboutDeletion(currentMessage) ||
|
||||||
isReactionsMessage(currentMessage) ||
|
isReactionsMessage(currentMessage) ||
|
||||||
isPollVotedMessage(currentMessage) ||
|
isPollVotedMessage(currentMessage) ||
|
||||||
|
@ -32,11 +32,7 @@ interface ChatMessageRepository : LifecycleAwareManager {
|
|||||||
|
|
||||||
val lastCommonReadFlow: Flow<Int>
|
val lastCommonReadFlow: Flow<Int>
|
||||||
|
|
||||||
fun setData(
|
fun setData(conversationModel: ConversationModel, credentials: String, urlForChatting: String)
|
||||||
conversationModel: ConversationModel,
|
|
||||||
credentials: String,
|
|
||||||
urlForChatting: String
|
|
||||||
)
|
|
||||||
|
|
||||||
fun loadInitialMessages(withNetworkParams: Bundle): Job
|
fun loadInitialMessages(withNetworkParams: Bundle): Job
|
||||||
|
|
||||||
|
@ -90,11 +90,7 @@ class OfflineFirstChatRepository @Inject constructor(
|
|||||||
private lateinit var credentials: String
|
private lateinit var credentials: String
|
||||||
private lateinit var urlForChatting: String
|
private lateinit var urlForChatting: String
|
||||||
|
|
||||||
override fun setData(
|
override fun setData(conversationModel: ConversationModel, credentials: String, urlForChatting: String) {
|
||||||
conversationModel: ConversationModel,
|
|
||||||
credentials: String,
|
|
||||||
urlForChatting: String
|
|
||||||
) {
|
|
||||||
this.conversationModel = conversationModel
|
this.conversationModel = conversationModel
|
||||||
this.credentials = credentials
|
this.credentials = credentials
|
||||||
this.urlForChatting = urlForChatting
|
this.urlForChatting = urlForChatting
|
||||||
@ -213,9 +209,7 @@ class OfflineFirstChatRepository @Inject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun hasToLoadPreviousMessagesFromServer(
|
private suspend fun hasToLoadPreviousMessagesFromServer(beforeMessageId: Long): Boolean {
|
||||||
beforeMessageId: Long
|
|
||||||
): Boolean {
|
|
||||||
val loadFromServer: Boolean
|
val loadFromServer: Boolean
|
||||||
|
|
||||||
val blockForMessage = getBlockOfMessage(beforeMessageId.toInt())
|
val blockForMessage = getBlockOfMessage(beforeMessageId.toInt())
|
||||||
@ -239,7 +233,8 @@ class OfflineFirstChatRepository @Inject constructor(
|
|||||||
loadFromServer = amountBetween < 100
|
loadFromServer = amountBetween < 100
|
||||||
|
|
||||||
Log.d(
|
Log.d(
|
||||||
TAG, "Amount between messageId " + beforeMessageId + " and " + blockForMessage.oldestMessageId +
|
TAG,
|
||||||
|
"Amount between messageId " + beforeMessageId + " and " + blockForMessage.oldestMessageId +
|
||||||
" is: " + amountBetween + " so 'loadFromServer' is " + loadFromServer
|
" is: " + amountBetween + " so 'loadFromServer' is " + loadFromServer
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -272,9 +267,7 @@ class OfflineFirstChatRepository @Inject constructor(
|
|||||||
return fieldMap
|
return fieldMap
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun getMessage(messageId: Long, bundle: Bundle):
|
override suspend fun getMessage(messageId: Long, bundle: Bundle): Flow<ChatMessage> {
|
||||||
Flow<ChatMessage> {
|
|
||||||
|
|
||||||
Log.d(TAG, "Get message with id $messageId")
|
Log.d(TAG, "Get message with id $messageId")
|
||||||
val loadFromServer = hasToLoadPreviousMessagesFromServer(messageId)
|
val loadFromServer = hasToLoadPreviousMessagesFromServer(messageId)
|
||||||
|
|
||||||
@ -511,12 +504,12 @@ class OfflineFirstChatRepository @Inject constructor(
|
|||||||
chatBlock.newestMessageId
|
chatBlock.newestMessageId
|
||||||
).first()
|
).first()
|
||||||
|
|
||||||
if (connectedChatBlocks.size == 1) {
|
return if (connectedChatBlocks.size == 1) {
|
||||||
Log.d(TAG, "This chatBlock is not connected to others")
|
Log.d(TAG, "This chatBlock is not connected to others")
|
||||||
val chatBlockFromDb = connectedChatBlocks[0]
|
val chatBlockFromDb = connectedChatBlocks[0]
|
||||||
Log.d(TAG, "chatBlockFromDb.oldestMessageId: " + chatBlockFromDb.oldestMessageId)
|
Log.d(TAG, "chatBlockFromDb.oldestMessageId: " + chatBlockFromDb.oldestMessageId)
|
||||||
Log.d(TAG, "chatBlockFromDb.newestMessageId: " + chatBlockFromDb.newestMessageId)
|
Log.d(TAG, "chatBlockFromDb.newestMessageId: " + chatBlockFromDb.newestMessageId)
|
||||||
return chatBlockFromDb
|
chatBlockFromDb
|
||||||
} else if (connectedChatBlocks.size > 1) {
|
} else if (connectedChatBlocks.size > 1) {
|
||||||
Log.d(TAG, "Found " + connectedChatBlocks.size + " chat blocks that are connected")
|
Log.d(TAG, "Found " + connectedChatBlocks.size + " chat blocks that are connected")
|
||||||
val oldestIdFromDbChatBlocks =
|
val oldestIdFromDbChatBlocks =
|
||||||
@ -543,10 +536,10 @@ class OfflineFirstChatRepository @Inject constructor(
|
|||||||
Log.d(TAG, "A new chat block was created that covers all the range of the found chatblocks")
|
Log.d(TAG, "A new chat block was created that covers all the range of the found chatblocks")
|
||||||
Log.d(TAG, "new chatBlock - oldest MessageId: $oldestIdFromDbChatBlocks")
|
Log.d(TAG, "new chatBlock - oldest MessageId: $oldestIdFromDbChatBlocks")
|
||||||
Log.d(TAG, "new chatBlock - newest MessageId: $newestIdFromDbChatBlocks")
|
Log.d(TAG, "new chatBlock - newest MessageId: $newestIdFromDbChatBlocks")
|
||||||
return newChatBlock
|
newChatBlock
|
||||||
} else {
|
} else {
|
||||||
Log.d(TAG, "No chat block found ....")
|
Log.d(TAG, "No chat block found ....")
|
||||||
return null
|
null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -217,16 +217,8 @@ class ChatViewModel @Inject constructor(
|
|||||||
val reactionDeletedViewState: LiveData<ViewState>
|
val reactionDeletedViewState: LiveData<ViewState>
|
||||||
get() = _reactionDeletedViewState
|
get() = _reactionDeletedViewState
|
||||||
|
|
||||||
fun setData(
|
fun setData(conversationModel: ConversationModel, credentials: String, urlForChatting: String) {
|
||||||
conversationModel: ConversationModel,
|
chatRepository.setData(conversationModel, credentials, urlForChatting)
|
||||||
credentials: String,
|
|
||||||
urlForChatting: String
|
|
||||||
) {
|
|
||||||
chatRepository.setData(
|
|
||||||
conversationModel,
|
|
||||||
credentials,
|
|
||||||
urlForChatting
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getRoom(user: User, token: String) {
|
fun getRoom(user: User, token: String) {
|
||||||
|
@ -121,7 +121,6 @@ import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_FORWARD_MSG_FLAG
|
|||||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_FORWARD_MSG_TEXT
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_FORWARD_MSG_TEXT
|
||||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID
|
||||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_NEW_CONVERSATION
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_NEW_CONVERSATION
|
||||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_ID
|
|
||||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN
|
||||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_SHARED_TEXT
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_SHARED_TEXT
|
||||||
import com.nextcloud.talk.utils.permissions.PlatformPermissionUtil
|
import com.nextcloud.talk.utils.permissions.PlatformPermissionUtil
|
||||||
|
@ -57,7 +57,6 @@ interface ChatBlocksDao {
|
|||||||
)
|
)
|
||||||
fun getChatBlocksContainingMessageId(internalConversationId: String, messageId: Long): Flow<List<ChatBlockEntity?>>
|
fun getChatBlocksContainingMessageId(internalConversationId: String, messageId: Long): Flow<List<ChatBlockEntity?>>
|
||||||
|
|
||||||
|
|
||||||
@Query(
|
@Query(
|
||||||
"""
|
"""
|
||||||
SELECT *
|
SELECT *
|
||||||
|
@ -7,11 +7,9 @@
|
|||||||
|
|
||||||
package com.nextcloud.talk.data.database.mappers
|
package com.nextcloud.talk.data.database.mappers
|
||||||
|
|
||||||
import com.nextcloud.talk.models.json.chat.ChatMessageJson
|
|
||||||
import com.nextcloud.talk.data.database.model.ChatMessageEntity
|
|
||||||
import com.nextcloud.talk.chat.data.model.ChatMessage
|
import com.nextcloud.talk.chat.data.model.ChatMessage
|
||||||
import com.nextcloud.talk.data.database.dao.ChatMessagesDao
|
import com.nextcloud.talk.data.database.model.ChatMessageEntity
|
||||||
import kotlinx.coroutines.flow.first
|
import com.nextcloud.talk.models.json.chat.ChatMessageJson
|
||||||
|
|
||||||
fun ChatMessageJson.asEntity(accountId: Long) =
|
fun ChatMessageJson.asEntity(accountId: Long) =
|
||||||
ChatMessageEntity(
|
ChatMessageEntity(
|
||||||
|
@ -63,7 +63,7 @@ data class ChatMessageEntity(
|
|||||||
@ColumnInfo(name = "reactions") var reactions: LinkedHashMap<String, Int>? = null,
|
@ColumnInfo(name = "reactions") var reactions: LinkedHashMap<String, Int>? = null,
|
||||||
@ColumnInfo(name = "reactionsSelf") var reactionsSelf: ArrayList<String>? = null,
|
@ColumnInfo(name = "reactionsSelf") var reactionsSelf: ArrayList<String>? = null,
|
||||||
@ColumnInfo(name = "systemMessage") var systemMessageType: ChatMessage.SystemMessageType,
|
@ColumnInfo(name = "systemMessage") var systemMessageType: ChatMessage.SystemMessageType,
|
||||||
@ColumnInfo(name = "timestamp") var timestamp: Long = 0,
|
@ColumnInfo(name = "timestamp") var timestamp: Long = 0
|
||||||
// missing/not needed: referenceId
|
// missing/not needed: referenceId
|
||||||
// missing/not needed: silent
|
// missing/not needed: silent
|
||||||
)
|
)
|
||||||
|
@ -92,7 +92,7 @@ data class ConversationEntity(
|
|||||||
@ColumnInfo(name = "type") var type: ConversationEnums.ConversationType,
|
@ColumnInfo(name = "type") var type: ConversationEnums.ConversationType,
|
||||||
@ColumnInfo(name = "unreadMention") var unreadMention: Boolean = false,
|
@ColumnInfo(name = "unreadMention") var unreadMention: Boolean = false,
|
||||||
@ColumnInfo(name = "unreadMentionDirect") var unreadMentionDirect: Boolean,
|
@ColumnInfo(name = "unreadMentionDirect") var unreadMentionDirect: Boolean,
|
||||||
@ColumnInfo(name = "unreadMessages") var unreadMessages: Int = 0,
|
@ColumnInfo(name = "unreadMessages") var unreadMessages: Int = 0
|
||||||
// missing/not needed: attendeeId
|
// missing/not needed: attendeeId
|
||||||
// missing/not needed: attendeePin
|
// missing/not needed: attendeePin
|
||||||
// missing/not needed: attendeePermissions
|
// missing/not needed: attendeePermissions
|
||||||
|
@ -210,11 +210,13 @@ object Migrations {
|
|||||||
)
|
)
|
||||||
|
|
||||||
db.execSQL(
|
db.execSQL(
|
||||||
"CREATE UNIQUE INDEX IF NOT EXISTS `index_ChatMessages_internalId` ON `ChatMessages` (`internalId`)"
|
"CREATE UNIQUE INDEX IF NOT EXISTS `index_ChatMessages_internalId` " +
|
||||||
|
"ON `ChatMessages` (`internalId`)"
|
||||||
)
|
)
|
||||||
|
|
||||||
db.execSQL(
|
db.execSQL(
|
||||||
"CREATE INDEX IF NOT EXISTS `index_ChatMessages_internalConversationId` ON `ChatMessages` (`internalConversationId`)"
|
"CREATE INDEX IF NOT EXISTS `index_ChatMessages_internalConversationId` " +
|
||||||
|
"ON `ChatMessages` (`internalConversationId`)"
|
||||||
)
|
)
|
||||||
|
|
||||||
db.execSQL(
|
db.execSQL(
|
||||||
@ -231,7 +233,8 @@ object Migrations {
|
|||||||
)
|
)
|
||||||
|
|
||||||
db.execSQL(
|
db.execSQL(
|
||||||
"CREATE INDEX IF NOT EXISTS `index_ChatBlocks_internalConversationId` ON `ChatBlocks` (`internalConversationId`)"
|
"CREATE INDEX IF NOT EXISTS `index_ChatBlocks_internalConversationId` " +
|
||||||
|
"ON `ChatBlocks` (`internalConversationId`)"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,7 +51,7 @@ import java.util.Locale
|
|||||||
],
|
],
|
||||||
version = 11,
|
version = 11,
|
||||||
autoMigrations = [
|
autoMigrations = [
|
||||||
AutoMigration(from = 9, to = 10),
|
AutoMigration(from = 9, to = 10)
|
||||||
],
|
],
|
||||||
exportSchema = true
|
exportSchema = true
|
||||||
)
|
)
|
||||||
|
@ -62,7 +62,7 @@ class ConversationModel(
|
|||||||
var remoteToken: String? = null,
|
var remoteToken: String? = null,
|
||||||
|
|
||||||
// attributes that don't come from API. This should be changed?!
|
// attributes that don't come from API. This should be changed?!
|
||||||
var password: String? = null,
|
var password: String? = null
|
||||||
) {
|
) {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
@ -42,5 +42,5 @@ data class ChatMessageJson(
|
|||||||
@JsonField(name = ["lastEditActorId"]) var lastEditActorId: String? = null,
|
@JsonField(name = ["lastEditActorId"]) var lastEditActorId: String? = null,
|
||||||
@JsonField(name = ["lastEditActorType"]) var lastEditActorType: String? = null,
|
@JsonField(name = ["lastEditActorType"]) var lastEditActorType: String? = null,
|
||||||
@JsonField(name = ["lastEditTimestamp"]) var lastEditTimestamp: Long? = 0,
|
@JsonField(name = ["lastEditTimestamp"]) var lastEditTimestamp: Long? = 0,
|
||||||
@JsonField(name = ["deleted"]) var deleted: Boolean = false,
|
@JsonField(name = ["deleted"]) var deleted: Boolean = false
|
||||||
) : Parcelable
|
) : Parcelable
|
||||||
|
@ -32,24 +32,34 @@ data class Conversation(
|
|||||||
// var roomId: String? = null,
|
// var roomId: String? = null,
|
||||||
@JsonField(name = ["token"])
|
@JsonField(name = ["token"])
|
||||||
var token: String? = null,
|
var token: String? = null,
|
||||||
|
|
||||||
@JsonField(name = ["name"])
|
@JsonField(name = ["name"])
|
||||||
var name: String? = null,
|
var name: String? = null,
|
||||||
|
|
||||||
@JsonField(name = ["displayName"])
|
@JsonField(name = ["displayName"])
|
||||||
var displayName: String? = null,
|
var displayName: String? = null,
|
||||||
|
|
||||||
@JsonField(name = ["description"])
|
@JsonField(name = ["description"])
|
||||||
var description: String? = null,
|
var description: String? = null,
|
||||||
|
|
||||||
@JsonField(name = ["type"], typeConverter = EnumRoomTypeConverter::class)
|
@JsonField(name = ["type"], typeConverter = EnumRoomTypeConverter::class)
|
||||||
var type: ConversationEnums.ConversationType? = null,
|
var type: ConversationEnums.ConversationType? = null,
|
||||||
|
|
||||||
@JsonField(name = ["lastPing"])
|
@JsonField(name = ["lastPing"])
|
||||||
var lastPing: Long = 0,
|
var lastPing: Long = 0,
|
||||||
|
|
||||||
@JsonField(name = ["participantType"], typeConverter = EnumParticipantTypeConverter::class)
|
@JsonField(name = ["participantType"], typeConverter = EnumParticipantTypeConverter::class)
|
||||||
var participantType: ParticipantType? = null,
|
var participantType: ParticipantType? = null,
|
||||||
|
|
||||||
@JsonField(name = ["hasPassword"])
|
@JsonField(name = ["hasPassword"])
|
||||||
var hasPassword: Boolean = false,
|
var hasPassword: Boolean = false,
|
||||||
|
|
||||||
@JsonField(name = ["sessionId"])
|
@JsonField(name = ["sessionId"])
|
||||||
var sessionId: String? = null,
|
var sessionId: String? = null,
|
||||||
|
|
||||||
@JsonField(name = ["actorId"])
|
@JsonField(name = ["actorId"])
|
||||||
var actorId: String? = null,
|
var actorId: String? = null,
|
||||||
|
|
||||||
@JsonField(name = ["actorType"])
|
@JsonField(name = ["actorType"])
|
||||||
var actorType: String? = null,
|
var actorType: String? = null,
|
||||||
|
|
||||||
@ -152,8 +162,7 @@ data class Conversation(
|
|||||||
var remoteServer: String? = null,
|
var remoteServer: String? = null,
|
||||||
|
|
||||||
@JsonField(name = ["remoteToken"])
|
@JsonField(name = ["remoteToken"])
|
||||||
var remoteToken: String? = null,
|
var remoteToken: String? = null
|
||||||
|
|
||||||
) : Parcelable {
|
) : Parcelable {
|
||||||
@Deprecated("Use ConversationUtil")
|
@Deprecated("Use ConversationUtil")
|
||||||
val isPublic: Boolean
|
val isPublic: Boolean
|
||||||
|
@ -82,7 +82,7 @@ class DialogBanListFragment(val roomToken: String) : DialogFragment() {
|
|||||||
|
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
|
||||||
NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this)
|
NextcloudTalkApplication.sharedApplication!!.componentApplication.inject(this)
|
||||||
binding = FragmentDialogBanListBinding.inflate(LayoutInflater.from(context))
|
binding = FragmentDialogBanListBinding.inflate(layoutInflater)
|
||||||
viewModel =
|
viewModel =
|
||||||
ViewModelProvider(this, viewModelFactory)[ConversationInfoViewModel::class.java]
|
ViewModelProvider(this, viewModelFactory)[ConversationInfoViewModel::class.java]
|
||||||
conversationUser = currentUserProvider.currentUser.blockingGet()
|
conversationUser = currentUserProvider.currentUser.blockingGet()
|
||||||
|
@ -77,6 +77,8 @@ object DisplayUtils {
|
|||||||
private const val TWITTER_HANDLE_PREFIX = "@"
|
private const val TWITTER_HANDLE_PREFIX = "@"
|
||||||
private const val HTTP_PROTOCOL = "http://"
|
private const val HTTP_PROTOCOL = "http://"
|
||||||
private const val HTTPS_PROTOCOL = "https://"
|
private const val HTTPS_PROTOCOL = "https://"
|
||||||
|
private const val HTTP_MIN_LENGTH: Int = 7
|
||||||
|
private const val HTTPS_MIN_LENGTH: Int = 7
|
||||||
private const val DATE_TIME_PARTS_SIZE = 2
|
private const val DATE_TIME_PARTS_SIZE = 2
|
||||||
fun isDarkModeOn(context: Context): Boolean {
|
fun isDarkModeOn(context: Context): Boolean {
|
||||||
val currentNightMode = context.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
|
val currentNightMode = context.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
|
||||||
@ -394,10 +396,14 @@ object DisplayUtils {
|
|||||||
if (TextUtils.isEmpty(url)) {
|
if (TextUtils.isEmpty(url)) {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
if (url!!.length >= 7 && HTTP_PROTOCOL.equals(url.substring(0, 7), ignoreCase = true)) {
|
if (url!!.length >= HTTP_MIN_LENGTH &&
|
||||||
|
HTTP_PROTOCOL.equals(url.substring(0, HTTP_MIN_LENGTH), ignoreCase = true)
|
||||||
|
) {
|
||||||
return url.substring(HTTP_PROTOCOL.length).trim { it <= ' ' }
|
return url.substring(HTTP_PROTOCOL.length).trim { it <= ' ' }
|
||||||
}
|
}
|
||||||
return if (url.length >= 8 && HTTPS_PROTOCOL.equals(url.substring(0, 8), ignoreCase = true)) {
|
return if (url.length >= HTTPS_MIN_LENGTH &&
|
||||||
|
HTTPS_PROTOCOL.equals(url.substring(0, HTTPS_MIN_LENGTH), ignoreCase = true)
|
||||||
|
) {
|
||||||
url.substring(HTTPS_PROTOCOL.length).trim { it <= ' ' }
|
url.substring(HTTPS_PROTOCOL.length).trim { it <= ' ' }
|
||||||
} else {
|
} else {
|
||||||
url.trim { it <= ' ' }
|
url.trim { it <= ' ' }
|
||||||
|
@ -162,26 +162,26 @@ class PushUtils {
|
|||||||
var keyGen: KeyPairGenerator? = null
|
var keyGen: KeyPairGenerator? = null
|
||||||
try {
|
try {
|
||||||
keyGen = KeyPairGenerator.getInstance("RSA")
|
keyGen = KeyPairGenerator.getInstance("RSA")
|
||||||
keyGen.initialize(2048)
|
keyGen.initialize(RSA_KEY_SIZE)
|
||||||
val pair = keyGen.generateKeyPair()
|
val pair = keyGen.generateKeyPair()
|
||||||
val statusPrivate = saveKeyToFile(pair.private, privateKeyFile.absolutePath)
|
val statusPrivate = saveKeyToFile(pair.private, privateKeyFile.absolutePath)
|
||||||
val statusPublic = saveKeyToFile(pair.public, publicKeyFile.absolutePath)
|
val statusPublic = saveKeyToFile(pair.public, publicKeyFile.absolutePath)
|
||||||
return if (statusPrivate == 0 && statusPublic == 0) {
|
return if (statusPrivate == 0 && statusPublic == 0) {
|
||||||
// all went well
|
// all went well
|
||||||
0
|
RETURN_CODE_KEY_GENERATION_SUCCESSFUL
|
||||||
} else {
|
} else {
|
||||||
-2
|
RETURN_CODE_KEY_GENERATION_FAILED
|
||||||
}
|
}
|
||||||
} catch (e: NoSuchAlgorithmException) {
|
} catch (e: NoSuchAlgorithmException) {
|
||||||
Log.d(TAG, "RSA algorithm not supported")
|
Log.d(TAG, "RSA algorithm not supported")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// We already have the key
|
// We already have the key
|
||||||
return -1
|
return RETURN_CODE_KEY_ALREADY_EXISTS
|
||||||
}
|
}
|
||||||
|
|
||||||
// we failed to generate the key
|
// we failed to generate the key
|
||||||
return -2
|
return RETURN_CODE_KEY_GENERATION_FAILED
|
||||||
}
|
}
|
||||||
|
|
||||||
fun pushRegistrationToServer(ncApi: NcApi) {
|
fun pushRegistrationToServer(ncApi: NcApi) {
|
||||||
@ -399,6 +399,10 @@ class PushUtils {
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val TAG = "PushUtils"
|
private const val TAG = "PushUtils"
|
||||||
|
private const val RSA_KEY_SIZE: Int = 2048
|
||||||
|
private const val RETURN_CODE_KEY_GENERATION_SUCCESSFUL: Int = 0
|
||||||
|
private const val RETURN_CODE_KEY_ALREADY_EXISTS: Int = -1
|
||||||
|
private const val RETURN_CODE_KEY_GENERATION_FAILED: Int = -2
|
||||||
const val LATEST_PUSH_REGISTRATION_AT_SERVER: String = "LATEST_PUSH_REGISTRATION_AT_SERVER"
|
const val LATEST_PUSH_REGISTRATION_AT_SERVER: String = "LATEST_PUSH_REGISTRATION_AT_SERVER"
|
||||||
const val LATEST_PUSH_REGISTRATION_AT_PUSH_PROXY: String = "LATEST_PUSH_REGISTRATION_AT_PUSH_PROXY"
|
const val LATEST_PUSH_REGISTRATION_AT_PUSH_PROXY: String = "LATEST_PUSH_REGISTRATION_AT_PUSH_PROXY"
|
||||||
}
|
}
|
||||||
|
@ -503,10 +503,10 @@ class AppPreferencesImpl(val context: Context) : AppPreferences {
|
|||||||
for (msgStr in queueStr.split("]")) {
|
for (msgStr in queueStr.split("]")) {
|
||||||
try {
|
try {
|
||||||
val msgArray = msgStr.replace("[", "").split(",")
|
val msgArray = msgStr.replace("[", "").split(",")
|
||||||
val message = msgArray[0]
|
val message = msgArray[MESSAGE_INDEX]
|
||||||
val replyTo = msgArray[1].toInt()
|
val replyTo = msgArray[REPLY_TO_INDEX].toInt()
|
||||||
val displayName = msgArray[2]
|
val displayName = msgArray[DISPLY_NAME_INDEX]
|
||||||
val silent = msgArray[3].toBoolean()
|
val silent = msgArray[SILENT_INDEX].toBoolean()
|
||||||
|
|
||||||
val qMsg = MessageInputViewModel.QueuedMessage(message, displayName, replyTo, silent)
|
val qMsg = MessageInputViewModel.QueuedMessage(message, displayName, replyTo, silent)
|
||||||
queue.add(qMsg)
|
queue.add(qMsg)
|
||||||
@ -570,6 +570,10 @@ class AppPreferencesImpl(val context: Context) : AppPreferences {
|
|||||||
@Suppress("UnusedPrivateProperty")
|
@Suppress("UnusedPrivateProperty")
|
||||||
private val TAG = AppPreferencesImpl::class.simpleName
|
private val TAG = AppPreferencesImpl::class.simpleName
|
||||||
private val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")
|
private val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")
|
||||||
|
private const val MESSAGE_INDEX: Int = 0
|
||||||
|
private const val REPLY_TO_INDEX: Int = 1
|
||||||
|
private const val DISPLY_NAME_INDEX: Int = 2
|
||||||
|
private const val SILENT_INDEX: Int = 3
|
||||||
const val PROXY_TYPE = "proxy_type"
|
const val PROXY_TYPE = "proxy_type"
|
||||||
const val PROXY_SERVER = "proxy_server"
|
const val PROXY_SERVER = "proxy_server"
|
||||||
const val PROXY_HOST = "proxy_host"
|
const val PROXY_HOST = "proxy_host"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
|
# SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
build:
|
build:
|
||||||
maxIssues: 138
|
maxIssues: 166
|
||||||
weights:
|
weights:
|
||||||
# complexity: 2
|
# complexity: 2
|
||||||
# LongParameterList: 1
|
# LongParameterList: 1
|
||||||
|
Loading…
Reference in New Issue
Block a user