diff --git a/Makefile b/Makefile index df4f879..70edf6a 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ -ARCHS = armv7 arm64 - +ARCHS = armv7 arm64 arm64e +export TARGET = iphone:clang:11.2:7.0 include $(THEOS)/makefiles/common.mk TWEAK_NAME = AVLock diff --git a/Tweak.xm b/Tweak.xm index 9fbc0c3..0fbf79d 100644 --- a/Tweak.xm +++ b/Tweak.xm @@ -21,7 +21,8 @@ @end - +//#import +//#import extern "C" CFNotificationCenterRef CFNotificationCenterGetDistributedCenter(void); @@ -66,13 +67,13 @@ CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), (void*)myObserver, toggle, CFSTR("avlock.toggle"), - NULL, + NULL, CFNotificationSuspensionBehaviorDeliverImmediately); CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), (void*)myObserver, firstUpdate, CFSTR("avlock.firstUpdate"), - NULL, + NULL, CFNotificationSuspensionBehaviorDeliverImmediately); return self; @@ -96,13 +97,24 @@ CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), } %end +double delayInSeconds = 0.13; - - +%hook AVPlaybackControlsVisibilityControllerItem +-(BOOL)wantsAnimatedTransitionToHidden:(BOOL)arg1 alpha:(double)arg2{ + if(!arg1){ + delayInSeconds = 0.0; + [[NSNotificationCenter defaultCenter] postNotificationName:UIDeviceOrientationDidChangeNotification object:nil]; + //AudioServicesPlaySystemSound(1103); + delayInSeconds = 0.13; + } + return %orig; +} +%end %hook AVTransportControlsView int test = 30; + // iOS 12 -(AVTransportControlsView *)initWithFrame:(CGRect)frame styleSheet:(id)arg2 captureView:(id)arg3{ AVTransportControlsView *origself = %orig(frame,arg2,arg3); @@ -110,13 +122,13 @@ int test = 30; (void*)myObserver, lockButton, CFSTR("avlock.lockButton"), - NULL, + NULL, CFNotificationSuspensionBehaviorDeliverImmediately); CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), (void*)myObserver, unlockButton, CFSTR("avlock.unlockButton"), - NULL, + NULL, CFNotificationSuspensionBehaviorDeliverImmediately); button = [UIButton buttonWithType:UIButtonTypeCustom]; [button addTarget:self action:@selector(orientationButtonPressed) forControlEvents:UIControlEventTouchUpInside]; @@ -128,7 +140,7 @@ int test = 30; [self addSubview:button]; [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(deviceOrientationDidChange) name:UIDeviceOrientationDidChangeNotification object:nil]; - + return origself; } @@ -139,13 +151,13 @@ int test = 30; (void*)myObserver, lockButton, CFSTR("avlock.lockButton"), - NULL, + NULL, CFNotificationSuspensionBehaviorDeliverImmediately); CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), (void*)myObserver, unlockButton, CFSTR("avlock.unlockButton"), - NULL, + NULL, CFNotificationSuspensionBehaviorDeliverImmediately); button = [UIButton buttonWithType:UIButtonTypeCustom]; [button addTarget:self action:@selector(orientationButtonPressed) forControlEvents:UIControlEventTouchUpInside]; @@ -157,14 +169,14 @@ int test = 30; [self addSubview:button]; [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(deviceOrientationDidChange) name:UIDeviceOrientationDidChangeNotification object:nil]; - + return origself; } -(void)dealloc{ %orig; - CFNotificationCenterRemoveObserver ( CFNotificationCenterGetDarwinNotifyCenter(), (void*)myObserver, NULL, NULL); + CFNotificationCenterRemoveObserver ( CFNotificationCenterGetDarwinNotifyCenter(), (void*)myObserver, NULL, NULL); test = 30; } @@ -178,7 +190,7 @@ int test = 30; %new -(void)deviceOrientationDidChange{ - double delayInSeconds = 0.13; + dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ @@ -189,13 +201,13 @@ dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ CGPoint point = self.standardPlayPauseButton.frame.origin; point.x = (self.skipForwardButton.frame.origin.x - 40); [self.standardPlayPauseButton setFrame:CGRectMake(point.x, point.y, self.standardPlayPauseButton.frame.size.width, self.standardPlayPauseButton.frame.size.height)]; - + point = self.skipBackButton.frame.origin; point.x = (self.standardPlayPauseButton.frame.origin.x - 40); [self.skipBackButton setFrame:CGRectMake(point.x, point.y, self.skipBackButton.frame.size.width, self.skipBackButton.frame.size.height)]; - + [button setFrame:CGRectMake(self.standardPlayPauseButton.frame.origin.x-93.5, self.standardPlayPauseButton.frame.origin.y, 46, 46)]; - + } else if(orientation == UIInterfaceOrientationPortrait){ button.frame = CGRectMake((self.skipBackButton.frame.origin.x - 62), self.skipBackButton.frame.origin.y, 46, 46); diff --git a/com.gilshahar7.avlock_1.0.3_iphoneos-arm.deb b/com.gilshahar7.avlock_1.0.3_iphoneos-arm.deb new file mode 100644 index 0000000..8af9c9b Binary files /dev/null and b/com.gilshahar7.avlock_1.0.3_iphoneos-arm.deb differ