Implement Connection.startActivityFromInCall in Telecomm
This CL adds plumbing to send the startActivityFromInCall
request from Connection to InCallUI.
Change-Id: I65119a89c925a93467d1b27304ffec9b088b172f
diff --git a/src/com/android/telecomm/ConnectionServiceWrapper.java b/src/com/android/telecomm/ConnectionServiceWrapper.java
index fb9d34c..eb2e0ac 100644
--- a/src/com/android/telecomm/ConnectionServiceWrapper.java
+++ b/src/com/android/telecomm/ConnectionServiceWrapper.java
@@ -16,6 +16,7 @@
package com.android.telecomm;
+import android.app.PendingIntent;
import android.content.ComponentName;
import android.net.Uri;
import android.os.Bundle;
@@ -77,6 +78,7 @@
private static final int MSG_SET_HANDLE = 19;
private static final int MSG_SET_CALLER_DISPLAY_NAME = 20;
private static final int MSG_SET_VIDEO_STATE = 21;
+ private static final int MSG_START_ACTIVITY_FROM_IN_CALL = 22;
private final Handler mHandler = new Handler() {
@Override
@@ -171,17 +173,11 @@
}
break;
case MSG_SET_REQUESTING_RINGBACK: {
- SomeArgs args = (SomeArgs) msg.obj;
- try {
- call = mCallIdMapper.getCall(args.arg1);
- boolean ringback = (boolean) args.arg2;
- if (call != null) {
- call.setRequestingRingback(ringback);
- } else {
- //Log.w(this, "setRingback, unknown call id: %s", args.arg1);
- }
- } finally {
- args.recycle();
+ call = mCallIdMapper.getCall(msg.obj);
+ if (call != null) {
+ call.setRequestingRingback(msg.arg1 == 1);
+ } else {
+ //Log.w(this, "setRingback, unknown call id: %s", args.arg1);
}
break;
}
@@ -315,6 +311,18 @@
call.setVideoState(msg.arg1);
}
}
+ case MSG_START_ACTIVITY_FROM_IN_CALL: {
+ SomeArgs args = (SomeArgs) msg.obj;
+ try {
+ call = mCallIdMapper.getCall(args.arg1);
+ if (call != null) {
+ call.startActivityFromInCall((PendingIntent) args.arg2);
+ }
+ } finally {
+ args.recycle();
+ }
+ break;
+ }
}
}
};
@@ -400,10 +408,8 @@
public void setRequestingRingback(String callId, boolean ringback) {
logIncoming("setRequestingRingback %s %b", callId, ringback);
mCallIdMapper.checkValidCallId(callId);
- SomeArgs args = SomeArgs.obtain();
- args.arg1 = callId;
- args.arg2 = ringback;
- mHandler.obtainMessage(MSG_SET_REQUESTING_RINGBACK, args).sendToTarget();
+ mHandler.obtainMessage(MSG_SET_REQUESTING_RINGBACK, ringback ? 1 : 0, 0, callId)
+ .sendToTarget();
}
@Override
@@ -497,6 +503,16 @@
args.argi1 = presentation;
mHandler.obtainMessage(MSG_SET_CALLER_DISPLAY_NAME, args).sendToTarget();
}
+
+ @Override
+ public void startActivityFromInCall(String callId, PendingIntent intent) {
+ logIncoming("startActivityFromInCall %s %s", callId, intent);
+ mCallIdMapper.checkValidCallId(callId);
+ SomeArgs args = SomeArgs.obtain();
+ args.arg1 = callId;
+ args.arg2 = intent;
+ mHandler.obtainMessage(MSG_START_ACTIVITY_FROM_IN_CALL, args).sendToTarget();
+ }
}
private final Adapter mAdapter = new Adapter();