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

Commit 5ffe7bf0 authored by Roman Birg's avatar Roman Birg Committed by codeworkx
Browse files

Smdk4210RIL: fix emergency dialing

Change-Id: I1aec71d1b6f8e1e4d4fe67e76b6d5994c92c5959
parent df51464d
Loading
Loading
Loading
Loading
+53 −0
Original line number Original line Diff line number Diff line
@@ -159,6 +159,14 @@ public class Smdk4210RIL extends RIL implements CommandsInterface {
        audioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);
        audioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);
    }
    }


    static String
    requestToString(int request) {
        switch (request) {
            case RIL_REQUEST_DIAL_EMERGENCY: return "DIAL_EMERGENCY";
            default: return RIL.requestToString(request);
        }
    }

    @Override
    @Override
    public void setCurrentPreferredNetworkType() {
    public void setCurrentPreferredNetworkType() {
        if (RILJ_LOGD) riljLog("setCurrentPreferredNetworkType IGNORED");
        if (RILJ_LOGD) riljLog("setCurrentPreferredNetworkType IGNORED");
@@ -438,6 +446,7 @@ public class Smdk4210RIL extends RIL implements CommandsInterface {
            case RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING: ret = responseVoid(p); break;
            case RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING: ret = responseVoid(p); break;
            case RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE: ret =  responseInts(p); break;
            case RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE: ret =  responseInts(p); break;
            case RIL_REQUEST_ISIM_AUTHENTICATION: ret =  responseString(p); break;
            case RIL_REQUEST_ISIM_AUTHENTICATION: ret =  responseString(p); break;
            case RIL_REQUEST_DIAL_EMERGENCY: ret = responseVoid(p); break;
            default:
            default:
                throw new RuntimeException("Unrecognized solicited response: " + rr.mRequest);
                throw new RuntimeException("Unrecognized solicited response: " + rr.mRequest);
                //break;
                //break;
@@ -490,6 +499,50 @@ public class Smdk4210RIL extends RIL implements CommandsInterface {
        rr.release();
        rr.release();
    }
    }


    @Override
    public void
    dial(String address, int clirMode, UUSInfo uusInfo, Message result) {
        RILRequest rr;
        if (PhoneNumberUtils.isEmergencyNumber(address)) {
            dialEmergencyCall(address, clirMode, result);
            return;
        }

        rr = RILRequest.obtain(RIL_REQUEST_DIAL, result);
        rr.mp.writeString(address);
        rr.mp.writeInt(clirMode);
        rr.mp.writeInt(0); // UUS information is absent

        if (uusInfo == null) {
            rr.mp.writeInt(0); // UUS information is absent
        } else {
            rr.mp.writeInt(1); // UUS information is present
            rr.mp.writeInt(uusInfo.getType());
            rr.mp.writeInt(uusInfo.getDcs());
            rr.mp.writeByteArray(uusInfo.getUserData());
        }

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

        send(rr);
    }

    public void
    dialEmergencyCall(String address, int clirMode, Message result) {
        RILRequest rr;
        Log.v(LOG_TAG, "Emergency dial: " + address);

        rr = RILRequest.obtain(RIL_REQUEST_DIAL_EMERGENCY, result);
        rr.mp.writeString(address + "/");
        rr.mp.writeInt(clirMode);
        rr.mp.writeInt(0);
        rr.mp.writeInt(0);

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

        send(rr);
    }

    @Override
    @Override
    protected void
    protected void
    processUnsolicited (Parcel p) {
    processUnsolicited (Parcel p) {