Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(289)

Unified Diff: webrtc/examples/objc/AppRTCMobile/ios/ARDSettingsViewController.m

Issue 2473783003: Add bitrate section to settings view controller. (Closed)
Patch Set: Add bitrate section to settings view controller. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/examples/objc/AppRTCMobile/ios/ARDMainViewController.m ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/examples/objc/AppRTCMobile/ios/ARDSettingsViewController.m
diff --git a/webrtc/examples/objc/AppRTCMobile/ios/ARDSettingsViewController.m b/webrtc/examples/objc/AppRTCMobile/ios/ARDSettingsViewController.m
index 1df98926732bb45d8d89e50e54406a6469ad8059..63f5c43483ba48f19bedafe9a1b331850dcc6917 100644
--- a/webrtc/examples/objc/AppRTCMobile/ios/ARDSettingsViewController.m
+++ b/webrtc/examples/objc/AppRTCMobile/ios/ARDSettingsViewController.m
@@ -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 = UIKeyboardTypeNumberPad;
+
+ // 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
« no previous file with comments | « webrtc/examples/objc/AppRTCMobile/ios/ARDMainViewController.m ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698