From 2bed9563edbec63ad41e2cd5fccc205d5b0891e5 Mon Sep 17 00:00:00 2001
From: Sailesh Nepal
Date: Wed, 2 Jul 2014 21:26:12 -0700
Subject: [PATCH] Remove handoff APIs
This CL removes the old handoff APIs and renames
handoffCall() to phoneAccountClicked().
Change-Id: Iab1595faaadcdfe428d97891d314babea21e9633
---
api/current.txt | 54 +-----
.../android/telecomm/CallCapabilities.java | 8 +-
.../java/android/telecomm/CallService.java | 178 +++++-------------
.../android/telecomm/CallServiceAdapter.java | 17 +-
.../java/android/telecomm/Connection.java | 6 +
.../android/telecomm/ConnectionService.java | 60 +++---
.../java/android/telecomm/InCallAdapter.java | 8 +-
.../java/android/telecomm/InCallCall.java | 20 +-
.../telecomm/RemoteConnectionService.java | 6 -
.../android/telecomm/TelecommConstants.java | 16 +-
.../internal/telecomm/ICallService.aidl | 2 +
.../telecomm/ICallServiceAdapter.aidl | 2 -
.../internal/telecomm/IInCallAdapter.aidl | 2 +-
13 files changed, 104 insertions(+), 275 deletions(-)
diff --git a/api/current.txt b/api/current.txt
index 711afd447dd79..fcedbadadce0f 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -27472,8 +27472,7 @@ package android.telecomm {
public final class CallCapabilities {
method public static java.lang.String toString(int);
field public static final int ADD_CALL = 16; // 0x10
- field public static final int ALL = 511; // 0x1ff
- field public static final int CONNECTION_HANDOFF = 256; // 0x100
+ field public static final int ALL = 255; // 0xff
field public static final int GENERIC_CONFERENCE = 128; // 0x80
field public static final int HOLD = 1; // 0x1
field public static final int MERGE_CALLS = 4; // 0x4
@@ -27515,43 +27514,8 @@ package android.telecomm {
public abstract class CallService extends android.app.Service {
ctor public CallService();
- method public abstract void abort(java.lang.String);
- method public abstract void answer(java.lang.String);
- method public abstract void call(android.telecomm.CallInfo);
- method public abstract void disconnect(java.lang.String);
- method protected final android.telecomm.CallServiceAdapter getAdapter();
method public final android.os.IBinder getBinder();
- method public abstract void hold(java.lang.String);
- method protected void onAdapterAttached(android.telecomm.CallServiceAdapter);
- method public abstract void onAudioStateChanged(java.lang.String, android.telecomm.CallAudioState);
method public final android.os.IBinder onBind(android.content.Intent);
- method public abstract void onFeaturesChanged(java.lang.String, int);
- method public void onPostDialContinue(java.lang.String, boolean);
- method public void onPostDialWait(android.telecomm.Connection, java.lang.String);
- method public abstract void playDtmfTone(java.lang.String, char);
- method public abstract void reject(java.lang.String);
- method public abstract void setIncomingCallId(java.lang.String, android.os.Bundle);
- method public abstract void stopDtmfTone(java.lang.String);
- method public abstract void unhold(java.lang.String);
- }
-
- public final class CallServiceAdapter implements android.os.IBinder.DeathRecipient {
- method public void addConferenceCall(java.lang.String);
- method public void binderDied();
- method public void cancelOutgoingCall(java.lang.String);
- method public void handleFailedOutgoingCall(android.telecomm.ConnectionRequest, int, java.lang.String);
- method public void handleSuccessfulOutgoingCall(java.lang.String);
- method public void handoffCall(java.lang.String);
- method public void notifyIncomingCall(android.telecomm.CallInfo);
- method public void onPostDialWait(java.lang.String, java.lang.String);
- method public void setActive(java.lang.String);
- method public void setCallVideoProvider(java.lang.String, android.telecomm.CallVideoProvider);
- method public void setDialing(java.lang.String);
- method public void setDisconnected(java.lang.String, int, java.lang.String);
- method public void setFeatures(java.lang.String, int);
- method public void setOnHold(java.lang.String);
- method public void setRequestingRingback(java.lang.String, boolean);
- method public void setRinging(java.lang.String);
}
public final class CallServiceDescriptor implements android.os.Parcelable {
@@ -27645,6 +27609,7 @@ package android.telecomm {
method protected void onConference();
method protected void onDisconnect();
method protected void onHold();
+ method protected void onPhoneAccountClicked();
method protected void onPlayDtmfTone(char);
method protected void onPostDialContinue(boolean);
method protected void onReject();
@@ -27694,27 +27659,15 @@ package android.telecomm {
public abstract class ConnectionService extends android.telecomm.CallService {
ctor public ConnectionService();
- method public final void abort(java.lang.String);
- method public final void answer(java.lang.String);
- method public final void call(android.telecomm.CallInfo);
method public final void createRemoteOutgoingConnection(android.telecomm.ConnectionRequest, android.telecomm.ConnectionService.OutgoingCallResponse);
- method public final void disconnect(java.lang.String);
method public final java.util.Collection getAllConnections();
- method public final void hold(java.lang.String);
method public final void lookupRemoteAccounts(android.net.Uri, android.telecomm.SimpleResponse>);
method public final void maybeRespondToAccountLookup();
- method public final void onAudioStateChanged(java.lang.String, android.telecomm.CallAudioState);
method protected void onConnectionAdded(android.telecomm.Connection);
method protected void onConnectionRemoved(android.telecomm.Connection);
method protected void onCreateConferenceConnection(java.lang.String, android.telecomm.Connection, android.telecomm.Response);
method protected void onCreateConnections(android.telecomm.ConnectionRequest, android.telecomm.ConnectionService.OutgoingCallResponse);
method protected void onCreateIncomingConnection(android.telecomm.ConnectionRequest, android.telecomm.Response);
- method public final void onFeaturesChanged(java.lang.String, int);
- method public final void playDtmfTone(java.lang.String, char);
- method public final void reject(java.lang.String);
- method public final void setIncomingCallId(java.lang.String, android.os.Bundle);
- method public final void stopDtmfTone(java.lang.String);
- method public final void unhold(java.lang.String);
}
public static abstract interface ConnectionService.OutgoingCallResponse {
@@ -27736,9 +27689,9 @@ package android.telecomm {
public final class InCallAdapter {
method public void answerCall(java.lang.String);
method public void disconnectCall(java.lang.String);
- method public void handoffCall(java.lang.String);
method public void holdCall(java.lang.String);
method public void mute(boolean);
+ method public void phoneAccountClicked(java.lang.String);
method public void playDtmfTone(java.lang.String, char);
method public void postDialContinue(java.lang.String, boolean);
method public void rejectCall(java.lang.String, boolean, java.lang.String);
@@ -27760,7 +27713,6 @@ package android.telecomm {
method public int getFeatures();
method public android.telecomm.GatewayInfo getGatewayInfo();
method public android.net.Uri getHandle();
- method public android.telecomm.CallServiceDescriptor getHandoffCallServiceDescriptor();
method public java.lang.String getId();
method public android.telecomm.CallState getState();
method public void writeToParcel(android.os.Parcel, int);
diff --git a/telecomm/java/android/telecomm/CallCapabilities.java b/telecomm/java/android/telecomm/CallCapabilities.java
index 5aff19c0de473..2e0152af6f92e 100644
--- a/telecomm/java/android/telecomm/CallCapabilities.java
+++ b/telecomm/java/android/telecomm/CallCapabilities.java
@@ -42,11 +42,8 @@ public final class CallCapabilities {
/** Call supports generic conference mode. */
public static final int GENERIC_CONFERENCE = 0x00000080;
- /** Call currently supports switch between connections. */
- public static final int CONNECTION_HANDOFF = 0x00000100;
-
public static final int ALL = HOLD | SUPPORT_HOLD | MERGE_CALLS | SWAP_CALLS | ADD_CALL
- | RESPOND_VIA_TEXT | MUTE | GENERIC_CONFERENCE | CONNECTION_HANDOFF;
+ | RESPOND_VIA_TEXT | MUTE | GENERIC_CONFERENCE;
public static String toString(int capabilities) {
StringBuilder builder = new StringBuilder();
@@ -75,9 +72,6 @@ public final class CallCapabilities {
if ((capabilities & GENERIC_CONFERENCE) != 0) {
builder.append(" GENERIC_CONFERENCE");
}
- if ((capabilities & CONNECTION_HANDOFF) != 0) {
- builder.append(" HANDOFF");
- }
builder.append("]");
return builder.toString();
}
diff --git a/telecomm/java/android/telecomm/CallService.java b/telecomm/java/android/telecomm/CallService.java
index 44380e2e7a8eb..e77fb239e9f83 100644
--- a/telecomm/java/android/telecomm/CallService.java
+++ b/telecomm/java/android/telecomm/CallService.java
@@ -31,11 +31,6 @@ import com.android.internal.telecomm.ICallServiceAdapter;
* Base implementation of CallService which can be used to provide calls for the system
* in-call UI. CallService is a one-way service from the framework's CallsManager to any app
* that would like to provide calls managed by the default system in-call user interface.
- * When the service is bound by the framework, CallsManager will call setCallServiceAdapter
- * which will provide CallService with an instance of {@link CallServiceAdapter} to be used
- * for communicating back to CallsManager. Subsequently, more specific methods of the service
- * will be called to perform various call actions including making an outgoing call and
- * disconnected existing calls.
* TODO(santoscordon): Needs more about AndroidManifest.xml service registrations before
* we can unhide this API.
*
@@ -61,6 +56,7 @@ public abstract class CallService extends Service {
private static final int MSG_CONFERENCE = 13;
private static final int MSG_SPLIT_FROM_CONFERENCE = 14;
private static final int MSG_ON_POST_DIAL_CONTINUE = 15;
+ private static final int MSG_ON_PHONE_ACCOUNT_CLICKED = 16;
/**
* Default Handler used to consolidate binder method calls onto a single thread.
@@ -147,6 +143,9 @@ public abstract class CallService extends Service {
case MSG_SPLIT_FROM_CONFERENCE:
splitFromConference((String) msg.obj);
break;
+ case MSG_ON_PHONE_ACCOUNT_CLICKED:
+ onPhoneAccountClicked((String) msg.obj);
+ break;
default:
break;
}
@@ -244,6 +243,12 @@ public abstract class CallService extends Service {
args.argi1 = proceed ? 1 : 0;
mMessageHandler.obtainMessage(MSG_ON_POST_DIAL_CONTINUE, args).sendToTarget();
}
+
+ @Override
+ public void onPhoneAccountClicked(String callId) {
+ mMessageHandler.obtainMessage(MSG_ON_PHONE_ACCOUNT_CLICKED, callId).sendToTarget();
+ }
+
}
/**
@@ -272,152 +277,59 @@ public abstract class CallService extends Service {
return mBinder;
}
- /**
- * @return The attached {@link CallServiceAdapter} if the service is bound, null otherwise.
- */
+ /** @hide */
protected final CallServiceAdapter getAdapter() {
return mAdapter;
}
- /**
- * Lifecycle callback which is called when this {@link CallService} has been attached to a
- * {@link CallServiceAdapter}, indicating {@link #getAdapter()} is now safe to use.
- *
- * @param adapter The adapter now attached to this call service.
- */
- protected void onAdapterAttached(CallServiceAdapter adapter) {
- }
+ /** @hide */
+ protected abstract void onAdapterAttached(CallServiceAdapter adapter);
- /**
- * Attempts to call the relevant party using the specified call's handle, be it a phone number,
- * SIP address, or some other kind of user ID. Note that the set of handle types is
- * dynamically extensible since call providers should be able to implement arbitrary
- * handle-calling systems.
- *
- * @param callInfo The details of the relevant call.
- */
- public abstract void call(CallInfo callInfo);
+ /** @hide */
+ protected abstract void call(CallInfo callInfo);
- /**
- * Aborts the outgoing call attempt. Invoked in the unlikely event that Telecomm decides to
- * abort an attempt to place a call. Only ever be invoked after {@link #call} invocations.
- * After this is invoked, Telecomm does not expect any more updates about the call and will
- * actively ignore any such update. This is different from {@link #disconnect} where Telecomm
- * expects confirmation via CallServiceAdapter.markCallAsDisconnected.
- *
- * @param callId The identifier of the call to abort.
- */
- public abstract void abort(String callId);
+ /** @hide */
+ protected abstract void abort(String callId);
- /**
- * Receives a new call ID to use with an incoming call. Invoked by Telecomm after it is notified
- * that this call service has a pending incoming call, see
- * {@link TelecommConstants#ACTION_INCOMING_CALL}. The call service must first give Telecomm
- * additional information about the call through {@link CallServiceAdapter#notifyIncomingCall}.
- * Following that, the call service can update the call at will using the specified call ID.
- *
- * If a {@link Bundle} was passed (via {@link TelecommConstants#EXTRA_INCOMING_CALL_EXTRAS}) in
- * with the {@link TelecommConstants#ACTION_INCOMING_CALL} intent, extras will be
- * populated with this {@link Bundle}. Otherwise, an empty Bundle will be returned.
- *
- * @param callId The ID of the call.
- * @param extras The optional extras which were passed in with the intent, or an empty Bundle.
- */
- public abstract void setIncomingCallId(String callId, Bundle extras);
+ /** @hide */
+ protected abstract void setIncomingCallId(String callId, Bundle extras);
- /**
- * Answers a ringing call identified by callId. Telecomm invokes this method as a result of the
- * user hitting the "answer" button in the incoming call screen.
- *
- * @param callId The ID of the call.
- */
- public abstract void answer(String callId);
+ /** @hide */
+ protected abstract void answer(String callId);
- /**
- * Rejects a ringing call identified by callId. Telecomm invokes this method as a result of the
- * user hitting the "reject" button in the incoming call screen.
- *
- * @param callId The ID of the call.
- */
- public abstract void reject(String callId);
+ /** @hide */
+ protected abstract void reject(String callId);
- /**
- * Disconnects the specified call.
- *
- * @param callId The ID of the call to disconnect.
- */
- public abstract void disconnect(String callId);
+ /** @hide */
+ protected abstract void disconnect(String callId);
- /**
- * Puts the specified call on hold.
- *
- * @param callId The ID of the call to put on hold.
- */
- public abstract void hold(String callId);
+ /** @hide */
+ protected abstract void hold(String callId);
- /**
- * Removes the specified call from hold.
- *
- * @param callId The ID of the call to unhold.
- */
- public abstract void unhold(String callId);
+ /** @hide */
+ protected abstract void unhold(String callId);
- /**
- * Plays a dual-tone multi-frequency signaling (DTMF) tone in a call.
- *
- * @param callId The unique ID of the call in which the tone will be played.
- * @param digit A character representing the DTMF digit for which to play the tone. This
- * value must be one of {@code '0'} through {@code '9'}, {@code '*'} or {@code '#'}.
- */
- public abstract void playDtmfTone(String callId, char digit);
+ /** @hide */
+ protected abstract void playDtmfTone(String callId, char digit);
- /**
- * Stops any dual-tone multi-frequency sinaling (DTMF) tone currently playing.
- *
- * DTMF tones are played by calling {@link #playDtmfTone(String,char)}. If no DTMF tone is
- * currently playing, this method will do nothing.
- *
- * @param callId The unique ID of the call in which any currently playing tone will be stopped.
- */
- public abstract void stopDtmfTone(String callId);
+ /** @hide */
+ protected abstract void stopDtmfTone(String callId);
- /**
- * Called when the audio state changes.
- *
- * @param activeCallId The identifier of the call that was active during the state change.
- * @param audioState The new {@link CallAudioState}.
- */
- public abstract void onAudioStateChanged(String activeCallId, CallAudioState audioState);
+ /** @hide */
+ protected abstract void onAudioStateChanged(String activeCallId, CallAudioState audioState);
- /**
- * Conferences the specified call.
- *
- * @param conferenceCallId The unique ID of the conference call onto which the specified calls
- * should be added.
- * @param callId The call to conference.
- * @hide
- */
- public abstract void conference(String conferenceCallId, String callId);
+ /** @hide */
+ protected abstract void conference(String conferenceCallId, String callId);
- /**
- * Removes the specified call from a conference call.
- *
- * @param callId The call to remove from the conference call
- * @hide
- */
- public abstract void splitFromConference(String callId);
+ /** @hide */
+ protected abstract void splitFromConference(String callId);
- public void onPostDialContinue(String callId, boolean proceed) {}
+ /** @hide */
+ protected abstract void onPostDialContinue(String callId, boolean proceed);
- public void onPostDialWait(Connection conn, String remaining) {}
+ /** @hide */
+ protected abstract void onFeaturesChanged(String callId, int features);
- /**
- * Called when changes to the features of a call occurs. Features are defined in
- * {@link android.telecomm.CallFeatures}. The active features for the call are represented as
- * bits in the features bit-mask.
- *
- * @param callId The call to set the features for.
- * @param features The new features of the call.
- */
- public abstract void onFeaturesChanged(String callId, int features);
+ /** @hide */
+ protected abstract void onPhoneAccountClicked(String callId);
}
diff --git a/telecomm/java/android/telecomm/CallServiceAdapter.java b/telecomm/java/android/telecomm/CallServiceAdapter.java
index 1b3c0a3b7c5c7..dcab56600a30b 100644
--- a/telecomm/java/android/telecomm/CallServiceAdapter.java
+++ b/telecomm/java/android/telecomm/CallServiceAdapter.java
@@ -33,8 +33,9 @@ import java.util.Set;
/**
* Provides methods for ICallService implementations to interact with the system phone app.
- * TODO(santoscordon): Need final public-facing comments in this file.
* TODO(santoscordon): Rename this to CallServiceAdapterDemultiplexer (or something).
+ *
+ * @hide
*/
public final class CallServiceAdapter implements DeathRecipient {
private final Set mAdapters = new HashSet<>();
@@ -297,20 +298,6 @@ public final class CallServiceAdapter implements DeathRecipient {
}
}
- /**
- * Instructs Telecomm to handoff the call to another call service.
- *
- * @param callId The identifier of the call to handoff.
- */
- public void handoffCall(String callId) {
- for (ICallServiceAdapter adapter : mAdapters) {
- try {
- adapter.handoffCall(callId);
- } catch (RemoteException e) {
- }
- }
- }
-
/**
* Indicates that a new conference call has been created.
*
diff --git a/telecomm/java/android/telecomm/Connection.java b/telecomm/java/android/telecomm/Connection.java
index 73aac2c08025a..32dcf6cf5608f 100644
--- a/telecomm/java/android/telecomm/Connection.java
+++ b/telecomm/java/android/telecomm/Connection.java
@@ -611,6 +611,12 @@ public abstract class Connection {
*/
protected void onChildrenChanged(List children) {}
+ /**
+ * Called when the phone account UI was clicked.
+ */
+ protected void onPhoneAccountClicked() {}
+
+
private void addChild(Connection connection) {
Log.d(this, "adding child %s", connection);
mChildConnections.add(connection);
diff --git a/telecomm/java/android/telecomm/ConnectionService.java b/telecomm/java/android/telecomm/ConnectionService.java
index 693e9fb5e9c77..d6970e2bd6b8a 100644
--- a/telecomm/java/android/telecomm/ConnectionService.java
+++ b/telecomm/java/android/telecomm/ConnectionService.java
@@ -180,7 +180,7 @@ public abstract class ConnectionService extends CallService {
/** @hide */
@Override
- public final void call(final CallInfo callInfo) {
+ protected final void call(final CallInfo callInfo) {
Log.d(this, "call %s", callInfo);
onCreateConnections(
new ConnectionRequest(
@@ -211,14 +211,14 @@ public abstract class ConnectionService extends CallService {
/** @hide */
@Override
- public final void abort(String callId) {
+ protected final void abort(String callId) {
Log.d(this, "abort %s", callId);
findConnectionForAction(callId, "abort").abort();
}
/** @hide */
@Override
- public final void setIncomingCallId(final String callId, Bundle extras) {
+ protected final void setIncomingCallId(final String callId, Bundle extras) {
Log.d(this, "setIncomingCallId %s %s", callId, extras);
onCreateIncomingConnection(
new ConnectionRequest(
@@ -261,63 +261,63 @@ public abstract class ConnectionService extends CallService {
/** @hide */
@Override
- public final void answer(String callId) {
+ protected final void answer(String callId) {
Log.d(this, "answer %s", callId);
findConnectionForAction(callId, "answer").answer();
}
/** @hide */
@Override
- public final void reject(String callId) {
+ protected final void reject(String callId) {
Log.d(this, "reject %s", callId);
findConnectionForAction(callId, "reject").reject();
}
/** @hide */
@Override
- public final void disconnect(String callId) {
+ protected final void disconnect(String callId) {
Log.d(this, "disconnect %s", callId);
findConnectionForAction(callId, "disconnect").disconnect();
}
/** @hide */
@Override
- public final void hold(String callId) {
+ protected final void hold(String callId) {
Log.d(this, "hold %s", callId);
findConnectionForAction(callId, "hold").hold();
}
/** @hide */
@Override
- public final void unhold(String callId) {
+ protected final void unhold(String callId) {
Log.d(this, "unhold %s", callId);
findConnectionForAction(callId, "unhold").unhold();
}
/** @hide */
@Override
- public final void playDtmfTone(String callId, char digit) {
+ protected final void playDtmfTone(String callId, char digit) {
Log.d(this, "playDtmfTone %s %c", callId, digit);
findConnectionForAction(callId, "playDtmfTone").playDtmfTone(digit);
}
/** @hide */
@Override
- public final void stopDtmfTone(String callId) {
+ protected final void stopDtmfTone(String callId) {
Log.d(this, "stopDtmfTone %s", callId);
findConnectionForAction(callId, "stopDtmfTone").stopDtmfTone();
}
/** @hide */
@Override
- public final void onAudioStateChanged(String callId, CallAudioState audioState) {
+ protected final void onAudioStateChanged(String callId, CallAudioState audioState) {
Log.d(this, "onAudioStateChanged %s %s", callId, audioState);
findConnectionForAction(callId, "onAudioStateChanged").setAudioState(audioState);
}
/** @hide */
@Override
- public final void conference(final String conferenceCallId, String callId) {
+ protected final void conference(final String conferenceCallId, String callId) {
Log.d(this, "conference %s, %s", conferenceCallId, callId);
Connection connection = findConnectionForAction(callId, "conference");
@@ -352,7 +352,7 @@ public abstract class ConnectionService extends CallService {
/** @hide */
@Override
- public final void splitFromConference(String callId) {
+ protected final void splitFromConference(String callId) {
Log.d(this, "splitFromConference(%s)", callId);
Connection connection = findConnectionForAction(callId, "splitFromConference");
@@ -366,7 +366,7 @@ public abstract class ConnectionService extends CallService {
/** @hide */
@Override
- public final void onPostDialContinue(String callId, boolean proceed) {
+ protected final void onPostDialContinue(String callId, boolean proceed) {
Log.d(this, "onPostDialContinue(%s)", callId);
Connection connection = findConnectionForAction(callId, "onPostDialContinue");
@@ -377,9 +377,21 @@ public abstract class ConnectionService extends CallService {
connection.onPostDialContinue(proceed);
}
- /**
- * @hide
- */
+ /** @hide */
+ @Override
+ protected final void onFeaturesChanged(String callId, int features) {
+ Log.d(this, "onFeaturesChanged %s %d", callId, features);
+ findConnectionForAction(callId, "onFeaturesChanged").setFeatures(features);
+ }
+
+ /** @hide */
+ @Override
+ protected void onPhoneAccountClicked(String callId) {
+ Log.d(this, "onPhoneAccountClicked %s", callId);
+ findConnectionForAction(callId, "onPhoneAccountClicked").onPhoneAccountClicked();
+ }
+
+ /** @hide */
@Override
protected final void onAdapterAttached(CallServiceAdapter adapter) {
if (mAreAccountsInitialized) {
@@ -569,18 +581,4 @@ public abstract class ConnectionService extends CallService {
Log.w(this, "%s - Cannot find Connection %s", action, callId);
return NULL_CONNECTION;
}
-
- /**
- * Handles changes to the features of a connection.
- * Features are defined in {@link android.telecomm.CallFeatures} and are passed in as a
- * bit-mask.
- *
- * @param callId The call to set the features for.
- * @param features The new features of the call.
- */
- @Override
- public final void onFeaturesChanged(String callId, int features) {
- Log.d(this, "onFeaturesChanged %s %d", callId, features);
- findConnectionForAction(callId, "onFeaturesChanged").setFeatures(features);
- }
}
diff --git a/telecomm/java/android/telecomm/InCallAdapter.java b/telecomm/java/android/telecomm/InCallAdapter.java
index ce52d1981b1ab..aef05fd47ac24 100644
--- a/telecomm/java/android/telecomm/InCallAdapter.java
+++ b/telecomm/java/android/telecomm/InCallAdapter.java
@@ -189,13 +189,13 @@ public final class InCallAdapter {
}
/**
- * Instructs Telecomm to handoff the call to another call service.
+ * Instructs Telecomm that the phone account UI was clicked.
*
- * @param callId The identifier of the call to handoff.
+ * @param callId The identifier of the call.
*/
- public void handoffCall(String callId) {
+ public void phoneAccountClicked(String callId) {
try {
- mAdapter.handoffCall(callId);
+ mAdapter.phoneAccountClicked(callId);
} catch (RemoteException e) {
}
}
diff --git a/telecomm/java/android/telecomm/InCallCall.java b/telecomm/java/android/telecomm/InCallCall.java
index fc96f55556fe7..e08d4504bcdbc 100644
--- a/telecomm/java/android/telecomm/InCallCall.java
+++ b/telecomm/java/android/telecomm/InCallCall.java
@@ -43,7 +43,6 @@ public final class InCallCall implements Parcelable {
private final GatewayInfo mGatewayInfo;
private final PhoneAccount mAccount;
private final CallServiceDescriptor mCurrentCallServiceDescriptor;
- private final CallServiceDescriptor mHandoffCallServiceDescriptor;
private final ICallVideoProvider mCallVideoProvider;
private RemoteCallVideoProvider mRemoteCallVideoProvider;
private final String mParentCallId;
@@ -61,9 +60,8 @@ public final class InCallCall implements Parcelable {
long connectTimeMillis,
Uri handle,
GatewayInfo gatewayInfo,
- PhoneAccount subscription,
+ PhoneAccount account,
CallServiceDescriptor descriptor,
- CallServiceDescriptor handoffDescriptor,
ICallVideoProvider callVideoProvider,
String parentCallId,
List childCallIds,
@@ -77,9 +75,8 @@ public final class InCallCall implements Parcelable {
mConnectTimeMillis = connectTimeMillis;
mHandle = handle;
mGatewayInfo = gatewayInfo;
- mAccount = subscription;
+ mAccount = account;
mCurrentCallServiceDescriptor = descriptor;
- mHandoffCallServiceDescriptor = handoffDescriptor;
mCallVideoProvider = callVideoProvider;
mParentCallId = parentCallId;
mChildCallIds = childCallIds;
@@ -149,14 +146,6 @@ public final class InCallCall implements Parcelable {
return mCurrentCallServiceDescriptor;
}
- /**
- * The descriptor for the call service that this call is being switched to, null if handoff is
- * not in progress.
- */
- public CallServiceDescriptor getHandoffCallServiceDescriptor() {
- return mHandoffCallServiceDescriptor;
- }
-
/**
* Returns an object for remotely communicating through the call video provider's binder.
* @return The call video provider.
@@ -217,7 +206,6 @@ public final class InCallCall implements Parcelable {
GatewayInfo gatewayInfo = source.readParcelable(classLoader);
PhoneAccount account = source.readParcelable(classLoader);
CallServiceDescriptor descriptor = source.readParcelable(classLoader);
- CallServiceDescriptor handoffDescriptor = source.readParcelable(classLoader);
ICallVideoProvider callVideoProvider =
ICallVideoProvider.Stub.asInterface(source.readStrongBinder());
String parentCallId = source.readString();
@@ -226,8 +214,7 @@ public final class InCallCall implements Parcelable {
int features = source.readInt();
return new InCallCall(id, state, disconnectCauseCode, disconnectCauseMsg,
cannedSmsResponses, capabilities, connectTimeMillis, handle, gatewayInfo,
- account, descriptor, handoffDescriptor, callVideoProvider, parentCallId,
- childCallIds, features);
+ account, descriptor, callVideoProvider, parentCallId, childCallIds, features);
}
@Override
@@ -256,7 +243,6 @@ public final class InCallCall implements Parcelable {
destination.writeParcelable(mGatewayInfo, 0);
destination.writeParcelable(mAccount, 0);
destination.writeParcelable(mCurrentCallServiceDescriptor, 0);
- destination.writeParcelable(mHandoffCallServiceDescriptor, 0);
destination.writeStrongBinder(
mCallVideoProvider != null ? mCallVideoProvider.asBinder() : null);
destination.writeString(mParentCallId);
diff --git a/telecomm/java/android/telecomm/RemoteConnectionService.java b/telecomm/java/android/telecomm/RemoteConnectionService.java
index b3ef92786f98b..81bee98683b79 100644
--- a/telecomm/java/android/telecomm/RemoteConnectionService.java
+++ b/telecomm/java/android/telecomm/RemoteConnectionService.java
@@ -176,12 +176,6 @@ public final class RemoteConnectionService implements DeathRecipient {
}
}
- /** ${inheritDoc} */
- @Override
- public void handoffCall(String connectionId) {
- // unnecessary.
- }
-
/** ${inheritDoc} */
@Override
public void queryRemoteConnectionServices(RemoteServiceCallback callback) {
diff --git a/telecomm/java/android/telecomm/TelecommConstants.java b/telecomm/java/android/telecomm/TelecommConstants.java
index 616c4a909f3f4..80901cfef617d 100644
--- a/telecomm/java/android/telecomm/TelecommConstants.java
+++ b/telecomm/java/android/telecomm/TelecommConstants.java
@@ -27,13 +27,13 @@ public final class TelecommConstants {
/**
* Activity action: Starts the UI for handing an incoming call. This intent starts the
* in-call UI by notifying the Telecomm system that an incoming call exists for a specific call
- * service (see {@link android.telecomm.CallService}). Telecomm reads the Intent extras to find
- * and bind to the appropriate {@link android.telecomm.CallService} which Telecomm will
- * ultimately use to control and get information about the call.
+ * service (see {@link android.telecomm.ConnectionService}). Telecomm reads the Intent extras
+ * to find and bind to the appropriate {@link android.telecomm.ConnectionService} which
+ * Telecomm will ultimately use to control and get information about the call.
*
* Input: get*Extra field {@link #EXTRA_CALL_SERVICE_DESCRIPTOR} contains the component name
- * of the {@link android.telecomm.CallService} that Telecomm should bind to. Telecomm will then
- * ask the call service for more information about the call prior to showing any UI.
+ * of the {@link android.telecomm.ConnectionService} that Telecomm should bind to. Telecomm
+ * will then ask the call service for more information about the call prior to showing any UI.
*
* TODO(santoscordon): Needs permissions.
* TODO(santoscordon): Consider moving this into a simple method call on a system service.
@@ -46,7 +46,7 @@ public final class TelecommConstants {
public static final String ACTION_CALL_SERVICE_PROVIDER = CallServiceProvider.class.getName();
/**
- * The service action used to bind to {@link CallService} implementations.
+ * The service action used to bind to {@link ConnectionService} implementations.
*/
public static final String ACTION_CALL_SERVICE = CallService.class.getName();
@@ -73,8 +73,8 @@ public final class TelecommConstants {
/**
* Optional extra for {@link #ACTION_INCOMING_CALL} containing a {@link Bundle} which contains
- * metadata about the call. This {@link Bundle} will be returned to the {@link CallService} as
- * part of {@link CallService#setIncomingCallId(String,Bundle)}.
+ * metadata about the call. This {@link Bundle} will be returned to the
+ * {@link ConnectionService}.
*/
public static final String EXTRA_INCOMING_CALL_EXTRAS =
"android.intent.extra.INCOMING_CALL_EXTRAS";
diff --git a/telecomm/java/com/android/internal/telecomm/ICallService.aidl b/telecomm/java/com/android/internal/telecomm/ICallService.aidl
index 62ebd541b1ae6..ac4e66c03db63 100644
--- a/telecomm/java/com/android/internal/telecomm/ICallService.aidl
+++ b/telecomm/java/com/android/internal/telecomm/ICallService.aidl
@@ -59,4 +59,6 @@ oneway interface ICallService {
void splitFromConference(String callId);
void onPostDialContinue(String callId, boolean proceed);
+
+ void onPhoneAccountClicked(String callId);
}
diff --git a/telecomm/java/com/android/internal/telecomm/ICallServiceAdapter.aidl b/telecomm/java/com/android/internal/telecomm/ICallServiceAdapter.aidl
index e78762d34eb47..eee64da57c110 100644
--- a/telecomm/java/com/android/internal/telecomm/ICallServiceAdapter.aidl
+++ b/telecomm/java/com/android/internal/telecomm/ICallServiceAdapter.aidl
@@ -60,8 +60,6 @@ oneway interface ICallServiceAdapter {
void onPostDialWait(String callId, String remaining);
- void handoffCall(String callId);
-
void queryRemoteConnectionServices(RemoteServiceCallback callback);
void setCallVideoProvider(String callId, ICallVideoProvider callVideoProvider);
diff --git a/telecomm/java/com/android/internal/telecomm/IInCallAdapter.aidl b/telecomm/java/com/android/internal/telecomm/IInCallAdapter.aidl
index b66995a12391f..7f3767ccffdf4 100644
--- a/telecomm/java/com/android/internal/telecomm/IInCallAdapter.aidl
+++ b/telecomm/java/com/android/internal/telecomm/IInCallAdapter.aidl
@@ -46,7 +46,7 @@ oneway interface IInCallAdapter {
void postDialContinue(String callId, boolean proceed);
- void handoffCall(String callId);
+ void phoneAccountClicked(String callId);
void conference(String callId);