Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4eb1891b authored by Tyler Gunn's avatar Tyler Gunn
Browse files

Add carrier config to support local disconnect of empty IMS conference.

Adding carrier config key to support ability to locally disconnect an
empty IMS conference.  The network normally does this, but there             are some
carriers which rely on the device to do it.

Test: Add unit test to verify local disconnect when participant count is
zero.
Test: Use conference event package test cmd/intents to inject test CEP to
simulate a conference dropped to 0 participants.  Verify IMS conference is
disconnected.
Fixes: 151707520

Change-Id: Id7238bc668e6d6d2d7a04a8696263b260d6b6fd8
parent 2845ad86
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -1162,6 +1162,25 @@ public class CarrierConfigManager {
    public static final String KEY_SUPPORT_IMS_CONFERENCE_CALL_BOOL =
            "support_ims_conference_call_bool";

    /**
     * Determines whether the device will locally disconnect an IMS conference when the participant
     * count drops to zero.  When {@code true}, it is assumed the carrier does NOT disconnect a
     * conference when the participant count drops to zero and that the device must do this by
     * disconnecting the conference locally.  When {@code false}, it is assumed that the carrier
     * is responsible for disconnecting the conference when there are no longer any participants
     * present.
     * <p>
     * Note: both {@link #KEY_SUPPORT_IMS_CONFERENCE_CALL_BOOL} and
     * {@link #KEY_SUPPORT_IMS_CONFERENCE_EVENT_PACKAGE_BOOL} must be true for this configuration to
     * have any effect.
     * <p>
     * Defaults to {@code false}, meaning the carrier network is responsible for disconnecting an
     * empty IMS conference.
     * @hide
     */
    public static final String KEY_LOCAL_DISCONNECT_EMPTY_IMS_CONFERENCE_BOOL =
            "local_disconnect_empty_ims_conference_bool";

    /**
     * Determines whether video conference calls are supported by a carrier.  When {@code true},
     * video calls can be merged into conference calls, {@code false} otherwiwse.
@@ -3778,6 +3797,7 @@ public class CarrierConfigManager {
        sDefaults.putBoolean(KEY_SUPPORT_ADD_CONFERENCE_PARTICIPANTS_BOOL, false);
        sDefaults.putBoolean(KEY_SUPPORT_CONFERENCE_CALL_BOOL, true);
        sDefaults.putBoolean(KEY_SUPPORT_IMS_CONFERENCE_CALL_BOOL, true);
        sDefaults.putBoolean(KEY_LOCAL_DISCONNECT_EMPTY_IMS_CONFERENCE_BOOL, false);
        sDefaults.putBoolean(KEY_SUPPORT_MANAGE_IMS_CONFERENCE_CALL_BOOL, true);
        sDefaults.putBoolean(KEY_SUPPORT_IMS_CONFERENCE_EVENT_PACKAGE_BOOL, true);
        sDefaults.putBoolean(KEY_SUPPORT_VIDEO_CONFERENCE_CALL_BOOL, false);