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