diff --git a/src/components/views/rooms/RoomBreadcrumbs.js b/src/components/views/rooms/RoomBreadcrumbs.js
index 5a15a7518b..f9408d3259 100644
--- a/src/components/views/rooms/RoomBreadcrumbs.js
+++ b/src/components/views/rooms/RoomBreadcrumbs.js
@@ -363,7 +363,7 @@ export default class RoomBreadcrumbs extends React.Component {
}
let dmIndicator;
- if (this._isDmRoom(r.room)) {
+ if (this._isDmRoom(r.room) && !SettingsStore.isFeatureEnabled("feature_cross_signing")) {
dmIndicator = :
undefined;
+ const dmUserId = DMRoomMap.shared().getUserIdForRoomId(this.props.room.roomId);
const joinRules = this.props.room && this.props.room.currentState.getStateEvents("m.room.join_rules", "");
const joinRule = joinRules && joinRules.getContent().join_rule;
let privateIcon;
- if (SettingsStore.isFeatureEnabled("feature_cross_signing")) {
+ // Don't show an invite-only icon for DMs. Users know they're invite-only.
+ if (!dmUserId && SettingsStore.isFeatureEnabled("feature_cross_signing")) {
if (joinRule == "invite") {
privateIcon = ;
}
diff --git a/src/components/views/rooms/RoomTile.js b/src/components/views/rooms/RoomTile.js
index 9d2334de82..41975fe7b8 100644
--- a/src/components/views/rooms/RoomTile.js
+++ b/src/components/views/rooms/RoomTile.js
@@ -478,8 +478,9 @@ export default createReactClass({
let dmIndicator;
let dmOnline;
- // If we can place a shield, do that instead
- if (dmUserId && !this.state.e2eStatus) {
+ /* Post-cross-signing we don't show DM indicators at all, instead relying on user
+ context to let them know when that is. */
+ if (dmUserId && !SettingsStore.isFeatureEnabled("feature_cross_signing")) {
dmIndicator =