Loading src/java/com/android/internal/telephony/CommandsInterface.java +18 −1 Original line number Diff line number Diff line Loading @@ -1268,7 +1268,24 @@ public interface CommandsInterface { void writeSmsToRuim(int status, byte[] pdu, Message response); @UnsupportedAppUsage void setRadioPower(boolean on, Message response); default void setRadioPower(boolean on, Message response) { setRadioPower(on, false, false, response); } /** * Sets the radio power on/off state (off is sometimes * called "airplane mode"). * * @param on true means "on", false means "off". * @param forEmergencyCall true means the purpose of turning radio power on is for emergency * call. No effect if power is set false. * @param isSelectedPhoneForEmergencyCall true means this phone / modem is selected to place * emergency call after turning power on. No effect if power * or forEmergency is set false. * @param response sent when operation completes. */ default void setRadioPower(boolean on, boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall, Message response) {} @UnsupportedAppUsage void acknowledgeLastIncomingGsmSms(boolean success, int cause, Message response); Loading src/java/com/android/internal/telephony/GsmCdmaPhone.java +3 −3 Original line number Diff line number Diff line Loading @@ -88,7 +88,6 @@ import com.android.internal.telephony.dataconnection.TransportManager; import com.android.internal.telephony.emergency.EmergencyNumberTracker; import com.android.internal.telephony.gsm.GsmMmiCode; import com.android.internal.telephony.gsm.SuppServiceNotification; import com.android.internal.telephony.imsphone.ImsPhone; import com.android.internal.telephony.test.SimulatedRadioControl; import com.android.internal.telephony.uicc.IccCardApplicationStatus.AppType; import com.android.internal.telephony.uicc.IccCardStatus; Loading Loading @@ -1578,8 +1577,9 @@ public class GsmCdmaPhone extends Phone { } @Override public void setRadioPower(boolean power) { mSST.setRadioPower(power); public void setRadioPower(boolean power, boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall, boolean forceApply) { mSST.setRadioPower(power, forEmergencyCall, isSelectedPhoneForEmergencyCall, forceApply); } private void storeVoiceMailNumber(String number) { Loading src/java/com/android/internal/telephony/PhoneInternalInterface.java +27 −1 Original line number Diff line number Diff line Loading @@ -514,7 +514,33 @@ public interface PhoneInternalInterface { * * @param power true means "on", false means "off". */ void setRadioPower(boolean power); default void setRadioPower(boolean power) { setRadioPower(power, false, false, false); } /** * Sets the radio power on/off state with option to specify whether it's for emergency call * (off is sometimes called "airplane mode"). Current state can be gotten via * {@link #getServiceState()}.{@link * android.telephony.ServiceState#getState() getState()}. * <strong>Note: </strong>This request is asynchronous. * getServiceState().getState() will not change immediately after this call. * registerForServiceStateChanged() to find out when the * request is complete. * * @param power true means "on", false means "off". * @param forEmergencyCall true means the purpose of turning radio power on is for emergency * call. No effect if power is set false. * @param isSelectedPhoneForEmergencyCall true means this phone / modem is selected to place * emergency call after turning power on. No effect if power * or forEmergency is set false. * @param forceApply true means always call setRadioPower HAL API without checking against * current radio power state. It's needed when: radio was powered on into * emergency call mode, to exit from that mode, we set radio * power on again with forEmergencyCall being false. */ default void setRadioPower(boolean power, boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall, boolean forceApply) {} /** * Get the line 1 phone number (MSISDN). For CDMA phones, the MDN is returned Loading src/java/com/android/internal/telephony/RIL.java +19 −6 Original line number Diff line number Diff line Loading @@ -1412,7 +1412,8 @@ public class RIL extends BaseCommands implements CommandsInterface { @UnsupportedAppUsage @Override public void setRadioPower(boolean on, Message result) { public void setRadioPower(boolean on, boolean forEmergencyCall, boolean preferredForEmergencyCall, Message result) { IRadio radioProxy = getRadioProxy(result); if (radioProxy != null) { RILRequest rr = obtainRequest(RIL_REQUEST_RADIO_POWER, result, Loading @@ -1420,9 +1421,20 @@ public class RIL extends BaseCommands implements CommandsInterface { if (RILJ_LOGD) { riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " on = " + on); + " on = " + on + " forEmergencyCall= " + forEmergencyCall + " preferredForEmergencyCall=" + preferredForEmergencyCall); } if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_5)) { android.hardware.radio.V1_5.IRadio radioProxy15 = (android.hardware.radio.V1_5.IRadio) radioProxy; try { radioProxy15.setRadioPower_1_5(rr.mSerial, on, forEmergencyCall, preferredForEmergencyCall); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "setRadioPower_1_5", e); } } else { try { radioProxy.setRadioPower(rr.mSerial, on); } catch (RemoteException | RuntimeException e) { Loading @@ -1430,6 +1442,7 @@ public class RIL extends BaseCommands implements CommandsInterface { } } } } @Override public void sendDtmf(char c, Message result) { Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +36 −7 Original line number Diff line number Diff line Loading @@ -1013,11 +1013,28 @@ public class ServiceStateTracker extends Handler { obtainMessage(EVENT_GET_PREFERRED_NETWORK_TYPE, onComplete)); } public void setRadioPower(boolean power) { mDesiredPowerState = power; /** * Turn on or off radio power. */ public final void setRadioPower(boolean power) { setRadioPower(power, false, false, false); } setPowerStateToDesired(); /** * Turn on or off radio power with option to specify whether it's for emergency call. * More details check {@link PhoneInternalInterface#setRadioPower( * boolean, boolean, boolean, boolean)}. */ public void setRadioPower(boolean power, boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall, boolean forceApply) { log("setRadioPower forEmergencyCall " + forEmergencyCall + " forceApply " + forceApply); if (power == mDesiredPowerState && !forceApply) { log("setRadioPower mDesiredPowerState is already " + power + " Do nothing."); return; } mDesiredPowerState = power; setPowerStateToDesired(forEmergencyCall, isSelectedPhoneForEmergencyCall, forceApply); } /** Loading @@ -1026,7 +1043,14 @@ public class ServiceStateTracker extends Handler { * @param enable indicate if radio power is enabled or disabled from carrier action. */ public void setRadioPowerFromCarrier(boolean enable) { mRadioDisabledByCarrier = !enable; boolean disableByCarrier = !enable; if (mRadioDisabledByCarrier == disableByCarrier) { log("setRadioPowerFromCarrier mRadioDisabledByCarrier is already " + disableByCarrier + " Do nothing."); return; } mRadioDisabledByCarrier = disableByCarrier; setPowerStateToDesired(); } Loading Loading @@ -2831,6 +2855,11 @@ public class ServiceStateTracker extends Handler { } protected void setPowerStateToDesired() { setPowerStateToDesired(false, false, false); } protected void setPowerStateToDesired(boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall, boolean forceApply) { if (DBG) { String tmpLog = "mDeviceShuttingDown=" + mDeviceShuttingDown + ", mDesiredPowerState=" + mDesiredPowerState + Loading @@ -2852,8 +2881,8 @@ public class ServiceStateTracker extends Handler { // If we want it on and it's off, turn it on if (mDesiredPowerState && !mRadioDisabledByCarrier && mCi.getRadioState() == TelephonyManager.RADIO_POWER_OFF) { mCi.setRadioPower(true, null); && (forceApply || mCi.getRadioState() == TelephonyManager.RADIO_POWER_OFF)) { mCi.setRadioPower(true, forEmergencyCall, isSelectedPhoneForEmergencyCall, null); } else if ((!mDesiredPowerState || mRadioDisabledByCarrier) && mCi.getRadioState() == TelephonyManager.RADIO_POWER_ON) { // If it's on and available and we want it off gracefully Loading Loading
src/java/com/android/internal/telephony/CommandsInterface.java +18 −1 Original line number Diff line number Diff line Loading @@ -1268,7 +1268,24 @@ public interface CommandsInterface { void writeSmsToRuim(int status, byte[] pdu, Message response); @UnsupportedAppUsage void setRadioPower(boolean on, Message response); default void setRadioPower(boolean on, Message response) { setRadioPower(on, false, false, response); } /** * Sets the radio power on/off state (off is sometimes * called "airplane mode"). * * @param on true means "on", false means "off". * @param forEmergencyCall true means the purpose of turning radio power on is for emergency * call. No effect if power is set false. * @param isSelectedPhoneForEmergencyCall true means this phone / modem is selected to place * emergency call after turning power on. No effect if power * or forEmergency is set false. * @param response sent when operation completes. */ default void setRadioPower(boolean on, boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall, Message response) {} @UnsupportedAppUsage void acknowledgeLastIncomingGsmSms(boolean success, int cause, Message response); Loading
src/java/com/android/internal/telephony/GsmCdmaPhone.java +3 −3 Original line number Diff line number Diff line Loading @@ -88,7 +88,6 @@ import com.android.internal.telephony.dataconnection.TransportManager; import com.android.internal.telephony.emergency.EmergencyNumberTracker; import com.android.internal.telephony.gsm.GsmMmiCode; import com.android.internal.telephony.gsm.SuppServiceNotification; import com.android.internal.telephony.imsphone.ImsPhone; import com.android.internal.telephony.test.SimulatedRadioControl; import com.android.internal.telephony.uicc.IccCardApplicationStatus.AppType; import com.android.internal.telephony.uicc.IccCardStatus; Loading Loading @@ -1578,8 +1577,9 @@ public class GsmCdmaPhone extends Phone { } @Override public void setRadioPower(boolean power) { mSST.setRadioPower(power); public void setRadioPower(boolean power, boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall, boolean forceApply) { mSST.setRadioPower(power, forEmergencyCall, isSelectedPhoneForEmergencyCall, forceApply); } private void storeVoiceMailNumber(String number) { Loading
src/java/com/android/internal/telephony/PhoneInternalInterface.java +27 −1 Original line number Diff line number Diff line Loading @@ -514,7 +514,33 @@ public interface PhoneInternalInterface { * * @param power true means "on", false means "off". */ void setRadioPower(boolean power); default void setRadioPower(boolean power) { setRadioPower(power, false, false, false); } /** * Sets the radio power on/off state with option to specify whether it's for emergency call * (off is sometimes called "airplane mode"). Current state can be gotten via * {@link #getServiceState()}.{@link * android.telephony.ServiceState#getState() getState()}. * <strong>Note: </strong>This request is asynchronous. * getServiceState().getState() will not change immediately after this call. * registerForServiceStateChanged() to find out when the * request is complete. * * @param power true means "on", false means "off". * @param forEmergencyCall true means the purpose of turning radio power on is for emergency * call. No effect if power is set false. * @param isSelectedPhoneForEmergencyCall true means this phone / modem is selected to place * emergency call after turning power on. No effect if power * or forEmergency is set false. * @param forceApply true means always call setRadioPower HAL API without checking against * current radio power state. It's needed when: radio was powered on into * emergency call mode, to exit from that mode, we set radio * power on again with forEmergencyCall being false. */ default void setRadioPower(boolean power, boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall, boolean forceApply) {} /** * Get the line 1 phone number (MSISDN). For CDMA phones, the MDN is returned Loading
src/java/com/android/internal/telephony/RIL.java +19 −6 Original line number Diff line number Diff line Loading @@ -1412,7 +1412,8 @@ public class RIL extends BaseCommands implements CommandsInterface { @UnsupportedAppUsage @Override public void setRadioPower(boolean on, Message result) { public void setRadioPower(boolean on, boolean forEmergencyCall, boolean preferredForEmergencyCall, Message result) { IRadio radioProxy = getRadioProxy(result); if (radioProxy != null) { RILRequest rr = obtainRequest(RIL_REQUEST_RADIO_POWER, result, Loading @@ -1420,9 +1421,20 @@ public class RIL extends BaseCommands implements CommandsInterface { if (RILJ_LOGD) { riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " on = " + on); + " on = " + on + " forEmergencyCall= " + forEmergencyCall + " preferredForEmergencyCall=" + preferredForEmergencyCall); } if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_5)) { android.hardware.radio.V1_5.IRadio radioProxy15 = (android.hardware.radio.V1_5.IRadio) radioProxy; try { radioProxy15.setRadioPower_1_5(rr.mSerial, on, forEmergencyCall, preferredForEmergencyCall); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "setRadioPower_1_5", e); } } else { try { radioProxy.setRadioPower(rr.mSerial, on); } catch (RemoteException | RuntimeException e) { Loading @@ -1430,6 +1442,7 @@ public class RIL extends BaseCommands implements CommandsInterface { } } } } @Override public void sendDtmf(char c, Message result) { Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +36 −7 Original line number Diff line number Diff line Loading @@ -1013,11 +1013,28 @@ public class ServiceStateTracker extends Handler { obtainMessage(EVENT_GET_PREFERRED_NETWORK_TYPE, onComplete)); } public void setRadioPower(boolean power) { mDesiredPowerState = power; /** * Turn on or off radio power. */ public final void setRadioPower(boolean power) { setRadioPower(power, false, false, false); } setPowerStateToDesired(); /** * Turn on or off radio power with option to specify whether it's for emergency call. * More details check {@link PhoneInternalInterface#setRadioPower( * boolean, boolean, boolean, boolean)}. */ public void setRadioPower(boolean power, boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall, boolean forceApply) { log("setRadioPower forEmergencyCall " + forEmergencyCall + " forceApply " + forceApply); if (power == mDesiredPowerState && !forceApply) { log("setRadioPower mDesiredPowerState is already " + power + " Do nothing."); return; } mDesiredPowerState = power; setPowerStateToDesired(forEmergencyCall, isSelectedPhoneForEmergencyCall, forceApply); } /** Loading @@ -1026,7 +1043,14 @@ public class ServiceStateTracker extends Handler { * @param enable indicate if radio power is enabled or disabled from carrier action. */ public void setRadioPowerFromCarrier(boolean enable) { mRadioDisabledByCarrier = !enable; boolean disableByCarrier = !enable; if (mRadioDisabledByCarrier == disableByCarrier) { log("setRadioPowerFromCarrier mRadioDisabledByCarrier is already " + disableByCarrier + " Do nothing."); return; } mRadioDisabledByCarrier = disableByCarrier; setPowerStateToDesired(); } Loading Loading @@ -2831,6 +2855,11 @@ public class ServiceStateTracker extends Handler { } protected void setPowerStateToDesired() { setPowerStateToDesired(false, false, false); } protected void setPowerStateToDesired(boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall, boolean forceApply) { if (DBG) { String tmpLog = "mDeviceShuttingDown=" + mDeviceShuttingDown + ", mDesiredPowerState=" + mDesiredPowerState + Loading @@ -2852,8 +2881,8 @@ public class ServiceStateTracker extends Handler { // If we want it on and it's off, turn it on if (mDesiredPowerState && !mRadioDisabledByCarrier && mCi.getRadioState() == TelephonyManager.RADIO_POWER_OFF) { mCi.setRadioPower(true, null); && (forceApply || mCi.getRadioState() == TelephonyManager.RADIO_POWER_OFF)) { mCi.setRadioPower(true, forEmergencyCall, isSelectedPhoneForEmergencyCall, null); } else if ((!mDesiredPowerState || mRadioDisabledByCarrier) && mCi.getRadioState() == TelephonyManager.RADIO_POWER_ON) { // If it's on and available and we want it off gracefully Loading