mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-23 04:35:01 +01:00
Avoid empty status message
Enable the 'Set status message' button only if a message is set. Currently the API don't allow us to set an empty message [1]. See: [1] nextcloud/server#31452 #1839 Signed-off-by: Tim Krüger <t@timkrueger.me>
This commit is contained in:
parent
f8e8a95b34
commit
cb1dd8e5b5
@ -35,6 +35,7 @@ import android.widget.AdapterView
|
|||||||
import android.widget.AdapterView.OnItemSelectedListener
|
import android.widget.AdapterView.OnItemSelectedListener
|
||||||
import android.widget.ArrayAdapter
|
import android.widget.ArrayAdapter
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
|
import androidx.core.widget.doAfterTextChanged
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import autodagger.AutoInjector
|
import autodagger.AutoInjector
|
||||||
@ -59,6 +60,7 @@ import io.reactivex.Observer
|
|||||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||||
import io.reactivex.disposables.Disposable
|
import io.reactivex.disposables.Disposable
|
||||||
import io.reactivex.schedulers.Schedulers
|
import io.reactivex.schedulers.Schedulers
|
||||||
|
import kotlinx.android.synthetic.main.dialog_set_status.*
|
||||||
import okhttp3.ResponseBody
|
import okhttp3.ResponseBody
|
||||||
import java.util.Calendar
|
import java.util.Calendar
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
@ -157,7 +159,8 @@ class SetStatusDialogFragment :
|
|||||||
currentStatus?.let {
|
currentStatus?.let {
|
||||||
binding.emoji.setText(it.icon)
|
binding.emoji.setText(it.icon)
|
||||||
binding.customStatusInput.text?.clear()
|
binding.customStatusInput.text?.clear()
|
||||||
binding.customStatusInput.setText(it.message)
|
binding.customStatusInput.setText(it.message?.trim())
|
||||||
|
binding.setStatus.isEnabled = it.message?.isEmpty() == false
|
||||||
visualizeStatus(it.status)
|
visualizeStatus(it.status)
|
||||||
|
|
||||||
if (it.clearAt > 0) {
|
if (it.clearAt > 0) {
|
||||||
@ -231,6 +234,10 @@ class SetStatusDialogFragment :
|
|||||||
binding.setStatus.setBackgroundColor(resources.getColor(R.color.colorPrimary))
|
binding.setStatus.setBackgroundColor(resources.getColor(R.color.colorPrimary))
|
||||||
|
|
||||||
binding.customStatusInput.highlightColor = resources.getColor(R.color.colorPrimary)
|
binding.customStatusInput.highlightColor = resources.getColor(R.color.colorPrimary)
|
||||||
|
|
||||||
|
binding.customStatusInput.doAfterTextChanged { text ->
|
||||||
|
binding.setStatus.isEnabled = !text.isNullOrEmpty()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("ComplexMethod")
|
@Suppress("ComplexMethod")
|
||||||
@ -394,7 +401,7 @@ class SetStatusDialogFragment :
|
|||||||
|
|
||||||
private fun setStatusMessage() {
|
private fun setStatusMessage() {
|
||||||
|
|
||||||
val inputText = binding.customStatusInput.text.toString().ifEmpty { " " }
|
val inputText = binding.customStatusInput.text.toString().ifEmpty { "" }
|
||||||
// The endpoint '/message/custom' expects a valid emoji as string or null
|
// The endpoint '/message/custom' expects a valid emoji as string or null
|
||||||
val statusIcon = binding.emoji.text.toString().ifEmpty { null }
|
val statusIcon = binding.emoji.text.toString().ifEmpty { null }
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user