mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-19 03:29:28 +01:00
Merge pull request #4658 from nextcloud/conversation_description_length
Set limit on conversation description length
This commit is contained in:
commit
0e4e2f3b03
@ -90,6 +90,7 @@ import com.nextcloud.talk.chat.ChatActivity
|
||||
import com.nextcloud.talk.contacts.ContactsActivityCompose
|
||||
import com.nextcloud.talk.contacts.loadImage
|
||||
import com.nextcloud.talk.models.json.autocomplete.AutocompleteUser
|
||||
import com.nextcloud.talk.utils.CapabilitiesUtil
|
||||
import com.nextcloud.talk.utils.PickImage
|
||||
import com.nextcloud.talk.utils.bundle.BundleKeys
|
||||
import javax.inject.Inject
|
||||
@ -342,7 +343,22 @@ fun ConversationNameAndDescription(conversationCreationViewModel: ConversationCr
|
||||
OutlinedTextField(
|
||||
value = conversationDescription.value,
|
||||
onValueChange = {
|
||||
if (it.length > CapabilitiesUtil.conversationDescriptionLength(
|
||||
conversationCreationViewModel.currentUser
|
||||
.capabilities?.spreedCapability!!
|
||||
)
|
||||
) {
|
||||
conversationCreationViewModel.updateConversationDescription(
|
||||
it.take(
|
||||
CapabilitiesUtil.conversationDescriptionLength(
|
||||
conversationCreationViewModel.currentUser
|
||||
.capabilities?.spreedCapability!!
|
||||
)
|
||||
)
|
||||
)
|
||||
} else {
|
||||
conversationCreationViewModel.updateConversationDescription(it)
|
||||
}
|
||||
},
|
||||
label = { Text(text = stringResource(id = R.string.nc_conversation_description)) },
|
||||
modifier = Modifier
|
||||
|
@ -10,6 +10,7 @@ package com.nextcloud.talk.conversationinfoedit
|
||||
import android.app.Activity
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.os.Bundle
|
||||
import android.text.InputFilter
|
||||
import android.text.TextUtils
|
||||
import android.util.Log
|
||||
import android.view.Menu
|
||||
@ -118,6 +119,12 @@ class ConversationInfoEditActivity : BaseActivity() {
|
||||
|
||||
pickImage = PickImage(this, conversationUser)
|
||||
|
||||
val max = CapabilitiesUtil.conversationDescriptionLength(conversationUser.capabilities?.spreedCapability!!)
|
||||
binding.conversationDescription.filters = arrayOf(
|
||||
InputFilter.LengthFilter(max)
|
||||
)
|
||||
binding.conversationDescriptionInputLayout.counterMaxLength = max
|
||||
|
||||
initObservers()
|
||||
}
|
||||
|
||||
@ -277,7 +284,7 @@ class ConversationInfoEditActivity : BaseActivity() {
|
||||
)
|
||||
}
|
||||
|
||||
fun saveConversationDescription() {
|
||||
private fun saveConversationDescription() {
|
||||
val conversationDescription = binding.conversationDescription.text.toString()
|
||||
conversationInfoEditViewModel.setConversationDescription(conversation!!.token, conversationDescription)
|
||||
}
|
||||
|
@ -121,6 +121,16 @@ object CapabilitiesUtil {
|
||||
return DEFAULT_CHAT_SIZE
|
||||
}
|
||||
|
||||
fun conversationDescriptionLength(spreedCapabilities: SpreedCapability): Int {
|
||||
if (spreedCapabilities.config?.containsKey("conversations") == true) {
|
||||
val map: Map<String, Any>? = spreedCapabilities.config!!["conversations"]
|
||||
if (map != null && map.containsKey("description-length")) {
|
||||
return (map["description-length"].toString().toInt())
|
||||
}
|
||||
}
|
||||
return CONVERSATION_DESCRIPTION_LENGTH_FOR_OLD_SERVER
|
||||
}
|
||||
|
||||
fun isReadStatusAvailable(spreedCapabilities: SpreedCapability): Boolean {
|
||||
if (spreedCapabilities.config?.containsKey("chat") == true) {
|
||||
val map: Map<String, Any>? = spreedCapabilities.config!!["chat"]
|
||||
@ -287,4 +297,5 @@ object CapabilitiesUtil {
|
||||
const val RECORDING_CONSENT_DEPEND_ON_CONVERSATION = 2
|
||||
private const val SERVER_VERSION_MIN_SUPPORTED = 17
|
||||
private const val SERVER_VERSION_SUPPORT_WARNING = 26
|
||||
private const val CONVERSATION_DESCRIPTION_LENGTH_FOR_OLD_SERVER = 500
|
||||
}
|
||||
|
@ -138,12 +138,14 @@
|
||||
app:boxStrokeColor="@color/colorPrimary"
|
||||
app:errorTextAppearance="@style/ErrorAppearance"
|
||||
app:hintTextColor="@color/colorPrimary"
|
||||
app:counterEnabled="true"
|
||||
android:hint="@string/nc_conversation_description">
|
||||
|
||||
<com.nextcloud.talk.utils.EmojiTextInputEditText
|
||||
android:id="@+id/conversation_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:maxHeight="300dp"
|
||||
android:imeOptions="actionNext"
|
||||
android:inputType="text|textMultiLine"
|
||||
android:singleLine="true"
|
||||
|
Loading…
Reference in New Issue
Block a user