// _____ _
// |_ _| |_ _ _ ___ ___ _ __ __ _
// | | | ' \| '_/ -_) -_) ' \/ _` |_
// |_| |_||_|_| \___\___|_|_|_\__,_(_)
//
// Threema iOS Client
// Copyright (c) 2012-2020 Threema GmbH
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License, version 3,
// as published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
#import "InviteController.h"
#import "AppDelegate.h"
#import
#import "ShareTextActivityItemProvider.h"
#import "ShareUrlActivityItemProvider.h"
#import "ActivityUtil.h"
#import "MyIdentityStore.h"
@implementation InviteController {
}
static InviteController *currentInviteController;
- (void)invite {
ShareTextActivityItemProvider *shareText = [[ShareTextActivityItemProvider alloc] initWithPlaceholderItem:[NSString stringWithFormat:NSLocalizedString(@"invite_facebook_text", @""), [[MyIdentityStore sharedMyIdentityStore] identity]]];
NSMutableArray *activityItems = [[NSMutableArray alloc] initWithArray:@[shareText]];
UIActivityViewController* activityViewController = [ActivityUtil activityViewControllerWithActivityItems:activityItems applicationActivities:nil];
if (SYSTEM_IS_IPAD) {
activityViewController.popoverPresentationController.sourceView = self.parentViewController.view;
activityViewController.popoverPresentationController.sourceRect = _rect;
}
[self.shareViewController presentViewController:activityViewController animated:YES completion:nil];
}
- (void)presentMailComposer {
MFMailComposeViewController *mailComposer = [[MFMailComposeViewController alloc] init];
[mailComposer setSubject:NSLocalizedString(@"invite_email_subject", nil)];
[mailComposer setMessageBody:[NSString stringWithFormat:NSLocalizedString(@"invite_email_body", @""), [[MyIdentityStore sharedMyIdentityStore] identity]] isHTML:NO];
mailComposer.mailComposeDelegate = self;
[self.parentViewController presentViewController:mailComposer animated:YES completion:nil];
/* Trick to avoid getting deallocated (since delegates are not retained) */
currentInviteController = self;
}
- (void)presentMessageComposer {
MFMessageComposeViewController *smsComposer = [[MFMessageComposeViewController alloc] init];
[smsComposer setBody:[NSString stringWithFormat:NSLocalizedString(@"invite_sms_body", @""), [[MyIdentityStore sharedMyIdentityStore] identity]]];
smsComposer.messageComposeDelegate = self;
[self.parentViewController presentViewController:smsComposer animated:YES completion:nil];
/* Trick to avoid getting deallocated (since delegates are not retained) */
currentInviteController = self;
}
#pragma mark - Mail composer delegate
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
[self.parentViewController dismissViewControllerAnimated:YES completion:nil];
currentInviteController = nil;
}
#pragma mark - Message composer delegate
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
[self.parentViewController dismissViewControllerAnimated:YES completion:nil];
currentInviteController = nil;
}
@end