Merge pull request #1591 from vector-im/feature/other_fixes
Render room avatar change and other fixes
This commit is contained in:
commit
ba8ec97f6a
|
@ -13,6 +13,7 @@ Improvements 🙌:
|
||||||
- Update user avatar (#1054)
|
- Update user avatar (#1054)
|
||||||
- Allow self-signed certificate (#1564)
|
- Allow self-signed certificate (#1564)
|
||||||
- Improve file download and open in timeline
|
- Improve file download and open in timeline
|
||||||
|
- Render room avatar change (#1319)
|
||||||
|
|
||||||
Bugfix 🐛:
|
Bugfix 🐛:
|
||||||
- Fix dark theme issue on login screen (#1097)
|
- Fix dark theme issue on login screen (#1097)
|
||||||
|
@ -21,6 +22,7 @@ Bugfix 🐛:
|
||||||
- Use vendor prefix for non merged MSC (#1537)
|
- Use vendor prefix for non merged MSC (#1537)
|
||||||
- Compress images before sending (#1333)
|
- Compress images before sending (#1333)
|
||||||
- Searching by displayname is case sensitive (#1468)
|
- Searching by displayname is case sensitive (#1468)
|
||||||
|
- Fix layout overlap issue (#1407)
|
||||||
|
|
||||||
Translations 🗣:
|
Translations 🗣:
|
||||||
-
|
-
|
||||||
|
|
|
@ -252,7 +252,8 @@ internal object CertUtil {
|
||||||
builder.supportsTlsExtensions(hsConfig.shouldAcceptTlsExtensions)
|
builder.supportsTlsExtensions(hsConfig.shouldAcceptTlsExtensions)
|
||||||
val list = ArrayList<ConnectionSpec>()
|
val list = ArrayList<ConnectionSpec>()
|
||||||
list.add(builder.build())
|
list.add(builder.build())
|
||||||
if (hsConfig.allowHttpExtension) {
|
// TODO: we should display a warning if user enter an http url
|
||||||
|
if (hsConfig.allowHttpExtension || hsConfig.homeServerUri.toString().startsWith("http://")) {
|
||||||
list.add(ConnectionSpec.CLEARTEXT)
|
list.add(ConnectionSpec.CLEARTEXT)
|
||||||
}
|
}
|
||||||
return list
|
return list
|
||||||
|
|
|
@ -65,6 +65,7 @@ internal class RoomSummaryUpdater @Inject constructor(
|
||||||
EventType.MESSAGE,
|
EventType.MESSAGE,
|
||||||
EventType.STATE_ROOM_NAME,
|
EventType.STATE_ROOM_NAME,
|
||||||
EventType.STATE_ROOM_TOPIC,
|
EventType.STATE_ROOM_TOPIC,
|
||||||
|
EventType.STATE_ROOM_AVATAR,
|
||||||
EventType.STATE_ROOM_MEMBER,
|
EventType.STATE_ROOM_MEMBER,
|
||||||
EventType.STATE_ROOM_HISTORY_VISIBILITY,
|
EventType.STATE_ROOM_HISTORY_VISIBILITY,
|
||||||
EventType.CALL_INVITE,
|
EventType.CALL_INVITE,
|
||||||
|
|
|
@ -37,6 +37,8 @@
|
||||||
<string name="notice_display_name_removed_by_you">You removed your display name (it was %1$s)</string>
|
<string name="notice_display_name_removed_by_you">You removed your display name (it was %1$s)</string>
|
||||||
<string name="notice_room_topic_changed">%1$s changed the topic to: %2$s</string>
|
<string name="notice_room_topic_changed">%1$s changed the topic to: %2$s</string>
|
||||||
<string name="notice_room_topic_changed_by_you">You changed the topic to: %1$s</string>
|
<string name="notice_room_topic_changed_by_you">You changed the topic to: %1$s</string>
|
||||||
|
<string name="notice_room_avatar_changed">%1$s changed the room avatar</string>
|
||||||
|
<string name="notice_room_avatar_changed_by_you">You changed the room avatar</string>
|
||||||
<string name="notice_room_name_changed">%1$s changed the room name to: %2$s</string>
|
<string name="notice_room_name_changed">%1$s changed the room name to: %2$s</string>
|
||||||
<string name="notice_room_name_changed_by_you">You changed the room name to: %1$s</string>
|
<string name="notice_room_name_changed_by_you">You changed the room name to: %1$s</string>
|
||||||
<string name="notice_placed_video_call">%s placed a video call.</string>
|
<string name="notice_placed_video_call">%s placed a video call.</string>
|
||||||
|
@ -71,6 +73,8 @@
|
||||||
<string name="notice_room_name_removed_by_you">You removed the room name</string>
|
<string name="notice_room_name_removed_by_you">You removed the room name</string>
|
||||||
<string name="notice_room_topic_removed">%1$s removed the room topic</string>
|
<string name="notice_room_topic_removed">%1$s removed the room topic</string>
|
||||||
<string name="notice_room_topic_removed_by_you">You removed the room topic</string>
|
<string name="notice_room_topic_removed_by_you">You removed the room topic</string>
|
||||||
|
<string name="notice_room_avatar_removed">%1$s removed the room avatar</string>
|
||||||
|
<string name="notice_room_avatar_removed_by_you">You removed the room avatar</string>
|
||||||
<string name="notice_event_redacted">Message removed</string>
|
<string name="notice_event_redacted">Message removed</string>
|
||||||
<string name="notice_event_redacted_by">Message removed by %1$s</string>
|
<string name="notice_event_redacted_by">Message removed by %1$s</string>
|
||||||
<string name="notice_event_redacted_with_reason">Message removed [reason: %1$s]</string>
|
<string name="notice_event_redacted_with_reason">Message removed [reason: %1$s]</string>
|
||||||
|
|
|
@ -179,6 +179,7 @@ class MessageActionsViewModel @AssistedInject constructor(@Assisted
|
||||||
}
|
}
|
||||||
EventType.STATE_ROOM_NAME,
|
EventType.STATE_ROOM_NAME,
|
||||||
EventType.STATE_ROOM_TOPIC,
|
EventType.STATE_ROOM_TOPIC,
|
||||||
|
EventType.STATE_ROOM_AVATAR,
|
||||||
EventType.STATE_ROOM_MEMBER,
|
EventType.STATE_ROOM_MEMBER,
|
||||||
EventType.STATE_ROOM_ALIASES,
|
EventType.STATE_ROOM_ALIASES,
|
||||||
EventType.STATE_ROOM_CANONICAL_ALIAS,
|
EventType.STATE_ROOM_CANONICAL_ALIAS,
|
||||||
|
|
|
@ -48,6 +48,7 @@ class TimelineItemFactory @Inject constructor(private val messageItemFactory: Me
|
||||||
EventType.STATE_ROOM_TOMBSTONE,
|
EventType.STATE_ROOM_TOMBSTONE,
|
||||||
EventType.STATE_ROOM_NAME,
|
EventType.STATE_ROOM_NAME,
|
||||||
EventType.STATE_ROOM_TOPIC,
|
EventType.STATE_ROOM_TOPIC,
|
||||||
|
EventType.STATE_ROOM_AVATAR,
|
||||||
EventType.STATE_ROOM_MEMBER,
|
EventType.STATE_ROOM_MEMBER,
|
||||||
EventType.STATE_ROOM_ALIASES,
|
EventType.STATE_ROOM_ALIASES,
|
||||||
EventType.STATE_ROOM_CANONICAL_ALIAS,
|
EventType.STATE_ROOM_CANONICAL_ALIAS,
|
||||||
|
|
|
@ -24,6 +24,7 @@ import im.vector.matrix.android.api.session.room.model.GuestAccess
|
||||||
import im.vector.matrix.android.api.session.room.model.Membership
|
import im.vector.matrix.android.api.session.room.model.Membership
|
||||||
import im.vector.matrix.android.api.session.room.model.PowerLevelsContent
|
import im.vector.matrix.android.api.session.room.model.PowerLevelsContent
|
||||||
import im.vector.matrix.android.api.session.room.model.RoomAliasesContent
|
import im.vector.matrix.android.api.session.room.model.RoomAliasesContent
|
||||||
|
import im.vector.matrix.android.api.session.room.model.RoomAvatarContent
|
||||||
import im.vector.matrix.android.api.session.room.model.RoomCanonicalAliasContent
|
import im.vector.matrix.android.api.session.room.model.RoomCanonicalAliasContent
|
||||||
import im.vector.matrix.android.api.session.room.model.RoomGuestAccessContent
|
import im.vector.matrix.android.api.session.room.model.RoomGuestAccessContent
|
||||||
import im.vector.matrix.android.api.session.room.model.RoomHistoryVisibilityContent
|
import im.vector.matrix.android.api.session.room.model.RoomHistoryVisibilityContent
|
||||||
|
@ -57,6 +58,7 @@ class NoticeEventFormatter @Inject constructor(private val sessionHolder: Active
|
||||||
EventType.STATE_ROOM_CREATE -> formatRoomCreateEvent(timelineEvent.root)
|
EventType.STATE_ROOM_CREATE -> formatRoomCreateEvent(timelineEvent.root)
|
||||||
EventType.STATE_ROOM_NAME -> formatRoomNameEvent(timelineEvent.root, timelineEvent.senderInfo.disambiguatedDisplayName)
|
EventType.STATE_ROOM_NAME -> formatRoomNameEvent(timelineEvent.root, timelineEvent.senderInfo.disambiguatedDisplayName)
|
||||||
EventType.STATE_ROOM_TOPIC -> formatRoomTopicEvent(timelineEvent.root, timelineEvent.senderInfo.disambiguatedDisplayName)
|
EventType.STATE_ROOM_TOPIC -> formatRoomTopicEvent(timelineEvent.root, timelineEvent.senderInfo.disambiguatedDisplayName)
|
||||||
|
EventType.STATE_ROOM_AVATAR -> formatRoomAvatarEvent(timelineEvent.root, timelineEvent.senderInfo.disambiguatedDisplayName)
|
||||||
EventType.STATE_ROOM_MEMBER -> formatRoomMemberEvent(timelineEvent.root, timelineEvent.senderInfo.disambiguatedDisplayName)
|
EventType.STATE_ROOM_MEMBER -> formatRoomMemberEvent(timelineEvent.root, timelineEvent.senderInfo.disambiguatedDisplayName)
|
||||||
EventType.STATE_ROOM_ALIASES -> formatRoomAliasesEvent(timelineEvent.root, timelineEvent.senderInfo.disambiguatedDisplayName)
|
EventType.STATE_ROOM_ALIASES -> formatRoomAliasesEvent(timelineEvent.root, timelineEvent.senderInfo.disambiguatedDisplayName)
|
||||||
EventType.STATE_ROOM_CANONICAL_ALIAS -> formatRoomCanonicalAliasEvent(timelineEvent.root, timelineEvent.senderInfo.disambiguatedDisplayName)
|
EventType.STATE_ROOM_CANONICAL_ALIAS -> formatRoomCanonicalAliasEvent(timelineEvent.root, timelineEvent.senderInfo.disambiguatedDisplayName)
|
||||||
|
@ -149,6 +151,7 @@ class NoticeEventFormatter @Inject constructor(private val sessionHolder: Active
|
||||||
EventType.STATE_ROOM_JOIN_RULES -> formatJoinRulesEvent(event, senderName)
|
EventType.STATE_ROOM_JOIN_RULES -> formatJoinRulesEvent(event, senderName)
|
||||||
EventType.STATE_ROOM_NAME -> formatRoomNameEvent(event, senderName)
|
EventType.STATE_ROOM_NAME -> formatRoomNameEvent(event, senderName)
|
||||||
EventType.STATE_ROOM_TOPIC -> formatRoomTopicEvent(event, senderName)
|
EventType.STATE_ROOM_TOPIC -> formatRoomTopicEvent(event, senderName)
|
||||||
|
EventType.STATE_ROOM_AVATAR -> formatRoomAvatarEvent(event, senderName)
|
||||||
EventType.STATE_ROOM_MEMBER -> formatRoomMemberEvent(event, senderName)
|
EventType.STATE_ROOM_MEMBER -> formatRoomMemberEvent(event, senderName)
|
||||||
EventType.STATE_ROOM_HISTORY_VISIBILITY -> formatRoomHistoryVisibilityEvent(event, senderName)
|
EventType.STATE_ROOM_HISTORY_VISIBILITY -> formatRoomHistoryVisibilityEvent(event, senderName)
|
||||||
EventType.CALL_INVITE,
|
EventType.CALL_INVITE,
|
||||||
|
@ -220,6 +223,23 @@ class NoticeEventFormatter @Inject constructor(private val sessionHolder: Active
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun formatRoomAvatarEvent(event: Event, senderName: String?): CharSequence? {
|
||||||
|
val content = event.getClearContent().toModel<RoomAvatarContent>() ?: return null
|
||||||
|
return if (content.avatarUrl.isNullOrEmpty()) {
|
||||||
|
if (event.isSentByCurrentUser()) {
|
||||||
|
sp.getString(R.string.notice_room_avatar_removed_by_you)
|
||||||
|
} else {
|
||||||
|
sp.getString(R.string.notice_room_avatar_removed, senderName)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (event.isSentByCurrentUser()) {
|
||||||
|
sp.getString(R.string.notice_room_avatar_changed_by_you)
|
||||||
|
} else {
|
||||||
|
sp.getString(R.string.notice_room_avatar_changed, senderName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun formatRoomHistoryVisibilityEvent(event: Event, senderName: String?): CharSequence? {
|
private fun formatRoomHistoryVisibilityEvent(event: Event, senderName: String?): CharSequence? {
|
||||||
val historyVisibility = event.getClearContent().toModel<RoomHistoryVisibilityContent>()?.historyVisibility ?: return null
|
val historyVisibility = event.getClearContent().toModel<RoomHistoryVisibilityContent>()?.historyVisibility ?: return null
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ object TimelineDisplayableEvents {
|
||||||
EventType.STATE_ROOM_WIDGET,
|
EventType.STATE_ROOM_WIDGET,
|
||||||
EventType.STATE_ROOM_NAME,
|
EventType.STATE_ROOM_NAME,
|
||||||
EventType.STATE_ROOM_TOPIC,
|
EventType.STATE_ROOM_TOPIC,
|
||||||
|
EventType.STATE_ROOM_AVATAR,
|
||||||
EventType.STATE_ROOM_MEMBER,
|
EventType.STATE_ROOM_MEMBER,
|
||||||
EventType.STATE_ROOM_ALIASES,
|
EventType.STATE_ROOM_ALIASES,
|
||||||
EventType.STATE_ROOM_CANONICAL_ALIAS,
|
EventType.STATE_ROOM_CANONICAL_ALIAS,
|
||||||
|
|
|
@ -30,13 +30,13 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/formSwitchSummary"
|
android:id="@+id/formSwitchSummary"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
android:layout_marginRight="8dp"
|
|
||||||
android:textColor="?riotx_text_secondary"
|
android:textColor="?riotx_text_secondary"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/formSwitchDivider"
|
app:layout_constraintBottom_toTopOf="@+id/formSwitchDivider"
|
||||||
|
app:layout_constraintEnd_toStartOf="@+id/formSwitchSwitch"
|
||||||
app:layout_constraintStart_toStartOf="@+id/formSwitchTitle"
|
app:layout_constraintStart_toStartOf="@+id/formSwitchTitle"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/formSwitchTitle"
|
app:layout_constraintTop_toBottomOf="@+id/formSwitchTitle"
|
||||||
tools:text="@string/create_room_public_description" />
|
tools:text="@string/create_room_public_description" />
|
||||||
|
@ -46,7 +46,6 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="19dp"
|
android:layout_marginEnd="19dp"
|
||||||
android:layout_marginRight="19dp"
|
|
||||||
app:layout_constraintBottom_toTopOf="@+id/formSwitchDivider"
|
app:layout_constraintBottom_toTopOf="@+id/formSwitchDivider"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
Loading…
Reference in New Issue