]> git.saurik.com Git - cydia.git/commitdiff
Force clear all source's fetches when fetch stops.
authorJay Freeman (saurik) <saurik@saurik.com>
Wed, 14 May 2014 10:19:09 +0000 (03:19 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Wed, 14 May 2014 10:20:43 +0000 (03:20 -0700)
MobileCydia.mm

index a68c466296df4e343179ef3efe2b08f5abe838e6..d2a1b76f57c24a1e565ca015a42df8dfa31d3715 100644 (file)
@@ -1082,6 +1082,7 @@ typedef std::map< unsigned long, _H<Source> > SourceMap;
 
 - (Source *) getSource:(pkgCache::PkgFileIterator)file;
 - (void) setFetch:(bool)fetch forURI:(const char *)uri;
+- (void) resetFetch;
 
 - (NSString *) mappedSectionForPointer:(const char *)pointer;
 
@@ -1128,6 +1129,11 @@ class SourceStatus :
             } else (*item)->ID = 0;
         return ![delegate_ isSourceCancelled];
     }
+
+    virtual void Stop() {
+        pkgAcquireStatus::Stop();
+        [database_ resetFetch];
+    }
 };
 /* }}} */
 /* ProgressEvent Implementation {{{ */
@@ -1428,6 +1434,7 @@ static void PackageImport(const void *key, const void *value, void *context) {
 - (NSURL *) iconURL;
 
 - (void) setFetch:(bool)fetch forURI:(const char *)uri;
+- (void) resetFetch;
 
 @end
 
@@ -1759,6 +1766,11 @@ static void PackageImport(const void *key, const void *value, void *context) {
     [delegate_ performSelectorOnMainThread:@selector(setFetch:) withObject:[NSNumber numberWithBool:[self fetch]] waitUntilDone:NO];
 }
 
+- (void) resetFetch {
+    fetches_.clear();
+    [delegate_ performSelectorOnMainThread:@selector(setFetch:) withObject:[NSNumber numberWithBool:NO] waitUntilDone:NO];
+}
+
 @end
 /* }}} */
 /* CydiaOperation Class {{{ */
@@ -3964,6 +3976,11 @@ class CydiaLogCleaner :
         [source setFetch:fetch forURI:uri];
 }
 
+- (void) resetFetch {
+    for (Source *source in (id) sourceList_)
+        [source resetFetch];
+}
+
 - (NSString *) mappedSectionForPointer:(const char *)section {
     _H<NSString> *mapped;