Rename media constraints model and store.

ARDMediaConstraintsModel -> ARDSettingsModel
ARDMediaConstraintsSettingsStore -> ARDSettingsStore
ARDMediaConstraintsModelTests -> ARDSettingsModelTests

Both classes will be used to storing other settings as well, so we need a
more appropriate naming.

BUG=webrtc:6654

Review-Url: https://codereview.webrtc.org/2479153002
Cr-Commit-Position: refs/heads/master@{#15002}
diff --git a/webrtc/examples/objc/AppRTCMobile/ios/ARDSettingsModel.m b/webrtc/examples/objc/AppRTCMobile/ios/ARDSettingsModel.m
new file mode 100644
index 0000000..61b5c50
--- /dev/null
+++ b/webrtc/examples/objc/AppRTCMobile/ios/ARDSettingsModel.m
@@ -0,0 +1,104 @@
+/*
+ *  Copyright 2016 The WebRTC Project Authors. All rights reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#import "ARDSettingsModel+Private.h"
+#import "ARDSettingsStore.h"
+#import "WebRTC/RTCMediaConstraints.h"
+
+NS_ASSUME_NONNULL_BEGIN
+static NSArray<NSString *> *videoResolutionsStaticValues() {
+  return @[ @"640x480", @"960x540", @"1280x720" ];
+}
+
+@interface ARDSettingsModel () {
+  ARDSettingsStore *_settingsStore;
+}
+@end
+
+@implementation ARDSettingsModel
+
+- (NSArray<NSString *> *)availableVideoResoultionsMediaConstraints {
+  return videoResolutionsStaticValues();
+}
+
+- (NSString *)currentVideoResoultionConstraintFromStore {
+  NSString *constraint = [[self settingsStore] videoResolutionConstraintsSetting];
+  if (!constraint) {
+    constraint = [self defaultVideoResolutionMediaConstraint];
+    // To ensure consistency add the default to the store.
+    [[self settingsStore] setVideoResolutionConstraintsSetting:constraint];
+  }
+  return constraint;
+}
+
+- (BOOL)storeVideoResoultionConstraint:(NSString *)constraint {
+  if (![[self availableVideoResoultionsMediaConstraints] containsObject:constraint]) {
+    return NO;
+  }
+  [[self settingsStore] setVideoResolutionConstraintsSetting:constraint];
+  return YES;
+}
+
+#pragma mark - Testable
+
+- (ARDSettingsStore *)settingsStore {
+  if (!_settingsStore) {
+    _settingsStore = [[ARDSettingsStore alloc] init];
+  }
+  return _settingsStore;
+}
+
+- (nullable NSString *)currentVideoResolutionWidthFromStore {
+  NSString *mediaConstraintFromStore = [self currentVideoResoultionConstraintFromStore];
+
+  return [self videoResolutionComponentAtIndex:0 inConstraintsString:mediaConstraintFromStore];
+}
+
+- (nullable NSString *)currentVideoResolutionHeightFromStore {
+  NSString *mediaConstraintFromStore = [self currentVideoResoultionConstraintFromStore];
+  return [self videoResolutionComponentAtIndex:1 inConstraintsString:mediaConstraintFromStore];
+}
+
+#pragma mark -
+
+- (NSString *)defaultVideoResolutionMediaConstraint {
+  return videoResolutionsStaticValues()[0];
+}
+
+- (nullable NSString *)videoResolutionComponentAtIndex:(int)index
+                                   inConstraintsString:(NSString *)constraint {
+  if (index != 0 && index != 1) {
+    return nil;
+  }
+  NSArray *components = [constraint componentsSeparatedByString:@"x"];
+  if (components.count != 2) {
+    return nil;
+  }
+  return components[index];
+}
+
+#pragma mark - Conversion to RTCMediaConstraints
+
+- (nullable NSDictionary *)currentMediaConstraintFromStoreAsRTCDictionary {
+  NSDictionary *mediaConstraintsDictionary = nil;
+
+  NSString *widthConstraint = [self currentVideoResolutionWidthFromStore];
+  NSString *heightConstraint = [self currentVideoResolutionHeightFromStore];
+  if (widthConstraint && heightConstraint) {
+    mediaConstraintsDictionary = @{
+      kRTCMediaConstraintsMinWidth : widthConstraint,
+      kRTCMediaConstraintsMinHeight : heightConstraint
+    };
+  }
+  return mediaConstraintsDictionary;
+}
+
+@end
+NS_ASSUME_NONNULL_END