From: Grant Paul Date: Sat, 16 Oct 2010 20:57:35 +0000 (-0700) Subject: Improved Queuing for cleaner code and better operation. Now it reloads the current... X-Git-Tag: v1.0.3366~98 X-Git-Url: https://git.saurik.com/cydia.git/commitdiff_plain/09c01bb0755e06d7be9b1c68250ba95531a64128?hp=72b825bcd9ce6f4691759dec0a0c31a19ed0e581 Improved Queuing for cleaner code and better operation. Now it reloads the current view when exiting a queue and while starting it, and it has a much cleaner method of adding the "Q_D" badge. --- diff --git a/Cydia.mm b/Cydia.mm index b7d2b351..1dfe4313 100644 --- a/Cydia.mm +++ b/Cydia.mm @@ -8346,6 +8346,14 @@ static _finline void _setHomePage(Cydia *self) { #endif } +// Returns the navigation controller for the queuing badge. +- (id) queueBadgeController { + int index = [self indexOfTabWithTag:kManageTag]; + if (index == -1) index = [self indexOfTabWithTag:kInstalledTag]; + + return [[tabbar_ viewControllers] objectAtIndex:index]; +} + - (void) cancelAndClear:(bool)clear { @synchronized (self) { if (clear) { @@ -8360,19 +8368,18 @@ static _finline void _setHomePage(Cydia *self) { } } - // Stop queuing, and let the appropriate controller know it. + // Stop queuing. Queuing_ = false; - [[[[tabbar_ viewControllers] objectAtIndex:[self indexOfTabWithTag:kManageTag] != -1 ? [self indexOfTabWithTag:kManageTag] : [self indexOfTabWithTag:kInstalledTag]] tabBarItem] setBadgeValue:nil]; - [queueDelegate_ queueStatusDidChange]; + [[[self queueBadgeController] tabBarItem] setBadgeValue:nil]; } else { - // Start queuing, and let the controllers know. + // Start queuing. Queuing_ = true; - - [[[[tabbar_ viewControllers] objectAtIndex:[self indexOfTabWithTag:kManageTag] != -1 ? [self indexOfTabWithTag:kManageTag] : [self indexOfTabWithTag:kInstalledTag]] tabBarItem] setBadgeValue:UCLocalize("Q_D")]; - [(CYNavigationController *)[tabbar_ selectedViewController] reloadData]; - - [queueDelegate_ queueStatusDidChange]; - } + [[[self queueBadgeController] tabBarItem] setBadgeValue:UCLocalize("Q_D")]; + } + + // Show the changes in the current view. + [(CYNavigationController *) [tabbar_ selectedViewController] reloadData]; + [queueDelegate_ queueStatusDidChange]; } }