diff options
Diffstat (limited to 'ios/iosremote/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.m')
-rwxr-xr-x | ios/iosremote/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.m | 204 |
1 files changed, 0 insertions, 204 deletions
diff --git a/ios/iosremote/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.m b/ios/iosremote/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.m deleted file mode 100755 index f1617887e06c..000000000000 --- a/ios/iosremote/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.m +++ /dev/null @@ -1,204 +0,0 @@ -// -// IASKSpecifierValuesViewController.m -// http://www.inappsettingskit.com -// -// Copyright (c) 2009: -// Luc Vandal, Edovia Inc., http://www.edovia.com -// Ortwin Gentz, FutureTap GmbH, http://www.futuretap.com -// All rights reserved. -// -// It is appreciated but not required that you give credit to Luc Vandal and Ortwin Gentz, -// as the original authors of this code. You can give credit in a blog post, a tweet or on -// a info page of your app. Also, the original authors appreciate letting them know if you use this code. -// -// This code is licensed under the BSD license that is available at: http://www.opensource.org/licenses/bsd-license.php -// - -#import "IASKSpecifierValuesViewController.h" -#import "IASKSpecifier.h" -#import "IASKSettingsReader.h" -#import "IASKSettingsStoreUserDefaults.h" - -#define kCellValue @"kCellValue" - -@interface IASKSpecifierValuesViewController() -- (void)userDefaultsDidChange; -@end - -@implementation IASKSpecifierValuesViewController - -@synthesize tableView=_tableView; -@synthesize currentSpecifier=_currentSpecifier; -@synthesize checkedItem=_checkedItem; -@synthesize settingsReader = _settingsReader; -@synthesize settingsStore = _settingsStore; - -- (void) updateCheckedItem { - NSInteger index; - - // Find the currently checked item - if([self.settingsStore objectForKey:[_currentSpecifier key]]) { - index = [[_currentSpecifier multipleValues] indexOfObject:[self.settingsStore objectForKey:[_currentSpecifier key]]]; - } else { - index = [[_currentSpecifier multipleValues] indexOfObject:[_currentSpecifier defaultValue]]; - } - [self setCheckedItem:[NSIndexPath indexPathForRow:index inSection:0]]; -} - -- (id<IASKSettingsStore>)settingsStore { - if(_settingsStore == nil) { - _settingsStore = [[IASKSettingsStoreUserDefaults alloc] init]; - } - return _settingsStore; -} - -- (void)viewDidLoad -{ - [super viewDidLoad]; - UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Done", nil) style:UIBarButtonItemStyleBordered target:self action:@selector(handleBack)]; - [backButton setBackgroundImage:[UIImage imageNamed:@"backButton"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; - self.navigationItem.leftBarButtonItem = backButton; - - self.view.backgroundColor = [UIColor colorWithRed:.968627451 green:.968627451 blue:.968627451 alpha:1.0]; -} - -- (void)viewWillAppear:(BOOL)animated { - if (_currentSpecifier) { - [self setTitle:[_currentSpecifier title]]; - [self updateCheckedItem]; - } - - if (_tableView) { - [_tableView reloadData]; - - // Make sure the currently checked item is visible - [_tableView scrollToRowAtIndexPath:[self checkedItem] atScrollPosition:UITableViewScrollPositionMiddle animated:NO]; - } - [super viewWillAppear:animated]; -} - -- (void)viewDidAppear:(BOOL)animated { - [_tableView flashScrollIndicators]; - [super viewDidAppear:animated]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(userDefaultsDidChange) - name:NSUserDefaultsDidChangeNotification - object:[NSUserDefaults standardUserDefaults]]; -} - -- (void)viewDidDisappear:(BOOL)animated { - [[NSNotificationCenter defaultCenter] removeObserver:self name:NSUserDefaultsDidChangeNotification object:nil]; - [super viewDidDisappear:animated]; -} - - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - return YES; -} - -- (void)didReceiveMemoryWarning { - // Releases the view if it doesn't have a superview. - [super didReceiveMemoryWarning]; - - // Release any cached data, images, etc that aren't in use. -} - -- (void)viewDidUnload { - // Release any retained subviews of the main view. - // e.g. self.myOutlet = nil; - self.tableView = nil; -} - - -- (void)dealloc { - _currentSpecifier = nil; - _checkedItem = nil; - _settingsReader = nil; - _settingsStore = nil; - _tableView = nil; -} - - -#pragma mark - -#pragma mark UITableView delegates - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - return 1; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - return [_currentSpecifier multipleValuesCount]; -} - -- (void)selectCell:(UITableViewCell *)cell { - [cell setAccessoryType:UITableViewCellAccessoryCheckmark]; - [[cell textLabel] setTextColor:kIASKgrayBlueColor]; -} - -- (void)deselectCell:(UITableViewCell *)cell { - [cell setAccessoryType:UITableViewCellAccessoryNone]; - [[cell textLabel] setTextColor:[UIColor darkTextColor]]; -} - -- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section { - return [_currentSpecifier footerText]; -} - -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellValue]; - NSArray *titles = [_currentSpecifier multipleTitles]; - - if (!cell) { - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCellValue]; - } - - if ([indexPath isEqual:[self checkedItem]]) { - [self selectCell:cell]; - } else { - [self deselectCell:cell]; - } - - @try { - [[cell textLabel] setText:[self.settingsReader titleForStringId:[titles objectAtIndex:indexPath.row]]]; - } - @catch (NSException * e) {} - return cell; -} - -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { - - if (indexPath == [self checkedItem]) { - [tableView deselectRowAtIndexPath:indexPath animated:YES]; - return; - } - - NSArray *values = [_currentSpecifier multipleValues]; - - [tableView deselectRowAtIndexPath:indexPath animated:YES]; - [self deselectCell:[tableView cellForRowAtIndexPath:[self checkedItem]]]; - [self selectCell:[tableView cellForRowAtIndexPath:indexPath]]; - [self setCheckedItem:indexPath]; - - [self.settingsStore setObject:[values objectAtIndex:indexPath.row] forKey:[_currentSpecifier key]]; - [self.settingsStore synchronize]; - [[NSNotificationCenter defaultCenter] postNotificationName:kIASKAppSettingChanged - object:[_currentSpecifier key] - userInfo:[NSDictionary dictionaryWithObject:[values objectAtIndex:indexPath.row] - forKey:[_currentSpecifier key]]]; -} - -#pragma mark Notifications - -- (void)userDefaultsDidChange { - NSIndexPath *oldCheckedItem = self.checkedItem; - if(_currentSpecifier) { - [self updateCheckedItem]; - } - - // only reload the table if it had changed; prevents animation cancellation - if (![self.checkedItem isEqual:oldCheckedItem]) { - [_tableView reloadData]; - } -} - -@end |