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?