kopia lustrzana https://github.com/meshtastic/Meshtastic-Android
make message sending work
rodzic
56bf4523cb
commit
c2ab35ff9b
5
TODO.md
5
TODO.md
|
@ -1,9 +1,10 @@
|
||||||
# High priority
|
# High priority
|
||||||
MVP features required for first public alpha
|
MVP features required for first public alpha
|
||||||
|
|
||||||
|
* show real ID of me when I sent texts
|
||||||
|
* keep text entry box at bottom of screen
|
||||||
* show user icons in chat
|
* show user icons in chat
|
||||||
* show sent messages in chat
|
* when I enter texts, send them to the device
|
||||||
* make chat pretty and functional
|
|
||||||
* let user set name and shortname
|
* let user set name and shortname
|
||||||
* take video
|
* take video
|
||||||
|
|
||||||
|
|
|
@ -7,11 +7,13 @@ import androidx.ui.core.Modifier
|
||||||
import androidx.ui.core.Text
|
import androidx.ui.core.Text
|
||||||
import androidx.ui.core.TextField
|
import androidx.ui.core.TextField
|
||||||
import androidx.ui.foundation.shape.corner.RoundedCornerShape
|
import androidx.ui.foundation.shape.corner.RoundedCornerShape
|
||||||
|
import androidx.ui.graphics.Color
|
||||||
import androidx.ui.input.ImeAction
|
import androidx.ui.input.ImeAction
|
||||||
import androidx.ui.layout.Column
|
import androidx.ui.layout.Column
|
||||||
import androidx.ui.layout.LayoutPadding
|
import androidx.ui.layout.LayoutPadding
|
||||||
import androidx.ui.layout.LayoutSize
|
import androidx.ui.layout.LayoutSize
|
||||||
import androidx.ui.layout.Row
|
import androidx.ui.layout.Row
|
||||||
|
import androidx.ui.material.Emphasis
|
||||||
import androidx.ui.material.MaterialTheme
|
import androidx.ui.material.MaterialTheme
|
||||||
import androidx.ui.material.ProvideEmphasis
|
import androidx.ui.material.ProvideEmphasis
|
||||||
import androidx.ui.material.surface.Surface
|
import androidx.ui.material.surface.Surface
|
||||||
|
@ -39,11 +41,23 @@ object MessagesState : Logging {
|
||||||
|
|
||||||
// If the following (unused otherwise) line is commented out, the IDE preview window works.
|
// If the following (unused otherwise) line is commented out, the IDE preview window works.
|
||||||
// if left in the preview always renders as empty.
|
// if left in the preview always renders as empty.
|
||||||
val messages = mutableStateOf(MessagesState.testTexts)
|
val messages = mutableStateOf(MessagesState.testTexts, { a, b ->
|
||||||
|
a.size == b.size // If the # of messages changes, consider it important for rerender
|
||||||
|
})
|
||||||
|
|
||||||
|
fun addMessage(m: TextMessage) {
|
||||||
|
val l = messages.value.toMutableList()
|
||||||
|
l.add(m)
|
||||||
|
messages.value = l
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val dateFormat = SimpleDateFormat("h:mm a")
|
private val dateFormat = SimpleDateFormat("h:mm a")
|
||||||
|
|
||||||
|
val TimestampEmphasis = object : Emphasis {
|
||||||
|
override fun emphasize(color: Color) = color.copy(alpha = 0.12f)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A pretty version the text, with user icon to the left, name and time of arrival (copy slack look and feel)
|
* A pretty version the text, with user icon to the left, name and time of arrival (copy slack look and feel)
|
||||||
*/
|
*/
|
||||||
|
@ -63,7 +77,7 @@ fun MessageCard(msg: TextMessage, modifier: Modifier = Modifier.None) {
|
||||||
val user = node?.user
|
val user = node?.user
|
||||||
val senderName = user?.longName ?: msg.from
|
val senderName = user?.longName ?: msg.from
|
||||||
Text(text = senderName)
|
Text(text = senderName)
|
||||||
ProvideEmphasis(emphasis = MaterialTheme.emphasisLevels().disabled) {
|
ProvideEmphasis(emphasis = TimestampEmphasis) {
|
||||||
Text(
|
Text(
|
||||||
text = dateFormat.format(msg.date),
|
text = dateFormat.format(msg.date),
|
||||||
modifier = LayoutPadding(left = 8.dp),
|
modifier = LayoutPadding(left = 8.dp),
|
||||||
|
@ -115,6 +129,7 @@ fun MessagesContent() {
|
||||||
imeAction = ImeAction.Send,
|
imeAction = ImeAction.Send,
|
||||||
onImeActionPerformed = {
|
onImeActionPerformed = {
|
||||||
MessagesState.info("did IME action")
|
MessagesState.info("did IME action")
|
||||||
|
MessagesState.addMessage(TextMessage("fixme", message.value))
|
||||||
},
|
},
|
||||||
modifier = LayoutPadding(4.dp)
|
modifier = LayoutPadding(4.dp)
|
||||||
)
|
)
|
||||||
|
|
Ładowanie…
Reference in New Issue