From 6cae7c6b57851bc30ce880acabe9fccaf4fa4998 Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Wed, 26 Nov 2014 00:38:52 -0800 Subject: [PATCH] Remove the now ancient standalone WinterBoard.app. --- Application.mm | 177 ------------------- Settings.mm | 20 --- WinterBoardSettings.bundle/WinterBoard.plist | 82 --------- control | 2 +- makefile | 9 - package.sh | 4 +- 6 files changed, 2 insertions(+), 292 deletions(-) delete mode 100644 Application.mm diff --git a/Application.mm b/Application.mm deleted file mode 100644 index 772cc07..0000000 --- a/Application.mm +++ /dev/null @@ -1,177 +0,0 @@ -/* WinterBoard - Theme Manager for the iPhone - * Copyright (C) 2008-2014 Jay Freeman (saurik) -*/ - -/* GNU Lesser General Public License, Version 3 {{{ */ -/* - * WinterBoard is free software: you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * WinterBoard is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - * License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with WinterBoard. If not, see . -**/ -/* }}} */ - -#import -#import -#import - -#include - -#import -#import -#import -#import - -#include - -static NSBundle *wbSettingsBundle; -static Class $WBSettingsController; - -@interface UIApplication (Private) -- (void) terminateWithSuccess; -@end - -@interface UIDevice (Private) -- (BOOL) isWildcat; -@end - -@interface PSRootController (Compatibility) -- (id) _popController; // < 3.2 -- (id) contentView; // < 3.2 -- (id) lastController; // < 3.2 -- (id) topViewController; // >= 3.2 -@end - -@interface PSListController (Compatibility) -- (void) viewWillBecomeVisible:(void *)specifier; // < 3.2 -- (void) viewWillAppear:(BOOL)a; // >= 3.2 -- (void) setSpecifier:(PSSpecifier *)spec; // >= 3.2 -@end - -@interface WBRootController : PSRootController { - PSListController *_rootListController; -} - -@property (readonly) PSListController *rootListController; - -- (void) setupRootListForSize:(CGSize)size; -- (id) topViewController; -@end - -@implementation WBRootController - -@synthesize rootListController = _rootListController; - -// < 3.2 -- (void) setupRootListForSize:(CGSize)size { - PSSpecifier *spec([[PSSpecifier alloc] init]); - [spec setTarget:self]; - spec.name = @"WinterBoard"; - - _rootListController = [[$WBSettingsController alloc] initForContentSize:size]; - _rootListController.rootController = self; - _rootListController.parentController = self; - [_rootListController viewWillBecomeVisible:spec]; - - [spec release]; - - [self pushController:_rootListController]; -} - -// >= 3.2 -- (void) loadView { - [super loadView]; - [self pushViewController:[self rootListController] animated:NO]; -} - -- (PSListController *) rootListController { - if(!_rootListController) { - PSSpecifier *spec([[PSSpecifier alloc] init]); - [spec setTarget:self]; - spec.name = @"WinterBoard"; - _rootListController = [[$WBSettingsController alloc] initForContentSize:CGSizeZero]; - _rootListController.rootController = self; - _rootListController.parentController = self; - [_rootListController setSpecifier:spec]; - [spec release]; - } - return _rootListController; -} - -- (id) contentView { - if ([[PSRootController class] instancesRespondToSelector:@selector(contentView)]) { - return [super contentView]; - } else { - return [super view]; - } -} - -- (id) topViewController { - if ([[PSRootController class] instancesRespondToSelector:@selector(topViewController)]) { - return [super topViewController]; - } else { - return [super lastController]; - } -} - -- (void) _popController { - // Pop the last controller = exit the application. - // The only time the last controller should pop is when the user taps Respring/Cancel. - // Which only gets displayed if the user has made changes. - if ([self topViewController] == _rootListController) - [[UIApplication sharedApplication] terminateWithSuccess]; - [super _popController]; -} - -@end - -@interface WBApplication : UIApplication { - WBRootController *_rootController; -} - -@end - -@implementation WBApplication - -- (void) dealloc { - [_rootController release]; - [super dealloc]; -} - -- (void) applicationWillTerminate:(UIApplication *)application { - [_rootController.rootListController suspend]; -} - -- (void) applicationDidFinishLaunching:(id)unused { - wbSettingsBundle = [NSBundle bundleWithPath:@"/System/Library/PreferenceBundles/WinterBoardSettings.bundle"]; - [wbSettingsBundle load]; - $WBSettingsController = [wbSettingsBundle principalClass]; - - CGRect applicationFrame(([UIDevice instancesRespondToSelector:@selector(isWildcat)] - && [[UIDevice currentDevice] isWildcat]) || objc_getClass("UIStatusBar") != nil - ? [UIScreen mainScreen].bounds - : [UIScreen mainScreen].applicationFrame); - UIWindow *window([[UIWindow alloc] initWithFrame:applicationFrame]); - _rootController = [[WBRootController alloc] initWithTitle:@"WinterBoard" identifier:[[NSBundle mainBundle] bundleIdentifier]]; - [window addSubview:[_rootController contentView]]; - [window makeKeyAndVisible]; -} - -@end - -int main(int argc, char *argv[]) { - NSAutoreleasePool *pool( [[NSAutoreleasePool alloc] init]); - - int value = UIApplicationMain(argc, argv, @"WBApplication", @"WBApplication"); - - [pool release]; - return value; -} diff --git a/Settings.mm b/Settings.mm index c2599a0..7d15baa 100644 --- a/Settings.mm +++ b/Settings.mm @@ -31,13 +31,6 @@ #include #include -static void *libhide; -static BOOL (*IsIconHiddenDisplayId)(NSString *); -static BOOL (*HideIconViaDisplayId)(NSString *); -static BOOL (*UnHideIconViaDisplayId)(NSString *); - -static NSString *WinterBoardDisplayID = @"com.saurik.WinterBoard"; - extern NSString *PSTableCellKey; extern "C" UIImage *_UIImageWithName(NSString *); @@ -456,13 +449,6 @@ void AddThemes(NSMutableArray *themesOnDisk, NSString *folder) { @implementation WBSettingsController -+ (void) load { - libhide = dlopen("/usr/lib/hide.dylib", RTLD_LAZY); - IsIconHiddenDisplayId = reinterpret_cast(dlsym(libhide, "IsIconHiddenDisplayId")); - HideIconViaDisplayId = reinterpret_cast(dlsym(libhide, "HideIconViaDisplayId")); - UnHideIconViaDisplayId = reinterpret_cast(dlsym(libhide, "UnHideIconViaDisplayId")); -} - - (void) _wb$loadSettings { _plist = [[NSString stringWithFormat:@"%@/Library/Preferences/com.saurik.WinterBoard.plist", NSHomeDirectory()] retain]; _settings = [NSMutableDictionary dictionaryWithContentsOfFile:_plist]; @@ -479,9 +465,6 @@ void AddThemes(NSMutableArray *themesOnDisk, NSString *folder) { if ([_settings objectForKey:@"SummerBoard"] == nil) [_settings setObject:[NSNumber numberWithBool:set] forKey:@"SummerBoard"]; - - if (libhide != NULL) - [_settings setObject:[NSNumber numberWithBool:IsIconHiddenDisplayId(WinterBoardDisplayID)] forKey:@"IconHidden"]; } - (id) initForContentSize:(CGSize)size { @@ -506,9 +489,6 @@ void AddThemes(NSMutableArray *themesOnDisk, NSString *folder) { if (![data writeToFile:_plist options:NSAtomicWrite error:NULL]) return; - if (libhide != NULL) - ([[_settings objectForKey:@"IconHidden"] boolValue] ? HideIconViaDisplayId : UnHideIconViaDisplayId)(WinterBoardDisplayID); - unlink("/User/Library/Caches/com.apple.springboard-imagecache-icons"); unlink("/User/Library/Caches/com.apple.springboard-imagecache-icons.plist"); unlink("/User/Library/Caches/com.apple.springboard-imagecache-smallicons"); diff --git a/WinterBoardSettings.bundle/WinterBoard.plist b/WinterBoardSettings.bundle/WinterBoard.plist index 33f85d7..87573de 100644 --- a/WinterBoardSettings.bundle/WinterBoard.plist +++ b/WinterBoardSettings.bundle/WinterBoard.plist @@ -96,88 +96,6 @@ - - cell - PSGroupCell - footerText - WinterBoard can also be found under the normal iOS Settings application. - wb$filter - - 0.0 - 800 - - - - cell - PSGroupCell - footerText - Hiding WinterBoard is not yet possible on iOS 7. This will require libhide to be updated. - wb$filter - - 800 - - - - cell - PSSwitchCell - default - - key - IconHidden - label - Hide WinterBoard - wb$filter - - 0.0 - 800 - - - - cell - PSSwitchCell - default - - enabled - - key - IconHidden - label - Hide WinterBoard - wb$filter - - 800 - - - - cell - PSGroupCell - isStaticText - true - requiredCapabilities - - - wildcat - - voip - - - - - - cell - PSTitleValueCell - label - WinterBoard can also be found under the normal iOS Settings application. - requiredCapabilities - - - wildcat - - voip - - - - cell PSGroupCell diff --git a/control b/control index 833dfdf..a17b5f5 100644 --- a/control +++ b/control @@ -7,7 +7,7 @@ Version: VERSION Description: more powerful, open-source SummerBoard Name: WinterBoard Pre-Depends: dpkg (>= 1.13.25-5) -Depends: mobilesubstrate (>= 0.9.3225-1), killall, preferenceloader, libhide (>= 2.0.4), findutils, net.howett.pincrush (>= 0.0.1-23) | pincrush +Depends: mobilesubstrate (>= 0.9.3225-1), killall, preferenceloader, findutils, net.howett.pincrush (>= 0.0.1-23) | pincrush Breaks: jp.ashikase.folderenhancer (<< 1.6.0.2-1) Provides: theme-manager Conflicts: com.modmyifone.winterboardicon, winterboardsettings, themesettings, com.iphonerepocenter.transparentdockfor3xtheme diff --git a/makefile b/makefile index 61c99ed..a97f4de 100644 --- a/makefile +++ b/makefile @@ -28,15 +28,6 @@ WinterBoard.dylib: Library.mm WBMarkup.mm WBMarkup.h makefile ../substrate/subst -framework WebKit \ -lobjc $(substrate) -WinterBoard: Application.mm makefile - $(cycc) \ - -framework UIKit \ - -framework Foundation \ - -framework CoreFoundation \ - -framework CoreGraphics \ - -framework Preferences \ - -lobjc - Optimize: Optimize.cpp makefile $(cycc) $(filter %.cpp,$^) diff --git a/package.sh b/package.sh index dd2b3b1..926b688 100755 --- a/package.sh +++ b/package.sh @@ -23,7 +23,6 @@ set -e rm -rf package mkdir -p package/DEBIAN -mkdir -p package/Applications/WinterBoard.app mkdir -p package/Library/Themes mkdir -p package/Library/MobileSubstrate/DynamicLibraries mkdir -p package/Library/PreferenceLoader/Preferences @@ -40,13 +39,12 @@ cp -a Icon-Small7.png package/System/Library/PreferenceBundles/WinterBoardSettin cp -a Icon-Small7@2x.png package/System/Library/PreferenceBundles/WinterBoardSettings.bundle/icon7@2x.png cp -a Icon-Small7@3x.png package/System/Library/PreferenceBundles/WinterBoardSettings.bundle/icon7@3x.png cp -a SearchResultsCheckmarkClear.png WinterBoardSettings package/System/Library/PreferenceBundles/WinterBoardSettings.bundle -ln -s /Applications/WinterBoard.app/WinterBoard.dylib package/Library/MobileSubstrate/DynamicLibraries +cp -a WinterBoard.dylib package/Library/MobileSubstrate/DynamicLibraries cp -a WinterBoard.plist package/Library/MobileSubstrate/DynamicLibraries cp -a *.theme package/Library/Themes find package -name .svn | while read -r line; do rm -rf "${line}"; done cp -a extrainst_ preinst prerm package/DEBIAN sed -e "s/VERSION/$(./version.sh)/g" control >package/DEBIAN/control -cp -a Test.sh Default-568h@2x.png Icon-Small.png icon{,-72,@2x}.png icon7{{,@2x}{,~ipad},@3x}.png WinterBoard.dylib WinterBoard Info.plist package/Applications/WinterBoard.app chown -R 0:0 package file="winterboard_$(grep ^Version: package/DEBIAN/control | cut -d ' ' -f 2)_iphoneos-arm.deb"; echo "$file"; ln -sf "$file" winterboard.deb dpkg-deb -Zlzma -b package winterboard.deb -- 2.45.2