}
}
+@interface SBLockScreenViewController : UIViewController
+- (void) _toggleMediaControls;
+@end
+
static bool menu_;
static _H<NSDictionary> settings_;
return MSSuperCall(event);
}
+bool media_;
+
+MSInstanceMessageHook0(void, SBLockScreenViewController, _toggleMediaControls) {
+ if (!media_)
+ MSOldCall();
+}
+
+MSInstanceMessageHook0(BOOL, SBLockScreenViewController, handleMenuButtonDoubleTap) {
+ menu_ = false;
+ BOOL value(MSOldCall());
+ if (kCFCoreFoundationVersionNumber >= 800)
+ [self _toggleMediaControls];
+ return value;
+}
+
MSInstanceMessageHook0(BOOL, SBLockScreenManager, handleMenuButtonTap) {
- if (!MSOldCall() && menu_) {
+ media_ = true;
+ BOOL value(MSOldCall());
+ media_ = false;
+
+ if (!value && menu_) {
[[cydgets_ objectAtIndex:active_] disableCydget];
active_ = (active_ + 1) % [cydgets_ count];
[[cydgets_ objectAtIndex:active_] enableCydget];
}
- return YES;
+ return value;
}
void Activate_() {
- (void) _setZoomScale:(float)scale duration:(double)duration;
@end
+@interface SBLockScreenViewController : UIViewController
+- (BOOL) isShowingMediaControls;
+- (void) _setMediaControlsVisible:(BOOL)visible;
+@end
+
+@interface SBLockScreenManager : NSObject
++ (SBLockScreenManager *) sharedInstance;
+- (SBLockScreenViewController *) lockScreenViewController;
+@end
+
@protocol CydgetController
- (NSDictionary *) currentConfiguration;
- (NSString *) currentPath;
@end
MSClassHook(UIApplication)
+MSClassHook(SBLockScreenManager)
MSInstanceMessageHook1(void, UIApplication, openURL, NSURL *, url) {
[self applicationOpenURL:url];
return YES;
}*/
+- (BOOL) handleMenuButtonDoubleTap {
+ if (kCFCoreFoundationVersionNumber >= 800) {
+ SBLockScreenViewController *controller([[$SBLockScreenManager sharedInstance] lockScreenViewController]);
+ [controller _setMediaControlsVisible:![controller isShowingMediaControls]];
+ }
+
+ return [super handleMenuButtonDoubleTap];
+}
+
@end
MSClassHook(WebView)