]> git.saurik.com Git - cydia.git/commitdiff
Support CydiaProgressEvent forItem: and return nulls to JS.
authorJay Freeman (saurik) <saurik@saurik.com>
Wed, 23 Feb 2011 17:29:30 +0000 (09:29 -0800)
committerJay Freeman (saurik) <saurik@saurik.com>
Mon, 7 Mar 2011 10:41:11 +0000 (02:41 -0800)
MobileCydia.mm

index c11f6c5ae812152da759881f4bb81208dde646a8..55d9f9317737624a33af9e2ea07a4ec482cd700f 100644 (file)
@@ -1173,21 +1173,31 @@ bool isSectionVisible(NSString *section) {
 @interface CydiaProgressEvent : NSObject {
     _H<NSString> message_;
     _H<NSString> type_;
 @interface CydiaProgressEvent : NSObject {
     _H<NSString> message_;
     _H<NSString> type_;
+
+    _H<NSArray> item_;
     _H<NSString> package_;
     _H<NSString> package_;
-    _H<NSString> uri_;
+    _H<NSString> url_;
+    _H<NSString> version_;
 }
 
 + (CydiaProgressEvent *) eventWithMessage:(NSString *)message ofType:(NSString *)type;
 + (CydiaProgressEvent *) eventWithMessage:(NSString *)message ofType:(NSString *)type forPackage:(NSString *)package;
 }
 
 + (CydiaProgressEvent *) eventWithMessage:(NSString *)message ofType:(NSString *)type;
 + (CydiaProgressEvent *) eventWithMessage:(NSString *)message ofType:(NSString *)type forPackage:(NSString *)package;
++ (CydiaProgressEvent *) eventWithMessage:(NSString *)message ofType:(NSString *)type forItem:(pkgAcquire::ItemDesc &)item;
 
 - (id) initWithMessage:(NSString *)message ofType:(NSString *)type;
 
 - (NSString *) message;
 - (NSString *) type;
 
 - (id) initWithMessage:(NSString *)message ofType:(NSString *)type;
 
 - (NSString *) message;
 - (NSString *) type;
+
+- (NSArray *) item;
 - (NSString *) package;
 - (NSString *) package;
-- (NSString *) uri;
+- (NSString *) url;
+- (NSString *) version;
 
 
+- (void) setItem:(NSArray *)item;
 - (void) setPackage:(NSString *)package;
 - (void) setPackage:(NSString *)package;
+- (void) setURL:(NSString *)url;
+- (void) setVersion:(NSString *)version;
 
 - (NSString *) compound:(NSString *)value;
 - (NSString *) compoundMessage;
 
 - (NSString *) compound:(NSString *)value;
 - (NSString *) compoundMessage;
@@ -1235,7 +1245,7 @@ class Status :
 
     virtual void Fetch(pkgAcquire::ItemDesc &item) {
         NSString *name([NSString stringWithUTF8String:item.ShortDesc.c_str()]);
 
     virtual void Fetch(pkgAcquire::ItemDesc &item) {
         NSString *name([NSString stringWithUTF8String:item.ShortDesc.c_str()]);
-        CydiaProgressEvent *event([CydiaProgressEvent eventWithMessage:[NSString stringWithFormat:UCLocalize("DOWNLOADING_"), name] ofType:@"STATUS"]);
+        CydiaProgressEvent *event([CydiaProgressEvent eventWithMessage:[NSString stringWithFormat:UCLocalize("DOWNLOADING_"), name] ofType:@"STATUS" forItem:item]);
         [delegate_ performSelectorOnMainThread:@selector(addProgressEvent:) withObject:event waitUntilDone:YES];
     }
 
         [delegate_ performSelectorOnMainThread:@selector(addProgressEvent:) withObject:event waitUntilDone:YES];
     }
 
@@ -1253,11 +1263,7 @@ class Status :
         if (error.empty())
             return;
 
         if (error.empty())
             return;
 
-        //NSString *description([NSString stringWithUTF8String:item.Description.c_str()]);
-        //NSArray *fields([description componentsSeparatedByString:@" "]);
-        //NSString *source([fields count] == 0 ? nil : [fields objectAtIndex:0]);
-
-        CydiaProgressEvent *event([CydiaProgressEvent eventWithMessage:[NSString stringWithUTF8String:error.c_str()] ofType:@"ERROR"]);
+        CydiaProgressEvent *event([CydiaProgressEvent eventWithMessage:[NSString stringWithUTF8String:error.c_str()] ofType:@"ERROR" forItem:item]);
         [delegate_ performSelectorOnMainThread:@selector(addProgressEvent:) withObject:event waitUntilDone:YES];
     }
 
         [delegate_ performSelectorOnMainThread:@selector(addProgressEvent:) withObject:event waitUntilDone:YES];
     }
 
@@ -1382,12 +1388,31 @@ typedef std::map< unsigned long, _H<Source> > SourceMap;
     return event;
 }
 
     return event;
 }
 
++ (CydiaProgressEvent *) eventWithMessage:(NSString *)message ofType:(NSString *)type forItem:(pkgAcquire::ItemDesc &)item {
+    CydiaProgressEvent *event([self eventWithMessage:message ofType:type]);
+
+    NSString *description([NSString stringWithUTF8String:item.Description.c_str()]);
+    NSArray *fields([description componentsSeparatedByString:@" "]);
+    [event setItem:fields];
+
+    if ([fields count] > 3) {
+        [event setPackage:[fields objectAtIndex:2]];
+        [event setVersion:[fields objectAtIndex:3]];
+    }
+
+    [event setURL:[NSString stringWithUTF8String:item.URI.c_str()]];
+
+    return event;
+}
+
 + (NSArray *) _attributeKeys {
     return [NSArray arrayWithObjects:
 + (NSArray *) _attributeKeys {
     return [NSArray arrayWithObjects:
+        @"item",
         @"message",
         @"package",
         @"type",
         @"message",
         @"package",
         @"type",
-        @"uri",
+        @"url",
+        @"version",
     nil];
 }
 
     nil];
 }
 
@@ -1414,18 +1439,38 @@ typedef std::map< unsigned long, _H<Source> > SourceMap;
     return type_;
 }
 
     return type_;
 }
 
-- (NSString *) package {
-    return package_;
+- (NSArray *) item {
+    return (id) item_ ?: [NSNull null];
 }
 
 }
 
-- (NSString *) uri {
-    return uri_;
+- (void) setItem:(NSArray *)item {
+    item_ = item;
+}
+
+- (NSString *) package {
+    return (id) package_ ?: [NSNull null];
 }
 
 - (void) setPackage:(NSString *)package {
     package_ = package;
 }
 
 }
 
 - (void) setPackage:(NSString *)package {
     package_ = package;
 }
 
+- (NSString *) url {
+    return (id) url_ ?: [NSNull null];
+}
+
+- (void) setURL:(NSString *)url {
+    url_ = url;
+}
+
+- (void) setVersion:(NSString *)version {
+    version_ = version;
+}
+
+- (NSString *) version {
+    return (id) version_ ?: [NSNull null];
+}
+
 - (NSString *) compound:(NSString *)value {
     if (value != nil) {
         NSString *mode(nil); {
 - (NSString *) compound:(NSString *)value {
     if (value != nil) {
         NSString *mode(nil); {