diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0d017b4 --- /dev/null +++ b/Makefile @@ -0,0 +1,12 @@ +ARCHS = armv7 arm64 +include $(THEOS)/makefiles/common.mk + +TWEAK_NAME = TapToOpen +TapToOpen_FILES = Tweak.xm +TapToOpen_FRAMEWORKS = UIKit + + +include $(THEOS_MAKE_PATH)/tweak.mk + +after-install:: + install.exec "killall -9 SpringBoard" diff --git a/TapToOpen.plist b/TapToOpen.plist new file mode 100644 index 0000000..10dc654 --- /dev/null +++ b/TapToOpen.plist @@ -0,0 +1 @@ +{ Filter = { Bundles = ( "com.apple.springboard" ); }; } diff --git a/Tweak.xm b/Tweak.xm new file mode 100644 index 0000000..bf10097 --- /dev/null +++ b/Tweak.xm @@ -0,0 +1,50 @@ +@interface NCNotificationShortLookViewController +-(id)_presentedLongLookViewController; +-(void)addGestureRecognizer:(id)arg1; +@property (assign, nonatomic) UIView *view; +@end + +@interface NCNotificationListCell +-(void)_executeDefaultActionIfCompleted; +-(void)setExecutingDefaultAction:(BOOL)arg1; +-(void)setSupportsSwipeToDefaultAction:(BOOL)arg1 ; +-(BOOL)isActionButtonsFullyRevealed; +-(NCNotificationShortLookViewController *)contentViewController; + +@end + +@interface SBLockScreenManager ++(SBLockScreenManager *)sharedInstance; +-(BOOL)isUILocked; +@end + +%hook NCNotificationListCell +CGFloat myThreshold = 0; +-(CGFloat)_defaultActionExecuteThreshold{return myThreshold;} +-(CGFloat)_defaultActionTriggerThreshold{return myThreshold;} +-(CGFloat)_defaultActionOvershootContentOffset{return 0;} +-(void)layoutSubviews{ + %orig; + bool isLocked = [[%c(SBLockScreenManager) sharedInstance] isUILocked]; + if(isLocked == true){ + if(MSHookIvar([self contentViewController].view, "_gestureRecognizers") == nil) + { + UITapGestureRecognizer *singleFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dood:)]; + [[self contentViewController].view addGestureRecognizer:singleFingerTap]; + [self setSupportsSwipeToDefaultAction:false]; + } + } +} +%new +-(void)dood:(UITapGestureRecognizer *)recognizer{ + bool isLocked = [[%c(SBLockScreenManager) sharedInstance] isUILocked]; + if((isLocked == true) && ([self isActionButtonsFullyRevealed] == false) && ([[self contentViewController] _presentedLongLookViewController] == nil)) + { + myThreshold = -1; + [self setSupportsSwipeToDefaultAction:true]; + [self _executeDefaultActionIfCompleted]; + [self setSupportsSwipeToDefaultAction:false]; + myThreshold = 0; + } +} +%end diff --git a/control b/control new file mode 100644 index 0000000..f48bb89 --- /dev/null +++ b/control @@ -0,0 +1,9 @@ +Package: com.gilshahar7.taptoopen +Name: TapToOpen +Depends: mobilesubstrate +Version: 1.0 +Architecture: iphoneos-arm +Description: Tap on lockscreen notifications to open them. +Maintainer: gilshahar7 +Author: gilshahar7 +Section: Tweaks diff --git a/packages/com.gilshahar7.taptoopen_1.0_iphoneos-arm.deb b/packages/com.gilshahar7.taptoopen_1.0_iphoneos-arm.deb new file mode 100644 index 0000000..27a2953 Binary files /dev/null and b/packages/com.gilshahar7.taptoopen_1.0_iphoneos-arm.deb differ