From 87f76f2a154fd04ffe1af6f52083220217256283 Mon Sep 17 00:00:00 2001 From: Gil Shahar Date: Wed, 16 Jan 2019 20:00:36 +0200 Subject: [PATCH] Version 1.0.2 fixed the date not changing at 00:00 if the Lockscreen is shown, fixed iPads positioning when changing orientations --- Tweak.xm | 44 +++++++++++------- control | 2 +- ...har7.duplexcalendar_1.0.2_iphoneos-arm.deb | Bin 0 -> 20946 bytes 3 files changed, 29 insertions(+), 17 deletions(-) create mode 100644 packages/com.gilshahar7.duplexcalendar_1.0.2_iphoneos-arm.deb diff --git a/Tweak.xm b/Tweak.xm index f468603..14ca8f7 100644 --- a/Tweak.xm +++ b/Tweak.xm @@ -1,13 +1,17 @@ #define kScreenWidth [[UIScreen mainScreen] bounds].size.width -#import -#import @interface SBTodayTableHeaderView : UIView -(NSString *)lunarDateHeaderString; @end +@interface SBAnimationSettings +@end + +@interface SBFadeAnimationSettings +@property(retain, nonatomic) SBAnimationSettings *dateInSettings; +@end + @interface SBFLockScreenDateView : UIView @property (nonatomic, assign) UILabel *duplexCalendarLabel; -@property (nonatomic, assign) SBTodayTableHeaderView *todayHeaderView; @property (nonatomic, assign) NSString *todayHeaderViewText; @property bool dateHidden; -(id)_dateFont; @@ -21,9 +25,6 @@ @end @interface _UILegibilityLabel : _UILegibilityView -@property (nonatomic, assign) NSString* string; -@property (nonatomic, assign) UIFont* font; - @end extern "C" CFNotificationCenterRef CFNotificationCenterGetDistributedCenter(void); @@ -73,14 +74,14 @@ static float sizeheight = 0.0; NSString *offsetYTextField = [prefs objectForKey:@"offsetYTextField"]; NSString *FontSizeTextField = [prefs objectForKey:@"FontSizeTextField"]; - if(originx <= 0.0) - { + //if(originx <= 0.0) + //{ UILabel *originalLabel = MSHookIvar(self, "_dateLabel"); originx = originalLabel.frame.origin.x; originy = originalLabel.frame.origin.y; sizewidth = originalLabel.frame.size.width; sizeheight = originalLabel.frame.size.height; - } + //} [self.duplexCalendarLabel setFrame:CGRectMake(originx-50+ [offsetXTextField floatValue], originy + 19 + [offsetYTextField floatValue], sizewidth+100, sizeheight)]; UIFont *font = self.duplexCalendarLabel.font; if([FontSizeTextField floatValue] == 0){ @@ -95,32 +96,33 @@ static float sizeheight = 0.0; self.duplexCalendarLabel.hidden = false; } } + } -(void)_updateLabels{ + %orig; [self layoutDuplexCalendarLabel]; - if(!self.todayHeaderViewText){ + //if(!self.todayHeaderViewText){ self.todayHeaderViewText = [stattodayHeaderView lunarDateHeaderString]; - } + //} self.duplexCalendarLabel.text = self.todayHeaderViewText; - - %orig; + } -(void)_layoutDateLabel { - [self layoutDuplexCalendarLabel]; %orig; + [self layoutDuplexCalendarLabel]; _UILegibilityLabel *originalLegibilityLabel = MSHookIvar<_UILegibilityLabel *>(self, "_legibilityDateLabel"); [originalLegibilityLabel setFrame:CGRectMake(originx, originy - 3, sizewidth, sizeheight)]; } -(void)updateFormat{ - [self layoutDuplexCalendarLabel]; %orig; + [self layoutDuplexCalendarLabel]; } -(void)layoutSubviews { - [self layoutDuplexCalendarLabel]; %orig; + [self layoutDuplexCalendarLabel]; } @@ -135,6 +137,16 @@ static float sizeheight = 0.0; %end +%hook SBFadeAnimationSettings + +- (void)setDefaultValues { + +%orig; + +self.dateInSettings = nil; + +} +%end %ctor{ CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), diff --git a/control b/control index f7b1df6..85db4f7 100644 --- a/control +++ b/control @@ -1,7 +1,7 @@ Package: com.gilshahar7.duplexcalendar Name: DuplexCalendar Depends: mobilesubstrate -Version: 1.0 +Version: 1.0.2 Architecture: iphoneos-arm Description: Add the alternate calendar label to the LockScreen on iOS 9. Maintainer: gilshahar7 diff --git a/packages/com.gilshahar7.duplexcalendar_1.0.2_iphoneos-arm.deb b/packages/com.gilshahar7.duplexcalendar_1.0.2_iphoneos-arm.deb new file mode 100644 index 0000000000000000000000000000000000000000..05b17fc324de871bd1973ba35e01da20930351d3 GIT binary patch literal 20946 zcmbTd1ytM5yYAZpEncieixn#x+}+*X-KDrg@fLS?E$&bxp}4ziiaWtQ0Pt=hecEFiW)qRQ-0X9dg`MDvIIa>*GqonWm^I z4HQN}GRaIt*Ud=Fv<_r?|p%#7y-&BxO%iz8l`iEZPHCd?rn4$TZ zbXv`~bmcEJw>(Dsf_0GM!s%nhbR4MhX&(x3x#)-SKXe(EeXQ$;MO{&90PeIyT;SL3 zaCnzx0M>jl?~PK}t@RFvLq4lcdMIvuPSX24OEt&*JBJg$)ZmAqBqdQTFR@Dha2c(D z$3!72{b2+WIDJppOol#>5ic- z(X5D3uMGFHe7!4JO+l3v;wzYc0`DzCy2n)(y|=Sa3NS`%sg&%Z0($Gj+nbn}Y<69J zc)8e*e}nSo4T`ymo5_D{{p-H|pI$vyW_C8#f7^d!l>fB*KvX~V`DP)|q&!IyB4!W$ zWp?OyGHy2S_`V@CYUCi{Q0c-#iHM|(q_H7$%WPNdAKFC1dbab5zZOMJ8MRkY=Z+Pi zdU8*d92!nh0mc0rhIXV&-&Z6N2r0(VQ7-kKvi&V5vgJh!fv2aCE)XfFZ#8gH*Z1@; zcR1UhVJDD;GpqWy7c#j-OXn7qw~KwFh<)rI$x9TJtH`KGhlhBRiBbB(>BO!Or(&Jt zd(7WUC*Um%`x^{^XP94BwDq$RTvYRl9_f}?HLUWniwxX?@C1Xbz!r$$ZVdC3SM>q1 zSUr?rT-B)_%b=Er~2ax7N`T$qt6TxG|}UM z;5<7Dnme~XcHR`7!Kiv~0!38bR^7J07^$kGU4g@)Frip2p@(TDGFD;fhQ2_-Rei!>CEmE5`2)_i&7J2DHXC8EMGy zE(Bl4O;9r1*q(-b1~$`}RsjV)&Fy@@EP&=xJ}TNPE%n|A_zi48n7?`u!+RpC8oyObw};~?Z5kyyZ$alIkqF-&^CO6fY zy|qpkDWdyj>n6o+X~$mkKIS3c*?rJ&N*WGbu&|z{a9WFWJ{^&;EuW>90*`$nrv;-) zl6?&;29JZ#RfGbOea~a(`#`M{-{UOB&5~Np+{!d;FDBt)31$pjp)2bg;di^16SUA2 zdAgp;kg&2Wr6F1wMr�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