diff --git a/src/components/views/rooms/MemberDeviceInfo.js b/src/components/views/rooms/MemberDeviceInfo.js
index a29fdeb81c..fe308bd1c5 100644
--- a/src/components/views/rooms/MemberDeviceInfo.js
+++ b/src/components/views/rooms/MemberDeviceInfo.js
@@ -145,16 +145,17 @@ export default class MemberDeviceInfo extends React.Component {
);
}
- var deviceName = this.props.device.getDisplayName() || this.props.device.deviceId;
+ var deviceName = this.props.device.ambiguous ?
+ (this.props.device.getDisplayName() ? this.props.device.getDisplayName() : "") + " (" + this.props.device.deviceId + ")" :
+ this.props.device.getDisplayName();
var info = (
-
+
);
}
- // add the deviceId as a titletext to help with debugging
return (
{ info }
diff --git a/src/components/views/rooms/MemberInfo.js b/src/components/views/rooms/MemberInfo.js
index 13edd384c2..ebe7196a25 100644
--- a/src/components/views/rooms/MemberInfo.js
+++ b/src/components/views/rooms/MemberInfo.js
@@ -115,6 +115,23 @@ module.exports = React.createClass({
}
},
+ _disambiguateDevices: function(devices) {
+ var names = Object.create(null);
+ for (var i = 0; i < devices.length; i++) {
+ var name = devices[i].getDisplayName();
+ var indexList = names[name] || [];
+ indexList.push(i);
+ names[name] = indexList;
+ }
+ for (name in names) {
+ if (names[name].length > 1) {
+ names[name].forEach((j)=>{
+ devices[j].ambiguous = true;
+ });
+ }
+ }
+ },
+
onDeviceVerificationChanged: function(userId, device) {
if (!this._enableDevices) {
return;
@@ -199,6 +216,7 @@ module.exports = React.createClass({
return;
}
var devices = client.getStoredDevicesForUser(member.userId);
+ self._disambiguateDevices(devices);
self.setState({devicesLoading: false, devices: devices});
}, function(err) {
console.log("Error downloading devices", err);