|
|
@@ -0,0 +1,54 @@ |
|
|
|
#define kBundlePath @"/Library/MobileSubstrate/DynamicLibraries/AVLockBundle.bundle" |
|
|
|
|
|
|
|
|
|
|
|
@interface SBOrientationLockManager |
|
|
|
+(SBOrientationLockManager *)sharedInstance; |
|
|
|
-(bool)isUserLocked; |
|
|
|
-(void)lock; |
|
|
|
-(void)unlock; |
|
|
|
@end |
|
|
|
|
|
|
|
@interface AVTransportControlsView |
|
|
|
-(void)addSubview:(id)arg1; |
|
|
|
@property CGRect frame; |
|
|
|
@end |
|
|
|
|
|
|
|
static bool firstrun = true; |
|
|
|
|
|
|
|
%hook AVTransportControlsView |
|
|
|
-(void)layoutSubviews{ |
|
|
|
%orig; |
|
|
|
if(firstrun){ |
|
|
|
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; |
|
|
|
[button addTarget:self action:@selector(orientationButtonPressed) |
|
|
|
forControlEvents:UIControlEventTouchUpInside]; |
|
|
|
|
|
|
|
NSBundle *bundle = [[NSBundle alloc] initWithPath:kBundlePath]; |
|
|
|
NSString *imagePath = [bundle pathForResource:@"Test" ofType:@"png"]; |
|
|
|
UIImage *img = [UIImage imageWithContentsOfFile:imagePath]; |
|
|
|
|
|
|
|
[button setImage:img forState:UIControlStateNormal]; |
|
|
|
[button setImage:img forState:UIControlStateHighlighted]; |
|
|
|
[button setImage:img forState:UIControlStateSelected]; |
|
|
|
button.contentMode = UIViewContentModeScaleToFill; |
|
|
|
button.frame = CGRectMake(0, 0, img.size.width, img.size.height); |
|
|
|
[self addSubview:button]; |
|
|
|
firstrun = false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
-(void)dealloc{ |
|
|
|
%orig; |
|
|
|
firstrun = true; |
|
|
|
} |
|
|
|
|
|
|
|
%new |
|
|
|
-(void)orientationButtonPressed{ |
|
|
|
if([[%c(SBOrientationLockManager) sharedInstance] isUserLocked]){ |
|
|
|
[[%c(SBOrientationLockManager) sharedInstance] unlock]; |
|
|
|
}else{ |
|
|
|
[[%c(SBOrientationLockManager) sharedInstance] lock]; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
%end |