mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-28 23:32:41 +00:00
Merge pull request #4286 from vector-im/element_4285
Show / Hide More and Report Content contextual menu from settings
This commit is contained in:
commit
ed3f0450b6
4 changed files with 63 additions and 7 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue