Files
main/Tweaks/FLEX/GlobalStateExplorers/FLEXCookiesViewController.m
2023-06-27 09:54:41 +02:00

77 lines
2.4 KiB
Objective-C

//
// FLEXCookiesViewController.m
// FLEX
//
// Created by Rich Robinson on 19/10/2015.
// Copyright © 2020 FLEX Team. All rights reserved.
//
#import "FLEXCookiesViewController.h"
#import "FLEXObjectExplorerFactory.h"
#import "FLEXMutableListSection.h"
#import "FLEXUtility.h"
@interface FLEXCookiesViewController ()
@property (nonatomic, readonly) FLEXMutableListSection<NSHTTPCookie *> *cookies;
@property (nonatomic) NSString *headerTitle;
@end
@implementation FLEXCookiesViewController
#pragma mark - Overrides
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"Cookies";
}
- (NSArray<FLEXTableViewSection *> *)makeSections {
NSSortDescriptor *nameSortDescriptor = [[NSSortDescriptor alloc]
initWithKey:@"name" ascending:YES selector:@selector(caseInsensitiveCompare:)
];
NSArray *cookies = [NSHTTPCookieStorage.sharedHTTPCookieStorage.cookies
sortedArrayUsingDescriptors:@[nameSortDescriptor]
];
_cookies = [FLEXMutableListSection list:cookies
cellConfiguration:^(UITableViewCell *cell, NSHTTPCookie *cookie, NSInteger row) {
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
cell.textLabel.text = [cookie.name stringByAppendingFormat:@" (%@)", cookie.value];
cell.detailTextLabel.text = [cookie.domain stringByAppendingFormat:@" — %@", cookie.path];
} filterMatcher:^BOOL(NSString *filterText, NSHTTPCookie *cookie) {
return [cookie.name localizedCaseInsensitiveContainsString:filterText] ||
[cookie.value localizedCaseInsensitiveContainsString:filterText] ||
[cookie.domain localizedCaseInsensitiveContainsString:filterText] ||
[cookie.path localizedCaseInsensitiveContainsString:filterText];
}
];
self.cookies.selectionHandler = ^(UIViewController *host, NSHTTPCookie *cookie) {
[host.navigationController pushViewController:[
FLEXObjectExplorerFactory explorerViewControllerForObject:cookie
] animated:YES];
};
return @[self.cookies];
}
- (void)reloadData {
self.headerTitle = [NSString stringWithFormat:
@"%@ cookies", @(self.cookies.filteredList.count)
];
[super reloadData];
}
#pragma mark - FLEXGlobalsEntry
+ (NSString *)globalsEntryTitle:(FLEXGlobalsRow)row {
return @"🍪 Cookies";
}
+ (UIViewController *)globalsEntryViewController:(FLEXGlobalsRow)row {
return [self new];
}
@end