]> git.saurik.com Git - cydia.git/commitdiff
Provide a way to get the icons for installed apps.
authorJay Freeman (saurik) <saurik@saurik.com>
Sun, 12 Jul 2015 05:20:17 +0000 (22:20 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Sun, 12 Jul 2015 05:23:00 +0000 (22:23 -0700)
MobileCydia.mm
iPhonePrivate.h

index fc3598ba5267a014f8340e4e8328b98ef7a59af7..b039213a2ac5ca96c511edea8ba2b15f283c45a1 100644 (file)
@@ -7177,7 +7177,19 @@ static void HomeControllerReachabilityCallback(SCNetworkReachabilityRef reachabi
 
     Database *database([Database sharedInstance]);
 
-    if ([command isEqualToString:@"package-icon"]) {
+    if (false);
+    else if ([command isEqualToString:@"application-icon"]) {
+        if (path == nil)
+            goto fail;
+        path = [path stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
+        NSData *data([SBSCopyIconImagePNGDataForDisplayIdentifier(path) autorelease]);
+        UIImage *icon;
+        if (data == nil)
+            icon = [UIImage imageNamed:@"unknown.png"];
+        else
+            icon = [UIImage imageWithData:data];
+        [self _returnPNGWithImage:icon forRequest:request];
+    } else if ([command isEqualToString:@"package-icon"]) {
         if (path == nil)
             goto fail;
         path = [path stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
index 2c9239c13c553aa4f816fed0801b934482ca1fc3..70eef38194607750fe1a83573b2e0eb1d7016793 100644 (file)
@@ -440,6 +440,7 @@ extern "C" mach_port_t SBSSpringBoardServerPort();
 extern "C" int SBBundlePathForDisplayIdentifier(mach_port_t port, const char *identifier, char *path);
 extern "C" NSSet *SBSCopyDisplayIdentifiers();
 extern "C" NSString *SBSCopyLocalizedApplicationNameForDisplayIdentifier(NSString *);
+extern "C" NSData *SBSCopyIconImagePNGDataForDisplayIdentifier(NSString *);
 extern "C" UIImage *_UIImageWithName(NSString *name);
 extern "C" void UISetColor(CGColorRef color);
 // }}}