Merge "Add support for LTE VoPS info"
This commit is contained in:
@@ -5219,6 +5219,18 @@ package android.telephony {
|
||||
field public static final int WIFI_LOST = 59; // 0x3b
|
||||
}
|
||||
|
||||
public final class LteVopsSupportInfo implements android.os.Parcelable {
|
||||
ctor public LteVopsSupportInfo(int, int);
|
||||
method public int describeContents();
|
||||
method public int getEmcBearerSupport();
|
||||
method public int getVopsSupport();
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field public static final android.os.Parcelable.Creator<android.telephony.LteVopsSupportInfo> CREATOR;
|
||||
field public static final int LTE_STATUS_NOT_AVAILABLE = 1; // 0x1
|
||||
field public static final int LTE_STATUS_NOT_SUPPORTED = 3; // 0x3
|
||||
field public static final int LTE_STATUS_SUPPORTED = 2; // 0x2
|
||||
}
|
||||
|
||||
public class MbmsDownloadSession implements java.lang.AutoCloseable {
|
||||
field public static final java.lang.String MBMS_DOWNLOAD_SERVICE_ACTION = "android.telephony.action.EmbmsDownload";
|
||||
}
|
||||
|
||||
@@ -44,13 +44,19 @@ public class DataSpecificRegistrationStates implements Parcelable{
|
||||
*/
|
||||
public final boolean isEnDcAvailable;
|
||||
|
||||
/**
|
||||
* Provides network support info for LTE VoPS and LTE Emergency bearer support
|
||||
*/
|
||||
public final LteVopsSupportInfo lteVopsSupportInfo;
|
||||
|
||||
DataSpecificRegistrationStates(
|
||||
int maxDataCalls, boolean isDcNrRestricted, boolean isNrAvailable,
|
||||
boolean isEnDcAvailable) {
|
||||
boolean isEnDcAvailable, LteVopsSupportInfo lteVops) {
|
||||
this.maxDataCalls = maxDataCalls;
|
||||
this.isDcNrRestricted = isDcNrRestricted;
|
||||
this.isNrAvailable = isNrAvailable;
|
||||
this.isEnDcAvailable = isEnDcAvailable;
|
||||
this.lteVopsSupportInfo = lteVops;
|
||||
}
|
||||
|
||||
private DataSpecificRegistrationStates(Parcel source) {
|
||||
@@ -58,6 +64,7 @@ public class DataSpecificRegistrationStates implements Parcelable{
|
||||
isDcNrRestricted = source.readBoolean();
|
||||
isNrAvailable = source.readBoolean();
|
||||
isEnDcAvailable = source.readBoolean();
|
||||
lteVopsSupportInfo = LteVopsSupportInfo.CREATOR.createFromParcel(source);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -66,6 +73,7 @@ public class DataSpecificRegistrationStates implements Parcelable{
|
||||
dest.writeBoolean(isDcNrRestricted);
|
||||
dest.writeBoolean(isNrAvailable);
|
||||
dest.writeBoolean(isEnDcAvailable);
|
||||
lteVopsSupportInfo.writeToParcel(dest, flags);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -81,13 +89,15 @@ public class DataSpecificRegistrationStates implements Parcelable{
|
||||
.append(" isDcNrRestricted = " + isDcNrRestricted)
|
||||
.append(" isNrAvailable = " + isNrAvailable)
|
||||
.append(" isEnDcAvailable = " + isEnDcAvailable)
|
||||
.append(lteVopsSupportInfo.toString())
|
||||
.append(" }")
|
||||
.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(maxDataCalls, isDcNrRestricted, isNrAvailable, isEnDcAvailable);
|
||||
return Objects.hash(maxDataCalls, isDcNrRestricted, isNrAvailable, isEnDcAvailable,
|
||||
lteVopsSupportInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -100,7 +110,8 @@ public class DataSpecificRegistrationStates implements Parcelable{
|
||||
return this.maxDataCalls == other.maxDataCalls
|
||||
&& this.isDcNrRestricted == other.isDcNrRestricted
|
||||
&& this.isNrAvailable == other.isNrAvailable
|
||||
&& this.isEnDcAvailable == other.isEnDcAvailable;
|
||||
&& this.isEnDcAvailable == other.isEnDcAvailable
|
||||
&& this.lteVopsSupportInfo.equals(other.lteVopsSupportInfo);
|
||||
}
|
||||
|
||||
public static final Parcelable.Creator<DataSpecificRegistrationStates> CREATOR =
|
||||
@@ -115,4 +126,4 @@ public class DataSpecificRegistrationStates implements Parcelable{
|
||||
return new DataSpecificRegistrationStates[size];
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
19
telephony/java/android/telephony/LteVopsSupportInfo.aidl
Normal file
19
telephony/java/android/telephony/LteVopsSupportInfo.aidl
Normal file
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package android.telephony;
|
||||
|
||||
parcelable LteVopsSupportInfo;
|
||||
137
telephony/java/android/telephony/LteVopsSupportInfo.java
Normal file
137
telephony/java/android/telephony/LteVopsSupportInfo.java
Normal file
@@ -0,0 +1,137 @@
|
||||
/*
|
||||
* Copyright (C) 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package android.telephony;
|
||||
|
||||
import android.annotation.IntDef;
|
||||
import android.annotation.SystemApi;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* Class stores information related to LTE network VoPS support
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public final class LteVopsSupportInfo implements Parcelable {
|
||||
|
||||
/**@hide*/
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@IntDef(
|
||||
value = {LTE_STATUS_NOT_AVAILABLE, LTE_STATUS_SUPPORTED,
|
||||
LTE_STATUS_NOT_SUPPORTED}, prefix = "LTE_STATUS_")
|
||||
public @interface LteVopsStatus {}
|
||||
/**
|
||||
* Indicates information not available from modem.
|
||||
*/
|
||||
public static final int LTE_STATUS_NOT_AVAILABLE = 1;
|
||||
|
||||
/**
|
||||
* Indicates network support the feature.
|
||||
*/
|
||||
public static final int LTE_STATUS_SUPPORTED = 2;
|
||||
|
||||
/**
|
||||
* Indicates network does not support the feature.
|
||||
*/
|
||||
public static final int LTE_STATUS_NOT_SUPPORTED = 3;
|
||||
|
||||
@LteVopsStatus
|
||||
private final int mVopsSupport;
|
||||
@LteVopsStatus
|
||||
private final int mEmcBearerSupport;
|
||||
|
||||
public LteVopsSupportInfo(@LteVopsStatus int vops, @LteVopsStatus int emergency) {
|
||||
mVopsSupport = vops;
|
||||
mEmcBearerSupport = emergency;
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides the LTE VoPS support capability as described in:
|
||||
* 3GPP 24.301 EPS network feature support -> IMS VoPS
|
||||
*/
|
||||
public @LteVopsStatus int getVopsSupport() {
|
||||
return mVopsSupport;
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides the LTE Emergency bearer support capability as described in:
|
||||
* 3GPP 24.301 EPS network feature support -> EMC BS
|
||||
* 25.331 LTE RRC SIB1 : ims-EmergencySupport-r9
|
||||
*/
|
||||
public @LteVopsStatus int getEmcBearerSupport() {
|
||||
return mEmcBearerSupport;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel out, int flags) {
|
||||
out.writeInt(mVopsSupport);
|
||||
out.writeInt(mEmcBearerSupport);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (o == null || !(o instanceof LteVopsSupportInfo)) {
|
||||
return false;
|
||||
}
|
||||
if (this == o) return true;
|
||||
LteVopsSupportInfo other = (LteVopsSupportInfo) o;
|
||||
return mVopsSupport == other.mVopsSupport
|
||||
&& mEmcBearerSupport == other.mEmcBearerSupport;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(mVopsSupport, mEmcBearerSupport);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string representation.
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
return ("LteVopsSupportInfo : "
|
||||
+ " mVopsSupport = " + mVopsSupport
|
||||
+ " mEmcBearerSupport = " + mEmcBearerSupport);
|
||||
}
|
||||
|
||||
public static final Creator<LteVopsSupportInfo> CREATOR =
|
||||
new Creator<LteVopsSupportInfo>() {
|
||||
@Override
|
||||
public LteVopsSupportInfo createFromParcel(Parcel in) {
|
||||
return new LteVopsSupportInfo(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LteVopsSupportInfo[] newArray(int size) {
|
||||
return new LteVopsSupportInfo[size];
|
||||
}
|
||||
};
|
||||
|
||||
private LteVopsSupportInfo(Parcel in) {
|
||||
mVopsSupport = in.readInt();
|
||||
mEmcBearerSupport = in.readInt();
|
||||
}
|
||||
}
|
||||
@@ -219,12 +219,13 @@ public class NetworkRegistrationState implements Parcelable {
|
||||
public NetworkRegistrationState(int domain, int transportType, int regState,
|
||||
int accessNetworkTechnology, int rejectCause, boolean emergencyOnly,
|
||||
int[] availableServices, @Nullable CellIdentity cellIdentity, int maxDataCalls,
|
||||
boolean isDcNrRestricted, boolean isNrAvailable, boolean isEndcAvailable) {
|
||||
boolean isDcNrRestricted, boolean isNrAvailable, boolean isEndcAvailable,
|
||||
LteVopsSupportInfo lteVopsSupportInfo) {
|
||||
this(domain, transportType, regState, accessNetworkTechnology, rejectCause, emergencyOnly,
|
||||
availableServices, cellIdentity);
|
||||
|
||||
mDataSpecificStates = new DataSpecificRegistrationStates(
|
||||
maxDataCalls, isDcNrRestricted, isNrAvailable, isEndcAvailable);
|
||||
maxDataCalls, isDcNrRestricted, isNrAvailable, isEndcAvailable, lteVopsSupportInfo);
|
||||
updateNrStatus(mDataSpecificStates);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user