Add bitrate section to settings view controller.

BUG=webrtc:6654

Review-Url: https://codereview.webrtc.org/2473783003
Cr-Commit-Position: refs/heads/master@{#14952}
This commit is contained in:
denicija
2016-11-07 07:23:56 -08:00
committed by Commit bot
parent 84309bc4e6
commit 3babb99039
2 changed files with 74 additions and 5 deletions

View File

@ -172,7 +172,7 @@ static NSString *const barButtonImageString = @"ic_settings_black_24dp.png";
#pragma mark - Private
- (void)showSettings:(id)sender {
ARDSettingsViewController *settingsController =
[[ARDSettingsViewController alloc] initWithStyle:UITableViewStylePlain
[[ARDSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped
mediaConstraintsModel:[[ARDMediaConstraintsModel alloc] init]];
UINavigationController *navigationController =
[[UINavigationController alloc] initWithRootViewController:settingsController];

View File

@ -12,6 +12,12 @@
#import "ARDMediaConstraintsModel.h"
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(int, ARDSettingsSections) {
ARDSettingsSectionMediaConstraints = 0,
ARDSettingsSectionBitRate
};
@interface ARDSettingsViewController () {
ARDMediaConstraintsModel *_mediaConstraintsModel;
}
@ -79,28 +85,47 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
return 2;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.mediaConstraintsArray.count;
if ([self sectionIsMediaConstraints:section]) {
return self.mediaConstraintsArray.count;
}
return 1;
}
#pragma mark - Table view delegate
#pragma mark - Index path helpers
- (BOOL)sectionIsMediaConstraints:(int)section {
return section == 0;
return section == ARDSettingsSectionMediaConstraints;
}
- (BOOL)sectionIsBitrate:(int)section {
return section == ARDSettingsSectionBitRate;
}
- (BOOL)indexPathIsMediaConstraints:(NSIndexPath *)indexPath {
return [self sectionIsMediaConstraints:indexPath.section];
}
- (BOOL)indexPathIsBitrate:(NSIndexPath *)indexPath {
return [self sectionIsBitrate:indexPath.section];
}
#pragma mark - Table view delegate
- (nullable NSString *)tableView:(UITableView *)tableView
titleForHeaderInSection:(NSInteger)section {
if ([self sectionIsMediaConstraints:section]) {
return @"Media constraints";
}
if ([self sectionIsBitrate:section]) {
return @"Maximum bitrate";
}
return @"";
}
@ -109,6 +134,11 @@ NS_ASSUME_NONNULL_BEGIN
if ([self indexPathIsMediaConstraints:indexPath]) {
return [self mediaConstraintsTableViewCellForTableView:tableView atIndexPath:indexPath];
}
if ([self indexPathIsBitrate:indexPath]) {
return [self bitrateTableViewCellForTableView:tableView atIndexPath:indexPath];
}
return [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:@"identifier"];
}
@ -158,5 +188,44 @@ NS_ASSUME_NONNULL_BEGIN
return indexPath;
}
#pragma mark - Table view delegate(Bitrate)
- (UITableViewCell *)bitrateTableViewCellForTableView:(UITableView *)tableView
atIndexPath:(NSIndexPath *)indexPath {
NSString *dequeueIdentifier = @"ARDSettingsBitrateCellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:dequeueIdentifier];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:dequeueIdentifier];
UITextField *textField = [[UITextField alloc]
initWithFrame:CGRectMake(10, 0, cell.bounds.size.width - 20, cell.bounds.size.height)];
textField.placeholder = @"Enter max bit rate (kbps)";
textField.keyboardType = UIKeyboardTypeASCIICapableNumberPad;
// Numerical keyboards have no return button, we need to add one manually.
UIToolbar *numberToolbar =
[[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 50)];
numberToolbar.items = @[
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil
action:nil],
[[UIBarButtonItem alloc] initWithTitle:@"Apply"
style:UIBarButtonItemStyleDone
target:self
action:@selector(numberTextFieldDidEndEditing:)]
];
[numberToolbar sizeToFit];
textField.inputAccessoryView = numberToolbar;
[cell addSubview:textField];
}
return cell;
}
- (void)numberTextFieldDidEndEditing:(id)sender {
[self.view endEditing:YES];
}
@end
NS_ASSUME_NONNULL_END