Merge pull request #4286 from vector-im/element_4285

Show / Hide More and Report Content contextual menu from settings
This commit is contained in:
Gil Eluard 2021-04-29 20:36:48 +02:00 committed by GitHub
commit ed3f0450b6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 63 additions and 7 deletions

View file

@ -7,6 +7,7 @@ Changes to be released in next version
🙌 Improvements
* Jitsi: Use Jitsi server from homeserver's Well Known, if present, to create conferences (#3158).
* RoomMemberDetailsVC: Enable / disable "Hide all messages from this user" from settings (#4281).
* RoomVC: Show / Hide More and Report Content contextual menu from settings (#4285).
* SettingsVC: Show / hide NSFW and decrypted content options from build settings (#4290).
🐛 Bugfix

View file

@ -270,6 +270,12 @@ final class BuildSettings: NSObject {
static let roomScreenAllowMediaLibraryAction: Bool = true
static let roomScreenAllowStickerAction: Bool = true
static let roomScreenAllowFilesAction: Bool = true
// MARK: - Room Contextual Menu
static let roomContextualMenuShowMoreOptionForMessages: Bool = true
static let roomContextualMenuShowMoreOptionForStates: Bool = true
static let roomContextualMenuShowReportContentOption: Bool = true
// MARK: - Room Info Screen

View file

@ -73,6 +73,9 @@ final class RiotSettings: NSObject {
static let roomScreenAllowMediaLibraryAction = "roomScreenAllowMediaLibraryAction"
static let roomScreenAllowStickerAction = "roomScreenAllowStickerAction"
static let roomScreenAllowFilesAction = "roomScreenAllowFilesAction"
static let roomContextualMenuShowMoreOptionForMessages = "roomContextualMenuShowMoreOptionForMessages"
static let roomContextualMenuShowMoreOptionForStates = "roomContextualMenuShowMoreOptionForStates"
static let roomContextualMenuShowReportContentOption = "roomContextualMenuShowReportContentOption"
static let roomInfoScreenShowIntegrations = "roomInfoScreenShowIntegrations"
static let roomMemberScreenShowIgnore = "roomMemberScreenShowIgnore"
static let unifiedSearchScreenShowPublicDirectory = "unifiedSearchScreenShowPublicDirectory"
@ -325,6 +328,39 @@ final class RiotSettings: NSObject {
defaults.set(newValue, forKey: UserDefaultsKeys.roomScreenAllowFilesAction)
}
}
// MARK: - Room Contextual Menu
var roomContextualMenuShowMoreOptionForMessages: Bool {
get {
guard defaults.object(forKey: UserDefaultsKeys.roomContextualMenuShowMoreOptionForMessages) != nil else {
return BuildSettings.roomContextualMenuShowMoreOptionForMessages
}
return defaults.bool(forKey: UserDefaultsKeys.roomContextualMenuShowMoreOptionForMessages)
} set {
defaults.set(newValue, forKey: UserDefaultsKeys.roomContextualMenuShowMoreOptionForMessages)
}
}
var roomContextualMenuShowMoreOptionForStates: Bool {
get {
guard defaults.object(forKey: UserDefaultsKeys.roomContextualMenuShowMoreOptionForStates) != nil else {
return BuildSettings.roomContextualMenuShowMoreOptionForStates
}
return defaults.bool(forKey: UserDefaultsKeys.roomContextualMenuShowMoreOptionForStates)
} set {
defaults.set(newValue, forKey: UserDefaultsKeys.roomContextualMenuShowMoreOptionForStates)
}
}
var roomContextualMenuShowReportContentOption: Bool {
get {
guard defaults.object(forKey: UserDefaultsKeys.roomContextualMenuShowReportContentOption) != nil else {
return BuildSettings.roomContextualMenuShowReportContentOption
}
return defaults.bool(forKey: UserDefaultsKeys.roomContextualMenuShowReportContentOption)
} set {
defaults.set(newValue, forKey: UserDefaultsKeys.roomContextualMenuShowReportContentOption)
}
}
// MARK: - Room Info Screen

View file

@ -2987,7 +2987,7 @@ const NSTimeInterval kResizeComposerAnimationDuration = .05;
}
}
if (![selectedEvent.sender isEqualToString:self.mainSession.myUser.userId])
if (![selectedEvent.sender isEqualToString:self.mainSession.myUser.userId] && RiotSettings.shared.roomContextualMenuShowReportContentOption)
{
[currentAlert addAction:[UIAlertAction actionWithTitle:NSLocalizedStringFromTable(@"room_event_action_report", @"Vector", nil)
style:UIAlertActionStyleDefault
@ -5368,12 +5368,25 @@ const NSTimeInterval kResizeComposerAnimationDuration = .05;
];
}
return @[
[self copyMenuItemWithEvent:event andCell:cell],
[self replyMenuItemWithEvent:event],
[self editMenuItemWithEvent:event],
[self moreMenuItemWithEvent:event andCell:cell]
];
BOOL showMoreOption = (event.isState && RiotSettings.shared.roomContextualMenuShowMoreOptionForStates) || (!event.isState && RiotSettings.shared.roomContextualMenuShowMoreOptionForMessages);
if (showMoreOption)
{
return @[
[self copyMenuItemWithEvent:event andCell:cell],
[self replyMenuItemWithEvent:event],
[self editMenuItemWithEvent:event],
[self moreMenuItemWithEvent:event andCell:cell]
];
}
else
{
return @[
[self copyMenuItemWithEvent:event andCell:cell],
[self replyMenuItemWithEvent:event],
[self editMenuItemWithEvent:event]
];
}
}
- (void)showContextualMenuForEvent:(MXEvent*)event fromSingleTapGesture:(BOOL)usedSingleTapGesture cell:(id<MXKCellRendering>)cell animated:(BOOL)animated