typedef void (*pfn_viewDidLoad)(
id
self,SEL _cmd);
static pfn_viewDidLoad Real_viewDidLoad = NULL;
void Mine_viewDidLoad(
id
self,SEL _cmd);
typedef void (*pfn_imageDestroying)(
id
self,SEL _cmd);
static pfn_viewDidLoad Real_imageDestroying = NULL;
void Mine_imageDestroying(
id
self,SEL _cmd);
MSInitialize
{
MSHookMessageEx(objc_getClass(
"WMBrowseTransientImageViewController"
), @selector(viewDidLoad), (IMP)Mine_viewDidLoad, (IMP*)&Real_viewDidLoad);
MSHookMessageEx(objc_getClass(
"WMBrowseTransientImageViewController"
), @selector(imageDestroying), (IMP)Mine_imageDestroying, (IMP*)&Real_imageDestroying);
}
void Mine_viewDidLoad(
id
self,SEL _cmd)
{
Real_viewDidLoad(self,_cmd);
//
delay detory
time
.
objc_msgSend(self, @selector(setRemainTimeInMs:),20);
return
;
}
void Mine_imageDestroying(
id
self,SEL _cmd)
{
RIButtonItem* cancelItem = [RIButtonItem itemWithLabel:@
"放弃"
action:^{
Real_imageDestroying(self,_cmd);
}];
//
save image
RIButtonItem* saveItem = [RIButtonItem itemWithLabel:@
"保存"
action:^{
id
zoomView = objc_msgSend(self, @selector(imageZoomableView));
UIImageView* imageView = (UIImageView*)objc_msgSend(zoomView, @selector(imageView));
UIImageWriteToSavedPhotosAlbum(imageView.image, self, nil, nil);
Real_imageDestroying(self,_cmd);
}];
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NS_TITLE
message:NS_MESSAGE
cancelButtonItem:cancelItem
otherButtonItems:saveItem, nil];
[alertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:YES];
}