From f13073336bc2fbadcfc42c9c23aefa90ecd7f3d8 Mon Sep 17 00:00:00 2001 From: Gil Shahar Date: Sun, 1 Apr 2018 13:49:50 +0300 Subject: [PATCH] Version 1.0 --- Makefile | 1 - Tweak.xm | 35 ++++++++++++++++++++++++++++++++--- control | 4 ++-- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 83e33cc..df4f879 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,6 @@ include $(THEOS)/makefiles/common.mk TWEAK_NAME = AVLock AVLock_FILES = Tweak.xm AVLock_FRAMEWORKS = UIKit -AVLock_PRIVATE_FRAMEWORKS = CoreTelephony AudioToolbox include $(THEOS_MAKE_PATH)/tweak.mk diff --git a/Tweak.xm b/Tweak.xm index 6786b52..bb89aba 100644 --- a/Tweak.xm +++ b/Tweak.xm @@ -1,6 +1,5 @@ #define kBundlePath @"/Library/Application Support/AVLockBundle.bundle" - @interface SBOrientationLockManager +(SBOrientationLockManager *)sharedInstance; -(bool)isUserLocked; @@ -16,6 +15,10 @@ @interface AVTransportControlsView : UIView -(void)deviceOrientationDidChange; @property (assign, nonatomic) AVButton *skipBackButton; +@property (assign, nonatomic) AVButton *skipForwardButton; + +@property (assign, nonatomic) AVButton *standardPlayPauseButton; + @end @interface AVPlaybackControlsView @@ -69,9 +72,19 @@ static void firstUpdate(CFNotificationCenterRef center, void *observer, CFString } %hook AVFullScreenViewController +int test = 30; -(void)viewDidLayoutSubviews{ %orig; - [self.contentView.playbackControlsView.transportControlsView deviceOrientationDidChange]; + if(test > 1){ + [self.contentView.playbackControlsView.transportControlsView deviceOrientationDidChange]; + test--;; + } + +} + +-(void)viewDidDisappear:(bool)arg1{ + %orig; + test = 10; } %end @@ -156,13 +169,29 @@ CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), %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){ + + UIInterfaceOrientation orientation =[UIApplication sharedApplication].statusBarOrientation; if (orientation == UIInterfaceOrientationLandscapeRight || orientation == UIInterfaceOrientationLandscapeLeft){ - button.frame = CGRectMake(self.skipBackButton.frame.origin.x-13.5, -40, 46, 46); + + 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); } +}); } %new diff --git a/control b/control index af1ea1e..ba7a60f 100644 --- a/control +++ b/control @@ -1,9 +1,9 @@ Package: com.gilshahar7.avlock Name: AVLock Depends: mobilesubstrate -Version: 0.0.1 +Version: 1.0 Architecture: iphoneos-arm -Description: An awesome MobileSubstrate tweak! +Description: Add an orientation lock button to the iOS 11 stock video player Maintainer: gilshahar7 Author: gilshahar7 Section: Tweaks