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

Commit 9bacd119 authored by Daniel Bateman's avatar Daniel Bateman Committed by codeworkx
Browse files

samsung ril: add UNSOL_AM implementation

* The Samsung RIL will sometimes send up an UNSOL_AM
request which is to be handled by the "am" service.
(For example when the RIL resets)

Change-Id: Ifc8ead91f2dbc39456c4a502b9623c608c796224
parent 4dbd01b5
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ package com.android.internal.telephony;

import java.util.ArrayList;
import java.util.Collections;
import java.lang.Runtime;
import java.io.IOException;

import android.content.BroadcastReceiver;
import android.content.Context;
@@ -386,7 +388,7 @@ public class SamsungRIL extends RIL implements CommandsInterface {
        case RIL_UNSOL_GPS_NOTI: ret = responseVoid(p); break; // Ignored in TW RIL.
        case RIL_UNSOL_SAMSUNG_UNKNOWN_MAGIC_REQUEST: ret = responseVoid(p); break;
        case RIL_UNSOL_SAMSUNG_UNKNOWN_MAGIC_REQUEST_2: ret = responseVoid(p); break;
        case RIL_UNSOL_AM: ret = responseVoid(p); break;
        case RIL_UNSOL_AM: ret = responseString(p); break;

        default:
            throw new RuntimeException("Unrecognized unsol response: " + response);
@@ -720,6 +722,18 @@ public class SamsungRIL extends RIL implements CommandsInterface {
                mResendIncallMuteRegistrants.notifyRegistrants(
                        new AsyncResult (null, ret, null));
            }
            break;
        case RIL_UNSOL_AM:
            String amString = (String) ret;
            Log.d(LOG_TAG, "Executing AM: " + amString);

            try {
                Runtime.getRuntime().exec("am " + amString);
            } catch (IOException e) {
                e.printStackTrace();
                Log.e(LOG_TAG, "am " + amString + " could not be executed.");
            }
            break;
        }
    }

+15 −1
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.Runtime;
import java.util.ArrayList;
import java.util.Collections;

@@ -500,7 +501,7 @@ public class Smdk4210RIL extends RIL implements CommandsInterface {
            case RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS: ret = responseString(p); break;
            case RIL_UNSOL_RIL_CONNECTED: ret = responseInts(p); break;
            // SAMSUNG STATES
            case RIL_UNSOL_AM: ret = responseVoid(p); break;
            case RIL_UNSOL_AM: ret = responseString(p); break;
            case RIL_UNSOL_DUN_PIN_CONTROL_SIGNAL: ret = responseVoid(p); break;
            case RIL_UNSOL_DATA_SUSPEND_RESUME: ret = responseInts(p); break;
            case RIL_UNSOL_STK_CALL_CONTROL_RESULT: ret = responseVoid(p); break;
@@ -536,7 +537,20 @@ public class Smdk4210RIL extends RIL implements CommandsInterface {
                break;
            // SAMSUNG STATES
            case RIL_UNSOL_AM:
                if (RILJ_LOGD) samsungUnsljLogRet(response, ret);
                String amString = (String) ret;
                Log.d(LOG_TAG, "Executing AM: " + amString);

                try {
                    Runtime.getRuntime().exec("am " + amString);
                } catch (IOException e) {
                    e.printStackTrace();
                    Log.e(LOG_TAG, "am " + amString + " could not be executed.");
                }
                break;
            case RIL_UNSOL_DUN_PIN_CONTROL_SIGNAL:
                if (RILJ_LOGD) samsungUnsljLogRet(response, ret);
                break;
            case RIL_UNSOL_DATA_SUSPEND_RESUME:
                if (RILJ_LOGD) samsungUnsljLogRet(response, ret);
                break;