
This is a propagation of upstream chromium change needed to resume DEPS autorolls into WebRTC. Original comment from upstream change: > This change is made in preparation for an ErrorProne > check to catch this at compile time. See bug for details. Bug: chromium:771683 Change-Id: I56aed15f73a633dcadae7ece6c645cd3596f9257 Reviewed-on: https://webrtc-review.googlesource.com/c/113505 Reviewed-by: Oleh Prypin <oprypin@webrtc.org> Reviewed-by: Henrik Andreassson <henrika@webrtc.org> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Commit-Queue: Artem Titarenko <artit@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25951}
100 lines
2.4 KiB
Java
100 lines
2.4 KiB
Java
/*
|
|
* Copyright 2013 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.
|
|
*/
|
|
|
|
package org.webrtc;
|
|
|
|
import android.support.annotation.Nullable;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Description of media constraints for {@code MediaStream} and
|
|
* {@code PeerConnection}.
|
|
*/
|
|
public class MediaConstraints {
|
|
/** Simple String key/value pair. */
|
|
public static class KeyValuePair {
|
|
private final String key;
|
|
private final String value;
|
|
|
|
public KeyValuePair(String key, String value) {
|
|
this.key = key;
|
|
this.value = value;
|
|
}
|
|
|
|
@CalledByNative("KeyValuePair")
|
|
public String getKey() {
|
|
return key;
|
|
}
|
|
|
|
@CalledByNative("KeyValuePair")
|
|
public String getValue() {
|
|
return value;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return key + ": " + value;
|
|
}
|
|
|
|
@Override
|
|
public boolean equals(@Nullable Object other) {
|
|
if (this == other) {
|
|
return true;
|
|
}
|
|
if (other == null || getClass() != other.getClass()) {
|
|
return false;
|
|
}
|
|
KeyValuePair that = (KeyValuePair) other;
|
|
return key.equals(that.key) && value.equals(that.value);
|
|
}
|
|
|
|
@Override
|
|
public int hashCode() {
|
|
return key.hashCode() + value.hashCode();
|
|
}
|
|
}
|
|
|
|
public final List<KeyValuePair> mandatory;
|
|
public final List<KeyValuePair> optional;
|
|
|
|
public MediaConstraints() {
|
|
mandatory = new ArrayList<KeyValuePair>();
|
|
optional = new ArrayList<KeyValuePair>();
|
|
}
|
|
|
|
private static String stringifyKeyValuePairList(List<KeyValuePair> list) {
|
|
StringBuilder builder = new StringBuilder("[");
|
|
for (KeyValuePair pair : list) {
|
|
if (builder.length() > 1) {
|
|
builder.append(", ");
|
|
}
|
|
builder.append(pair.toString());
|
|
}
|
|
return builder.append("]").toString();
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "mandatory: " + stringifyKeyValuePairList(mandatory) + ", optional: "
|
|
+ stringifyKeyValuePairList(optional);
|
|
}
|
|
|
|
@CalledByNative
|
|
List<KeyValuePair> getMandatory() {
|
|
return mandatory;
|
|
}
|
|
|
|
@CalledByNative
|
|
List<KeyValuePair> getOptional() {
|
|
return optional;
|
|
}
|
|
}
|