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

Commit f7885e6c authored by Xiangyu/Malcolm Chen's avatar Xiangyu/Malcolm Chen Committed by android-build-merger
Browse files

Merge changes Ie2549f2c,Idd21283b

am: b90e267f

Change-Id: If65f341dc15e3bd4914d9e836a8cb741772db751
parents 47ed6f5a b90e267f
Loading
Loading
Loading
Loading
+20 −24
Original line number Original line Diff line number Diff line
@@ -327,7 +327,13 @@ public class PhoneSwitcher extends Handler {
            }
            }
        }
        }


        return (mPhoneIdInVoiceCall != oldPhoneIdInVoiceCall);
        if (mPhoneIdInVoiceCall != oldPhoneIdInVoiceCall) {
            log("isPhoneInVoiceCallChanged from phoneId " + oldPhoneIdInVoiceCall
                    + " to phoneId " + mPhoneIdInVoiceCall);
            return true;
        } else {
            return false;
        }
    }
    }


    @VisibleForTesting
    @VisibleForTesting
@@ -606,19 +612,6 @@ public class PhoneSwitcher extends Handler {
        }
        }
    }
    }


    private boolean isEmergency() {
        if (isInEmergencyCallbackMode()) return true;
        for (Phone p : mPhones) {
            if (p == null) continue;
            if (p.isInEmergencyCall()) return true;
            Phone imsPhone = p.getImsPhone();
            if (imsPhone != null && imsPhone.isInEmergencyCall()) {
                return true;
            }
        }
        return false;
    }

    private boolean isInEmergencyCallbackMode() {
    private boolean isInEmergencyCallbackMode() {
        for (Phone p : mPhones) {
        for (Phone p : mPhones) {
            if (p == null) continue;
            if (p == null) continue;
@@ -734,10 +727,6 @@ public class PhoneSwitcher extends Handler {
     */
     */
    private boolean onEvaluate(boolean requestsChanged, String reason) {
    private boolean onEvaluate(boolean requestsChanged, String reason) {
        StringBuilder sb = new StringBuilder(reason);
        StringBuilder sb = new StringBuilder(reason);
        if (isEmergency()) {
            log("onEvaluate for reason " + reason + " aborted due to Emergency");
            return false;
        }


        // If we use HAL_COMMAND_PREFERRED_DATA,
        // If we use HAL_COMMAND_PREFERRED_DATA,
        boolean diffDetected = mHalCommandToUse != HAL_COMMAND_PREFERRED_DATA && requestsChanged;
        boolean diffDetected = mHalCommandToUse != HAL_COMMAND_PREFERRED_DATA && requestsChanged;
@@ -812,6 +801,12 @@ public class PhoneSwitcher extends Handler {
                        newActivePhones.add(mPhones[i].getPhoneId());
                        newActivePhones.add(mPhones[i].getPhoneId());
                    }
                    }
                } else {
                } else {
                    // First try to activate phone in voice call.
                    if (mPhoneIdInVoiceCall != SubscriptionManager.INVALID_PHONE_INDEX) {
                        newActivePhones.add(mPhoneIdInVoiceCall);
                    }

                    if (newActivePhones.size() < mMaxActivePhones) {
                        for (DcRequest dcRequest : mPrioritizedDcRequests) {
                        for (DcRequest dcRequest : mPrioritizedDcRequests) {
                            int phoneIdForRequest = phoneIdForRequest(dcRequest.networkRequest);
                            int phoneIdForRequest = phoneIdForRequest(dcRequest.networkRequest);
                            if (phoneIdForRequest == INVALID_PHONE_INDEX) continue;
                            if (phoneIdForRequest == INVALID_PHONE_INDEX) continue;
@@ -819,6 +814,7 @@ public class PhoneSwitcher extends Handler {
                            newActivePhones.add(phoneIdForRequest);
                            newActivePhones.add(phoneIdForRequest);
                            if (newActivePhones.size() >= mMaxActivePhones) break;
                            if (newActivePhones.size() >= mMaxActivePhones) break;
                        }
                        }
                    }


                    if (newActivePhones.size() < mMaxActivePhones
                    if (newActivePhones.size() < mMaxActivePhones
                            && newActivePhones.contains(mPreferredDataPhoneId)
                            && newActivePhones.contains(mPreferredDataPhoneId)