Update iOS AppRTCDemo to use level controller.

NOTRY=True
BUG=

Review-Url: https://codereview.webrtc.org/2294913003
Cr-Commit-Position: refs/heads/master@{#13977}
diff --git a/webrtc/examples/objc/AppRTCDemo/ios/ARDMainView.h b/webrtc/examples/objc/AppRTCDemo/ios/ARDMainView.h
index e9f4991..81f9d00 100644
--- a/webrtc/examples/objc/AppRTCDemo/ios/ARDMainView.h
+++ b/webrtc/examples/objc/AppRTCDemo/ios/ARDMainView.h
@@ -15,11 +15,12 @@
 @protocol ARDMainViewDelegate <NSObject>
 
 - (void)mainView:(ARDMainView *)mainView
-         didInputRoom:(NSString *)room
-           isLoopback:(BOOL)isLoopback
-          isAudioOnly:(BOOL)isAudioOnly
-    shouldMakeAecDump:(BOOL)shouldMakeAecDump
-       useManualAudio:(BOOL)useManualAudio;
+             didInputRoom:(NSString *)room
+               isLoopback:(BOOL)isLoopback
+              isAudioOnly:(BOOL)isAudioOnly
+        shouldMakeAecDump:(BOOL)shouldMakeAecDump
+    shouldUseLevelControl:(BOOL)shouldUseLevelControl
+           useManualAudio:(BOOL)useManualAudio;
 
 - (void)mainViewDidToggleAudioLoop:(ARDMainView *)mainView;
 
diff --git a/webrtc/examples/objc/AppRTCDemo/ios/ARDMainView.m b/webrtc/examples/objc/AppRTCDemo/ios/ARDMainView.m
index 59b428a..d952204 100644
--- a/webrtc/examples/objc/AppRTCDemo/ios/ARDMainView.m
+++ b/webrtc/examples/objc/AppRTCDemo/ios/ARDMainView.m
@@ -121,6 +121,8 @@
   UILabel *_audioOnlyLabel;
   UISwitch *_aecdumpSwitch;
   UILabel *_aecdumpLabel;
+  UISwitch *_levelControlSwitch;
+  UILabel *_levelControlLabel;
   UISwitch *_loopbackSwitch;
   UILabel *_loopbackLabel;
   UISwitch *_useManualAudioSwitch;
@@ -187,6 +189,17 @@
     [_aecdumpLabel sizeToFit];
     [self addSubview:_aecdumpLabel];
 
+    _levelControlSwitch = [[UISwitch alloc] initWithFrame:CGRectZero];
+    [_levelControlSwitch sizeToFit];
+    [self addSubview:_levelControlSwitch];
+
+    _levelControlLabel = [[UILabel alloc] initWithFrame:CGRectZero];
+    _levelControlLabel.text = @"Use level controller";
+    _levelControlLabel.font = controlFont;
+    _levelControlLabel.textColor = controlFontColor;
+    [_levelControlLabel sizeToFit];
+    [self addSubview:_levelControlLabel];
+
     _useManualAudioSwitch = [[UISwitch alloc] initWithFrame:CGRectZero];
     [_useManualAudioSwitch sizeToFit];
     _useManualAudioSwitch.on = YES;
@@ -299,9 +312,20 @@
   _aecdumpLabel.center = CGPointMake(aecdumpModeLabelCenterX,
                                      CGRectGetMidY(aecdumpModeRect));
 
+  CGFloat levelControlModeTop =
+       CGRectGetMaxY(_aecdumpSwitch.frame) + kCallControlMargin;
+  CGRect levelControlModeRect = CGRectMake(kCallControlMargin * 3,
+                                           levelControlModeTop,
+                                           _levelControlSwitch.frame.size.width,
+                                           _levelControlSwitch.frame.size.height);
+  _levelControlSwitch.frame = levelControlModeRect;
+  CGFloat levelControlModeLabelCenterX = CGRectGetMaxX(levelControlModeRect) +
+      kCallControlMargin + _levelControlLabel.frame.size.width / 2;
+  _levelControlLabel.center = CGPointMake(levelControlModeLabelCenterX,
+                                         CGRectGetMidY(levelControlModeRect));
 
   CGFloat useManualAudioTop =
-      CGRectGetMaxY(_aecdumpSwitch.frame) + kCallControlMargin;
+      CGRectGetMaxY(_levelControlSwitch.frame) + kCallControlMargin;
   CGRect useManualAudioRect =
       CGRectMake(kCallControlMargin * 3,
                  useManualAudioTop,
@@ -361,6 +385,7 @@
                   isLoopback:_loopbackSwitch.isOn
                  isAudioOnly:_audioOnlySwitch.isOn
            shouldMakeAecDump:_aecdumpSwitch.isOn
+       shouldUseLevelControl:_levelControlSwitch.isOn
               useManualAudio:_useManualAudioSwitch.isOn];
 }
 
