Add Properties to Call.Details.

Moved some capabilities to properties which seemed appropriate.

Bug: 20160395
Change-Id: Iacef4365822e5c3e50f0c41a501bf295c22055f1
This commit is contained in:
Andrew Lee
2015-04-29 14:38:11 -07:00
parent 5b8b0df7bf
commit 2378ea76d4
4 changed files with 99 additions and 80 deletions

View File

@@ -132,7 +132,7 @@ public final class Call {
/**
* @hide
*/
public static final int CAPABILITY_UNUSED = 0x00000010;
public static final int CAPABILITY_UNUSED_1 = 0x00000010;
/** Call supports responding via text option. */
public static final int CAPABILITY_RESPOND_VIA_TEXT = 0x00000020;
@@ -188,27 +188,6 @@ public final class Call {
*/
public static final int CAPABILITY_DISCONNECT_FROM_CONFERENCE = 0x00002000;
/**
* Whether the call is a generic conference, where we do not know the precise state of
* participants in the conference (eg. on CDMA).
*/
public static final int CAPABILITY_GENERIC_CONFERENCE = 0x00004000;
/**
* Call is using high definition audio.
*/
public static final int CAPABILITY_HIGH_DEF_AUDIO = 0x00008000;
/**
* Call is using WIFI.
*/
public static final int CAPABILITY_WIFI = 0x00010000;
/**
* Indicates that the current device callback number should be shown.
*/
public static final int CAPABILITY_SHOW_CALLBACK_NUMBER = 0x00020000;
/**
* Speed up audio setup for MT call.
* @hide
@@ -228,7 +207,37 @@ public final class Call {
public static final int CAPABILITY_CAN_PAUSE_VIDEO = 0x00100000;
//******************************************************************************************
// Next CAPABILITY value: 0x00200000
// Next CAPABILITY value: 0x00004000
//******************************************************************************************
/**
* Whether the call is currently a conference.
*/
public static final int PROPERTY_CONFERENCE = 0x00000001;
/**
* Whether the call is a generic conference, where we do not know the precise state of
* participants in the conference (eg. on CDMA).
*/
public static final int PROPERTY_GENERIC_CONFERENCE = 0x00000002;
/**
* Whether the call is made while the device is in emergency callback mode.
*/
public static final int PROPERTY_EMERGENCY_CALLBACK_MODE = 0x00000004;
/**
* Connection is using WIFI.
*/
public static final int PROPERTY_WIFI = 0x00000008;
/**
* Call is using high definition audio.
*/
public static final int PROPERTY_HIGH_DEF_AUDIO = 0x00000010;
//******************************************************************************************
// Next PROPERTY value: 0x00000020
//******************************************************************************************
private final Uri mHandle;
@@ -314,18 +323,6 @@ public final class Call {
if (can(capabilities, CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL)) {
builder.append(" CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL");
}
if (can(capabilities, CAPABILITY_HIGH_DEF_AUDIO)) {
builder.append(" CAPABILITY_HIGH_DEF_AUDIO");
}
if (can(capabilities, CAPABILITY_WIFI)) {
builder.append(" CAPABILITY_WIFI");
}
if (can(capabilities, CAPABILITY_GENERIC_CONFERENCE)) {
builder.append(" CAPABILITY_GENERIC_CONFERENCE");
}
if (can(capabilities, CAPABILITY_SHOW_CALLBACK_NUMBER)) {
builder.append(" CAPABILITY_SHOW_CALLBACK_NUMBER");
}
if (can(capabilities, CAPABILITY_SPEED_UP_MT_AUDIO)) {
builder.append(" CAPABILITY_SPEED_UP_MT_AUDIO");
}
@@ -339,6 +336,55 @@ public final class Call {
return builder.toString();
}
/**
* Whether the supplied properties includes the specified property.
*
* @param properties A bit field of properties.
* @param property The property to check properties for.
* @return Whether the specified property is supported.
*/
public static boolean hasProperty(int properties, int property) {
return (properties & property) != 0;
}
/**
* Whether the properties of this {@code Details} includes the specified property.
*
* @param property The property to check properties for.
* @return Whether the specified property is supported.
*/
public boolean hasProperty(int property) {
return hasProperty(mCallProperties, property);
}
/**
* Render a set of property bits ({@code PROPERTY_*}) as a human readable string.
*
* @param properties A property bit field.
* @return A human readable string representation.
*/
public static String propertiesToString(int properties) {
StringBuilder builder = new StringBuilder();
builder.append("[Properties:");
if (hasProperty(properties, PROPERTY_CONFERENCE)) {
builder.append(" PROPERTY_CONFERENCE");
}
if (hasProperty(properties, PROPERTY_GENERIC_CONFERENCE)) {
builder.append(" PROPERTY_GENERIC_CONFERENCE");
}
if (hasProperty(properties, PROPERTY_WIFI)) {
builder.append(" PROPERTY_WIFI");
}
if (hasProperty(properties, PROPERTY_HIGH_DEF_AUDIO)) {
builder.append(" PROPERTY_HIGH_DEF_AUDIO");
}
if (hasProperty(properties, PROPERTY_EMERGENCY_CALLBACK_MODE)) {
builder.append(" EMERGENCY_CALLBACK_MODE");
}
builder.append("]");
return builder.toString();
}
/**
* @return The handle (e.g., phone number) to which the {@code Call} is currently
* connected.
@@ -387,8 +433,8 @@ public final class Call {
}
/**
* @return A bitmask of the properties of the {@code Call}, as defined in
* {@link CallProperties}.
* @return A bitmask of the properties of the {@code Call}, as defined by the various
* {@code PROPERTY_*} constants in this class.
*/
public int getCallProperties() {
return mCallProperties;