diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/widgets/model/WidgetContent.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/widgets/model/WidgetContent.kt
index 8a351af130..7e045f25c7 100644
--- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/widgets/model/WidgetContent.kt
+++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/widgets/model/WidgetContent.kt
@@ -16,6 +16,7 @@
package im.vector.matrix.android.api.session.widgets.model
+import android.annotation.SuppressLint
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import im.vector.matrix.android.api.util.JsonDict
@@ -33,26 +34,8 @@ data class WidgetContent(
fun isActive() = type != null && url != null
- /**
- * @return the human name
- */
+ @SuppressLint("DefaultLocale")
fun getHumanName(): String {
- return if (!name.isNullOrBlank()) {
- "$name widget"
- } else if (!type.isNullOrBlank()) {
- when {
- type.contains("widget") -> {
- type
- }
- id != null -> {
- "$type $id"
- }
- else -> {
- "$type widget"
- }
- }
- } else {
- "Widget $id"
- }
+ return (name ?: type ?: "").capitalize()
}
}
diff --git a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/format/NoticeEventFormatter.kt b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/format/NoticeEventFormatter.kt
index b9dbed13b2..629217ed9c 100644
--- a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/format/NoticeEventFormatter.kt
+++ b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/format/NoticeEventFormatter.kt
@@ -16,6 +16,7 @@
package im.vector.riotx.features.home.room.detail.timeline.format
+import im.vector.matrix.android.api.extensions.orFalse
import im.vector.matrix.android.api.session.events.model.Event
import im.vector.matrix.android.api.session.events.model.EventType
import im.vector.matrix.android.api.session.events.model.toModel
@@ -86,9 +87,13 @@ class NoticeEventFormatter @Inject constructor(private val sessionHolder: Active
val previousWidgetContent: WidgetContent? = event.prevContent.toModel()
return if (widgetContent.isActive()) {
val name = widgetContent.getHumanName()
- sp.getString(R.string.event_formatter_widget_added, name, disambiguatedDisplayName)
+ if (previousWidgetContent?.isActive().orFalse()) {
+ sp.getString(R.string.event_formatter_widget_modified, name, disambiguatedDisplayName)
+ } else {
+ sp.getString(R.string.event_formatter_widget_added, name, disambiguatedDisplayName)
+ }
} else {
- val name = previousWidgetContent?.getHumanName() ?: sp.getString(R.string.room_widget_activity_title)
+ val name = previousWidgetContent?.getHumanName()
sp.getString(R.string.event_formatter_widget_removed, name, disambiguatedDisplayName)
}
}
diff --git a/vector/src/main/res/values/strings.xml b/vector/src/main/res/values/strings.xml
index 6a6b645eba..fcc3e258fd 100644
--- a/vector/src/main/res/values/strings.xml
+++ b/vector/src/main/res/values/strings.xml
@@ -1108,8 +1108,9 @@
You need permission to manage widgets in this room
Widget creation has failed
- %1$s added by %2$s
- %1$s removed by %2$s
+ %1$s widget added by %2$s
+ %1$s widget removed by %2$s
+ %1$s widget modified by %2$s
Create conference calls with jitsi
Are you sure you want to delete the widget from this room?