Переглянути джерело

Version 1.6

Added support for A12 devices (and added the forgotten source code for iOS 12 :P)
beta-future-time
Gil Shahar 5 роки тому
джерело
коміт
427443a2c7
Аккаунт користувача з таким Email не знайдено
6 змінених файлів з 98 додано та 8 видалено
  1. +2
    -2
      Makefile
  2. +72
    -2
      Tweak.xm
  3. +1
    -1
      control
  4. +20
    -0
      exacttimeprefs/ExactTimeprefs.mm
  5. +3
    -3
      exacttimeprefs/Makefile
  6. BIN
      packages/com.gilshahar7.exacttime_1.6_iphoneos-arm.deb

+ 2
- 2
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 = ExactTime

+ 72
- 2
Tweak.xm Переглянути файл

@@ -7,7 +7,7 @@
@interface NCLookHeaderContentView
-(void)_updateDateLabelFontForShortLook;
@end
//IOS 11
//IOS 11 & 12
@interface BSUIRelativeDateLabel
@property (assign,nonatomic) NSString *text;
-(void)sizeToFit;
@@ -16,6 +16,11 @@
@interface MTPlatterHeaderContentView
-(void)_updateTextAttributesForDateLabel;
@end
//IOS 12
@interface PLPlatterHeaderContentView
-(void)_updateTextAttributesForDateLabel;
@end



static bool is24h;
@@ -147,6 +152,69 @@ static NSString *settingsPath = @"/var/mobile/Library/Preferences/com.gilshahar7
%end
%end

%group iOS12
%hook PLPlatterHeaderContentView
-(void)_updateTextAttributesForDateLabel{
%orig;
NSDate *date = MSHookIvar<NSDate *>(self, "_date");
NSInteger format = MSHookIvar<NSInteger >(self, "_dateFormatStyle");
NSMutableDictionary *prefs = [[NSMutableDictionary alloc] initWithContentsOfFile:settingsPath];
CGFloat affectTime = [[prefs objectForKey:@"affectTime"] floatValue];
if((date != nil) && (format == 1)){
BSUIRelativeDateLabel *dateLabel = MSHookIvar<BSUIRelativeDateLabel *>(self, "_dateLabel");
int timeSinceNow = (int)[date timeIntervalSinceNow];
timeSinceNow = timeSinceNow*-1;
bool addMinutes = [[prefs objectForKey:@"addMinutes"] boolValue];
bool addToCurrent = [[prefs objectForKey:@"addToCurrent"] boolValue];
int hours = timeSinceNow / 3600;
int minutes = (timeSinceNow % 3600) / 60;
if(addMinutes){
if(hours == 0){
if(minutes == 0){
}else{
dateLabel.text = [NSString stringWithFormat:@"%im ago", minutes];
}
}else{
if(minutes == 0){
dateLabel.text = [NSString stringWithFormat:@"%ih ago", hours];
} else{
dateLabel.text = [NSString stringWithFormat:@"%ih %im ago", hours, minutes];
}
}
}else if(addToCurrent){
if(hours == 0){
if(minutes == 0){
}else{
dateLabel.text = [NSString stringWithFormat:@"%im ago", minutes];
}
}else{
dateLabel.text = [NSString stringWithFormat:@"%ih ago", hours];
}
}
if((timeSinceNow/60) >= affectTime){
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
if(is24h){
[dateFormatter setDateFormat:@"HH:mm"];
}else{
[dateFormatter setDateFormat:@"h:mm a"];
}
if(addToCurrent && !([dateLabel.text isEqualToString:[dateFormatter stringFromDate:date]])){
dateLabel.text = [[dateLabel.text stringByAppendingString:@" • "] stringByAppendingString:[dateFormatter stringFromDate:date]];
}else{
dateLabel.text =[dateFormatter stringFromDate:date];
}
[dateLabel sizeToFit];
[dateFormatter release];
}
}
}
-(void)dateLabelDidChange:(id)arg1{
%orig(arg1);
[self _updateTextAttributesForDateLabel];
}
%end
%end

%ctor{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale currentLocale]];
@@ -161,5 +229,7 @@ static NSString *settingsPath = @"/var/mobile/Library/Preferences/com.gilshahar7
%init(iOS10);
} else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 11.0 && [[[UIDevice currentDevice] systemVersion] floatValue] < 12.0) {
%init(iOS11);
}else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 12.0 && [[[UIDevice currentDevice] systemVersion] floatValue] < 13.0) {
%init(iOS12);
}
}
}

+ 1
- 1
control Переглянути файл

@@ -1,7 +1,7 @@
Package: com.gilshahar7.exacttime
Name: ExactTime
Depends: mobilesubstrate
Version: 1.4
Version: 1.6
Architecture: iphoneos-arm
Description: Shows the exact time of a notification.
Maintainer: gilshahar7

+ 20
- 0
exacttimeprefs/ExactTimeprefs.mm Переглянути файл

@@ -0,0 +1,20 @@
#import <Preferences/PSListController.h>

@interface ExactTimeprefsListController: PSListController {
}
@end

@implementation ExactTimeprefsListController
- (id)specifiers {
if(_specifiers == nil) {
_specifiers = [[self loadSpecifiersFromPlistName:@"ExactTimeprefs" target:self] retain];
}
return _specifiers;
}

-(void)apply{
[self.view endEditing:YES];
}
@end

// vim:ft=objc

+ 3
- 3
exacttimeprefs/Makefile Переглянути файл

@@ -1,9 +1,9 @@
ARCHS = armv7 arm64
ARCHS = armv7 arm64 arm64e
export TARGET = iphone:clang:11.2:7.0
include $(THEOS)/makefiles/common.mk

BUNDLE_NAME = ExactTimeprefs
ExactTimeprefs_FILES = RootListController.m
ExactTimeprefs_FILES = ExactTimeprefs.mm
ExactTimeprefs_INSTALL_PATH = /Library/PreferenceBundles
ExactTimeprefs_FRAMEWORKS = UIKit
ExactTimeprefs_PRIVATE_FRAMEWORKS = Preferences

BIN
packages/com.gilshahar7.exacttime_1.6_iphoneos-arm.deb Переглянути файл


Завантаження…
Відмінити
Зберегти