diff --git a/webrtc/examples/objc/AppRTCDemo/ios/ARDMainViewController.m b/webrtc/examples/objc/AppRTCDemo/ios/ARDMainViewController.m
index 21f00cb..e392168 100644
--- a/webrtc/examples/objc/AppRTCDemo/ios/ARDMainViewController.m
+++ b/webrtc/examples/objc/AppRTCDemo/ios/ARDMainViewController.m
@@ -54,11 +54,12 @@
 #pragma mark - ARDMainViewDelegate
 
 - (void)mainView:(ARDMainView *)mainView
-         didInputRoom:(NSString *)room
-           isLoopback:(BOOL)isLoopback
-          isAudioOnly:(BOOL)isAudioOnly
-    shouldMakeAecDump:(BOOL)shouldMakeAecDump
-    useManualAudio:(BOOL)useManualAudio {
+             didInputRoom:(NSString *)room
+               isLoopback:(BOOL)isLoopback
+              isAudioOnly:(BOOL)isAudioOnly
+        shouldMakeAecDump:(BOOL)shouldMakeAecDump
+    shouldUseLevelControl:(BOOL)shouldUseLevelControl
+           useManualAudio:(BOOL)useManualAudio {
   if (!room.length) {
     [self showAlertWithMessage:@"Missing room name."];
     return;
@@ -98,6 +99,7 @@
                                            isLoopback:isLoopback
                                           isAudioOnly:isAudioOnly
                                     shouldMakeAecDump:shouldMakeAecDump
+                                shouldUseLevelControl:shouldUseLevelControl
                                              delegate:self];
   videoCallViewController.modalTransitionStyle =
       UIModalTransitionStyleCrossDissolve;
diff --git a/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.h b/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.h
index ffffd12..3ca2dc2 100644
--- a/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.h
+++ b/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.h
@@ -25,6 +25,7 @@
                  isLoopback:(BOOL)isLoopback
                 isAudioOnly:(BOOL)isAudioOnly
           shouldMakeAecDump:(BOOL)shouldMakeAecDump
+      shouldUseLevelControl:(BOOL)shouldUseLevelControl
                    delegate:(id<ARDVideoCallViewControllerDelegate>)delegate;
 
 @end
diff --git a/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.m b/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.m
index bb49ca4..aa9ea21 100644
--- a/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.m
+++ b/webrtc/examples/objc/AppRTCDemo/ios/ARDVideoCallViewController.m
@@ -40,6 +40,7 @@
                  isLoopback:(BOOL)isLoopback
                 isAudioOnly:(BOOL)isAudioOnly
           shouldMakeAecDump:(BOOL)shouldMakeAecDump
+      shouldUseLevelControl:(BOOL)shouldUseLevelControl
                    delegate:(id<ARDVideoCallViewControllerDelegate>)delegate {
   if (self = [super init]) {
     _delegate = delegate;
@@ -47,7 +48,8 @@
     [_client connectToRoomWithId:room
                       isLoopback:isLoopback
                      isAudioOnly:isAudioOnly
-               shouldMakeAecDump:shouldMakeAecDump];
+               shouldMakeAecDump:shouldMakeAecDump
+           shouldUseLevelControl:shouldUseLevelControl];
   }
   return self;
 }