FRAAccountsTableViewController.m revision 2250b453beee63acbe65426ed5f4aaa90e360435
/*
* The contents of this file are subject to the terms of the Common Development and
* Distribution License (the License). You may not use this file except in compliance with the
* License.
*
* You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
* specific language governing permission and limitations under the License.
*
* When distributing Covered Software, include this CDDL Header Notice in each file and include
* the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
* Header, with the fields enclosed by brackets [] replaced by your own identifying
* information: "Portions copyright [year] [name of copyright owner]".
*
* Copyright 2016 ForgeRock AS.
*/
#import "FRAAccountsTableViewController.h"
#import "FRAAccountTableViewCell.h"
#import "FRAAccountTableViewController.h"
#import "FRABlockAlertView.h"
#import "FRAIdentity.h"
#import "FRAIdentityDatabase.h"
#import "FRAIdentityModel.h"
#import "FRAOathMechanism.h"
#import "FRAPushMechanism.h"
NSString * const FRAAccountsTableViewControllerStoryboardIdentifer = @"AccountsTableViewController";
- (void)viewDidLoad {
[super viewDidLoad];
}
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleIdentityDatabaseChanged:) name:FRAIdentityDatabaseChangedNotification object:nil];
self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerCallback:) userInfo:nil repeats:YES];
}
}
}
FRAAccountTableViewController* controller = (FRAAccountTableViewController*)segue.destinationViewController;
}
}
// Present accounts as a flat list not broken down into sections
return 1;
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
FRAAccountTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
// cell.image = ... // TODO: Use UIImageView+AFNetworking category provided by AFNetworking
FRAOathMechanism *oathMechanism = (FRAOathMechanism *)[identity mechanismOfClass:[FRAOathMechanism class]];
FRAPushMechanism *pushMechanism = (FRAPushMechanism *)[identity mechanismOfClass:[FRAPushMechanism class]];
if (oathMechanism && pushMechanism) {
cell.notificationsBadge.text = [NSString stringWithFormat:@"%lu", (unsigned long)[pushMechanism pendingNotificationsCount]];
} else if (pushMechanism) {
cell.notificationsBadge.text = [NSString stringWithFormat:@"%lu", (unsigned long)[pushMechanism pendingNotificationsCount]];
} else if (oathMechanism) {
} else {
}
return cell;
}
return YES;
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
initWithTitle:@"Removing this account will NOT turn off 2-step verification"
message:[NSString stringWithFormat:@"This may prevent you from logging into your %@ account.", identity.issuer]
cancelButtonTitle:@"Cancel"
if (offset == deleteButton) {
// TODO: Handle Error?
}
}
};
}
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)aTableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
// Only offer delete option when in edit mode (disables swipe to delete)
} else {
return UITableViewCellEditingStyleNone;
}
}
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
// make table cell separator lines full width (normally, they leave a ~10% gap at the left edge)
}
}
}
NSArray *sortedIdentities = [[self.identityModel identities] sortedArrayUsingComparator:^NSComparisonResult(FRAIdentity* first, FRAIdentity* second) {
if (comparisonResult == NSOrderedSame) {
}
return comparisonResult;
}];
}
}
}
}
@end