Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 474ed578 authored by Amruth Ramachandran's avatar Amruth Ramachandran Committed by android-build-merger
Browse files

Merge "Add support for LTE VoPS info"

am: c4384670

Change-Id: Icebcfad00fc1f3af4a18623601461ad6b6649998
parents 707cb2f0 c4384670
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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";
  }
+15 −4
Original line number Diff line number Diff line
@@ -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 =
+19 −0
Original line number Diff line number Diff line
/*
 * 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 −0
Original line number Diff line number Diff line
/*
 * 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();
    }
}
+3 −2
Original line number Diff line number Diff line
@@ -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);
    }