diff --git a/app/src/main/java/com/geeksville/mesh/ui/MessagesFragment.kt b/app/src/main/java/com/geeksville/mesh/ui/MessagesFragment.kt index f6a54908..c51d48c3 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/MessagesFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/MessagesFragment.kt @@ -22,6 +22,7 @@ import com.geeksville.mesh.MessageStatus import com.geeksville.mesh.R import com.geeksville.mesh.databinding.AdapterMessageLayoutBinding import com.geeksville.mesh.databinding.MessagesFragmentBinding +import com.geeksville.mesh.model.QuickChatAction import com.geeksville.mesh.model.UIViewModel import com.geeksville.mesh.service.MeshService import com.google.android.material.chip.Chip @@ -296,15 +297,30 @@ class MessagesFragment : Fragment(), Logging { binding.sendButton.isEnabled = connected } - val test = Button(context) - test.setLayoutParams(LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)) - test.setText("RGR") - test.setOnClickListener { - //model.messagesState.sendMessage("Roger", contactId) - binding.messageInputText.setText(binding.messageInputText.text?.append(" Roger")) - binding.messageInputText.setSelection(binding.messageInputText.text?.length ?: 0) + for (action in model.quickChatActions) { + val button = Button(context) + button.setText(action.name) + if (action.mode == QuickChatAction.Mode.Instant) { + button.backgroundTintList = ContextCompat.getColorStateList(requireActivity(), R.color.colorMyMsg) + + } + button.setOnClickListener { + if (action.mode == QuickChatAction.Mode.Append) { + val originalText = binding.messageInputText.text ?: "" + val needsSpace = !originalText.endsWith(' ') && originalText.isNotEmpty() + val newText = buildString { + append(originalText) + if (needsSpace) append(' ') + append(action.message) + } + binding.messageInputText.setText(newText) + binding.messageInputText.setSelection(newText.length) + } else { + model.messagesState.sendMessage(action.message, contactId) + } + } + binding.quickChatLayout.addView(button) } - binding.quickChatLayout.addView(test) } private inner class ActionModeCallback : ActionMode.Callback { diff --git a/app/src/main/res/layout/messages_fragment.xml b/app/src/main/res/layout/messages_fragment.xml index f4e615d1..db6c22f6 100644 --- a/app/src/main/res/layout/messages_fragment.xml +++ b/app/src/main/res/layout/messages_fragment.xml @@ -45,11 +45,13 @@ - @@ -59,7 +61,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" /> - +