Merge "Fix to display merge icon on failure."
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index 8c6e4cf..8d164ec 100644
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -82,6 +82,7 @@
void onVideoStateChanged(Call call);
void onCanAddCallChanged(boolean canAddCall);
void onSessionModifyRequestReceived(Call call, VideoProfile videoProfile);
+ void onMergeFailed(Call call);
}
private static final String TAG = "CallsManager";
@@ -2296,4 +2297,12 @@
updateForegroundCall();
}
}
+
+ void onMergeFailed(Call call) {
+ if (mCalls.contains(call)) {
+ for (CallsManagerListener listener : mListeners) {
+ listener.onMergeFailed(call);
+ }
+ }
+ }
}
diff --git a/src/com/android/server/telecom/CallsManagerListenerBase.java b/src/com/android/server/telecom/CallsManagerListenerBase.java
index 58085a0..773838f 100644
--- a/src/com/android/server/telecom/CallsManagerListenerBase.java
+++ b/src/com/android/server/telecom/CallsManagerListenerBase.java
@@ -84,4 +84,8 @@
public void onSessionModifyRequestReceived(Call call, VideoProfile videoProfile) {
}
+
+ @Override
+ public void onMergeFailed(Call call) {
+ }
}
diff --git a/src/com/android/server/telecom/ConnectionServiceWrapper.java b/src/com/android/server/telecom/ConnectionServiceWrapper.java
index 8465cc8..f8e9f19 100644
--- a/src/com/android/server/telecom/ConnectionServiceWrapper.java
+++ b/src/com/android/server/telecom/ConnectionServiceWrapper.java
@@ -338,7 +338,7 @@
// the failure event all the way to InCallUI instead of stopping
// it here. That way we can also handle the UI of notifying that
// the merged has failed.
- call.setConnectionCapabilities(call.getConnectionCapabilities(), true);
+ mCallsManager.onMergeFailed(call);
} else {
Log.w(this, "setConferenceMergeFailed, unknown call id: %s", callId);
}
diff --git a/src/com/android/server/telecom/InCallController.java b/src/com/android/server/telecom/InCallController.java
old mode 100755
new mode 100644
index afe79d1..78fc1f2
--- a/src/com/android/server/telecom/InCallController.java
+++ b/src/com/android/server/telecom/InCallController.java
@@ -226,6 +226,20 @@
}
@Override
+ public void onMergeFailed(Call call) {
+ if (!mInCallServices.isEmpty()) {
+ Log.i(this, "onMergeFailed :" + call);
+ for (IInCallService inCallService : mInCallServices.values()) {
+ try {
+ inCallService.onMergeFailed(toParcelableCall(call, true));
+ } catch (RemoteException ignored) {
+ Log.i(this, "onMergeFailed exception:" + ignored);
+ }
+ }
+ }
+ }
+
+ @Override
public void onConnectionServiceChanged(
Call call,
ConnectionServiceWrapper oldService,
diff --git a/tests/src/com/android/server/telecom/tests/InCallServiceFixture.java b/tests/src/com/android/server/telecom/tests/InCallServiceFixture.java
index 2dd4b97..8a7d970 100644
--- a/tests/src/com/android/server/telecom/tests/InCallServiceFixture.java
+++ b/tests/src/com/android/server/telecom/tests/InCallServiceFixture.java
@@ -113,6 +113,11 @@
public IInterface queryLocalInterface(String descriptor) {
return this;
}
+
+ @Override
+ public void onMergeFailed(ParcelableCall call) {
+
+ }
}
private IInCallService.Stub mInCallServiceFake = new FakeInCallService();