X-Git-Url: https://git.saurik.com/cydia.git/blobdiff_plain/c8e3b4b3ec338525a2bdd4e0e2632b659d21e940..f29cbeea3812e23082f13c922910bc9756ce650d:/Cydia.mm diff --git a/Cydia.mm b/Cydia.mm index 02c2ae9a..4cb84eb0 100644 --- a/Cydia.mm +++ b/Cydia.mm @@ -116,6 +116,8 @@ extern "C" { #include +#include + #import "UICaboodle/BrowserView.h" #import "UICaboodle/ResetView.h" @@ -257,6 +259,15 @@ static _finline NSString *CydiaURL(NSString *path) { return [[NSString stringWithUTF8String:page] stringByAppendingString:path]; } +static _finline void UpdateExternalStatus(uint64_t newStatus) { + int notify_token; + if (notify_register_check("com.saurik.Cydia.status", ¬ify_token) == NOTIFY_STATUS_OK) { + notify_set_state(notify_token, newStatus); + notify_cancel(notify_token); + } + notify_post("com.saurik.Cydia.status"); +} + /* [NSObject yieldToSelector:(withObject:)] {{{*/ @interface NSObject (Cydia) - (id) yieldToSelector:(SEL)selector withObject:(id)object; @@ -4020,22 +4031,6 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { [super dealloc]; } -- (void) actionSheet:(UIActionSheet *)sheet clickedButtonAtIndex:(NSInteger)button { - NSString *context([sheet context]); - - if ([context isEqualToString:@"cancel"]) { - bool clear; - - if (button == [sheet cancelButtonIndex]) return; - else if (button == [sheet destructiveButtonIndex]) clear = true; - else clear = false; - - [sheet dismissWithClickedButtonIndex:0xDEADBEEF animated:YES]; - [self dismissModalViewControllerAnimated:YES]; - [delegate_ cancelAndClear:clear]; - } -} - - (void) alertView:(UIAlertView *)alert clickedButtonAtIndex:(NSInteger)button { NSString *context([alert context]); @@ -4057,11 +4052,19 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { } } +- (id) invokeDefaultMethodWithArguments:(NSArray *)args { + [self dismissModalViewControllerAnimated:YES]; + [delegate_ cancelAndClear:NO]; + + return nil; +} + - (void) webView:(WebView *)sender didClearWindowObject:(WebScriptObject *)window forFrame:(WebFrame *)frame { [super webView:sender didClearWindowObject:window forFrame:frame]; [window setValue:changes_ forKey:@"changes"]; [window setValue:issues_ forKey:@"issues"]; [window setValue:sizes_ forKey:@"sizes"]; + [window setValue:self forKey:@"queue"]; } - (id) initWithDatabase:(Database *)database { @@ -4152,7 +4155,7 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { [self loadURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"confirm" ofType:@"html"]]]; UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] - initWithTitle:[NSString stringWithFormat:UCLocalize("SLASH_DELIMITED"), UCLocalize("CANCEL"), UCLocalize("QUEUE")] + initWithTitle:UCLocalize("CANCEL")//[NSString stringWithFormat:UCLocalize("SLASH_DELIMITED"), UCLocalize("CANCEL"), UCLocalize("QUEUE")] style:UIBarButtonItemStylePlain target:self action:@selector(cancelButtonClicked) @@ -4179,20 +4182,8 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { } - (void) cancelButtonClicked { - UIActionSheet *sheet = [[UIActionSheet alloc] - initWithTitle:nil - delegate:self - cancelButtonTitle:nil - destructiveButtonTitle:nil - otherButtonTitles:nil - ]; - - [sheet addButtonWithTitle:UCLocalize("CANCEL_CLEAR")]; - [sheet setDestructiveButtonIndex:[sheet numberOfButtons] - 1]; - [sheet addButtonWithTitle:UCLocalize("CONTINUE_QUEUING")]; - [sheet setContext:@"cancel"]; - - [delegate_ showActionSheet:[sheet autorelease] fromItem:[[self navigationItem] leftBarButtonItem]]; + [self dismissModalViewControllerAnimated:YES]; + [delegate_ cancelAndClear:YES]; } #if !AlwaysReload @@ -4397,6 +4388,8 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { - (void) closeButtonPushed { running_ = NO; + UpdateExternalStatus(0); + switch (Finish_) { case 0: [self dismissModalViewControllerAnimated:YES]; @@ -4470,6 +4463,8 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { system("su -c /usr/bin/uicache mobile"); + UpdateExternalStatus(Finish_ == 0 ? 2 : 0); + [delegate_ setStatusBarShowsProgress:NO]; } @@ -4481,6 +4476,8 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { } - (void) detachNewThreadSelector:(SEL)selector toTarget:(id)target withObject:(id)object title:(NSString *)title { + UpdateExternalStatus(1); + if (title_ != nil) [title_ release]; if (title == nil) @@ -5067,9 +5064,9 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { return files_ == nil ? 0 : [files_ count]; } -- (float) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { - return 24; -} +/*- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 24.0f; +}*/ - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *reuseIdentifier = @"Cell"; @@ -5094,6 +5091,8 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { files_ = [[NSMutableArray arrayWithCapacity:32] retain]; list_ = [[UITableView alloc] initWithFrame:[[self view] bounds]]; + [list_ setAutoresizingMask:UIViewAutoresizingFlexibleBoth]; + [list_ setRowHeight:24.0f]; [[self view] addSubview:list_]; [list_ setDataSource:self]; @@ -5264,7 +5263,11 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { } - (void) reloadButtonClicked { - // You don't reload a package view by clicking the button. + // Don't reload a package view by clicking the button. +} + +- (void) applyLoadingTitle { + // Don't show "Loading" as the title. Ever. } #endif @@ -5432,10 +5435,9 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { [list_ deselectRowAtIndexPath:[list_ indexPathForSelectedRow] animated:animated]; } -- (CGFloat) tableView:(UITableView *)table heightForRowAtIndexPath:(NSIndexPath *)path { - return 73; +/*- (CGFloat) tableView:(UITableView *)table heightForRowAtIndexPath:(NSIndexPath *)path { return [PackageCell heightForPackage:[self packageAtIndexPath:path]]; -} +}*/ - (NSIndexPath *) tableView:(UITableView *)table willSelectRowAtIndexPath:(NSIndexPath *)path { Package *package([self packageAtIndexPath:path]); @@ -5467,6 +5469,7 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { list_ = [[UITableView alloc] initWithFrame:[self bounds] style:UITableViewStylePlain]; [list_ setAutoresizingMask:UIViewAutoresizingFlexibleBoth]; + [list_ setRowHeight:73.0f]; [self addSubview:list_]; [list_ setDataSource:self]; @@ -6397,11 +6400,15 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { - (void) queueButtonClicked { [delegate_ queue]; } -#endif -- (void) didFinishLoading { - [self queueStatusDidChange]; +- (void) applyLoadingTitle { + // No "Loading" title. +} + +- (void) applyRightButton { + // No right button. } +#endif - (void) queueStatusDidChange { #if !AlwaysReload @@ -6758,9 +6765,9 @@ freeing the view controllers on tab change */ return editing_ ? [sections_ count] : [filtered_ count] + 1; } -- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { - return 45; -} +/*- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 45.0f; +}*/ - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *reuseIdentifier = @"SectionCell"; @@ -6816,6 +6823,7 @@ freeing the view controllers on tab change */ list_ = [[UITableView alloc] initWithFrame:[[self view] bounds]]; [list_ setAutoresizingMask:UIViewAutoresizingFlexibleBoth]; + [list_ setRowHeight:45.0f]; [[self view] addSubview:list_]; [list_ setDataSource:self]; @@ -7011,10 +7019,9 @@ freeing the view controllers on tab change */ return cell; } -- (CGFloat) tableView:(UITableView *)table heightForRowAtIndexPath:(NSIndexPath *)path { - return 73; +/*- (CGFloat) tableView:(UITableView *)table heightForRowAtIndexPath:(NSIndexPath *)path { return [PackageCell heightForPackage:[self packageAtIndexPath:path]]; -} +}*/ - (NSIndexPath *) tableView:(UITableView *)table willSelectRowAtIndexPath:(NSIndexPath *)path { Package *package([self packageAtIndexPath:path]); @@ -7046,6 +7053,7 @@ freeing the view controllers on tab change */ list_ = [[UITableView alloc] initWithFrame:[[self view] bounds] style:UITableViewStylePlain]; [list_ setAutoresizingMask:UIViewAutoresizingFlexibleBoth]; + [list_ setRowHeight:73.0f]; [[self view] addSubview:list_]; [list_ setDataSource:self];