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

Commit d561e8e0 authored by Steve Kondik's avatar Steve Kondik
Browse files

Merge tag 'android-6.0.1_r22' of...

Merge tag 'android-6.0.1_r22' of https://android.googlesource.com/platform/frameworks/opt/telephony into cm-13.0

Android 6.0.1 release 22

Change-Id: Iec8ce4fac513472ae184d07afc40a1996579adeb
parents e8a8a7f4 e99733d1
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -2140,4 +2140,9 @@ public interface Phone {
     * @param lchStatus, true if call is in lch state
     */
    public void setLocalCallHold(boolean lchStatus);

    /**
     * Set boolean broadcastEmergencyCallStateChanges
     */
    public void setBroadcastEmergencyCallStateChanges(boolean broadcast);
}
+22 −2
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.internal.telephony;

import android.app.ActivityManagerNative;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -33,6 +34,7 @@ import android.os.Message;
import android.os.Registrant;
import android.os.RegistrantList;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.telecom.VideoProfile;
@@ -90,6 +92,7 @@ import org.codeaurora.QtiVideoCallConstants;

public abstract class PhoneBase extends Handler implements Phone {
    private static final String LOG_TAG = "PhoneBase";
    private static final boolean DBG = true;

    private boolean mImsIntentReceiverRegistered = false;
    private BroadcastReceiver mImsIntentReceiver = new BroadcastReceiver() {
@@ -265,6 +268,8 @@ public abstract class PhoneBase extends Handler implements Phone {
    protected int mReportInterval = 0;  // ms
    protected int mLceStatus = RILConstants.LCE_NOT_AVAILABLE;

    private boolean mBroadcastEmergencyCallStateChanges = false;

    @Override
    public String getPhoneName() {
        return mName;
@@ -2760,6 +2765,21 @@ public abstract class PhoneBase extends Handler implements Phone {
                    QtiVideoCallConstants.DOMAIN_AUTOMATIC) == QtiVideoCallConstants.DOMAIN_CS);
    }

    public void sendEmergencyCallStateChange(boolean callActive) {
        if (mBroadcastEmergencyCallStateChanges) {
            Intent intent = new Intent(TelephonyIntents.ACTION_EMERGENCY_CALL_STATE_CHANGED);
            intent.putExtra(PhoneConstants.PHONE_IN_EMERGENCY_CALL, callActive);
            SubscriptionManager.putPhoneIdAndSubIdExtra(intent, getPhoneId());
            ActivityManagerNative.broadcastStickyIntent(intent, null, UserHandle.USER_ALL);
            if (DBG) Rlog.d(LOG_TAG, "sendEmergencyCallStateChange");
        }
    }

    @Override
    public void setBroadcastEmergencyCallStateChanges(boolean broadcast) {
        mBroadcastEmergencyCallStateChanges = broadcast;
    }

    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
        pw.println("PhoneBase: subId=" + getSubId());
        pw.println(" mPhoneId=" + mPhoneId);
+20 −0
Original line number Diff line number Diff line
@@ -195,6 +195,21 @@ public class PhoneProxy extends Handler implements Phone {
            }
            // Force update IMS service
            ImsManager.updateImsServiceConfig(mContext, mPhoneId, true);

            // Update broadcastEmergencyCallStateChanges
            CarrierConfigManager configMgr = (CarrierConfigManager)
                    mActivePhone.getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE);
            PersistableBundle b = configMgr.getConfigForSubId(mActivePhone.getSubId());
            if (b != null) {
                boolean broadcastEmergencyCallStateChanges = b.getBoolean(
                        CarrierConfigManager.KEY_BROADCAST_EMERGENCY_CALL_STATE_CHANGES_BOOL);
                logd("broadcastEmergencyCallStateChanges =" + broadcastEmergencyCallStateChanges);
                mActivePhone.setBroadcastEmergencyCallStateChanges(
                        broadcastEmergencyCallStateChanges);
            } else {
                loge("didn't get broadcastEmergencyCallStateChanges from carrier config");
            }

            break;

        default:
@@ -1674,6 +1689,11 @@ public class PhoneProxy extends Handler implements Phone {
        return mActivePhone.isWifiCallingEnabled();
    }

    @Override
    public void setBroadcastEmergencyCallStateChanges(boolean broadcast) {
        mActivePhone.setBroadcastEmergencyCallStateChanges(broadcast);
    }

    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
        try {
            ((PhoneBase)mActivePhone).dump(fd, pw, args);
+3 −0
Original line number Diff line number Diff line
@@ -95,6 +95,9 @@ public class PhoneSubInfoController extends IPhoneSubInfo.Stub {

        final Phone phone = getPhone(phoneId);
        if (phone != null) {
            phone.getContext().enforceCallingOrSelfPermission(
                    android.Manifest.permission.READ_PHONE_STATE,
                    "Requires READ_PHONE_STATE");
            return phone.getDeviceId();
        } else {
            Rlog.e(TAG,"getDeviceIdForPhone phone " + phoneId + " is null");
+3 −0
Original line number Diff line number Diff line
@@ -1167,7 +1167,9 @@ public final class CdmaCallTracker extends CallTracker {
        mIsInEmergencyCall = true;
        mPhone.mDcTracker.setInternalDataEnabled(false);
        mPhone.notifyEmergencyCallRegistrants(true);
        mPhone.sendEmergencyCallStateChange(true);
    }

    /**
     * Check and enable data call after an emergency call is dropped if it's
     * not in ECM
@@ -1184,6 +1186,7 @@ public final class CdmaCallTracker extends CallTracker {
                mPhone.mDcTracker.setInternalDataEnabled(true);
                mPhone.notifyEmergencyCallRegistrants(false);
            }
            mPhone.sendEmergencyCallStateChange(false);
        }
    }

Loading