Merge branch 'krille/deprecate-sendername' into 'main'

change: Deprecate senderName

Closes app#1065

See merge request famedly/famedlysdk!615
This commit is contained in:
Sorunome 2021-01-15 14:45:43 +00:00
commit 4597ea3445
4 changed files with 59 additions and 39 deletions

View File

@ -77,6 +77,10 @@ class Client extends MatrixApi {
bool requestHistoryOnLimitedTimeline; bool requestHistoryOnLimitedTimeline;
bool formatLocalpart = true;
bool mxidLocalPartFallback = true;
/// Create a client /// Create a client
/// [clientName] = unique identifier of this client /// [clientName] = unique identifier of this client
/// [database]: The database instance to use /// [database]: The database instance to use
@ -101,6 +105,11 @@ class Client extends MatrixApi {
/// in a room for the room list. /// in a room for the room list.
/// Set [requestHistoryOnLimitedTimeline] to controll the automatic behaviour if the client /// Set [requestHistoryOnLimitedTimeline] to controll the automatic behaviour if the client
/// receives a limited timeline flag for a room. /// receives a limited timeline flag for a room.
/// If [mxidLocalPartFallback] is true, then the local part of the mxid will be shown
/// if there is no other displayname available. If not then this will return "Unknown user".
/// If [formatLocalpart] is true, then the localpart of an mxid will
/// be formatted in the way, that all "_" characters are becomming white spaces and
/// the first character of each word becomes uppercase.
Client( Client(
this.clientName, { this.clientName, {
this.databaseBuilder, this.databaseBuilder,

View File

@ -46,6 +46,7 @@ class Event extends MatrixEvent {
@Deprecated('Use [type] instead') @Deprecated('Use [type] instead')
String get typeKey => type; String get typeKey => type;
@Deprecated('Use [sender.calcDisplayname()] instead')
String get senderName => sender.calcDisplayname(); String get senderName => sender.calcDisplayname();
/// The room this event belongs to. May be null. /// The room this event belongs to. May be null.
@ -599,7 +600,7 @@ class Event extends MatrixEvent {
type == EventTypes.Message && type == EventTypes.Message &&
textOnlyMessageTypes.contains(messageType)) { textOnlyMessageTypes.contains(messageType)) {
final senderNameOrYou = final senderNameOrYou =
senderId == room.client.userID ? i18n.you : senderName; senderId == room.client.userID ? i18n.you : sender.calcDisplayname();
localizedBody = '$senderNameOrYou: $localizedBody'; localizedBody = '$senderNameOrYou: $localizedBody';
} }

View File

@ -106,8 +106,12 @@ class User extends Event {
/// the first character of each word becomes uppercase. /// the first character of each word becomes uppercase.
/// If [mxidLocalPartFallback] is true, then the local part of the mxid will be shown /// If [mxidLocalPartFallback] is true, then the local part of the mxid will be shown
/// if there is no other displayname available. If not then this will return "Unknown user". /// if there is no other displayname available. If not then this will return "Unknown user".
String calcDisplayname( String calcDisplayname({
{bool formatLocalpart = true, bool mxidLocalPartFallback = true}) { bool formatLocalpart,
bool mxidLocalPartFallback,
}) {
formatLocalpart ??= room?.client?.formatLocalpart ?? true;
mxidLocalPartFallback ??= room?.client?.mxidLocalPartFallback ?? true;
if (displayName?.isNotEmpty ?? false) { if (displayName?.isNotEmpty ?? false) {
return displayName; return displayName;
} }

View File

@ -27,17 +27,17 @@ abstract class EventLocalizations {
Event event, MatrixLocalizations i18n) { Event event, MatrixLocalizations i18n) {
switch (event.messageType) { switch (event.messageType) {
case MessageTypes.Image: case MessageTypes.Image:
return i18n.sentAPicture(event.senderName); return i18n.sentAPicture(event.sender.calcDisplayname());
case MessageTypes.File: case MessageTypes.File:
return i18n.sentAFile(event.senderName); return i18n.sentAFile(event.sender.calcDisplayname());
case MessageTypes.Audio: case MessageTypes.Audio:
return i18n.sentAnAudio(event.senderName); return i18n.sentAnAudio(event.sender.calcDisplayname());
case MessageTypes.Video: case MessageTypes.Video:
return i18n.sentAVideo(event.senderName); return i18n.sentAVideo(event.sender.calcDisplayname());
case MessageTypes.Location: case MessageTypes.Location:
return i18n.sharedTheLocation(event.senderName); return i18n.sharedTheLocation(event.sender.calcDisplayname());
case MessageTypes.Sticker: case MessageTypes.Sticker:
return i18n.sentASticker(event.senderName); return i18n.sentASticker(event.sender.calcDisplayname());
case MessageTypes.Emote: case MessageTypes.Emote:
return '* ${event.body}'; return '* ${event.body}';
case MessageTypes.BadEncrypted: case MessageTypes.BadEncrypted:
@ -73,15 +73,16 @@ abstract class EventLocalizations {
static final Map<String, static final Map<String,
String Function(Event event, MatrixLocalizations i18n)> String Function(Event event, MatrixLocalizations i18n)>
localizationsMap = { localizationsMap = {
EventTypes.Sticker: (event, i18n) => i18n.sentASticker(event.senderName), EventTypes.Sticker: (event, i18n) =>
i18n.sentASticker(event.sender.calcDisplayname()),
EventTypes.Redaction: (event, i18n) => EventTypes.Redaction: (event, i18n) =>
i18n.redactedAnEvent(event.senderName), i18n.redactedAnEvent(event.sender.calcDisplayname()),
EventTypes.RoomAliases: (event, i18n) => EventTypes.RoomAliases: (event, i18n) =>
i18n.changedTheRoomAliases(event.senderName), i18n.changedTheRoomAliases(event.sender.calcDisplayname()),
EventTypes.RoomCanonicalAlias: (event, i18n) => EventTypes.RoomCanonicalAlias: (event, i18n) =>
i18n.changedTheRoomInvitationLink(event.senderName), i18n.changedTheRoomInvitationLink(event.sender.calcDisplayname()),
EventTypes.RoomCreate: (event, i18n) => EventTypes.RoomCreate: (event, i18n) =>
i18n.createdTheChat(event.senderName), i18n.createdTheChat(event.sender.calcDisplayname()),
EventTypes.RoomTombstone: (event, i18n) => i18n.roomHasBeenUpgraded, EventTypes.RoomTombstone: (event, i18n) => i18n.roomHasBeenUpgraded,
EventTypes.RoomJoinRules: (event, i18n) { EventTypes.RoomJoinRules: (event, i18n) {
var joinRules = JoinRules.values.firstWhere( var joinRules = JoinRules.values.firstWhere(
@ -90,10 +91,10 @@ abstract class EventLocalizations {
event.content['join_rule'], event.content['join_rule'],
orElse: () => null); orElse: () => null);
if (joinRules == null) { if (joinRules == null) {
return i18n.changedTheJoinRules(event.senderName); return i18n.changedTheJoinRules(event.sender.calcDisplayname());
} else { } else {
return i18n.changedTheJoinRulesTo( return i18n.changedTheJoinRulesTo(
event.senderName, joinRules.getLocalizedString(i18n)); event.sender.calcDisplayname(), joinRules.getLocalizedString(i18n));
} }
}, },
EventTypes.RoomMember: (event, i18n) { EventTypes.RoomMember: (event, i18n) {
@ -111,29 +112,30 @@ abstract class EventLocalizations {
if (event.stateKey == event.senderId) { if (event.stateKey == event.senderId) {
text = i18n.rejectedTheInvitation(targetName); text = i18n.rejectedTheInvitation(targetName);
} else { } else {
text = text = i18n.hasWithdrawnTheInvitationFor(
i18n.hasWithdrawnTheInvitationFor(event.senderName, targetName); event.sender.calcDisplayname(), targetName);
} }
} else if (oldMembership == 'leave' && newMembership == 'join') { } else if (oldMembership == 'leave' && newMembership == 'join') {
text = i18n.joinedTheChat(targetName); text = i18n.joinedTheChat(targetName);
} else if (oldMembership == 'join' && newMembership == 'ban') { } else if (oldMembership == 'join' && newMembership == 'ban') {
text = i18n.kickedAndBanned(event.senderName, targetName); text =
i18n.kickedAndBanned(event.sender.calcDisplayname(), targetName);
} else if (oldMembership == 'join' && } else if (oldMembership == 'join' &&
newMembership == 'leave' && newMembership == 'leave' &&
event.stateKey != event.senderId) { event.stateKey != event.senderId) {
text = i18n.kicked(event.senderName, targetName); text = i18n.kicked(event.sender.calcDisplayname(), targetName);
} else if (oldMembership == 'join' && } else if (oldMembership == 'join' &&
newMembership == 'leave' && newMembership == 'leave' &&
event.stateKey == event.senderId) { event.stateKey == event.senderId) {
text = i18n.userLeftTheChat(targetName); text = i18n.userLeftTheChat(targetName);
} else if (oldMembership == 'invite' && newMembership == 'ban') { } else if (oldMembership == 'invite' && newMembership == 'ban') {
text = i18n.bannedUser(event.senderName, targetName); text = i18n.bannedUser(event.sender.calcDisplayname(), targetName);
} else if (oldMembership == 'leave' && newMembership == 'ban') { } else if (oldMembership == 'leave' && newMembership == 'ban') {
text = i18n.bannedUser(event.senderName, targetName); text = i18n.bannedUser(event.sender.calcDisplayname(), targetName);
} else if (oldMembership == 'ban' && newMembership == 'leave') { } else if (oldMembership == 'ban' && newMembership == 'leave') {
text = i18n.unbannedUser(event.senderName, targetName); text = i18n.unbannedUser(event.sender.calcDisplayname(), targetName);
} else if (newMembership == 'invite') { } else if (newMembership == 'invite') {
text = i18n.invitedUser(event.senderName, targetName); text = i18n.invitedUser(event.sender.calcDisplayname(), targetName);
} else if (newMembership == 'join') { } else if (newMembership == 'join') {
text = i18n.joinedTheChat(targetName); text = i18n.joinedTheChat(targetName);
} }
@ -160,13 +162,13 @@ abstract class EventLocalizations {
return text; return text;
}, },
EventTypes.RoomPowerLevels: (event, i18n) => EventTypes.RoomPowerLevels: (event, i18n) =>
i18n.changedTheChatPermissions(event.senderName), i18n.changedTheChatPermissions(event.sender.calcDisplayname()),
EventTypes.RoomName: (event, i18n) => EventTypes.RoomName: (event, i18n) => i18n.changedTheChatNameTo(
i18n.changedTheChatNameTo(event.senderName, event.content['name']), event.sender.calcDisplayname(), event.content['name']),
EventTypes.RoomTopic: (event, i18n) => i18n.changedTheChatDescriptionTo( EventTypes.RoomTopic: (event, i18n) => i18n.changedTheChatDescriptionTo(
event.senderName, event.content['topic']), event.sender.calcDisplayname(), event.content['topic']),
EventTypes.RoomAvatar: (event, i18n) => EventTypes.RoomAvatar: (event, i18n) =>
i18n.changedTheChatAvatar(event.senderName), i18n.changedTheChatAvatar(event.sender.calcDisplayname()),
EventTypes.GuestAccess: (event, i18n) { EventTypes.GuestAccess: (event, i18n) {
var guestAccess = GuestAccess.values.firstWhere( var guestAccess = GuestAccess.values.firstWhere(
(r) => (r) =>
@ -174,10 +176,10 @@ abstract class EventLocalizations {
event.content['guest_access'], event.content['guest_access'],
orElse: () => null); orElse: () => null);
if (guestAccess == null) { if (guestAccess == null) {
return i18n.changedTheGuestAccessRules(event.senderName); return i18n.changedTheGuestAccessRules(event.sender.calcDisplayname());
} else { } else {
return i18n.changedTheGuestAccessRulesTo( return i18n.changedTheGuestAccessRulesTo(event.sender.calcDisplayname(),
event.senderName, guestAccess.getLocalizedString(i18n)); guestAccess.getLocalizedString(i18n));
} }
}, },
EventTypes.HistoryVisibility: (event, i18n) { EventTypes.HistoryVisibility: (event, i18n) {
@ -187,25 +189,29 @@ abstract class EventLocalizations {
event.content['history_visibility'], event.content['history_visibility'],
orElse: () => null); orElse: () => null);
if (historyVisibility == null) { if (historyVisibility == null) {
return i18n.changedTheHistoryVisibility(event.senderName); return i18n.changedTheHistoryVisibility(event.sender.calcDisplayname());
} else { } else {
return i18n.changedTheHistoryVisibilityTo( return i18n.changedTheHistoryVisibilityTo(
event.senderName, historyVisibility.getLocalizedString(i18n)); event.sender.calcDisplayname(),
historyVisibility.getLocalizedString(i18n));
} }
}, },
EventTypes.Encryption: (event, i18n) { EventTypes.Encryption: (event, i18n) {
var localizedBody = i18n.activatedEndToEndEncryption(event.senderName); var localizedBody =
i18n.activatedEndToEndEncryption(event.sender.calcDisplayname());
if (!event.room.client.encryptionEnabled) { if (!event.room.client.encryptionEnabled) {
localizedBody += '. ' + i18n.needPantalaimonWarning; localizedBody += '. ' + i18n.needPantalaimonWarning;
} }
return localizedBody; return localizedBody;
}, },
EventTypes.CallAnswer: (event, i18n) => EventTypes.CallAnswer: (event, i18n) =>
i18n.answeredTheCall(event.senderName), i18n.answeredTheCall(event.sender.calcDisplayname()),
EventTypes.CallHangup: (event, i18n) => i18n.endedTheCall(event.senderName), EventTypes.CallHangup: (event, i18n) =>
EventTypes.CallInvite: (event, i18n) => i18n.startedACall(event.senderName), i18n.endedTheCall(event.sender.calcDisplayname()),
EventTypes.CallInvite: (event, i18n) =>
i18n.startedACall(event.sender.calcDisplayname()),
EventTypes.CallCandidates: (event, i18n) => EventTypes.CallCandidates: (event, i18n) =>
i18n.sentCallInformations(event.senderName), i18n.sentCallInformations(event.sender.calcDisplayname()),
EventTypes.Encrypted: (event, i18n) => EventTypes.Encrypted: (event, i18n) =>
_localizedBodyNormalMessage(event, i18n), _localizedBodyNormalMessage(event, i18n),
EventTypes.Message: (event, i18n) => EventTypes.Message: (event, i18n) =>