Merge "Fix Telecomm tests"
diff --git a/res/values/config.xml b/res/values/config.xml
index 60649f2..d3e253c 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -30,6 +30,9 @@
<!-- Package name for the default in-call UI and dialer [DO NOT TRANSLATE] -->
<string name="ui_default_package" translatable="false">com.android.dialer</string>
+ <!-- Class name for the default in-call UI Service [DO NOT TRANSLATE] -->
+ <string name="incall_default_class" translatable="false">com.android.incallui.InCallServiceImpl</string>
+
<!-- Class name for the default main dialer activity [DO NOT TRANSLATE] -->
<string name="dialer_default_class" translatable="false">com.android.dialer.DialtactsActivity</string>
</resources>
diff --git a/src/com/android/telecomm/Call.java b/src/com/android/telecomm/Call.java
index 1169d5a..4265c65 100644
--- a/src/com/android/telecomm/Call.java
+++ b/src/com/android/telecomm/Call.java
@@ -28,15 +28,16 @@
import android.telecomm.CallState;
import android.telecomm.GatewayInfo;
import android.telecomm.Response;
+import android.telecomm.Subscription;
import android.telecomm.TelecommConstants;
import android.telephony.DisconnectCause;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
+import com.android.internal.telecomm.ICallVideoProvider;
import com.android.internal.telephony.CallerInfo;
import com.android.internal.telephony.CallerInfoAsyncQuery;
import com.android.internal.telephony.CallerInfoAsyncQuery.OnQueryCompleteListener;
-
import com.android.internal.telephony.SmsApplication;
import com.android.telecomm.ContactsAsyncHelper.OnImageLoadCompleteListener;
import com.google.common.base.Preconditions;
@@ -72,6 +73,7 @@
void onParentChanged(Call call);
void onChildrenChanged(Call call);
void onCannedSmsResponsesLoaded(Call call);
+ void onCallVideoProviderChanged(Call call);
}
private static final OnQueryCompleteListener sCallerInfoQueryListener =
@@ -114,6 +116,8 @@
* service. */
private final GatewayInfo mGatewayInfo;
+ private final Subscription mSubscription;
+
private final Handler mHandler = new Handler();
private long mConnectTimeMillis;
@@ -202,13 +206,15 @@
/** Whether an attempt has been made to load the text message responses. */
private boolean mCannedSmsResponsesLoadingStarted = false;
+ private ICallVideoProvider mCallVideoProvider;
+
/**
* Creates an empty call object.
*
* @param isIncoming True if this is an incoming call.
*/
Call(boolean isIncoming, boolean isConference) {
- this(null, null, isIncoming, isConference);
+ this(null, null, null, isIncoming, isConference);
}
/**
@@ -216,12 +222,15 @@
*
* @param handle The handle to dial.
* @param gatewayInfo Gateway information to use for the call.
+ * @param subscription Subscription information to use for the call.
* @param isIncoming True if this is an incoming call.
*/
- Call(Uri handle, GatewayInfo gatewayInfo, boolean isIncoming, boolean isConference) {
+ Call(Uri handle, GatewayInfo gatewayInfo, Subscription subscription,
+ boolean isIncoming, boolean isConference) {
mState = isConference ? CallState.ACTIVE : CallState.NEW;
setHandle(handle);
mGatewayInfo = gatewayInfo;
+ mSubscription = subscription;
mIsIncoming = isIncoming;
mIsConference = isConference;
maybeLoadCannedSmsResponses();
@@ -347,6 +356,10 @@
return mGatewayInfo;
}
+ Subscription getSubscription() {
+ return mSubscription;
+ }
+
boolean isIncoming() {
return mIsIncoming;
}
@@ -699,7 +712,20 @@
} else if (mOriginalCall != null && mOriginalCall.mCallService != null) {
descriptor = mOriginalCall.mCallService.getDescriptor();
}
- return new CallInfo(callId, mState, mHandle, mGatewayInfo, mExtras, descriptor);
+ Bundle extras = mExtras;
+ if (mGatewayInfo != null && mGatewayInfo.getGatewayProviderPackageName() != null &&
+ mGatewayInfo.getOriginalHandle() != null) {
+ extras = (Bundle) mExtras.clone();
+ extras.putString(
+ NewOutgoingCallIntentBroadcaster.EXTRA_GATEWAY_PROVIDER_PACKAGE,
+ mGatewayInfo.getGatewayProviderPackageName());
+ extras.putParcelable(
+ NewOutgoingCallIntentBroadcaster.EXTRA_GATEWAY_ORIGINAL_URI,
+ mGatewayInfo.getOriginalHandle());
+
+ }
+ return new CallInfo(callId, mState, mHandle, mGatewayInfo, mSubscription,
+ extras, descriptor);
}
/** Checks if this is a live call or not. */
@@ -1025,4 +1051,21 @@
public boolean getStartWithSpeakerphoneOn() {
return mSpeakerphoneOn;
}
+
+ /**
+ * Sets a call video provider for the call.
+ */
+ public void setCallVideoProvider(ICallVideoProvider callVideoProvider) {
+ mCallVideoProvider = callVideoProvider;
+ for (Listener l : mListeners) {
+ l.onCallVideoProviderChanged(Call.this);
+ }
+ }
+
+ /**
+ * @return Return the call video Provider binder.
+ */
+ public ICallVideoProvider getCallVideoProvider() {
+ return mCallVideoProvider;
+ }
}
diff --git a/src/com/android/telecomm/CallLogManager.java b/src/com/android/telecomm/CallLogManager.java
index 2dd6214..53d2072 100644
--- a/src/com/android/telecomm/CallLogManager.java
+++ b/src/com/android/telecomm/CallLogManager.java
@@ -21,6 +21,7 @@
import android.os.AsyncTask;
import android.provider.CallLog.Calls;
import android.telecomm.CallState;
+import android.telecomm.Subscription;
import android.telephony.PhoneNumberUtils;
import com.android.internal.telephony.PhoneConstants;
@@ -48,12 +49,14 @@
* @param durationInMillis Duration of the call (milliseconds).
*/
public AddCallArgs(Context context, ContactInfo contactInfo, String number,
- int presentation, int callType, long creationDate, long durationInMillis) {
+ int presentation, int callType, Subscription subscription,
+ long creationDate, long durationInMillis) {
this.context = context;
this.contactInfo = contactInfo;
this.number = number;
this.presentation = presentation;
this.callType = callType;
+ this.subscription = subscription;
this.timestamp = creationDate;
this.durationInSec = (int)(durationInMillis / 1000);
}
@@ -64,6 +67,7 @@
public final String number;
public final int presentation;
public final int callType;
+ public final Subscription subscription;
public final long timestamp;
public final int durationInSec;
}
@@ -111,8 +115,9 @@
Log.d(TAG, "logNumber set to: %s", Log.pii(logNumber));
final int presentation = getPresentation(call, contactInfo);
+ final Subscription subscription = call.getSubscription();
- logCall(contactInfo, logNumber, presentation, callLogType, creationTime, age);
+ logCall(contactInfo, logNumber, presentation, callLogType, subscription, creationTime, age);
}
/**
@@ -130,6 +135,7 @@
String number,
int presentation,
int callType,
+ Subscription subscription,
long start,
long duration) {
boolean isEmergencyNumber = PhoneNumberUtils.isLocalEmergencyNumber(mContext, number);
@@ -148,7 +154,7 @@
+ Log.pii(number) + "," + presentation + ", " + callType
+ ", " + start + ", " + duration);
AddCallArgs args = new AddCallArgs(mContext, contactInfo, number, presentation,
- callType, start, duration);
+ callType, subscription, start, duration);
logCallAsync(args);
} else {
Log.d(TAG, "Not adding emergency call to call log.");
@@ -220,7 +226,7 @@
try {
// May block.
result[i] = Calls.addCall(null, c.context, c.number, c.presentation,
- c.callType, c.timestamp, c.durationInSec);
+ c.callType, c.subscription, c.timestamp, c.durationInSec);
} catch (Exception e) {
// This is very rare but may happen in legitimate cases.
// E.g. If the phone is encrypted and thus write request fails, it may cause
diff --git a/src/com/android/telecomm/CallServiceWrapper.java b/src/com/android/telecomm/CallServiceWrapper.java
index 782f7a4..5970846 100644
--- a/src/com/android/telecomm/CallServiceWrapper.java
+++ b/src/com/android/telecomm/CallServiceWrapper.java
@@ -31,9 +31,11 @@
import android.telephony.DisconnectCause;
import com.android.internal.os.SomeArgs;
+
import com.android.internal.telecomm.ICallService;
import com.android.internal.telecomm.ICallServiceAdapter;
import com.android.internal.telecomm.ICallServiceProvider;
+import com.android.internal.telecomm.ICallVideoProvider;
import com.android.internal.telecomm.RemoteServiceCallback;
import com.android.telecomm.BaseRepository.LookupCallback;
import com.google.common.base.Preconditions;
@@ -74,6 +76,7 @@
private static final int MSG_ADD_CONFERENCE_CALL = 14;
private static final int MSG_HANDOFF_CALL = 15;
private static final int MSG_QUERY_REMOTE_CALL_SERVICES = 16;
+ private static final int MSG_SET_CALL_VIDEO_PROVIDER = 17;
private final Handler mHandler = new Handler() {
@Override
@@ -278,6 +281,20 @@
case MSG_QUERY_REMOTE_CALL_SERVICES: {
CallServiceWrapper.this.queryRemoteConnectionServices(
(RemoteServiceCallback) msg.obj);
+ break;
+ }
+ case MSG_SET_CALL_VIDEO_PROVIDER: {
+ SomeArgs args = (SomeArgs) msg.obj;
+ try {
+ call = mCallIdMapper.getCall(args.arg1);
+ ICallVideoProvider callVideoProvider = (ICallVideoProvider) args.arg2;
+ if (call != null) {
+ call.setCallVideoProvider(callVideoProvider);
+ }
+ } finally {
+ args.recycle();
+ }
+ break;
}
}
}
@@ -340,6 +357,17 @@
/** {@inheritDoc} */
@Override
+ public void setCallVideoProvider(String callId, ICallVideoProvider callVideoProvider) {
+ logIncoming("setCallVideoProvider %s", callId);
+ mCallIdMapper.checkValidCallId(callId);
+ SomeArgs args = SomeArgs.obtain();
+ args.arg1 = callId;
+ args.arg2 = callVideoProvider;
+ mHandler.obtainMessage(MSG_SET_CALL_VIDEO_PROVIDER, args).sendToTarget();
+ }
+
+ /** {@inheritDoc} */
+ @Override
public void setDialing(String callId) {
logIncoming("setDialing %s", callId);
mCallIdMapper.checkValidCallId(callId);
diff --git a/src/com/android/telecomm/CallsManager.java b/src/com/android/telecomm/CallsManager.java
index 174e59f..26f627f 100644
--- a/src/com/android/telecomm/CallsManager.java
+++ b/src/com/android/telecomm/CallsManager.java
@@ -23,6 +23,7 @@
import android.telecomm.CallServiceDescriptor;
import android.telecomm.CallState;
import android.telecomm.GatewayInfo;
+import android.telecomm.Subscription;
import android.telephony.DisconnectCause;
import com.google.common.base.Preconditions;
@@ -64,6 +65,7 @@
void onIsConferenceCapableChanged(Call call, boolean isConferenceCapable);
void onIsConferencedChanged(Call call);
void onCannedSmsResponsesLoaded(Call call);
+ void onCallVideoProviderChanged(Call call);
}
private static final CallsManager INSTANCE = new CallsManager();
@@ -224,6 +226,13 @@
}
}
+ @Override
+ public void onCallVideoProviderChanged(Call call) {
+ for (CallsManagerListener listener : mListeners) {
+ listener.onCallVideoProviderChanged(call);
+ }
+ }
+
ImmutableCollection<Call> getCalls() {
return ImmutableList.copyOf(mCalls);
}
@@ -283,7 +292,7 @@
* @param speakerphoneOn Whether or not to turn the speakerphone on once the call connects.
*/
void placeOutgoingCall(Uri handle, ContactInfo contactInfo, GatewayInfo gatewayInfo,
- boolean speakerphoneOn) {
+ Subscription subscription, boolean speakerphoneOn) {
final Uri uriHandle = (gatewayInfo == null) ? handle : gatewayInfo.getGatewayHandle();
if (gatewayInfo == null) {
@@ -294,7 +303,8 @@
}
Call call = new Call(
- uriHandle, gatewayInfo, false /* isIncoming */, false /* isConference */);
+ uriHandle, gatewayInfo, subscription,
+ false /* isIncoming */, false /* isConference */);
call.setStartWithSpeakerphoneOn(speakerphoneOn);
// TODO(santoscordon): Move this to be a part of addCall()
@@ -474,7 +484,8 @@
// particular the original call's call service will be updated to the new call's call
// service.
Call tempCall = new Call(
- originalCall.getHandoffHandle(), originalCall.getGatewayInfo(), false, false);
+ originalCall.getHandoffHandle(), originalCall.getGatewayInfo(),
+ originalCall.getSubscription(), false, false);
tempCall.setOriginalCall(originalCall);
tempCall.setExtras(originalCall.getExtras());
mPendingHandoffCalls.add(tempCall);
diff --git a/src/com/android/telecomm/CallsManagerListenerBase.java b/src/com/android/telecomm/CallsManagerListenerBase.java
index 55fa0a1..26d122b 100644
--- a/src/com/android/telecomm/CallsManagerListenerBase.java
+++ b/src/com/android/telecomm/CallsManagerListenerBase.java
@@ -86,4 +86,9 @@
@Override
public void onCannedSmsResponsesLoaded(Call call) {
}
+
+ @Override
+ public void onCallVideoProviderChanged(Call call) {
+
+ }
}
diff --git a/src/com/android/telecomm/InCallController.java b/src/com/android/telecomm/InCallController.java
index 3dd0539..871bf75 100644
--- a/src/com/android/telecomm/InCallController.java
+++ b/src/com/android/telecomm/InCallController.java
@@ -20,6 +20,8 @@
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
+
+import android.content.res.Resources;
import android.net.Uri;
import android.os.IBinder;
import android.os.RemoteException;
@@ -59,20 +61,6 @@
}
}
- /**
- * Package name of the in-call app. Although in-call code in kept in its own namespace, it is
- * ultimately compiled into the dialer APK, hence the difference in namespaces between this and
- * {@link #IN_CALL_SERVICE_CLASS_NAME}.
- * TODO(santoscordon): Change this into config.xml resource entry.
- */
- private static final String IN_CALL_PACKAGE_NAME = "com.google.android.dialer";
-
- /**
- * Class name of the component within in-call app which implements {@link IInCallService}.
- */
- private static final String IN_CALL_SERVICE_CLASS_NAME =
- "com.android.incallui.InCallServiceImpl";
-
/** Maintains a binding connection to the in-call app. */
private final InCallServiceConnection mConnection = new InCallServiceConnection();
@@ -174,6 +162,11 @@
updateCall(call);
}
+ @Override
+ public void onCallVideoProviderChanged(Call call) {
+ updateCall(call);
+ }
+
void bringToForeground(boolean showDialpad) {
if (mInCallService != null) {
try {
@@ -204,14 +197,16 @@
private void bind() {
ThreadUtil.checkOnMainThread();
if (mInCallService == null) {
- ComponentName component =
- new ComponentName(IN_CALL_PACKAGE_NAME, IN_CALL_SERVICE_CLASS_NAME);
+ Context context = TelecommApp.getInstance();
+ Resources resources = context.getResources();
+ ComponentName component = new ComponentName(
+ resources.getString(R.string.ui_default_package),
+ resources.getString(R.string.incall_default_class));
Log.i(this, "Attempting to bind to InCallService: %s", component);
Intent serviceIntent = new Intent(IInCallService.class.getName());
serviceIntent.setComponent(component);
- Context context = TelecommApp.getInstance();
if (!context.bindServiceAsUser(serviceIntent, mConnection, Context.BIND_AUTO_CREATE,
UserHandle.CURRENT)) {
Log.w(this, "Could not connect to the in-call app (%s)", component);
@@ -320,7 +315,8 @@
return new InCallCall(callId, state, call.getDisconnectCause(), call.getDisconnectMessage(),
call.getCannedSmsResponses(), capabilities, connectTimeMillis, call.getHandle(),
- call.getGatewayInfo(), descriptor, call.getHandoffCallServiceDescriptor(),
+ call.getGatewayInfo(), call.getSubscription(), descriptor,
+ call.getHandoffCallServiceDescriptor(), call.getCallVideoProvider(),
parentCallId, childCallIds);
}
diff --git a/src/com/android/telecomm/NewOutgoingCallIntentBroadcaster.java b/src/com/android/telecomm/NewOutgoingCallIntentBroadcaster.java
index c40fde5..c18dbc5 100644
--- a/src/com/android/telecomm/NewOutgoingCallIntentBroadcaster.java
+++ b/src/com/android/telecomm/NewOutgoingCallIntentBroadcaster.java
@@ -38,6 +38,7 @@
import android.os.UserHandle;
import android.provider.ContactsContract;
import android.telecomm.GatewayInfo;
+import android.telecomm.Subscription;
import android.telecomm.TelecommConstants;
import android.telephony.PhoneNumberUtils;
import android.telephony.TelephonyManager;
@@ -77,6 +78,8 @@
public static final String EXTRA_GATEWAY_PROVIDER_PACKAGE =
"com.android.phone.extra.GATEWAY_PROVIDER_PACKAGE";
public static final String EXTRA_GATEWAY_URI = "com.android.phone.extra.GATEWAY_URI";
+ public static final String EXTRA_GATEWAY_ORIGINAL_URI =
+ "com.android.phone.extra.GATEWAY_ORIGINAL_URI";
private static final String SCHEME_TEL = "tel";
private static final String SCHEME_SIP = "sip";
@@ -132,7 +135,9 @@
}
GatewayInfo gatewayInfo = getGateWayInfoFromIntent(intent, resultHandleUri);
+ Subscription subscription = getSubscriptionFromIntent(intent);
mCallsManager.placeOutgoingCall(resultHandleUri, mContactInfo, gatewayInfo,
+ subscription,
mIntent.getBooleanExtra(TelecommConstants.EXTRA_START_CALL_WITH_SPEAKERPHONE,
false));
}
@@ -201,7 +206,7 @@
+ " OutgoingCallBroadcastReceiver: %s", intent);
String scheme = isUriNumber ? SCHEME_SIP : SCHEME_TEL;
mCallsManager.placeOutgoingCall(
- Uri.fromParts(scheme, handle, null), mContactInfo, null,
+ Uri.fromParts(scheme, handle, null), mContactInfo, null, null,
mIntent.getBooleanExtra(TelecommConstants.EXTRA_START_CALL_WITH_SPEAKERPHONE,
false));
@@ -239,7 +244,7 @@
broadcastIntent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
Log.v(this, "Broadcasting intent: %s.", broadcastIntent);
- checkAndCopyGatewayProviderExtras(originalCallIntent, broadcastIntent);
+ checkAndCopyProviderExtras(originalCallIntent, broadcastIntent);
context.sendOrderedBroadcastAsUser(
broadcastIntent,
@@ -259,7 +264,10 @@
* @param src Intent which may contain the provider's extras.
* @param dst Intent where a copy of the extras will be added if applicable.
*/
- public void checkAndCopyGatewayProviderExtras(Intent src, Intent dst) {
+ public void checkAndCopyProviderExtras(Intent src, Intent dst) {
+ if (src == null) {
+ return;
+ }
if (hasGatewayProviderExtras(src)) {
dst.putExtra(EXTRA_GATEWAY_PROVIDER_PACKAGE,
src.getStringExtra(EXTRA_GATEWAY_PROVIDER_PACKAGE));
@@ -268,8 +276,14 @@
Log.d(this, "Found and copied gateway provider extras to broadcast intent.");
return;
}
+ Subscription extraSubscription = src.getParcelableExtra(
+ TelephonyManager.EXTRA_SUBSCRIPTION);
+ if (extraSubscription != null) {
+ dst.putExtra(TelephonyManager.EXTRA_SUBSCRIPTION, extraSubscription);
+ Log.d(this, "Found and copied subscription extra to broadcast intent.");
+ }
- Log.d(this, "No gateway provider extras found in call intent.");
+ Log.d(this, "No provider extras found in call intent.");
}
/**
@@ -279,9 +293,6 @@
* @return true if the intent has all the gateway information extras needed.
*/
private boolean hasGatewayProviderExtras(Intent intent) {
- if (intent == null) {
- return false;
- }
final String name = intent.getStringExtra(EXTRA_GATEWAY_PROVIDER_PACKAGE);
final String uriString = intent.getStringExtra(EXTRA_GATEWAY_URI);
@@ -315,6 +326,20 @@
return null;
}
+ /**
+ * Extracts subscription/connection provider information from a provided intent..
+ *
+ * @param intent to extract subscription information from.
+ * @return Subscription object containing extracted subscription information
+ */
+ public static Subscription getSubscriptionFromIntent(Intent intent) {
+ if (intent == null) {
+ return null;
+ }
+
+ return intent.getParcelableExtra(TelephonyManager.EXTRA_SUBSCRIPTION);
+ }
+
private void launchSystemDialer(Context context, Uri handle) {
Intent systemDialerIntent = new Intent();
final Resources resources = context.getResources();
diff --git a/src/com/android/telecomm/OutgoingCallProcessor.java b/src/com/android/telecomm/OutgoingCallProcessor.java
index ffcfe6d..9d1f008 100644
--- a/src/com/android/telecomm/OutgoingCallProcessor.java
+++ b/src/com/android/telecomm/OutgoingCallProcessor.java
@@ -43,15 +43,9 @@
*
* Except for the abort case, all other scenarios should terminate with the call notified
* of the result.
- *
- * NOTE(gilad): Currently operating under the assumption that we'll have one timeout per (outgoing)
- * call attempt. If we (also) like to timeout individual selectors and/or call services, the code
- * here will need to be re-factored (quite a bit) to support that.
*/
final class OutgoingCallProcessor {
- private final static int MSG_EXPIRE = 1;
-
/**
* The outgoing call this processor is tasked with placing.
*/
@@ -70,17 +64,6 @@
private final CallServiceRepository mCallServiceRepository;
- private final Handler mHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case MSG_EXPIRE:
- abort();
- break;
- }
- }
- };
-
/**
* The duplicate-free list of currently-available call-service descriptors.
*/
@@ -126,9 +109,6 @@
void process() {
Log.v(this, "process, mIsAborted: %b", mIsAborted);
if (!mIsAborted) {
- // Start the expiration timeout.
- mHandler.sendEmptyMessageDelayed(MSG_EXPIRE, Timeouts.getNewOutgoingCallMillis());
-
// Lookup call services
mCallServiceRepository.lookupServices(new LookupCallback<CallServiceWrapper>() {
@Override
@@ -301,8 +281,6 @@
mResultCallback.onOutgoingCallFailure(errorCode, errorMsg);
}
mResultCallback = null;
-
- mHandler.removeMessages(MSG_EXPIRE);
} else {
Log.wtf(this, "Attempting to return outgoing result twice for call %s", mCall);
}
diff --git a/src/com/android/telecomm/Timeouts.java b/src/com/android/telecomm/Timeouts.java
index 3e5899c..9fa44d3 100644
--- a/src/com/android/telecomm/Timeouts.java
+++ b/src/com/android/telecomm/Timeouts.java
@@ -53,14 +53,6 @@
}
/**
- * Returns the longest period, in milliseconds, each new outgoing call is allowed to wait before
- * being established. If the call does not connect before this time, abort the call.
- */
- public static long getNewOutgoingCallMillis() {
- return get("new_outgoing_call_ms", 60 * 1000L);
- }
-
- /**
* Returns the longest period, in milliseconds, to wait for the query for direct-to-voicemail
* to complete. If the query goes beyond this timeout, the incoming call screen is shown to the
* user.
diff --git a/tests/src/com/android/telecomm/testapps/TestCallVideoProvider.java b/tests/src/com/android/telecomm/testapps/TestCallVideoProvider.java
index ce611fe..37fe902 100644
--- a/tests/src/com/android/telecomm/testapps/TestCallVideoProvider.java
+++ b/tests/src/com/android/telecomm/testapps/TestCallVideoProvider.java
@@ -17,8 +17,10 @@
package com.android.telecomm.testapps;
import android.telecomm.CallVideoProvider;
+import android.telecomm.VideoCallProfile;
import android.util.Log;
+import android.view.Surface;
/**
* Implements the CallVideoProvider.
@@ -31,6 +33,51 @@
log("Set camera to " + cameraId);
}
+ @Override
+ public void setPreviewSurface(Surface surface) {
+
+ }
+
+ @Override
+ public void setDisplaySurface(Surface surface) {
+
+ }
+
+ @Override
+ public void setDeviceOrientation(int rotation) {
+
+ }
+
+ @Override
+ public void setZoom(float value) {
+
+ }
+
+ @Override
+ public void sendSessionModifyRequest(VideoCallProfile requestProfile) {
+
+ }
+
+ @Override
+ public void sendSessionModifyResponse(VideoCallProfile responseProfile) {
+
+ }
+
+ @Override
+ public void requestCameraCapabilities() {
+
+ }
+
+ @Override
+ public void requestCallDataUsage() {
+
+ }
+
+ @Override
+ public void setPauseImage(String uri) {
+
+ }
+
private static void log(String msg) {
Log.w("TestCallServiceProvider", "[TestCallServiceProvider] " + msg);
}
diff --git a/tests/src/com/android/telecomm/testapps/TestConnectionService.java b/tests/src/com/android/telecomm/testapps/TestConnectionService.java
index 6315e9a..4ff6fa4 100644
--- a/tests/src/com/android/telecomm/testapps/TestConnectionService.java
+++ b/tests/src/com/android/telecomm/testapps/TestConnectionService.java
@@ -16,44 +16,40 @@
package com.android.telecomm.testapps;
-import android.content.ComponentName;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.telecomm.CallAudioState;
-import android.telecomm.CallInfo;
import android.telecomm.CallServiceAdapter;
-import android.telecomm.CallState;
import android.telecomm.Connection;
import android.telecomm.ConnectionRequest;
import android.telecomm.ConnectionService;
import android.telecomm.RemoteConnection;
-import android.telecomm.RemoteConnectionService;
import android.telecomm.Response;
-
import android.telecomm.SimpleResponse;
import android.telecomm.Subscription;
import android.telephony.DisconnectCause;
+import android.text.TextUtils;
import android.util.Log;
import com.android.telecomm.tests.R;
-import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
-import com.google.common.collect.Maps;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
/**
* Service which provides fake calls to test the ICallService interface. TODO(santoscordon): Rename
* all classes in the directory to Dummy* (e.g., DummyCallService).
*/
public class TestConnectionService extends ConnectionService {
+ public static final String EXTRA_GATEWAY_PROVIDER_PACKAGE =
+ "com.android.phone.extra.GATEWAY_PROVIDER_PACKAGE";
+ public static final String EXTRA_GATEWAY_ORIGINAL_URI =
+ "com.android.phone.extra.GATEWAY_ORIGINAL_URI";
+
private final class TestConnection extends Connection {
private final RemoteConnection.Listener mProxyListener = new RemoteConnection.Listener() {
@Override
@@ -295,7 +291,7 @@
}
private static void log(String msg) {
- Log.w("telecomtestcallservice", "[TestCallService] " + msg);
+ Log.w("telecomtestcs", "[TestConnectionService] " + msg);
}
/** ${inheritDoc} */
@@ -313,6 +309,12 @@
throw new RuntimeException("Goodbye, cruel world.");
}
+ Bundle extras = originalRequest.getExtras();
+ String gatewayPackage = extras.getString(EXTRA_GATEWAY_PROVIDER_PACKAGE);
+ Uri originalHandle = extras.getParcelable(EXTRA_GATEWAY_ORIGINAL_URI);
+ log("gateway package [" + gatewayPackage + "], original handle [" +
+ originalHandle + "]");
+
// Normally we would use the original request as is, but for testing purposes, we are adding
// ".." to the end of the number to follow its path more easily through the logs.
final ConnectionRequest request = new ConnectionRequest(