diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMessageTagger.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMessageTagger.kt index 775ea94d1..2d4831c87 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMessageTagger.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMessageTagger.kt @@ -9,7 +9,12 @@ import com.vitorpamplona.amethyst.service.bechToBytes import com.vitorpamplona.amethyst.service.nip19.Nip19 import com.vitorpamplona.amethyst.service.toNpub -class NewMessageTagger(var channelHex: String?, var mentions: List?, var replyTos: List?, var message: String) { +class NewMessageTagger( + var message: String, + var mentions: List? = null, + var replyTos: List? = null, + var channelHex: String? = null +) { val directMentions = mutableSetOf() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt index 5c366c367..8036a580e 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt @@ -130,7 +130,7 @@ open class NewPostViewModel() : ViewModel() { } fun sendPost(relayList: List? = null) { - val tagger = NewMessageTagger(originalNote?.channelHex(), mentions, replyTos, message.text) + val tagger = NewMessageTagger(message.text, mentions, replyTos, originalNote?.channelHex()) tagger.run() val zapReceiver = if (wantsForwardZapTo) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChannelScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChannelScreen.kt index 2a88bc3f8..118b438e3 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChannelScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChannelScreen.kt @@ -272,10 +272,10 @@ fun ChannelScreen( EditFieldRow(newPostModel, isPrivate = false, accountViewModel = accountViewModel) { scope.launch(Dispatchers.IO) { val tagger = NewMessageTagger( - channelHex = channel.idHex, + message = newPostModel.message.text, mentions = listOfNotNull(replyTo.value?.author), replyTos = listOfNotNull(replyTo.value), - message = newPostModel.message.text + channelHex = channel.idHex ) tagger.run() if (channel is PublicChatChannel) { diff --git a/app/src/test/java/com/vitorpamplona/amethyst/KeyParseTest.kt b/app/src/test/java/com/vitorpamplona/amethyst/NewMessageTaggerKeyParseTest.kt similarity index 66% rename from app/src/test/java/com/vitorpamplona/amethyst/KeyParseTest.kt rename to app/src/test/java/com/vitorpamplona/amethyst/NewMessageTaggerKeyParseTest.kt index f44971b5e..b1023d9df 100644 --- a/app/src/test/java/com/vitorpamplona/amethyst/KeyParseTest.kt +++ b/app/src/test/java/com/vitorpamplona/amethyst/NewMessageTaggerKeyParseTest.kt @@ -1,7 +1,7 @@ package com.vitorpamplona.amethyst -import com.vitorpamplona.amethyst.model.parseDirtyWordForKey import com.vitorpamplona.amethyst.service.nip19.Nip19 +import com.vitorpamplona.amethyst.ui.actions.NewMessageTagger import org.junit.Assert.assertEquals import org.junit.Test @@ -10,10 +10,10 @@ import org.junit.Test * * See [testing documentation](http://d.android.com/tools/testing). */ -class KeyParseTest { +class NewMessageTaggerKeyParseTest { @Test fun keyParseTestNote() { - val result = parseDirtyWordForKey("note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn") + val result = NewMessageTagger(message = "").parseDirtyWordForKey("note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn") assertEquals(Nip19.Type.NOTE, result?.key?.type) assertEquals("1532adbe1b369beca9af174076c4736faeb5ef527f1275a4af200121c0f55605", result?.key?.hex) assertEquals("", result?.restOfWord) @@ -21,7 +21,7 @@ class KeyParseTest { @Test fun keyParseTestPub() { - val result = parseDirtyWordForKey("npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z") + val result = NewMessageTagger(message = "").parseDirtyWordForKey("npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z") assertEquals(Nip19.Type.USER, result?.key?.type) assertEquals("460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c", result?.key?.hex) assertEquals("", result?.restOfWord) @@ -29,7 +29,7 @@ class KeyParseTest { @Test fun keyParseTestNoteWithExtraChars() { - val result = parseDirtyWordForKey("note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn,") + val result = NewMessageTagger(message = "").parseDirtyWordForKey("note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn,") assertEquals(Nip19.Type.NOTE, result?.key?.type) assertEquals("1532adbe1b369beca9af174076c4736faeb5ef527f1275a4af200121c0f55605", result?.key?.hex) assertEquals(",", result?.restOfWord) @@ -37,7 +37,7 @@ class KeyParseTest { @Test fun keyParseTestPubWithExtraChars() { - val result = parseDirtyWordForKey("npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z,") + val result = NewMessageTagger(message = "").parseDirtyWordForKey("npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z,") assertEquals(Nip19.Type.USER, result?.key?.type) assertEquals("460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c", result?.key?.hex) assertEquals(",", result?.restOfWord) @@ -45,7 +45,7 @@ class KeyParseTest { @Test fun keyParseTestNoteWithExtraCharsAndAt() { - val result = parseDirtyWordForKey("@note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn,") + val result = NewMessageTagger(message = "").parseDirtyWordForKey("@note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn,") assertEquals(Nip19.Type.NOTE, result?.key?.type) assertEquals("1532adbe1b369beca9af174076c4736faeb5ef527f1275a4af200121c0f55605", result?.key?.hex) assertEquals(",", result?.restOfWord) @@ -53,7 +53,7 @@ class KeyParseTest { @Test fun keyParseTestPubWithExtraCharsAndAt() { - val result = parseDirtyWordForKey("@npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z,") + val result = NewMessageTagger(message = "").parseDirtyWordForKey("@npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z,") assertEquals(Nip19.Type.USER, result?.key?.type) assertEquals("460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c", result?.key?.hex) assertEquals(",", result?.restOfWord) @@ -61,7 +61,7 @@ class KeyParseTest { @Test fun keyParseTestNoteWithExtraCharsAndNostrPrefix() { - val result = parseDirtyWordForKey("nostr:note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn,") + val result = NewMessageTagger(message = "").parseDirtyWordForKey("nostr:note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn,") assertEquals(Nip19.Type.NOTE, result?.key?.type) assertEquals("1532adbe1b369beca9af174076c4736faeb5ef527f1275a4af200121c0f55605", result?.key?.hex) assertEquals(",", result?.restOfWord) @@ -69,7 +69,7 @@ class KeyParseTest { @Test fun keyParseTestPubWithExtraCharsAndNostrPrefix() { - val result = parseDirtyWordForKey("nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z,") + val result = NewMessageTagger(message = "").parseDirtyWordForKey("nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z,") assertEquals(Nip19.Type.USER, result?.key?.type) assertEquals("460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c", result?.key?.hex) assertEquals(",", result?.restOfWord) @@ -77,7 +77,7 @@ class KeyParseTest { @Test fun keyParseTestUppercaseNoteWithExtraCharsAndNostrPrefix() { - val result = parseDirtyWordForKey("Nostr:note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn,") + val result = NewMessageTagger(message = "").parseDirtyWordForKey("Nostr:note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn,") assertEquals(Nip19.Type.NOTE, result?.key?.type) assertEquals("1532adbe1b369beca9af174076c4736faeb5ef527f1275a4af200121c0f55605", result?.key?.hex) assertEquals(",", result?.restOfWord) @@ -85,7 +85,7 @@ class KeyParseTest { @Test fun keyParseTestUppercasePubWithExtraCharsAndNostrPrefix() { - val result = parseDirtyWordForKey("nOstr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z,") + val result = NewMessageTagger(message = "").parseDirtyWordForKey("nOstr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z,") assertEquals(Nip19.Type.USER, result?.key?.type) assertEquals("460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c", result?.key?.hex) assertEquals(",", result?.restOfWord)