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

Commit 913bd258 authored by Ricardo Cerqueira's avatar Ricardo Cerqueira Committed by Arne Coucheron
Browse files

SamsungQualcomm: Add support for Samsung's EMS dialing request

At least some samsungs require a specific emergency dial.
JF and D2 have been identified as _not_ requiring it, so it's
not for all Samsung qualcomms.

Change-Id: Id43728942f2d964a84f7486b1269d2da8305fdf6
parent 9f4ec9ae
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ public class SamsungQualcommRIL extends QualcommMSIM42RIL implements CommandsInt
    private boolean googleEditionSS = needsOldRilFeature("googleEditionSS");
    private boolean driverCall = needsOldRilFeature("newDriverCall");
    private boolean dialCode = needsOldRilFeature("newDialCode");
    private boolean samsungEmergency = needsOldRilFeature("samsungEMSReq");
    private boolean hasTdScdmaSignalStrength = needsOldRilFeature("TdScdmaSignalStrength");
    private String[] lastKnownOfGood = {null, null, null};
    public SamsungQualcommRIL(Context context, int networkMode,
@@ -756,6 +757,10 @@ public class SamsungQualcommRIL extends QualcommMSIM42RIL implements CommandsInt
    @Override
    public void
    dial(String address, int clirMode, UUSInfo uusInfo, Message result) {
        if (samsungEmergency && PhoneNumberUtils.isEmergencyNumber(address)) {
            dialEmergencyCall(address, clirMode, result);
            return;
        }
        if(!dialCode){
            super.dial(address, clirMode, uusInfo, result);
            return;
@@ -795,4 +800,21 @@ public class SamsungQualcommRIL extends QualcommMSIM42RIL implements CommandsInt
            }
        }
    }

    static final int RIL_REQUEST_DIAL_EMERGENCY = 10016;
    public void
    dialEmergencyCall(String address, int clirMode, Message result) {
        RILRequest rr;
        Rlog.v(RILJ_LOG_TAG, "Emergency dial: " + address);

        rr = RILRequest.obtain(RIL_REQUEST_DIAL_EMERGENCY, result);
        rr.mParcel.writeString(address + "/");
        rr.mParcel.writeInt(clirMode);
        rr.mParcel.writeInt(0);  // UUS information is absent

        if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));

        send(rr);
    }

}