Merge changes from topics "lte_ca_support", "ss_provider"
* changes: Correctly support LTE carrier aggregation Passing ServiceState as byte array into ServiceStateProvider
This commit is contained in:
@@ -35,6 +35,7 @@ import android.database.Cursor;
|
||||
import android.database.sqlite.SqliteWrapper;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Parcel;
|
||||
import android.telephony.Rlog;
|
||||
import android.telephony.ServiceState;
|
||||
import android.telephony.SmsMessage;
|
||||
@@ -4066,31 +4067,23 @@ public final class Telephony {
|
||||
*/
|
||||
public static ContentValues getContentValuesForServiceState(ServiceState state) {
|
||||
ContentValues values = new ContentValues();
|
||||
values.put(VOICE_REG_STATE, state.getVoiceRegState());
|
||||
values.put(DATA_REG_STATE, state.getDataRegState());
|
||||
values.put(VOICE_ROAMING_TYPE, state.getVoiceRoamingType());
|
||||
values.put(DATA_ROAMING_TYPE, state.getDataRoamingType());
|
||||
values.put(VOICE_OPERATOR_ALPHA_LONG, state.getVoiceOperatorAlphaLong());
|
||||
values.put(VOICE_OPERATOR_ALPHA_SHORT, state.getVoiceOperatorAlphaShort());
|
||||
values.put(VOICE_OPERATOR_NUMERIC, state.getVoiceOperatorNumeric());
|
||||
values.put(DATA_OPERATOR_ALPHA_LONG, state.getDataOperatorAlphaLong());
|
||||
values.put(DATA_OPERATOR_ALPHA_SHORT, state.getDataOperatorAlphaShort());
|
||||
values.put(DATA_OPERATOR_NUMERIC, state.getDataOperatorNumeric());
|
||||
values.put(IS_MANUAL_NETWORK_SELECTION, state.getIsManualSelection());
|
||||
values.put(RIL_VOICE_RADIO_TECHNOLOGY, state.getRilVoiceRadioTechnology());
|
||||
values.put(RIL_DATA_RADIO_TECHNOLOGY, state.getRilDataRadioTechnology());
|
||||
values.put(CSS_INDICATOR, state.getCssIndicator());
|
||||
values.put(NETWORK_ID, state.getCdmaNetworkId());
|
||||
values.put(SYSTEM_ID, state.getCdmaSystemId());
|
||||
values.put(CDMA_ROAMING_INDICATOR, state.getCdmaRoamingIndicator());
|
||||
values.put(CDMA_DEFAULT_ROAMING_INDICATOR, state.getCdmaDefaultRoamingIndicator());
|
||||
values.put(CDMA_ERI_ICON_INDEX, state.getCdmaEriIconIndex());
|
||||
values.put(CDMA_ERI_ICON_MODE, state.getCdmaEriIconMode());
|
||||
values.put(IS_EMERGENCY_ONLY, state.isEmergencyOnly());
|
||||
values.put(IS_USING_CARRIER_AGGREGATION, state.isUsingCarrierAggregation());
|
||||
final Parcel p = Parcel.obtain();
|
||||
state.writeToParcel(p, 0);
|
||||
// Turn the parcel to byte array. Safe to do this because the content values were never
|
||||
// written into a persistent storage. ServiceStateProvider keeps values in the memory.
|
||||
values.put(SERVICE_STATE, p.marshall());
|
||||
return values;
|
||||
}
|
||||
|
||||
/**
|
||||
* The current service state.
|
||||
*
|
||||
* This is the entire {@link ServiceState} object in byte array.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public static final String SERVICE_STATE = "service_state";
|
||||
|
||||
/**
|
||||
* An integer value indicating the current voice service state.
|
||||
* <p>
|
||||
|
||||
@@ -73,17 +73,26 @@ public final class DataSpecificRegistrationInfo implements Parcelable {
|
||||
*/
|
||||
private final LteVopsSupportInfo mLteVopsSupportInfo;
|
||||
|
||||
/**
|
||||
* Indicates if it's using carrier aggregation
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public final boolean isUsingCarrierAggregation;
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
DataSpecificRegistrationInfo(
|
||||
int maxDataCalls, boolean isDcNrRestricted, boolean isNrAvailable,
|
||||
boolean isEnDcAvailable, LteVopsSupportInfo lteVops) {
|
||||
boolean isEnDcAvailable, LteVopsSupportInfo lteVops,
|
||||
boolean isUsingCarrierAggregation) {
|
||||
this.maxDataCalls = maxDataCalls;
|
||||
this.isDcNrRestricted = isDcNrRestricted;
|
||||
this.isNrAvailable = isNrAvailable;
|
||||
this.isEnDcAvailable = isEnDcAvailable;
|
||||
this.mLteVopsSupportInfo = lteVops;
|
||||
this.isUsingCarrierAggregation = isUsingCarrierAggregation;
|
||||
}
|
||||
|
||||
private DataSpecificRegistrationInfo(Parcel source) {
|
||||
@@ -92,6 +101,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable {
|
||||
isNrAvailable = source.readBoolean();
|
||||
isEnDcAvailable = source.readBoolean();
|
||||
mLteVopsSupportInfo = LteVopsSupportInfo.CREATOR.createFromParcel(source);
|
||||
isUsingCarrierAggregation = source.readBoolean();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -101,6 +111,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable {
|
||||
dest.writeBoolean(isNrAvailable);
|
||||
dest.writeBoolean(isEnDcAvailable);
|
||||
mLteVopsSupportInfo.writeToParcel(dest, flags);
|
||||
dest.writeBoolean(isUsingCarrierAggregation);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -116,7 +127,8 @@ public final class DataSpecificRegistrationInfo implements Parcelable {
|
||||
.append(" isDcNrRestricted = " + isDcNrRestricted)
|
||||
.append(" isNrAvailable = " + isNrAvailable)
|
||||
.append(" isEnDcAvailable = " + isEnDcAvailable)
|
||||
.append(mLteVopsSupportInfo.toString())
|
||||
.append(" " + mLteVopsSupportInfo.toString())
|
||||
.append(" isUsingCarrierAggregation = " + isUsingCarrierAggregation)
|
||||
.append(" }")
|
||||
.toString();
|
||||
}
|
||||
@@ -124,7 +136,7 @@ public final class DataSpecificRegistrationInfo implements Parcelable {
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(maxDataCalls, isDcNrRestricted, isNrAvailable, isEnDcAvailable,
|
||||
mLteVopsSupportInfo);
|
||||
mLteVopsSupportInfo, isUsingCarrierAggregation);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -138,7 +150,8 @@ public final class DataSpecificRegistrationInfo implements Parcelable {
|
||||
&& this.isDcNrRestricted == other.isDcNrRestricted
|
||||
&& this.isNrAvailable == other.isNrAvailable
|
||||
&& this.isEnDcAvailable == other.isEnDcAvailable
|
||||
&& this.mLteVopsSupportInfo.equals(other.mLteVopsSupportInfo);
|
||||
&& this.mLteVopsSupportInfo.equals(other.mLteVopsSupportInfo)
|
||||
&& this.isUsingCarrierAggregation == other.isUsingCarrierAggregation;
|
||||
}
|
||||
|
||||
public static final @NonNull Parcelable.Creator<DataSpecificRegistrationInfo> CREATOR =
|
||||
|
||||
@@ -251,12 +251,13 @@ public final class NetworkRegistrationInfo implements Parcelable {
|
||||
@Nullable CellIdentity cellIdentity, int maxDataCalls,
|
||||
boolean isDcNrRestricted, boolean isNrAvailable,
|
||||
boolean isEndcAvailable,
|
||||
LteVopsSupportInfo lteVopsSupportInfo) {
|
||||
LteVopsSupportInfo lteVopsSupportInfo,
|
||||
boolean isUsingCarrierAggregation) {
|
||||
this(domain, transportType, registrationState, accessNetworkTechnology, rejectCause,
|
||||
emergencyOnly, availableServices, cellIdentity);
|
||||
|
||||
mDataSpecificInfo = new DataSpecificRegistrationInfo(
|
||||
maxDataCalls, isDcNrRestricted, isNrAvailable, isEndcAvailable, lteVopsSupportInfo);
|
||||
maxDataCalls, isDcNrRestricted, isNrAvailable, isEndcAvailable, lteVopsSupportInfo,
|
||||
isUsingCarrierAggregation);
|
||||
updateNrState(mDataSpecificInfo);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user