Loading src/java/com/android/internal/telephony/CommandsInterface.java +14 −0 Original line number Original line Diff line number Diff line Loading @@ -2973,4 +2973,18 @@ public interface CommandsInterface { * @param result A callback to receive the response. * @param result A callback to receive the response. */ */ default void updateImsCallStatus(@NonNull List<ImsCallInfo> imsCallInfo, Message result) {} default void updateImsCallStatus(@NonNull List<ImsCallInfo> imsCallInfo, Message result) {} /** * Enables or disables N1 mode (access to 5G core network) in accordance with * 3GPP TS 24.501 4.9. * @param enable {@code true} to enable N1 mode, {@code false} to disable N1 mode. * @param result Callback message to receive the result. */ default void setN1ModeEnabled(boolean enable, Message result) {} /** * Check whether N1 mode (access to 5G core network) is enabled or not. * @param result Callback message to receive the result. */ default void isN1ModeEnabled(Message result) {} } } src/java/com/android/internal/telephony/Phone.java +18 −0 Original line number Original line Diff line number Diff line Loading @@ -5091,6 +5091,24 @@ public abstract class Phone extends Handler implements PhoneInternalInterface { mCi.updateImsCallStatus(imsCallInfo, response); mCi.updateImsCallStatus(imsCallInfo, response); } } /** * Enables or disables N1 mode (access to 5G core network) in accordance with * 3GPP TS 24.501 4.9. * @param enable {@code true} to enable N1 mode, {@code false} to disable N1 mode. * @param result Callback message to receive the result. */ public void setN1ModeEnabled(boolean enable, Message result) { mCi.setN1ModeEnabled(enable, result); } /** * Check whether N1 mode (access to 5G core network) is enabled or not. * @param result Callback message to receive the result. */ public void isN1ModeEnabled(Message result) { mCi.isN1ModeEnabled(result); } public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println("Phone: subId=" + getSubId()); pw.println("Phone: subId=" + getSubId()); pw.println(" mPhoneId=" + mPhoneId); pw.println(" mPhoneId=" + mPhoneId); Loading src/java/com/android/internal/telephony/RIL.java +65 −0 Original line number Original line Diff line number Diff line Loading @@ -5627,6 +5627,71 @@ public class RIL extends BaseCommands implements CommandsInterface { } } } } /** * {@inheritDoc} */ @Override public void setN1ModeEnabled(boolean enable, Message result) { RadioNetworkProxy networkProxy = getRadioServiceProxy(RadioNetworkProxy.class, result); if (networkProxy.isEmpty()) return; if (mHalVersion.get(HAL_SERVICE_NETWORK).greaterOrEqual(RADIO_HAL_VERSION_2_1)) { RILRequest rr = obtainRequest(RIL_REQUEST_SET_N1_MODE_ENABLED, result, mRILDefaultWorkSource); if (RILJ_LOGD) { riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest) + " enable=" + enable); } try { networkProxy.setN1ModeEnabled(rr.mSerial, enable); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(HAL_SERVICE_NETWORK, "setN1ModeEnabled", e); } } else { if (RILJ_LOGD) { Rlog.d(RILJ_LOG_TAG, "setN1ModeEnabled: REQUEST_NOT_SUPPORTED"); } if (result != null) { AsyncResult.forMessage(result, null, CommandException.fromRilErrno(REQUEST_NOT_SUPPORTED)); result.sendToTarget(); } } } /** * {@inheritDoc} */ @Override public void isN1ModeEnabled(Message result) { RadioNetworkProxy networkProxy = getRadioServiceProxy(RadioNetworkProxy.class, result); if (networkProxy.isEmpty()) return; if (mHalVersion.get(HAL_SERVICE_NETWORK).greaterOrEqual(RADIO_HAL_VERSION_2_1)) { RILRequest rr = obtainRequest(RIL_REQUEST_IS_N1_MODE_ENABLED, result, mRILDefaultWorkSource); if (RILJ_LOGD) { riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)); } try { networkProxy.isN1ModeEnabled(rr.mSerial); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(HAL_SERVICE_NETWORK, "isN1ModeEnabled", e); } } else { if (RILJ_LOGD) { Rlog.d(RILJ_LOG_TAG, "isN1ModeEnabled: REQUEST_NOT_SUPPORTED"); } if (result != null) { AsyncResult.forMessage(result, null, CommandException.fromRilErrno(REQUEST_NOT_SUPPORTED)); result.sendToTarget(); } } } //***** Private Methods //***** Private Methods /** /** * This is a helper function to be called when an indication callback is called for any radio * This is a helper function to be called when an indication callback is called for any radio Loading src/java/com/android/internal/telephony/RILUtils.java +6 −0 Original line number Original line Diff line number Diff line Loading @@ -114,6 +114,7 @@ import static com.android.internal.telephony.RILConstants.RIL_REQUEST_HANGUP_WAI import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IMS_REGISTRATION_STATE; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IMS_REGISTRATION_STATE; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IMS_SEND_SMS; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IMS_SEND_SMS; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ISIM_AUTHENTICATION; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ISIM_AUTHENTICATION; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IS_N1_MODE_ENABLED; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IS_NR_DUAL_CONNECTIVITY_ENABLED; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IS_NR_DUAL_CONNECTIVITY_ENABLED; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IS_VONR_ENABLED; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IS_VONR_ENABLED; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_LAST_CALL_FAIL_CAUSE; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_LAST_CALL_FAIL_CAUSE; Loading Loading @@ -164,6 +165,7 @@ import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_LINK_C import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_LOCATION_UPDATES; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_LOCATION_UPDATES; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_LOGICAL_TO_PHYSICAL_SLOT_MAPPING; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_LOGICAL_TO_PHYSICAL_SLOT_MAPPING; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_MUTE; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_MUTE; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_N1_MODE_ENABLED; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_NULL_CIPHER_AND_INTEGRITY_ENABLED; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_NULL_CIPHER_AND_INTEGRITY_ENABLED; Loading Loading @@ -5201,6 +5203,10 @@ public class RILUtils { return "SET_NULL_CIPHER_AND_INTEGRITY_ENABLED"; return "SET_NULL_CIPHER_AND_INTEGRITY_ENABLED"; case RIL_REQUEST_UPDATE_IMS_CALL_STATUS: case RIL_REQUEST_UPDATE_IMS_CALL_STATUS: return "UPDATE_IMS_CALL_STATUS"; return "UPDATE_IMS_CALL_STATUS"; case RIL_REQUEST_SET_N1_MODE_ENABLED: return "SET_N1_MODE_ENABLED"; case RIL_REQUEST_IS_N1_MODE_ENABLED: return "IS_N1_MODE_ENABLED"; default: default: return "<unknown request " + request + ">"; return "<unknown request " + request + ">"; } } Loading Loading
src/java/com/android/internal/telephony/CommandsInterface.java +14 −0 Original line number Original line Diff line number Diff line Loading @@ -2973,4 +2973,18 @@ public interface CommandsInterface { * @param result A callback to receive the response. * @param result A callback to receive the response. */ */ default void updateImsCallStatus(@NonNull List<ImsCallInfo> imsCallInfo, Message result) {} default void updateImsCallStatus(@NonNull List<ImsCallInfo> imsCallInfo, Message result) {} /** * Enables or disables N1 mode (access to 5G core network) in accordance with * 3GPP TS 24.501 4.9. * @param enable {@code true} to enable N1 mode, {@code false} to disable N1 mode. * @param result Callback message to receive the result. */ default void setN1ModeEnabled(boolean enable, Message result) {} /** * Check whether N1 mode (access to 5G core network) is enabled or not. * @param result Callback message to receive the result. */ default void isN1ModeEnabled(Message result) {} } }
src/java/com/android/internal/telephony/Phone.java +18 −0 Original line number Original line Diff line number Diff line Loading @@ -5091,6 +5091,24 @@ public abstract class Phone extends Handler implements PhoneInternalInterface { mCi.updateImsCallStatus(imsCallInfo, response); mCi.updateImsCallStatus(imsCallInfo, response); } } /** * Enables or disables N1 mode (access to 5G core network) in accordance with * 3GPP TS 24.501 4.9. * @param enable {@code true} to enable N1 mode, {@code false} to disable N1 mode. * @param result Callback message to receive the result. */ public void setN1ModeEnabled(boolean enable, Message result) { mCi.setN1ModeEnabled(enable, result); } /** * Check whether N1 mode (access to 5G core network) is enabled or not. * @param result Callback message to receive the result. */ public void isN1ModeEnabled(Message result) { mCi.isN1ModeEnabled(result); } public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println("Phone: subId=" + getSubId()); pw.println("Phone: subId=" + getSubId()); pw.println(" mPhoneId=" + mPhoneId); pw.println(" mPhoneId=" + mPhoneId); Loading
src/java/com/android/internal/telephony/RIL.java +65 −0 Original line number Original line Diff line number Diff line Loading @@ -5627,6 +5627,71 @@ public class RIL extends BaseCommands implements CommandsInterface { } } } } /** * {@inheritDoc} */ @Override public void setN1ModeEnabled(boolean enable, Message result) { RadioNetworkProxy networkProxy = getRadioServiceProxy(RadioNetworkProxy.class, result); if (networkProxy.isEmpty()) return; if (mHalVersion.get(HAL_SERVICE_NETWORK).greaterOrEqual(RADIO_HAL_VERSION_2_1)) { RILRequest rr = obtainRequest(RIL_REQUEST_SET_N1_MODE_ENABLED, result, mRILDefaultWorkSource); if (RILJ_LOGD) { riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest) + " enable=" + enable); } try { networkProxy.setN1ModeEnabled(rr.mSerial, enable); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(HAL_SERVICE_NETWORK, "setN1ModeEnabled", e); } } else { if (RILJ_LOGD) { Rlog.d(RILJ_LOG_TAG, "setN1ModeEnabled: REQUEST_NOT_SUPPORTED"); } if (result != null) { AsyncResult.forMessage(result, null, CommandException.fromRilErrno(REQUEST_NOT_SUPPORTED)); result.sendToTarget(); } } } /** * {@inheritDoc} */ @Override public void isN1ModeEnabled(Message result) { RadioNetworkProxy networkProxy = getRadioServiceProxy(RadioNetworkProxy.class, result); if (networkProxy.isEmpty()) return; if (mHalVersion.get(HAL_SERVICE_NETWORK).greaterOrEqual(RADIO_HAL_VERSION_2_1)) { RILRequest rr = obtainRequest(RIL_REQUEST_IS_N1_MODE_ENABLED, result, mRILDefaultWorkSource); if (RILJ_LOGD) { riljLog(rr.serialString() + "> " + RILUtils.requestToString(rr.mRequest)); } try { networkProxy.isN1ModeEnabled(rr.mSerial); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(HAL_SERVICE_NETWORK, "isN1ModeEnabled", e); } } else { if (RILJ_LOGD) { Rlog.d(RILJ_LOG_TAG, "isN1ModeEnabled: REQUEST_NOT_SUPPORTED"); } if (result != null) { AsyncResult.forMessage(result, null, CommandException.fromRilErrno(REQUEST_NOT_SUPPORTED)); result.sendToTarget(); } } } //***** Private Methods //***** Private Methods /** /** * This is a helper function to be called when an indication callback is called for any radio * This is a helper function to be called when an indication callback is called for any radio Loading
src/java/com/android/internal/telephony/RILUtils.java +6 −0 Original line number Original line Diff line number Diff line Loading @@ -114,6 +114,7 @@ import static com.android.internal.telephony.RILConstants.RIL_REQUEST_HANGUP_WAI import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IMS_REGISTRATION_STATE; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IMS_REGISTRATION_STATE; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IMS_SEND_SMS; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IMS_SEND_SMS; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ISIM_AUTHENTICATION; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_ISIM_AUTHENTICATION; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IS_N1_MODE_ENABLED; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IS_NR_DUAL_CONNECTIVITY_ENABLED; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IS_NR_DUAL_CONNECTIVITY_ENABLED; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IS_VONR_ENABLED; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_IS_VONR_ENABLED; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_LAST_CALL_FAIL_CAUSE; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_LAST_CALL_FAIL_CAUSE; Loading Loading @@ -164,6 +165,7 @@ import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_LINK_C import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_LOCATION_UPDATES; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_LOCATION_UPDATES; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_LOGICAL_TO_PHYSICAL_SLOT_MAPPING; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_LOGICAL_TO_PHYSICAL_SLOT_MAPPING; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_MUTE; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_MUTE; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_N1_MODE_ENABLED; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_NULL_CIPHER_AND_INTEGRITY_ENABLED; import static com.android.internal.telephony.RILConstants.RIL_REQUEST_SET_NULL_CIPHER_AND_INTEGRITY_ENABLED; Loading Loading @@ -5201,6 +5203,10 @@ public class RILUtils { return "SET_NULL_CIPHER_AND_INTEGRITY_ENABLED"; return "SET_NULL_CIPHER_AND_INTEGRITY_ENABLED"; case RIL_REQUEST_UPDATE_IMS_CALL_STATUS: case RIL_REQUEST_UPDATE_IMS_CALL_STATUS: return "UPDATE_IMS_CALL_STATUS"; return "UPDATE_IMS_CALL_STATUS"; case RIL_REQUEST_SET_N1_MODE_ENABLED: return "SET_N1_MODE_ENABLED"; case RIL_REQUEST_IS_N1_MODE_ENABLED: return "IS_N1_MODE_ENABLED"; default: default: return "<unknown request " + request + ">"; return "<unknown request " + request + ">"; } } Loading