When the conference_hold_unhold_changed_to_send_message flag is true, conference’s hold and unhold operations have changed from the function call to sending a message.
Bug: 288002989
Test: atest ImsCallingTest
Test: manual test (MO call, MT call, 1st call hold unhold, conference call, conference call swap)
Test: adb shell device_config put telephony com.android.internal.telephony.flags.conference_hold_unhold_changed_to_send_message true
Change-Id: I128702c6bda657132e4acb2a3376da6d0cbe7b6e
diff --git a/Android.bp b/Android.bp
index dc35c5d..122015e 100644
--- a/Android.bp
+++ b/Android.bp
@@ -43,7 +43,8 @@
"PlatformProperties",
"modules-utils-os",
"nist-sip",
- "service-entitlement"
+ "service-entitlement",
+ "telephony_flags_core_java_lib",
],
srcs: [
diff --git a/src/com/android/services/telephony/ImsConference.java b/src/com/android/services/telephony/ImsConference.java
index 755c85f..7f0c800 100644
--- a/src/com/android/services/telephony/ImsConference.java
+++ b/src/com/android/services/telephony/ImsConference.java
@@ -38,6 +38,7 @@
import com.android.internal.telephony.CallStateException;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.flags.Flags;
import com.android.phone.PhoneUtils;
import com.android.phone.R;
import com.android.telephony.Rlog;
@@ -700,7 +701,11 @@
if (mConferenceHost == null) {
return;
}
- mConferenceHost.performHold();
+ if (Flags.conferenceHoldUnholdChangedToSendMessage()) {
+ mConferenceHost.onHold();
+ } else {
+ mConferenceHost.performHold();
+ }
}
/**
@@ -711,7 +716,11 @@
if (mConferenceHost == null) {
return;
}
- mConferenceHost.performUnhold();
+ if (Flags.conferenceHoldUnholdChangedToSendMessage()) {
+ mConferenceHost.onUnhold();
+ } else {
+ mConferenceHost.performUnhold();
+ }
}
/**
diff --git a/src/com/android/services/telephony/TelephonyConference.java b/src/com/android/services/telephony/TelephonyConference.java
index 7e4693f..4a70e1c 100644
--- a/src/com/android/services/telephony/TelephonyConference.java
+++ b/src/com/android/services/telephony/TelephonyConference.java
@@ -23,6 +23,7 @@
import com.android.internal.telephony.Call;
import com.android.internal.telephony.CallStateException;
import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.flags.Flags;
import java.util.List;
@@ -128,7 +129,11 @@
public void onHold() {
final TelephonyConnection connection = getFirstConnection();
if (connection != null) {
- connection.performHold();
+ if (Flags.conferenceHoldUnholdChangedToSendMessage()) {
+ connection.onHold();
+ } else {
+ connection.performHold();
+ }
}
}
@@ -139,7 +144,11 @@
public void onUnhold() {
final TelephonyConnection connection = getFirstConnection();
if (connection != null) {
- connection.performUnhold();
+ if (Flags.conferenceHoldUnholdChangedToSendMessage()) {
+ connection.onUnhold();
+ } else {
+ connection.performUnhold();
+ }
}
}