mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-29 07:42:40 +00:00
Room widget permission: Update WidgetViewController.
This commit is contained in:
parent
6b4f04f815
commit
0061180bc6
1 changed files with 29 additions and 33 deletions
|
@ -23,17 +23,13 @@
|
|||
|
||||
NSString *const kJavascriptSendResponseToPostMessageAPI = @"riotIOS.sendResponse('%@', %@);";
|
||||
|
||||
typedef void (^AskWidgetPermissionCompletion)(BOOL granted);
|
||||
|
||||
@interface WidgetViewController () <ServiceTermsModalCoordinatorBridgePresenterDelegate, WidgetPermissionViewControllerDelegate>
|
||||
@interface WidgetViewController () <ServiceTermsModalCoordinatorBridgePresenterDelegate>
|
||||
|
||||
@property (nonatomic, strong) ServiceTermsModalCoordinatorBridgePresenter *serviceTermsModalCoordinatorBridgePresenter;
|
||||
@property (nonatomic, strong) NSString *widgetUrl;
|
||||
|
||||
@property (nonatomic, strong) SlidingModalPresenter *slidingModalPresenter;
|
||||
|
||||
@property (nonatomic, copy) AskWidgetPermissionCompletion widgetPermissionCompletion;
|
||||
|
||||
@end
|
||||
|
||||
@implementation WidgetViewController
|
||||
|
@ -78,9 +74,7 @@ typedef void (^AskWidgetPermissionCompletion)(BOOL granted);
|
|||
|
||||
// Check widget permission before opening the widget
|
||||
[self checkWidgetPermissionWithCompletion:^(BOOL granted) {
|
||||
|
||||
self.widgetPermissionCompletion = nil;
|
||||
|
||||
|
||||
[self.slidingModalPresenter dismissWithAnimated:YES completion:nil];
|
||||
|
||||
if (granted)
|
||||
|
@ -218,10 +212,8 @@ typedef void (^AskWidgetPermissionCompletion)(BOOL granted);
|
|||
}
|
||||
}
|
||||
|
||||
- (void)askPermissionWithCompletion:(AskWidgetPermissionCompletion)completion
|
||||
- (void)askPermissionWithCompletion:(void (^)(BOOL granted))completion
|
||||
{
|
||||
self.widgetPermissionCompletion = completion;
|
||||
|
||||
NSString *widgetCreatorUserId = self.widget.widgetEvent.sender ?: NSLocalizedStringFromTable(@"room_participants_unknown", @"Vector", nil);
|
||||
|
||||
MXSession *session = widget.mxSession;
|
||||
|
@ -241,14 +233,36 @@ typedef void (^AskWidgetPermissionCompletion)(BOOL granted);
|
|||
}
|
||||
|
||||
MXMediaManager *mediaManager = widget.mxSession.mediaManager;
|
||||
NSString *widgetCreatorDisplayName = widgetCreatorRoomMember.displayname;
|
||||
NSString *widgetCreatorAvatarURL = widgetCreatorRoomMember.avatarUrl;
|
||||
|
||||
NSArray<NSString*> *permissionStrings = @[
|
||||
NSLocalizedStringFromTable(@"room_widget_permission_display_name_permission", @"Vector", nil),
|
||||
NSLocalizedStringFromTable(@"room_widget_permission_avatar_url_permission", @"Vector", nil),
|
||||
NSLocalizedStringFromTable(@"room_widget_permission_user_id_permission", @"Vector", nil),
|
||||
NSLocalizedStringFromTable(@"room_widget_permission_theme_permission", @"Vector", nil),
|
||||
NSLocalizedStringFromTable(@"room_widget_permission_widget_id_permission", @"Vector", nil),
|
||||
NSLocalizedStringFromTable(@"room_widget_permission_room_id_permission", @"Vector", nil)
|
||||
];
|
||||
|
||||
|
||||
WidgetPermissionViewModel *widgetPermissionViewModel = [[WidgetPermissionViewModel alloc] initWithCreatorUserId:widgetCreatorUserId
|
||||
creatorDisplayName:widgetCreatorRoomMember.displayname
|
||||
creatorAvatarUrl:widgetCreatorRoomMember.avatarUrl
|
||||
widgetDomain:widgetDomain mediaManager:mediaManager];
|
||||
creatorDisplayName:widgetCreatorDisplayName creatorAvatarUrl:widgetCreatorAvatarURL widgetDomain:widgetDomain
|
||||
isWebviewWidget:YES
|
||||
widgetPermissions:permissionStrings
|
||||
mediaManager:mediaManager];
|
||||
|
||||
|
||||
WidgetPermissionViewController *widgetPermissionViewController = [WidgetPermissionViewController instantiateWith:widgetPermissionViewModel];
|
||||
widgetPermissionViewController.delegate = self;
|
||||
|
||||
widgetPermissionViewController.didTapContinueButton = ^{
|
||||
completion(YES);
|
||||
};
|
||||
|
||||
widgetPermissionViewController.didTapCloseButton = ^{
|
||||
completion(NO);
|
||||
};
|
||||
|
||||
|
||||
[self.slidingModalPresenter present:widgetPermissionViewController from:self animated:YES completion:nil];
|
||||
}
|
||||
|
@ -671,22 +685,4 @@ typedef void (^AskWidgetPermissionCompletion)(BOOL granted);
|
|||
self.serviceTermsModalCoordinatorBridgePresenter = nil;
|
||||
}
|
||||
|
||||
#pragma mark - WidgetPermissionViewControllerDelegate
|
||||
|
||||
- (void)widgetPermissionViewControllerDidTapContinueButton:(WidgetPermissionViewController *)viewController
|
||||
{
|
||||
if (self.widgetPermissionCompletion)
|
||||
{
|
||||
self.widgetPermissionCompletion(YES);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)widgetPermissionViewControllerDidTapCloseButton:(WidgetPermissionViewController *)viewController
|
||||
{
|
||||
if (self.widgetPermissionCompletion)
|
||||
{
|
||||
self.widgetPermissionCompletion(NO);
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
Loading…
Reference in a new issue