From d0b145d031de0d92fe99fbae447163691b5c0e7d Mon Sep 17 00:00:00 2001
From: Valere <valeref@matrix.org>
Date: Thu, 11 Jul 2019 12:29:02 +0200
Subject: [PATCH 1/2] Edit emote

---
 .../api/session/room/model/relation/RelationService.kt        | 2 +-
 .../internal/session/room/relation/DefaultRelationService.kt  | 4 ++--
 .../internal/session/room/send/LocalEchoEventFactory.kt       | 2 +-
 .../matrix/android/internal/session/room/send/TextContent.kt  | 4 ++--
 .../matrix/android/api/pushrules/PushrulesConditionTest.kt    | 2 +-
 .../riotx/features/home/room/detail/RoomDetailViewModel.kt    | 2 +-
 6 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/model/relation/RelationService.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/model/relation/RelationService.kt
index dbd23a580a..9f93a3cf70 100644
--- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/model/relation/RelationService.kt
+++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/model/relation/RelationService.kt
@@ -69,7 +69,7 @@ interface RelationService {
      * @param newBodyText The edited body
      * @param compatibilityBodyText The text that will appear on clients that don't support yet edition
      */
-    fun editTextMessage(targetEventId: String, newBodyText: String, newBodyAutoMarkdown: Boolean, compatibilityBodyText: String = "* $newBodyText"): Cancelable
+    fun editTextMessage(targetEventId: String, msgType: String, newBodyText: String, newBodyAutoMarkdown: Boolean, compatibilityBodyText: String = "* $newBodyText"): Cancelable
 
 
     /**
diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/relation/DefaultRelationService.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/relation/DefaultRelationService.kt
index ecbd00362c..09e9fa4a81 100644
--- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/relation/DefaultRelationService.kt
+++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/relation/DefaultRelationService.kt
@@ -116,9 +116,9 @@ internal class DefaultRelationService @Inject constructor(private val context: C
         return TimelineSendEventWorkCommon.createWork<RedactEventWorker>(redactWorkData)
     }
 
-    override fun editTextMessage(targetEventId: String, newBodyText: String, newBodyAutoMarkdown: Boolean, compatibilityBodyText: String): Cancelable {
+    override fun editTextMessage(targetEventId: String, msgType: String, newBodyText: String, newBodyAutoMarkdown: Boolean, compatibilityBodyText: String): Cancelable {
         val event = eventFactory
-                .createReplaceTextEvent(roomId, targetEventId, newBodyText, newBodyAutoMarkdown, MessageType.MSGTYPE_TEXT, compatibilityBodyText)
+                .createReplaceTextEvent(roomId, targetEventId, newBodyText, newBodyAutoMarkdown, msgType, compatibilityBodyText)
                 .also {
                     saveLocalEcho(it)
                 }
diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/send/LocalEchoEventFactory.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/send/LocalEchoEventFactory.kt
index 179f143daa..67d1eabc66 100644
--- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/send/LocalEchoEventFactory.kt
+++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/send/LocalEchoEventFactory.kt
@@ -99,7 +99,7 @@ internal class LocalEchoEventFactory @Inject constructor(private val credentials
                         body = compatibilityText,
                         relatesTo = RelationDefaultContent(RelationType.REPLACE, targetEventId),
                         newContent = createTextContent(newBodyText, newBodyAutoMarkdown)
-                                .toMessageTextContent()
+                                .toMessageTextContent(msgType)
                                 .toContent()
                 ))
     }
diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/send/TextContent.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/send/TextContent.kt
index 9e2c785c59..eaf367d484 100644
--- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/send/TextContent.kt
+++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/send/TextContent.kt
@@ -31,9 +31,9 @@ data class TextContent(
 }
 
 
-fun TextContent.toMessageTextContent(): MessageTextContent {
+fun TextContent.toMessageTextContent(msgType : String = MessageType.MSGTYPE_TEXT): MessageTextContent {
     return MessageTextContent(
-            type = MessageType.MSGTYPE_TEXT,
+            type = msgType,
             format = MessageType.FORMAT_MATRIX_HTML.takeIf { formattedText != null },
             body = text,
             formattedBody = formattedText
diff --git a/matrix-sdk-android/src/test/java/im/vector/matrix/android/api/pushrules/PushrulesConditionTest.kt b/matrix-sdk-android/src/test/java/im/vector/matrix/android/api/pushrules/PushrulesConditionTest.kt
index 70eb658b16..0fab83507a 100644
--- a/matrix-sdk-android/src/test/java/im/vector/matrix/android/api/pushrules/PushrulesConditionTest.kt
+++ b/matrix-sdk-android/src/test/java/im/vector/matrix/android/api/pushrules/PushrulesConditionTest.kt
@@ -281,7 +281,7 @@ class PushrulesConditionTest {
             TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
         }
 
-        override fun editTextMessage(targetEventId: String, newBodyText: String, newBodyAutoMarkdown: Boolean, compatibilityBodyText: String): Cancelable {
+        override fun editTextMessage(targetEventId: String, msgType: String, newBodyText: String, newBodyAutoMarkdown: Boolean, compatibilityBodyText: String): Cancelable {
             TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
         }
 
diff --git a/vector/src/main/java/im/vector/riotx/features/home/room/detail/RoomDetailViewModel.kt b/vector/src/main/java/im/vector/riotx/features/home/room/detail/RoomDetailViewModel.kt
index 0b69810801..2a19914a8c 100644
--- a/vector/src/main/java/im/vector/riotx/features/home/room/detail/RoomDetailViewModel.kt
+++ b/vector/src/main/java/im/vector/riotx/features/home/room/detail/RoomDetailViewModel.kt
@@ -237,7 +237,7 @@ class RoomDetailViewModel @AssistedInject constructor(@Assisted initialState: Ro
 
                     if (nonFormattedBody != action.text) {
                         room.editTextMessage(state.sendMode.timelineEvent.root.eventId
-                                ?: "", action.text, action.autoMarkdown)
+                                ?: "", messageContent?.type ?: MessageType.MSGTYPE_TEXT, action.text, action.autoMarkdown)
                     } else {
                         Timber.w("Same message content, do not send edition")
                     }

From 65e123d87f1e37b46ca2afb08e5a4df3ad54b754 Mon Sep 17 00:00:00 2001
From: Benoit Marty <benoit@matrix.org>
Date: Thu, 11 Jul 2019 13:32:28 +0200
Subject: [PATCH 2/2] Split long lines

---
 .../room/model/relation/RelationService.kt      | 17 +++++++++++++----
 .../room/relation/DefaultRelationService.kt     |  7 +++++--
 .../internal/session/room/send/TextContent.kt   |  2 +-
 .../api/pushrules/PushrulesConditionTest.kt     |  3 ++-
 4 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/model/relation/RelationService.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/model/relation/RelationService.kt
index 9f93a3cf70..81d7ddd4c0 100644
--- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/model/relation/RelationService.kt
+++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/room/model/relation/RelationService.kt
@@ -51,7 +51,8 @@ interface RelationService {
      * @param reaction the reaction (preferably emoji)
      * @param targetEventId the id of the event being reacted
      */
-    fun sendReaction(reaction: String, targetEventId: String): Cancelable
+    fun sendReaction(reaction: String,
+                     targetEventId: String): Cancelable
 
 
     /**
@@ -60,7 +61,9 @@ interface RelationService {
      * @param targetEventId the id of the event being reacted
      * @param myUserId used to know if a reaction event was made by the user
      */
-    fun undoReaction(reaction: String, targetEventId: String, myUserId: String)//: Cancelable
+    fun undoReaction(reaction: String,
+                     targetEventId: String,
+                     myUserId: String)//: Cancelable
 
 
     /**
@@ -69,7 +72,11 @@ interface RelationService {
      * @param newBodyText The edited body
      * @param compatibilityBodyText The text that will appear on clients that don't support yet edition
      */
-    fun editTextMessage(targetEventId: String, msgType: String, newBodyText: String, newBodyAutoMarkdown: Boolean, compatibilityBodyText: String = "* $newBodyText"): Cancelable
+    fun editTextMessage(targetEventId: String,
+                        msgType: String,
+                        newBodyText: String,
+                        newBodyAutoMarkdown: Boolean,
+                        compatibilityBodyText: String = "* $newBodyText"): Cancelable
 
 
     /**
@@ -79,7 +86,9 @@ interface RelationService {
      * @param replyText the reply text
      * @param autoMarkdown If true, the SDK will generate a formatted HTML message from the body text if markdown syntax is present
      */
-    fun replyToMessage(eventReplied: TimelineEvent, replyText: String, autoMarkdown: Boolean = false): Cancelable?
+    fun replyToMessage(eventReplied: TimelineEvent,
+                       replyText: String,
+                       autoMarkdown: Boolean = false): Cancelable?
 
     fun getEventSummaryLive(eventId: String): LiveData<EventAnnotationsSummary>
 }
\ No newline at end of file
diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/relation/DefaultRelationService.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/relation/DefaultRelationService.kt
index 09e9fa4a81..3eb1c066a8 100644
--- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/relation/DefaultRelationService.kt
+++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/relation/DefaultRelationService.kt
@@ -25,7 +25,6 @@ import im.vector.matrix.android.api.auth.data.Credentials
 import im.vector.matrix.android.api.session.crypto.CryptoService
 import im.vector.matrix.android.api.session.events.model.Event
 import im.vector.matrix.android.api.session.room.model.EventAnnotationsSummary
-import im.vector.matrix.android.api.session.room.model.message.MessageType
 import im.vector.matrix.android.api.session.room.model.relation.RelationService
 import im.vector.matrix.android.api.session.room.timeline.TimelineEvent
 import im.vector.matrix.android.api.util.Cancelable
@@ -116,7 +115,11 @@ internal class DefaultRelationService @Inject constructor(private val context: C
         return TimelineSendEventWorkCommon.createWork<RedactEventWorker>(redactWorkData)
     }
 
-    override fun editTextMessage(targetEventId: String, msgType: String, newBodyText: String, newBodyAutoMarkdown: Boolean, compatibilityBodyText: String): Cancelable {
+    override fun editTextMessage(targetEventId: String,
+                                 msgType: String,
+                                 newBodyText: String,
+                                 newBodyAutoMarkdown: Boolean,
+                                 compatibilityBodyText: String): Cancelable {
         val event = eventFactory
                 .createReplaceTextEvent(roomId, targetEventId, newBodyText, newBodyAutoMarkdown, msgType, compatibilityBodyText)
                 .also {
diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/send/TextContent.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/send/TextContent.kt
index eaf367d484..3061bd834b 100644
--- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/send/TextContent.kt
+++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/send/TextContent.kt
@@ -31,7 +31,7 @@ data class TextContent(
 }
 
 
-fun TextContent.toMessageTextContent(msgType : String = MessageType.MSGTYPE_TEXT): MessageTextContent {
+fun TextContent.toMessageTextContent(msgType: String = MessageType.MSGTYPE_TEXT): MessageTextContent {
     return MessageTextContent(
             type = msgType,
             format = MessageType.FORMAT_MATRIX_HTML.takeIf { formattedText != null },
diff --git a/matrix-sdk-android/src/test/java/im/vector/matrix/android/api/pushrules/PushrulesConditionTest.kt b/matrix-sdk-android/src/test/java/im/vector/matrix/android/api/pushrules/PushrulesConditionTest.kt
index 0fab83507a..3d4df602b7 100644
--- a/matrix-sdk-android/src/test/java/im/vector/matrix/android/api/pushrules/PushrulesConditionTest.kt
+++ b/matrix-sdk-android/src/test/java/im/vector/matrix/android/api/pushrules/PushrulesConditionTest.kt
@@ -281,7 +281,8 @@ class PushrulesConditionTest {
             TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
         }
 
-        override fun editTextMessage(targetEventId: String, msgType: String, newBodyText: String, newBodyAutoMarkdown: Boolean, compatibilityBodyText: String): Cancelable {
+        override fun editTextMessage(targetEventId: String, msgType: String, newBodyText: String,
+                                     newBodyAutoMarkdown: Boolean, compatibilityBodyText: String): Cancelable {
             TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
         }