Loading src/java/com/android/internal/telephony/DataIndication.java +7 −4 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.os.AsyncResult; import android.os.RemoteException; import android.telephony.PcoData; import android.telephony.data.DataCallResponse; import android.telephony.data.DataProfile; import com.android.internal.telephony.dataconnection.KeepaliveStatus; Loading Loading @@ -94,14 +95,16 @@ public class DataIndication extends IRadioDataIndication.Stub { /** * Stop throttling calls to setupDataCall for the given APN. * @param indicationType Type of radio indication * @param apn APN to unthrottle * @param dpi DataProfileInfo associated with the APN to unthrottle * @throws RemoteException */ public void unthrottleApn(int indicationType, String apn) throws RemoteException { public void unthrottleApn(int indicationType, android.hardware.radio.data.DataProfileInfo dpi) throws RemoteException { mRil.processIndication(RIL.DATA_SERVICE, indicationType); DataProfile response = RILUtils.convertToDataProfile(dpi); if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_UNTHROTTLE_APN, apn); if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_UNTHROTTLE_APN, response); mRil.mApnUnthrottledRegistrants.notifyRegistrants(new AsyncResult(null, apn, null)); mRil.mApnUnthrottledRegistrants.notifyRegistrants(new AsyncResult(null, response, null)); } } src/java/com/android/internal/telephony/RILUtils.java +38 −0 Original line number Diff line number Diff line Loading @@ -961,6 +961,8 @@ public class RILUtils { dpi.persistent = dp.isPersistent(); dpi.preferred = dp.isPreferred(); dpi.alwaysOn = dp.getApnSetting().isAlwaysOn(); dpi.trafficDescriptor = RILUtils.convertToHalTrafficDescriptorAidl( dp.getTrafficDescriptor()); // profile id is only meaningful when it's persistent on the modem. dpi.profileId = (dpi.persistent) ? dp.getProfileId() Loading @@ -969,6 +971,42 @@ public class RILUtils { return dpi; } /** * Convert from DataProfileInfo.aidl to DataProfile * @param dpi DataProfileInfo * @return The converted DataProfile */ public static DataProfile convertToDataProfile( android.hardware.radio.data.DataProfileInfo dpi) { ApnSetting apnSetting = new ApnSetting.Builder() .setEntryName(dpi.apn) .setApnName(dpi.apn) .setApnTypeBitmask(dpi.supportedApnTypesBitmap) .setAuthType(dpi.authType) .setMaxConnsTime(dpi.maxConnsTime) .setMaxConns(dpi.maxConns) .setWaitTime(dpi.waitTime) .setCarrierEnabled(dpi.enabled) .setModemCognitive(dpi.persistent) .setMtuV4(dpi.mtuV4) .setMtuV6(dpi.mtuV6) .setNetworkTypeBitmask(ServiceState.convertBearerBitmaskToNetworkTypeBitmask( dpi.bearerBitmap) >> 1) .setProfileId(dpi.profileId) .setPassword(dpi.password) .setProtocol(dpi.protocol) .setRoamingProtocol(dpi.roamingProtocol) .setUser(dpi.user) .setAlwaysOn(dpi.alwaysOn) .build(); return new DataProfile.Builder() .setType(dpi.type) .setPreferred(dpi.preferred) .setTrafficDescriptor(convertHalTrafficDescriptor(dpi.trafficDescriptor)) .setApnSetting(apnSetting) .build(); } /** * Convert to OptionalSliceInfo defined in radio/1.6/types.hal * @param sliceInfo Slice info Loading src/java/com/android/internal/telephony/RadioDataProxy.java +10 −5 Original line number Diff line number Diff line Loading @@ -324,11 +324,16 @@ public class RadioDataProxy extends RadioServiceProxy { } } if (isAidl()) { mDataProxy.setupDataCall(serial, accessNetwork, RILUtils.convertToHalDataProfile(dataProfileInfo), roamingAllowed, reason, RILUtils.convertToHalLinkProperties(linkProperties), dnsesArr, pduSessionId, RILUtils.convertToHalSliceInfoAidl(sliceInfo), RILUtils.convertToHalTrafficDescriptorAidl(trafficDescriptor), // Create a new DataProfile to set the TrafficDescriptor DataProfile dp = new DataProfile.Builder() .setType(dataProfileInfo.getType()) .setPreferred(dataProfileInfo.isPreferred()) .setTrafficDescriptor(trafficDescriptor) .setApnSetting(dataProfileInfo.getApnSetting()) .build(); mDataProxy.setupDataCall(serial, accessNetwork, RILUtils.convertToHalDataProfile(dp), roamingAllowed, reason, RILUtils.convertToHalLinkProperties(linkProperties), dnsesArr, pduSessionId, RILUtils.convertToHalSliceInfoAidl(sliceInfo), matchAllRuleAllowed); } else if (mHalVersion.greaterOrEqual(RIL.RADIO_HAL_VERSION_1_6)) { ((android.hardware.radio.V1_6.IRadio) mRadioProxy).setupDataCall_1_6(serial, Loading src/java/com/android/internal/telephony/dataconnection/CellularDataService.java +5 −1 Original line number Diff line number Diff line Loading @@ -121,7 +121,11 @@ public class CellularDataService extends DataService { callback.onHandoverCancelled(toResultCode(ar.exception)); break; case APN_UNTHROTTLED: if (ar.result instanceof DataProfile) { notifyDataProfileUnthrottled((DataProfile) ar.result); } else { notifyApnUnthrottled((String) ar.result); } break; default: loge("Unexpected event: " + message.what); Loading src/java/com/android/internal/telephony/dataconnection/DataServiceManager.java +11 −0 Original line number Diff line number Diff line Loading @@ -329,6 +329,7 @@ public class DataServiceManager extends Handler { sendCompleteMessage(msg, resultCode); } @Override public void onApnUnthrottled(String apn) { if (apn != null) { mApnUnthrottledRegistrants.notifyRegistrants( Loading @@ -337,6 +338,16 @@ public class DataServiceManager extends Handler { loge("onApnUnthrottled: apn is null"); } } @Override public void onDataProfileUnthrottled(DataProfile dataProfile) { if (dataProfile != null) { mApnUnthrottledRegistrants.notifyRegistrants( new AsyncResult(null, dataProfile, null)); } else { loge("onDataProfileUnthrottled: dataProfile is null"); } } } /** Loading Loading
src/java/com/android/internal/telephony/DataIndication.java +7 −4 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.os.AsyncResult; import android.os.RemoteException; import android.telephony.PcoData; import android.telephony.data.DataCallResponse; import android.telephony.data.DataProfile; import com.android.internal.telephony.dataconnection.KeepaliveStatus; Loading Loading @@ -94,14 +95,16 @@ public class DataIndication extends IRadioDataIndication.Stub { /** * Stop throttling calls to setupDataCall for the given APN. * @param indicationType Type of radio indication * @param apn APN to unthrottle * @param dpi DataProfileInfo associated with the APN to unthrottle * @throws RemoteException */ public void unthrottleApn(int indicationType, String apn) throws RemoteException { public void unthrottleApn(int indicationType, android.hardware.radio.data.DataProfileInfo dpi) throws RemoteException { mRil.processIndication(RIL.DATA_SERVICE, indicationType); DataProfile response = RILUtils.convertToDataProfile(dpi); if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_UNTHROTTLE_APN, apn); if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_UNTHROTTLE_APN, response); mRil.mApnUnthrottledRegistrants.notifyRegistrants(new AsyncResult(null, apn, null)); mRil.mApnUnthrottledRegistrants.notifyRegistrants(new AsyncResult(null, response, null)); } }
src/java/com/android/internal/telephony/RILUtils.java +38 −0 Original line number Diff line number Diff line Loading @@ -961,6 +961,8 @@ public class RILUtils { dpi.persistent = dp.isPersistent(); dpi.preferred = dp.isPreferred(); dpi.alwaysOn = dp.getApnSetting().isAlwaysOn(); dpi.trafficDescriptor = RILUtils.convertToHalTrafficDescriptorAidl( dp.getTrafficDescriptor()); // profile id is only meaningful when it's persistent on the modem. dpi.profileId = (dpi.persistent) ? dp.getProfileId() Loading @@ -969,6 +971,42 @@ public class RILUtils { return dpi; } /** * Convert from DataProfileInfo.aidl to DataProfile * @param dpi DataProfileInfo * @return The converted DataProfile */ public static DataProfile convertToDataProfile( android.hardware.radio.data.DataProfileInfo dpi) { ApnSetting apnSetting = new ApnSetting.Builder() .setEntryName(dpi.apn) .setApnName(dpi.apn) .setApnTypeBitmask(dpi.supportedApnTypesBitmap) .setAuthType(dpi.authType) .setMaxConnsTime(dpi.maxConnsTime) .setMaxConns(dpi.maxConns) .setWaitTime(dpi.waitTime) .setCarrierEnabled(dpi.enabled) .setModemCognitive(dpi.persistent) .setMtuV4(dpi.mtuV4) .setMtuV6(dpi.mtuV6) .setNetworkTypeBitmask(ServiceState.convertBearerBitmaskToNetworkTypeBitmask( dpi.bearerBitmap) >> 1) .setProfileId(dpi.profileId) .setPassword(dpi.password) .setProtocol(dpi.protocol) .setRoamingProtocol(dpi.roamingProtocol) .setUser(dpi.user) .setAlwaysOn(dpi.alwaysOn) .build(); return new DataProfile.Builder() .setType(dpi.type) .setPreferred(dpi.preferred) .setTrafficDescriptor(convertHalTrafficDescriptor(dpi.trafficDescriptor)) .setApnSetting(apnSetting) .build(); } /** * Convert to OptionalSliceInfo defined in radio/1.6/types.hal * @param sliceInfo Slice info Loading
src/java/com/android/internal/telephony/RadioDataProxy.java +10 −5 Original line number Diff line number Diff line Loading @@ -324,11 +324,16 @@ public class RadioDataProxy extends RadioServiceProxy { } } if (isAidl()) { mDataProxy.setupDataCall(serial, accessNetwork, RILUtils.convertToHalDataProfile(dataProfileInfo), roamingAllowed, reason, RILUtils.convertToHalLinkProperties(linkProperties), dnsesArr, pduSessionId, RILUtils.convertToHalSliceInfoAidl(sliceInfo), RILUtils.convertToHalTrafficDescriptorAidl(trafficDescriptor), // Create a new DataProfile to set the TrafficDescriptor DataProfile dp = new DataProfile.Builder() .setType(dataProfileInfo.getType()) .setPreferred(dataProfileInfo.isPreferred()) .setTrafficDescriptor(trafficDescriptor) .setApnSetting(dataProfileInfo.getApnSetting()) .build(); mDataProxy.setupDataCall(serial, accessNetwork, RILUtils.convertToHalDataProfile(dp), roamingAllowed, reason, RILUtils.convertToHalLinkProperties(linkProperties), dnsesArr, pduSessionId, RILUtils.convertToHalSliceInfoAidl(sliceInfo), matchAllRuleAllowed); } else if (mHalVersion.greaterOrEqual(RIL.RADIO_HAL_VERSION_1_6)) { ((android.hardware.radio.V1_6.IRadio) mRadioProxy).setupDataCall_1_6(serial, Loading
src/java/com/android/internal/telephony/dataconnection/CellularDataService.java +5 −1 Original line number Diff line number Diff line Loading @@ -121,7 +121,11 @@ public class CellularDataService extends DataService { callback.onHandoverCancelled(toResultCode(ar.exception)); break; case APN_UNTHROTTLED: if (ar.result instanceof DataProfile) { notifyDataProfileUnthrottled((DataProfile) ar.result); } else { notifyApnUnthrottled((String) ar.result); } break; default: loge("Unexpected event: " + message.what); Loading
src/java/com/android/internal/telephony/dataconnection/DataServiceManager.java +11 −0 Original line number Diff line number Diff line Loading @@ -329,6 +329,7 @@ public class DataServiceManager extends Handler { sendCompleteMessage(msg, resultCode); } @Override public void onApnUnthrottled(String apn) { if (apn != null) { mApnUnthrottledRegistrants.notifyRegistrants( Loading @@ -337,6 +338,16 @@ public class DataServiceManager extends Handler { loge("onApnUnthrottled: apn is null"); } } @Override public void onDataProfileUnthrottled(DataProfile dataProfile) { if (dataProfile != null) { mApnUnthrottledRegistrants.notifyRegistrants( new AsyncResult(null, dataProfile, null)); } else { loge("onDataProfileUnthrottled: dataProfile is null"); } } } /** Loading