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

Commit ebe93288 authored by sqian's avatar sqian Committed by android-build-merger
Browse files

Fix Emergency Sms permission check

am: 78dc720a

Change-Id: Ic17ced7a9b60517ea4edf218c68b5b1cd11d28ff
parents b47bfbfe 78dc720a
Loading
Loading
Loading
Loading
+27 −20
Original line number Original line Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.internal.telephony;
package com.android.internal.telephony;


import android.content.Context;
import android.content.Context;
import android.os.Binder;
import android.os.PersistableBundle;
import android.os.PersistableBundle;
import android.os.RemoteException;
import android.os.RemoteException;
import android.provider.Telephony.Sms.Intents;
import android.provider.Telephony.Sms.Intents;
@@ -258,9 +259,12 @@ public class ImsSmsDispatcher extends SMSDispatcher {
        PersistableBundle b;
        PersistableBundle b;
        boolean eSmsCarrierSupport = false;
        boolean eSmsCarrierSupport = false;
        if (!PhoneNumberUtils.isLocalEmergencyNumber(mContext, mPhone.getSubId(), destAddr)) {
        if (!PhoneNumberUtils.isLocalEmergencyNumber(mContext, mPhone.getSubId(), destAddr)) {
            Rlog.e(TAG, "Emergency Sms is not supported for: " + destAddr);
            Rlog.e(TAG, "Emergency Sms is not supported for: " + Rlog.pii(TAG, destAddr));
            return false;
            return false;
        }
        }

        final long identity = Binder.clearCallingIdentity();
        try {
            CarrierConfigManager configManager = (CarrierConfigManager) mPhone.getContext()
            CarrierConfigManager configManager = (CarrierConfigManager) mPhone.getContext()
                    .getSystemService(Context.CARRIER_CONFIG_SERVICE);
                    .getSystemService(Context.CARRIER_CONFIG_SERVICE);
            if (configManager == null) {
            if (configManager == null) {
@@ -272,16 +276,19 @@ public class ImsSmsDispatcher extends SMSDispatcher {
                Rlog.e(TAG, "PersistableBundle is null");
                Rlog.e(TAG, "PersistableBundle is null");
                return false;
                return false;
            }
            }
        eSmsCarrierSupport = b.getBoolean(CarrierConfigManager.
            eSmsCarrierSupport = b.getBoolean(
                                                      KEY_SUPPORT_EMERGENCY_SMS_OVER_IMS_BOOL);
                    CarrierConfigManager.KEY_SUPPORT_EMERGENCY_SMS_OVER_IMS_BOOL);
            boolean lteOrLimitedLte = isEmergencySmsPossible();
            boolean lteOrLimitedLte = isEmergencySmsPossible();
            Rlog.i(TAG, "isEmergencySmsSupport emergencySmsCarrierSupport: "
            Rlog.i(TAG, "isEmergencySmsSupport emergencySmsCarrierSupport: "
               + eSmsCarrierSupport + " destAddr: " + destAddr + " mIsImsServiceUp: "
                    + eSmsCarrierSupport + " destAddr: " + Rlog.pii(TAG, destAddr)
               + mIsImsServiceUp + " lteOrLimitedLte: " + lteOrLimitedLte);
                    + " mIsImsServiceUp: " + mIsImsServiceUp + " lteOrLimitedLte: "
                    + lteOrLimitedLte);


            return eSmsCarrierSupport && mIsImsServiceUp && lteOrLimitedLte;
            return eSmsCarrierSupport && mIsImsServiceUp && lteOrLimitedLte;
        } finally {
            Binder.restoreCallingIdentity(identity);
        }
    }
    }



    public boolean isAvailable() {
    public boolean isAvailable() {
        synchronized (mLock) {
        synchronized (mLock) {