Room decoration: Use shields instead of padlocks

#2906
This commit is contained in:
manuroe
2020-01-31 14:59:54 +01:00
parent 3fd073efbb
commit 3442a69924
9 changed files with 170 additions and 81 deletions
+11 -69
View File
@@ -112,7 +112,7 @@
NSLog(@"[MXKRoomDataSource] finalizeRoomDataSource: Cannot retrieve all room members");
}];
}
if (self.room.summary.isEncrypted)
{
[self fetchEncryptionTrustedLevel];
@@ -193,85 +193,27 @@
- (void)registerTrustLevelDidChangeNotifications
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(deviceInfoTrustLevelDidChange:) name:MXDeviceInfoTrustLevelDidChangeNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(crossSigningInfoTrustLevelDidChange:) name:MXCrossSigningInfoTrustLevelDidChangeNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(roomSummaryDidChange:) name:kMXRoomSummaryDidChangeNotification object:self.room.summary];
}
- (void)deviceInfoTrustLevelDidChange:(NSNotification*)notification
{
MXDeviceInfo *deviceInfo = notification.object;
NSString *userId = deviceInfo.userId;
if (userId)
{
[self encryptionTrustLevelDidChangeRelatedToUserId:userId forceDownload:NO];
}
}
- (void)crossSigningInfoTrustLevelDidChange:(NSNotification*)notification
{
MXCrossSigningInfo *crossSigningInfo = notification.object;
NSString *userId = crossSigningInfo.userId;
if (userId)
{
[self encryptionTrustLevelDidChangeRelatedToUserId:userId forceDownload:NO];
}
}
- (void)fetchEncryptionTrustedLevel
{
[self encryptionTrustLevelDidChangeRelatedToUserId:self.mxSession.myUser.userId forceDownload:YES];
}
- (void)encryptionTrustLevelDidChangeRelatedToUserId:(NSString*)userId forceDownload:(BOOL)forceDownload
- (void)roomSummaryDidChange:(NSNotification*)notification
{
if (!self.room.summary.isEncrypted)
{
return;
}
[self.room members:^(MXRoomMembers *roomMembers) {
MXRoomMember *roomMember = [roomMembers memberWithUserId:userId];
// If user belongs to the room refresh the trust level
if (roomMember)
{
[self.room membersTrustLevelSummaryWithForceDownload:forceDownload success:^(MXUsersTrustLevelSummary *usersTrustLevelSummary) {
RoomEncryptionTrustLevel roomEncryptionTrustLevel;
double trustedDevicesPercentage = usersTrustLevelSummary.trustedDevicesProgress.fractionCompleted;
if (trustedDevicesPercentage >= 1.0
|| usersTrustLevelSummary.trustedDevicesProgress.totalUnitCount == 0)
{
roomEncryptionTrustLevel = RoomEncryptionTrustLevelTrusted;
}
else if (trustedDevicesPercentage == 0.0)
{
roomEncryptionTrustLevel = RoomEncryptionTrustLevelNormal;
}
else
{
roomEncryptionTrustLevel = RoomEncryptionTrustLevelWarning;
}
self.encryptionTrustLevel = roomEncryptionTrustLevel;
[self.roomDataSourceDelegate roomDataSource:self didUpdateEncryptionTrustLevel:roomEncryptionTrustLevel];
} failure:^(NSError *error) {
NSLog(@"[RoomDataSource] trustLevelDidChangeRelatedToUserId fails to retrieve room members trusted progress");
}];
}
} failure:^(NSError *error) {
NSLog(@"[RoomDataSource] trustLevelDidChangeRelatedToUserId fails to retrieve room members");
}];
[self fetchEncryptionTrustedLevel];
}
- (void)fetchEncryptionTrustedLevel
{
self.encryptionTrustLevel = self.room.summary.roomEncryptionTrustLevel;
[self.roomDataSourceDelegate roomDataSource:self didUpdateEncryptionTrustLevel:self.encryptionTrustLevel];
}
#pragma mark -
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section