UIActionSheetDelegate
> {
_transient Database *database_;
- Package *package_;
- NSString *name_;
+ _H<Package> package_;
+ _H<NSString> name_;
bool commercial_;
- NSMutableArray *buttons_;
- UIBarButtonItem *button_;
+ _H<NSMutableArray> buttons_;
+ _H<UIBarButtonItem> button_;
}
- (id) initWithDatabase:(Database *)database forPackage:(NSString *)name;
@implementation CYPackageController
-- (void) dealloc {
- if (package_ != nil)
- [package_ release];
- if (name_ != nil)
- [name_ release];
-
- [buttons_ release];
-
- if (button_ != nil)
- [button_ release];
-
- [super dealloc];
-}
-
- (NSURL *) navigationURL {
- return [NSURL URLWithString:[NSString stringWithFormat:@"cydia://package/%@", name_]];
+ return [NSURL URLWithString:[NSString stringWithFormat:@"cydia://package/%@", (id) name_]];
}
- (bool) _allowNavigationAction {
- (id) initWithDatabase:(Database *)database forPackage:(NSString *)name {
if ((self = [super init]) != nil) {
database_ = database;
- buttons_ = [[NSMutableArray alloc] initWithCapacity:4];
- name_ = [[NSString alloc] initWithString:name];
- [self setURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@/#!/package/%@", UI_, name_]]];
+ buttons_ = [NSMutableArray arrayWithCapacity:4];
+ name_ = [NSString stringWithString:name];
+ [self setURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@/#!/package/%@", UI_, (id) name_]]];
} return self;
}
- (void) reloadData {
- if (package_ != nil)
- [package_ autorelease];
package_ = [database_ packageWithName:name_];
[buttons_ removeAllObjects];
if (package_ != nil) {
- [package_ parse];
+ [(Package *) package_ parse];
- package_ = [package_ retain];
commercial_ = [package_ isCommercial];
if ([package_ mode] != nil)
[buttons_ addObject:UCLocalize("REMOVE")];
}
- if (button_ != nil)
- [button_ release];
-
NSString *title;
switch ([buttons_ count]) {
case 0: title = nil; break;
default: title = UCLocalize("MODIFY"); break;
}
- button_ = [[UIBarButtonItem alloc]
+ button_ = [[[UIBarButtonItem alloc]
initWithTitle:title
style:UIBarButtonItemStylePlain
target:self
action:@selector(customButtonClicked)
- ];
+ ] autorelease];
[super reloadData];
}
/* Section Controller {{{ */
@interface SectionController : FilteredPackageListController {
- NSString *section_;
+ _H<NSString> section_;
}
- (id) initWithDatabase:(Database *)database section:(NSString *)section;
@interface SearchController : FilteredPackageListController <
UISearchBarDelegate
> {
- UISearchBar *search_;
+ _H<UISearchBar> search_;
BOOL searchloaded_;
}
@implementation SearchController
- (void) dealloc {
- [search_ release];
+ [search_ setDelegate:nil];
[super dealloc];
}
- (id) initWithDatabase:(Database *)database {
if ((self = [super initWithDatabase:database title:UCLocalize("SEARCH") filter:@selector(isUnfilteredAndSearchedForBy:) with:nil])) {
- search_ = [[UISearchBar alloc] init];
+ search_ = [[[UISearchBar alloc] init] autorelease];
+ [search_ setDelegate:self];
} return self;
}
textField = MSHookIvar<UITextField *>(search_, "_searchField");
[textField setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin];
- [search_ setDelegate:self];
[textField setEnablesReturnKeyAutomatically:NO];
[[self navigationItem] setTitleView:textField];
}