34 lines
1.1 KiB
Mathematica
34 lines
1.1 KiB
Mathematica
|
|
//
|
||
|
|
// MFMailComposeViewControllerFix.c
|
||
|
|
// App
|
||
|
|
//
|
||
|
|
// Created by James Magahern on 5/25/21.
|
||
|
|
//
|
||
|
|
|
||
|
|
#import <CoreFoundation/CoreFoundation.h>
|
||
|
|
#import <MessageUI/MessageUI.h>
|
||
|
|
#import <objc/runtime.h>
|
||
|
|
|
||
|
|
@interface MFMailComposeViewController (InternalMethods)
|
||
|
|
+ (BOOL)canSendMailSourceAccountManagement:(NSInteger)sourceAccountManagement;
|
||
|
|
@end
|
||
|
|
|
||
|
|
static void swizzleClassMethod(Class targetClass, SEL originalSelector, IMP replacementIMP)
|
||
|
|
{
|
||
|
|
Method originalMethod = class_getClassMethod(targetClass, originalSelector);
|
||
|
|
method_setImplementation(originalMethod, replacementIMP);
|
||
|
|
}
|
||
|
|
|
||
|
|
__attribute__((constructor))
|
||
|
|
static void swizzleMFMailComposeViewController()
|
||
|
|
{
|
||
|
|
// Hacks to work around the fact that MFMailComposeViewController is broken in iOS 14+
|
||
|
|
swizzleClassMethod(MFMailComposeViewController.class, @selector(canSendMail), imp_implementationWithBlock(^BOOL(void) {
|
||
|
|
return YES;
|
||
|
|
}));
|
||
|
|
|
||
|
|
swizzleClassMethod(MFMailComposeViewController.class, @selector(canSendMailSourceAccountManagement:), imp_implementationWithBlock(^BOOL(NSInteger sam) {
|
||
|
|
return YES;
|
||
|
|
}));
|
||
|
|
}
|