Final structural tweaks to Telecomm API (5/8)
Bug: 16416927
Bug: 16494880
Change-Id: Ibc2ba9e5d17242380ed3afed359600362bb3e664
diff --git a/sip/src/com/android/services/telephony/sip/SipConnection.java b/sip/src/com/android/services/telephony/sip/SipConnection.java
index 6ba2684..58db1f5 100644
--- a/sip/src/com/android/services/telephony/sip/SipConnection.java
+++ b/sip/src/com/android/services/telephony/sip/SipConnection.java
@@ -18,9 +18,9 @@
import android.os.Handler;
import android.os.Message;
-import android.telecomm.CallAudioState;
-import android.telecomm.CallCapabilities;
+import android.telecomm.AudioState;
import android.telecomm.Connection;
+import android.telecomm.PhoneCapabilities;
import android.util.Log;
import com.android.internal.telephony.Call;
@@ -65,7 +65,7 @@
}
@Override
- public void onSetAudioState(CallAudioState state) {
+ public void onSetAudioState(AudioState state) {
if (VERBOSE) log("onSetAudioState: " + state);
if (getPhone() != null) {
getPhone().setEchoSuppressionEnabled();
@@ -129,7 +129,7 @@
public void onHold() {
if (VERBOSE) log("onHold");
try {
- if (getPhone() != null && getState() == State.ACTIVE) {
+ if (getPhone() != null && getState() == STATE_ACTIVE) {
getPhone().switchHoldingAndActive();
}
} catch (CallStateException e) {
@@ -141,7 +141,7 @@
public void onUnhold() {
if (VERBOSE) log("onUnhold");
try {
- if (getPhone() != null && getState() == State.HOLDING) {
+ if (getPhone() != null && getState() == STATE_HOLDING) {
getPhone().switchHoldingAndActive();
}
} catch (CallStateException e) {
@@ -180,12 +180,6 @@
}
@Override
- public void onSwapWithBackgroundCall() {
- if (VERBOSE) log("onSwapWithBackgroundCall");
- // TODO: Implement swap.
- }
-
- @Override
public void onChildrenChanged(List<Connection> children) {
if (VERBOSE) log("onChildrenChanged, children: " + children);
}
@@ -254,9 +248,9 @@
}
private int buildCallCapabilities() {
- int capabilities = CallCapabilities.MUTE | CallCapabilities.SUPPORT_HOLD;
- if (getState() == State.ACTIVE || getState() == State.HOLDING) {
- capabilities |= CallCapabilities.HOLD;
+ int capabilities = PhoneCapabilities.MUTE | PhoneCapabilities.SUPPORT_HOLD;
+ if (getState() == STATE_ACTIVE || getState() == STATE_HOLDING) {
+ capabilities |= PhoneCapabilities.HOLD;
}
return capabilities;
}
diff --git a/sip/src/com/android/services/telephony/sip/SipConnectionService.java b/sip/src/com/android/services/telephony/sip/SipConnectionService.java
index 5aaa20c..bda564f 100644
--- a/sip/src/com/android/services/telephony/sip/SipConnectionService.java
+++ b/sip/src/com/android/services/telephony/sip/SipConnectionService.java
@@ -102,14 +102,14 @@
if (request.getExtras() == null) {
if (VERBOSE) log("onCreateIncomingConnection, no extras");
- return Connection.getFailedConnection(DisconnectCause.ERROR_UNSPECIFIED, null);
+ return Connection.createFailedConnection(DisconnectCause.ERROR_UNSPECIFIED, null);
}
Intent sipIntent = (Intent) request.getExtras().getParcelable(
SipUtil.EXTRA_INCOMING_CALL_INTENT);
if (sipIntent == null) {
if (VERBOSE) log("onCreateIncomingConnection, no SIP intent");
- return Connection.getFailedConnection(DisconnectCause.ERROR_UNSPECIFIED, null);
+ return Connection.createFailedConnection(DisconnectCause.ERROR_UNSPECIFIED, null);
}
SipAudioCall sipAudioCall;
@@ -117,7 +117,7 @@
sipAudioCall = SipManager.newInstance(this).takeAudioCall(sipIntent, null);
} catch (SipException e) {
log("onCreateIncomingConnection, takeAudioCall exception: " + e);
- return Connection.getCanceledConnection();
+ return Connection.createCanceledConnection();
}
SipPhone phone = findPhoneForProfile(sipAudioCall.getLocalProfile());
@@ -132,10 +132,10 @@
return new SipConnection();
} else {
if (VERBOSE) log("onCreateIncomingConnection, takingIncomingCall failed");
- return Connection.getCanceledConnection();
+ return Connection.createCanceledConnection();
}
}
- return Connection.getFailedConnection(DisconnectCause.ERROR_UNSPECIFIED, null);
+ return Connection.createFailedConnection(DisconnectCause.ERROR_UNSPECIFIED, null);
}
@Override
@@ -208,7 +208,7 @@
private ConnectionRequest getConnectionRequestForIncomingCall(ConnectionRequest request,
com.android.internal.telephony.Connection connection) {
Uri uri = Uri.fromParts(SipUtil.SCHEME_SIP, connection.getAddress(), null);
- return new ConnectionRequest(request.getAccountHandle(), request.getCallId(), uri,
+ return new ConnectionRequest(request.getAccountHandle(), uri,
connection.getNumberPresentation(), request.getExtras(), 0);
}
diff --git a/src/com/android/phone/PhoneUtils.java b/src/com/android/phone/PhoneUtils.java
index bc9bf63..ae40087 100644
--- a/src/com/android/phone/PhoneUtils.java
+++ b/src/com/android/phone/PhoneUtils.java
@@ -25,10 +25,7 @@
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
import android.content.res.Configuration;
-import android.graphics.drawable.Drawable;
import android.media.AudioManager;
import android.net.Uri;
import android.os.AsyncResult;
@@ -36,7 +33,7 @@
import android.os.Message;
import android.os.RemoteException;
import android.os.SystemProperties;
-import android.telecomm.VideoCallProfile;
+import android.telecomm.VideoProfile;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
import android.util.Log;
@@ -56,10 +53,8 @@
import com.android.internal.telephony.MmiCode;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
-import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.TelephonyCapabilities;
import com.android.internal.telephony.TelephonyProperties;
-import com.android.internal.telephony.cdma.CdmaConnection;
import com.android.internal.telephony.sip.SipPhone;
import com.android.phone.CallGatewayManager.RawGatewayInfo;
@@ -643,7 +638,7 @@
final boolean initiallyIdle = app.mCM.getState() == PhoneConstants.State.IDLE;
try {
- connection = app.mCM.dial(phone, numberToDial, VideoCallProfile.VideoState.AUDIO_ONLY);
+ connection = app.mCM.dial(phone, numberToDial, VideoProfile.VideoState.AUDIO_ONLY);
} catch (CallStateException ex) {
// CallStateException means a new outgoing call is not currently
// possible: either no more call slots exist, or there's another
diff --git a/src/com/android/services/telephony/CdmaConnection.java b/src/com/android/services/telephony/CdmaConnection.java
index 668308a..f13676a 100644
--- a/src/com/android/services/telephony/CdmaConnection.java
+++ b/src/com/android/services/telephony/CdmaConnection.java
@@ -16,7 +16,7 @@
package com.android.services.telephony;
-import android.telecomm.CallCapabilities;
+import android.telecomm.PhoneCapabilities;
import com.android.internal.telephony.Connection;
@@ -49,7 +49,7 @@
@Override
protected int buildCallCapabilities() {
- int capabilities = CallCapabilities.MUTE;
+ int capabilities = PhoneCapabilities.MUTE;
return capabilities;
}
}
diff --git a/src/com/android/services/telephony/GsmConferenceController.java b/src/com/android/services/telephony/GsmConferenceController.java
index 127a575..a69d1e6 100644
--- a/src/com/android/services/telephony/GsmConferenceController.java
+++ b/src/com/android/services/telephony/GsmConferenceController.java
@@ -16,15 +16,10 @@
package com.android.services.telephony;
-import com.android.internal.telephony.Call;
-import com.android.internal.telephony.PhoneFactory;
-
import java.util.ArrayList;
import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
-import java.util.Set;
import android.telecomm.Connection;
diff --git a/src/com/android/services/telephony/GsmConnection.java b/src/com/android/services/telephony/GsmConnection.java
index 298f3d9..5140574 100644
--- a/src/com/android/services/telephony/GsmConnection.java
+++ b/src/com/android/services/telephony/GsmConnection.java
@@ -16,7 +16,7 @@
package com.android.services.telephony;
-import android.telecomm.CallCapabilities;
+import android.telecomm.PhoneCapabilities;
import com.android.internal.telephony.CallStateException;
import com.android.internal.telephony.Connection;
@@ -68,12 +68,12 @@
@Override
protected int buildCallCapabilities() {
- int capabilities = CallCapabilities.MUTE | CallCapabilities.SUPPORT_HOLD;
- if (getState() == State.ACTIVE || getState() == State.HOLDING) {
- capabilities |= CallCapabilities.HOLD;
+ int capabilities = PhoneCapabilities.MUTE | PhoneCapabilities.SUPPORT_HOLD;
+ if (getState() == STATE_ACTIVE || getState() == STATE_HOLDING) {
+ capabilities |= PhoneCapabilities.HOLD;
}
if (mIsConferenceCapable) {
- capabilities |= CallCapabilities.MERGE_CALLS;
+ capabilities |= PhoneCapabilities.MERGE_CALLS;
}
return capabilities;
}
diff --git a/src/com/android/services/telephony/TelecommAccountRegistry.java b/src/com/android/services/telephony/TelecommAccountRegistry.java
index d40e9af..658d611 100644
--- a/src/com/android/services/telephony/TelecommAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecommAccountRegistry.java
@@ -89,15 +89,16 @@
String description = isEmergency
? "Emergency calling only"
: dummyPrefix + "SIM card in slot " + slotId;
- PhoneAccount account = new PhoneAccount(
- phoneAccountHandle,
- Uri.fromParts(TEL_SCHEME, line1Number, null),
- subNumber,
- PhoneAccount.CAPABILITY_SIM_SUBSCRIPTION |
- PhoneAccount.CAPABILITY_CALL_PROVIDER,
- com.android.phone.R.mipmap.ic_launcher_phone,
- label,
- description);
+ PhoneAccount account = PhoneAccount.builder()
+ .withAccountHandle(phoneAccountHandle)
+ .withHandle(Uri.fromParts(TEL_SCHEME, line1Number, null))
+ .withSubscriptionNumber(subNumber)
+ .withCapabilities(PhoneAccount.CAPABILITY_SIM_SUBSCRIPTION |
+ PhoneAccount.CAPABILITY_CALL_PROVIDER)
+ .withIconResId(com.android.phone.R.mipmap.ic_launcher_phone)
+ .withLabel(label)
+ .withShortDescription(description)
+ .build();
// Register with Telecomm and put into the account entry.
mTelecommManager.registerPhoneAccount(account);
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index 7bd43b2..7ddb6d0 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -20,18 +20,15 @@
import android.os.AsyncResult;
import android.os.Handler;
import android.os.Message;
-import android.telecomm.CallAudioState;
-import android.telecomm.CallCapabilities;
+import android.telecomm.AudioState;
+import android.telecomm.Connection;
+import android.telecomm.PhoneCapabilities;
import android.telephony.DisconnectCause;
import com.android.internal.telephony.Call;
import com.android.internal.telephony.CallStateException;
import com.android.internal.telephony.Connection.PostDialListener;
import com.android.internal.telephony.Phone;
-import com.android.phone.R;
-
-import android.telecomm.Connection;
-import android.telecomm.ConnectionService;
import java.lang.Override;
import java.util.List;
@@ -113,12 +110,11 @@
* The {@link com.android.internal.telephony.Connection} has reported a change in the
* video call provider.
*
- * @param videoCallProvider The video call provider.
+ * @param videoProvider The video call provider.
*/
@Override
- public void onVideoCallProviderChanged(
- ConnectionService.VideoCallProvider videoCallProvider) {
- setVideoCallProvider(videoCallProvider);
+ public void onVideoProviderChanged(VideoProvider videoProvider) {
+ setVideoProvider(videoProvider);
}
/**
@@ -138,20 +134,20 @@
/**
* Determines if the {@link TelephonyConnection} has local video capabilities.
- * This is used when {@link TelephonyConnection#updateCallCapabilities}} is called,
- * ensuring the appropriate {@link CallCapabilities} are set. Since {@link CallCapabilities}
+ * This is used when {@link TelephonyConnection#updateCallCapabilities()}} is called,
+ * ensuring the appropriate {@link PhoneCapabilities} are set. Since {@link PhoneCapabilities}
* can be rebuilt at any time it is necessary to track the video capabilities between rebuild.
- * The {@link CallCapabilities} (including video capabilities) are communicated to the telecomm
+ * The {@link PhoneCapabilities} (including video capabilities) are communicated to the telecomm
* layer.
*/
private boolean mLocalVideoCapable;
/**
* Determines if the {@link TelephonyConnection} has remote video capabilities.
- * This is used when {@link TelephonyConnection#updateCallCapabilities}} is called,
- * ensuring the appropriate {@link CallCapabilities} are set. Since {@link CallCapabilities}
+ * This is used when {@link TelephonyConnection#updateCallCapabilities()}} is called,
+ * ensuring the appropriate {@link PhoneCapabilities} are set. Since {@link PhoneCapabilities}
* can be rebuilt at any time it is necessary to track the video capabilities between rebuild.
- * The {@link CallCapabilities} (including video capabilities) are communicated to the telecomm
+ * The {@link PhoneCapabilities} (including video capabilities) are communicated to the telecomm
* layer.
*/
private boolean mRemoteVideoCapable;
@@ -170,7 +166,7 @@
}
@Override
- public void onSetAudioState(CallAudioState audioState) {
+ public void onSetAudioState(AudioState audioState) {
// TODO: update TTY mode.
if (getPhone() != null) {
getPhone().setEchoSuppressionEnabled();
@@ -292,11 +288,6 @@
}
@Override
- public void onSwapWithBackgroundCall() {
- Log.v(this, "onSwapWithBackgroundCall");
- }
-
- @Override
public void onChildrenChanged(List<Connection> children) {
Log.v(this, "onChildrenChanged, children: " + children);
}
@@ -356,7 +347,7 @@
setVideoState(mOriginalConnection.getVideoState());
setLocalVideoCapable(mOriginalConnection.isLocalVideoCapable());
setRemoteVideoCapable(mOriginalConnection.isRemoteVideoCapable());
- setVideoCallProvider(mOriginalConnection.getVideoCallProvider());
+ setVideoProvider(mOriginalConnection.getVideoProvider());
setAudioQuality(mOriginalConnection.getAudioQuality());
updateHandle();
@@ -491,18 +482,18 @@
int currentCapabilities = capabilities;
if (mRemoteVideoCapable) {
currentCapabilities = applyCapability(currentCapabilities,
- CallCapabilities.SUPPORTS_VT_REMOTE);
+ PhoneCapabilities.SUPPORTS_VT_REMOTE);
} else {
currentCapabilities = removeCapability(currentCapabilities,
- CallCapabilities.SUPPORTS_VT_REMOTE);
+ PhoneCapabilities.SUPPORTS_VT_REMOTE);
}
if (mLocalVideoCapable) {
currentCapabilities = applyCapability(currentCapabilities,
- CallCapabilities.SUPPORTS_VT_LOCAL);
+ PhoneCapabilities.SUPPORTS_VT_LOCAL);
} else {
currentCapabilities = removeCapability(currentCapabilities,
- CallCapabilities.SUPPORTS_VT_LOCAL);
+ PhoneCapabilities.SUPPORTS_VT_LOCAL);
}
return currentCapabilities;
}
@@ -520,9 +511,9 @@
if (mAudioQuality ==
com.android.internal.telephony.Connection.AUDIO_QUALITY_HIGH_DEFINITION) {
- currentCapabilities = applyCapability(currentCapabilities, CallCapabilities.VoLTE);
+ currentCapabilities = applyCapability(currentCapabilities, PhoneCapabilities.VoLTE);
} else {
- currentCapabilities = removeCapability(currentCapabilities, CallCapabilities.VoLTE);
+ currentCapabilities = removeCapability(currentCapabilities, PhoneCapabilities.VoLTE);
}
return currentCapabilities;
@@ -548,7 +539,7 @@
/**
* Sets whether video capability is present locally. Used during rebuild of the
- * {@link CallCapabilities} to set the video call capabilities.
+ * {@link PhoneCapabilities} to set the video call capabilities.
*
* @param capable {@code True} if video capable.
*/
@@ -559,7 +550,7 @@
/**
* Sets whether video capability is present remotely. Used during rebuild of the
- * {@link CallCapabilities} to set the video call capabilities.
+ * {@link PhoneCapabilities} to set the video call capabilities.
*
* @param capable {@code True} if video capable.
*/
@@ -570,7 +561,7 @@
/**
* Sets the current call audio quality. Used during rebuild of the
- * {@link CallCapabilities} to set or unset the {@link CallCapabilities#VoLTE} capability.
+ * {@link PhoneCapabilities} to set or unset the {@link PhoneCapabilities#VoLTE} capability.
*
* @param audioQuality The audio quality.
*/
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 7868c72..2211e3e 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -18,8 +18,8 @@
import android.content.ComponentName;
import android.net.Uri;
-import android.telecomm.CallCapabilities;
import android.telecomm.Connection;
+import android.telecomm.PhoneCapabilities;
import android.telecomm.ConnectionRequest;
import android.telecomm.ConnectionService;
import android.telecomm.PhoneAccountHandle;
@@ -63,21 +63,21 @@
Uri handle = request.getHandle();
if (handle == null) {
Log.d(this, "onCreateOutgoingConnection, handle is null");
- return Connection.getFailedConnection(DisconnectCause.NO_PHONE_NUMBER_SUPPLIED,
+ return Connection.createFailedConnection(DisconnectCause.NO_PHONE_NUMBER_SUPPLIED,
"Handle is null");
}
if (!SCHEME_TEL.equals(handle.getScheme())) {
Log.d(this, "onCreateOutgoingConnection, Handle %s is not type tel",
handle.getScheme());
- return Connection.getFailedConnection(DisconnectCause.INVALID_NUMBER,
+ return Connection.createFailedConnection(DisconnectCause.INVALID_NUMBER,
"Handle scheme is not type tel");
}
final String number = handle.getSchemeSpecificPart();
if (TextUtils.isEmpty(number)) {
Log.d(this, "onCreateOutgoingConnection, unable to parse number");
- return Connection.getFailedConnection(DisconnectCause.INVALID_NUMBER,
+ return Connection.createFailedConnection(DisconnectCause.INVALID_NUMBER,
"Unable to parse number");
}
@@ -87,7 +87,7 @@
final Phone phone = getPhoneForAccount(request.getAccountHandle(), isEmergencyNumber);
if (phone == null) {
Log.d(this, "onCreateOutgoingConnection, phone is null");
- return Connection.getFailedConnection(DisconnectCause.OUTGOING_FAILURE,
+ return Connection.createFailedConnection(DisconnectCause.OUTGOING_FAILURE,
"Phone is null");
}
@@ -98,21 +98,21 @@
case ServiceState.STATE_EMERGENCY_ONLY:
break;
case ServiceState.STATE_OUT_OF_SERVICE:
- return Connection.getFailedConnection(DisconnectCause.OUT_OF_SERVICE,
+ return Connection.createFailedConnection(DisconnectCause.OUT_OF_SERVICE,
"ServiceState.STATE_OUT_OF_SERVICE");
case ServiceState.STATE_POWER_OFF:
- return Connection.getFailedConnection(DisconnectCause.POWER_OFF,
+ return Connection.createFailedConnection(DisconnectCause.POWER_OFF,
"ServiceState.STATE_POWER_OFF");
default:
Log.d(this, "onCreateOutgoingConnection, unkown service state: %d", state);
- return Connection.getFailedConnection(DisconnectCause.OUTGOING_FAILURE,
+ return Connection.createFailedConnection(DisconnectCause.OUTGOING_FAILURE,
"Unknown service state " + state);
}
}
final TelephonyConnection connection = createConnectionFor(phone.getPhoneType(), null);
if (connection == null) {
- return Connection.getFailedConnection(
+ return Connection.createFailedConnection(
DisconnectCause.OUTGOING_FAILURE, "Invalid phone type");
}
connection.setHandle(handle, PhoneConstants.PRESENTATION_ALLOWED);
@@ -153,7 +153,7 @@
Response<String, Connection> response) {
Log.v(this, "onCreateConferenceConnection, connection: " + connection);
if (connection instanceof GsmConnection || connection instanceof ConferenceConnection) {
- if ((connection.getCallCapabilities() & CallCapabilities.MERGE_CALLS) != 0) {
+ if ((connection.getCallCapabilities() & PhoneCapabilities.MERGE_CALLS) != 0) {
response.onResult(token,
GsmConferenceController.createConferenceConnection(connection));
}
@@ -168,28 +168,29 @@
Phone phone = getPhoneForAccount(request.getAccountHandle(), false);
if (phone == null) {
- return Connection.getFailedConnection(DisconnectCause.ERROR_UNSPECIFIED, null);
+ return Connection.createFailedConnection(DisconnectCause.ERROR_UNSPECIFIED, null);
}
Call call = phone.getRingingCall();
if (!call.getState().isRinging()) {
Log.v(this, "onCreateIncomingConnection, no ringing call");
- return Connection.getFailedConnection(DisconnectCause.INCOMING_MISSED,
+ return Connection.createFailedConnection(DisconnectCause.INCOMING_MISSED,
"Found no ringing call");
}
com.android.internal.telephony.Connection originalConnection = call.getEarliestConnection();
if (isOriginalConnectionKnown(originalConnection)) {
Log.v(this, "onCreateIncomingConnection, original connection already registered");
- return Connection.getCanceledConnection();
+ return Connection.createCanceledConnection();
}
Connection connection = createConnectionFor(phone.getPhoneType(), originalConnection);
if (connection == null) {
- connection = Connection.getCanceledConnection();
+ connection = Connection.createCanceledConnection();
+ return Connection.createCanceledConnection();
+ } else {
+ return connection;
}
-
- return connection;
}
private void placeOutgoingConnection(