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

Commit 1f0eae82 authored by Ravindra's avatar Ravindra Committed by Linux Build Service Account
Browse files

Fix to swap conference and normal call

Send hold request on the parent call while performing hold\unhold
on a conference call.

Change-Id: I95d60c85e444d7cbf954cd1316c2afe099e9004b
CRs-Fixed: 743005
parent 63605bb0
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -744,9 +744,23 @@ public final class CallsManager extends Call.ListenerBase {
            Log.w(this, "Unknown call (%s) asked to be removed from hold", call);
        } else {
            Log.d(this, "unholding call: (%s)", call);
            for (Call c : mCalls) {
            PhoneAccountHandle ph = call.getTargetPhoneAccount();
            if ((ph == null) && (call.getChildCalls().size() > 1)) {
                Call child = call.getChildCalls().get(0);
                ph = child.getTargetPhoneAccount();
            }
            for (Call c : mCalls) {
                // Only operate on top-level calls
                if (c.getParentCall() != null) {
                    continue;
                }

                PhoneAccountHandle ph1 = c.getTargetPhoneAccount();
                if ((ph1 == null) && (c.getChildCalls().size() > 1)) {
                    Call child = c.getChildCalls().get(0);
                    ph1 = child.getTargetPhoneAccount();
                }

                // if 'c' is not for same subscription as call, then don't disturb 'c'
                if (c != null && c.isAlive() && c != call && (ph != null
                        && ph1 != null && ph.getId().equals(ph1.getId()))) {