]> git.saurik.com Git - cydia.git/commitdiff
Replace CYNavigationController with a category.
authorJay Freeman (saurik) <saurik@saurik.com>
Mon, 28 Feb 2011 13:55:49 +0000 (05:55 -0800)
committerJay Freeman (saurik) <saurik@saurik.com>
Mon, 7 Mar 2011 10:41:27 +0000 (02:41 -0800)
MobileCydia.mm
UICaboodle/RVPage.h
UICaboodle/RVPage.mm

index c4dc0a502fce8869dfe0a0197f18c48a7c75d362..00e61af56c1523c9073b568fc150bfffc93ea592 100644 (file)
@@ -6821,11 +6821,10 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) {
 /* }}} */
 
 /* Cydia Navigation Controller Interface {{{ */
-@interface CYNavigationController : UINavigationController {
-}
+@interface UINavigationController (Cydia)
 
 - (NSArray *) navigationURLCollection;
-- (void) unloadData:(BOOL)selected;
+- (void) unloadData;
 
 @end
 /* }}} */
@@ -6904,12 +6903,16 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) {
 }
 
 - (void) unloadData {
-    CYNavigationController *selected((CYNavigationController *) [self selectedViewController]);
-    for (CYNavigationController *controller in [self viewControllers])
-        [controller unloadData:(controller == selected)];
+    UIViewController *selected([self selectedViewController]);
+    for (UINavigationController *controller in [self viewControllers])
+        [controller unloadData];
+
+    [selected reloadData];
 
-    if (CYNavigationController *unselected = (CYNavigationController *) [self unselectedViewController])
-        [unselected unloadData:YES];
+    if (UIViewController *unselected = [self unselectedViewController])
+        [unselected reloadData];
+
+    [super unloadData];
 }
 
 - (void) dealloc {
@@ -7123,7 +7126,7 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) {
 /* }}} */
 
 /* Cydia Navigation Controller Implementation {{{ */
-@implementation CYNavigationController
+@implementation UINavigationController (Cydia)
 
 - (NSArray *) navigationURLCollection {
     NSMutableArray *stack([NSMutableArray array]);
@@ -7137,18 +7140,18 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) {
     return stack;
 }
 
-- (void) unloadData:(BOOL)selected {
-    CYViewController *top((CYViewController *) [self topViewController]);
-    bool loaded([top hasLoaded]);
+- (void) reloadData {
+    [super reloadData];
+
+    if (UIViewController *visible = [self visibleViewController])
+        [visible reloadData];
+}
 
-    for (CYViewController *page in [self viewControllers]) {
-        NSLog(@"%@ %@", page, top);
-        if (!selected || page != top)
-            [page unloadData];
-    }
+- (void) unloadData {
+    for (CYViewController *page in [self viewControllers])
+        [page unloadData];
 
-    if (selected && loaded)
-        [top reloadData];
+    [super unloadData];
 }
 
 @end
@@ -9065,7 +9068,7 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) {
 }
 
 // Navigation controller for the queuing badge.
-- (CYNavigationController *) queueNavigationController {
+- (UINavigationController *) queueNavigationController {
     NSArray *controllers = [tabbar_ viewControllers];
     return [controllers objectAtIndex:3];
 }
@@ -9075,7 +9078,7 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) {
 
     [tabbar_ unloadData];
 
-    CYNavigationController *navigation = [self queueNavigationController];
+    UINavigationController *navigation = [self queueNavigationController];
 
     id queuedelegate = nil;
     if ([[navigation viewControllers] count] > 0)
@@ -9211,7 +9214,7 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) {
 }
 
 - (void) presentModalViewController:(UIViewController *)controller force:(BOOL)force {
-    UINavigationController *navigation([[[CYNavigationController alloc] initWithRootViewController:controller] autorelease]);
+    UINavigationController *navigation([[[UINavigationController alloc] initWithRootViewController:controller] autorelease]);
     if (IsWildcat_)
         [navigation setModalPresentationStyle:UIModalPresentationFormSheet];
 
@@ -9318,7 +9321,7 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) {
 
     ConfirmationController *page([[[ConfirmationController alloc] initWithDatabase:database_] autorelease]);
     [page setDelegate:self];
-    CYNavigationController *confirm_([[[CYNavigationController alloc] initWithRootViewController:page] autorelease]);
+    UINavigationController *confirm_([[[UINavigationController alloc] initWithRootViewController:page] autorelease]);
 
     if (IsWildcat_)
         [confirm_ setModalPresentationStyle:UIModalPresentationFormSheet];
@@ -9659,7 +9662,7 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) {
     CYViewController *page([self pageForURL:url forExternal:external]);
 
     if (page != nil) {
-        CYNavigationController *nav = [[[CYNavigationController alloc] init] autorelease];
+        UINavigationController *nav = [[[UINavigationController alloc] init] autorelease];
         [nav setViewControllers:[NSArray arrayWithObject:page]];
         [tabbar_ setUnselectedViewController:nav];
     }
@@ -9766,7 +9769,7 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) {
 
     NSMutableArray *controllers([NSMutableArray array]);
     for (UITabBarItem *item in items) {
-        CYNavigationController *controller([[[CYNavigationController alloc] init] autorelease]);
+        UINavigationController *controller([[[UINavigationController alloc] init] autorelease]);
         [controller setTabBarItem:item];
         [controllers addObject:controller];
     }
@@ -9920,7 +9923,7 @@ _trace();
 
     for (unsigned int tab = 0; tab < [[tabbar_ viewControllers] count]; tab++) {
         NSArray *stack = [items objectAtIndex:tab];
-        CYNavigationController *navigation = [[tabbar_ viewControllers] objectAtIndex:tab];
+        UINavigationController *navigation = [[tabbar_ viewControllers] objectAtIndex:tab];
         NSMutableArray *current = [NSMutableArray array];
 
         for (unsigned int nav = 0; nav < [stack count]; nav++) {
index 5dbccfdb2cd9b335fc032f74d3eb9d209f4ba87a..be2331de91790d84ef14a02d6e5ee99151c3a6f5 100644 (file)
@@ -4,6 +4,8 @@
 
 @interface UIViewController (Cydia)
 - (BOOL) hasLoaded;
+- (void) reloadData;
+- (void) unloadData;
 @end
 
 @interface CYViewController : UIViewController {
index d4803f0fffc8864f976bc16ac8444aa25de3514a..8d6ea82350b32e1b854aa95ebb997bb9dd1bce7b 100644 (file)
@@ -13,6 +13,12 @@ extern bool IsWildcat_;
     return YES;
 }
 
+- (void) reloadData {
+}
+
+- (void) unloadData {
+}
+
 @end
 
 @implementation CYViewController
@@ -52,6 +58,8 @@ extern bool IsWildcat_;
 }
 
 - (void) reloadData {
+    [super reloadData];
+
     // This is called automatically on the first appearance of a controller,
     // or any other time it needs to reload the information shown. However (!),
     // this is not called by any tab bar or navigation controller's -reloadData
@@ -61,6 +69,7 @@ extern bool IsWildcat_;
 
 - (void) unloadData {
     loaded_ = NO;
+    [super unloadData];
 }
 
 - (NSURL *) navigationURL {