iOS:Add loopback launch argument functionality in AppRTCMobile.

It will enable us to start immediate loopback just by passing
the "loopback" string, as argument when launching.
Usefull for testing and command line profiling.

BUG=NONE

Review-Url: https://codereview.webrtc.org/2777983004
Cr-Commit-Position: refs/heads/master@{#17426}
diff --git a/webrtc/examples/objc/AppRTCMobile/ios/ARDMainViewController.m b/webrtc/examples/objc/AppRTCMobile/ios/ARDMainViewController.m
index 593c6a2..75d454a 100644
--- a/webrtc/examples/objc/AppRTCMobile/ios/ARDMainViewController.m
+++ b/webrtc/examples/objc/AppRTCMobile/ios/ARDMainViewController.m
@@ -25,6 +25,9 @@
 
 static NSString *const barButtonImageString = @"ic_settings_black_24dp.png";
 
+// Launch argument to be passed to indicate that the app should start loopback immediatly
+static NSString *const loopbackLaunchProcessArgument = @"loopback";
+
 @interface ARDMainViewController () <
     ARDMainViewDelegate,
     ARDVideoCallViewControllerDelegate,
@@ -37,6 +40,19 @@
   BOOL _useManualAudio;
 }
 
+- (void)viewDidLoad {
+  [super viewDidLoad];
+  if ([[[NSProcessInfo processInfo] arguments] containsObject:loopbackLaunchProcessArgument]) {
+    [self mainView:nil
+                 didInputRoom:@""
+                   isLoopback:YES
+                  isAudioOnly:NO
+            shouldMakeAecDump:NO
+        shouldUseLevelControl:NO
+               useManualAudio:NO];
+  }
+}
+
 - (void)loadView {
   self.title = @"AppRTC Mobile";
   _mainView = [[ARDMainView alloc] initWithFrame:CGRectZero];
@@ -66,6 +82,12 @@
   self.navigationItem.rightBarButtonItem = settingsButton;
 }
 
++ (NSString *)loopbackRoomString {
+  NSString *loopbackRoomString =
+      [[NSUUID UUID].UUIDString stringByReplacingOccurrencesOfString:@"-" withString:@""];
+  return loopbackRoomString;
+}
+
 #pragma mark - ARDMainViewDelegate
 
 - (void)mainView:(ARDMainView *)mainView
@@ -76,8 +98,13 @@
     shouldUseLevelControl:(BOOL)shouldUseLevelControl
            useManualAudio:(BOOL)useManualAudio {
   if (!room.length) {
-    [self showAlertWithMessage:@"Missing room name."];
-    return;
+    if (isLoopback) {
+      // If this is a loopback call, allow a generated room name.
+      room = [[self class] loopbackRoomString];
+    } else {
+      [self showAlertWithMessage:@"Missing room name."];
+      return;
+    }
   }
   // Trim whitespaces.
   NSCharacterSet *whitespaceSet = [NSCharacterSet whitespaceCharacterSet];