]> git.saurik.com Git - winterboard.git/commitdiff
Allow themes to have multiple kinds of wallpaper.
authorJay Freeman (saurik) <saurik@saurik.com>
Mon, 17 Oct 2011 10:35:33 +0000 (10:35 +0000)
committerJay Freeman (saurik) <saurik@saurik.com>
Mon, 17 Oct 2011 10:35:33 +0000 (10:35 +0000)
Library.mm

index 944cd835167d9ba93f466b4404665648b430fe27..591373076e150dcea381b7c1b9d71d85b2a2633c 100644 (file)
@@ -255,7 +255,7 @@ static NSArray *$useScale$(NSArray *files, bool use = true) {
     return scaled;
 }
 
-static NSString *$getTheme$(NSArray *files) {
+static NSString *$getTheme$(NSArray *files, NSArray *themes = Themes_) {
     if (NSString *path = [Themed_ objectForKey:files])
         return reinterpret_cast<id>(path) == [NSNull null] ? nil : path;
 
@@ -770,6 +770,8 @@ MSInstanceMessageHook0(id, SBUIController, init) {
         return nil;
 
     NSString *paper($getTheme$(Wallpapers_));
+    if (paper != nil)
+        paper = [paper stringByDeletingLastPathComponent];
 
     {
         size_t size;
@@ -851,8 +853,10 @@ MSInstanceMessageHook0(id, SBUIController, init) {
     _release(WallpaperPage_);
     _release(WallpaperURL_);
 
-    if (NSString *path = paper) {
-        if ([path hasSuffix:@".mp4"]) {
+    if (paper != nil) {
+        NSArray *themes([NSArray arrayWithObject:paper]);
+
+        if (NSString *path = $getTheme$([NSArray arrayWithObject:@"Wallpaper.mp4"], themes)) {
 #if UseAVController
             NSError *error;
 
@@ -887,7 +891,7 @@ MSInstanceMessageHook0(id, SBUIController, init) {
             [indirect addSubview:video];
         }
 
-        if ([path hasSuffix:@".png"] || [path hasSuffix:@".jpg"]) {
+        if (NSString *path = $getTheme$([NSArray arrayWithObjects:@"Wallpaper@2x.png", @"Wallpaper@2x.jpg", @"Wallpaper.png", @"Wallpaper.jpg", nil], themes)) {
             if (UIImage *image = $getImage$(path)) {
                 WallpaperFile_ = [path retain];
                 WallpaperImage_ = [[UIImageView alloc] initWithImage:image];
@@ -897,7 +901,7 @@ MSInstanceMessageHook0(id, SBUIController, init) {
             }
         }
 
-        if ([path hasSuffix:@".html"]) {
+        if (NSString *path = $getTheme$([NSArray arrayWithObject:@"Wallpaper@.html"], themes)) {
             CGRect bounds = [indirect bounds];
 
             UIWebDocumentView *view([[[UIWebDocumentView alloc] initWithFrame:bounds] autorelease]);