| /* |
| * 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; |
| |
| import android.annotation.NonNull; |
| import android.os.Parcel; |
| import android.os.Parcelable; |
| |
| import java.util.Objects; |
| |
| |
| /** |
| * Class that stores information specific to voice network registration. |
| * @hide |
| */ |
| public class VoiceSpecificRegistrationInfo implements Parcelable{ |
| /** |
| * oncurrent services support indicator. if |
| * registered on a CDMA system. |
| * false - Concurrent services not supported, |
| * true - Concurrent services supported |
| */ |
| public final boolean cssSupported; |
| |
| /** |
| * TSB-58 Roaming Indicator if registered |
| * on a CDMA or EVDO system or -1 if not. |
| * Valid values are 0-255. |
| */ |
| public final int roamingIndicator; |
| |
| /** |
| * indicates whether the current system is in the |
| * PRL if registered on a CDMA or EVDO system or -1 if |
| * not. 0=not in the PRL, 1=in the PRL |
| */ |
| public final int systemIsInPrl; |
| |
| /** |
| * default Roaming Indicator from the PRL, |
| * if registered on a CDMA or EVDO system or -1 if not. |
| * Valid values are 0-255. |
| */ |
| public final int defaultRoamingIndicator; |
| |
| VoiceSpecificRegistrationInfo(boolean cssSupported, int roamingIndicator, int systemIsInPrl, |
| int defaultRoamingIndicator) { |
| this.cssSupported = cssSupported; |
| this.roamingIndicator = roamingIndicator; |
| this.systemIsInPrl = systemIsInPrl; |
| this.defaultRoamingIndicator = defaultRoamingIndicator; |
| } |
| |
| /** |
| * Constructor from another voice specific registration info |
| * |
| * @param vsri another voice specific registration info |
| * @hide |
| */ |
| VoiceSpecificRegistrationInfo(VoiceSpecificRegistrationInfo vsri) { |
| cssSupported = vsri.cssSupported; |
| roamingIndicator = vsri.roamingIndicator; |
| systemIsInPrl = vsri.systemIsInPrl; |
| defaultRoamingIndicator = vsri.defaultRoamingIndicator; |
| } |
| |
| private VoiceSpecificRegistrationInfo(Parcel source) { |
| this.cssSupported = source.readBoolean(); |
| this.roamingIndicator = source.readInt(); |
| this.systemIsInPrl = source.readInt(); |
| this.defaultRoamingIndicator = source.readInt(); |
| } |
| |
| @Override |
| public void writeToParcel(Parcel dest, int flags) { |
| dest.writeBoolean(cssSupported); |
| dest.writeInt(roamingIndicator); |
| dest.writeInt(systemIsInPrl); |
| dest.writeInt(defaultRoamingIndicator); |
| } |
| |
| @Override |
| public int describeContents() { |
| return 0; |
| } |
| |
| @Override |
| public String toString() { |
| return "VoiceSpecificRegistrationInfo {" |
| + " mCssSupported=" + cssSupported |
| + " mRoamingIndicator=" + roamingIndicator |
| + " mSystemIsInPrl=" + systemIsInPrl |
| + " mDefaultRoamingIndicator=" + defaultRoamingIndicator + "}"; |
| } |
| |
| @Override |
| public int hashCode() { |
| return Objects.hash(cssSupported, roamingIndicator, systemIsInPrl, |
| defaultRoamingIndicator); |
| } |
| |
| @Override |
| public boolean equals(Object o) { |
| if (this == o) return true; |
| |
| if (o == null || !(o instanceof VoiceSpecificRegistrationInfo)) { |
| return false; |
| } |
| |
| VoiceSpecificRegistrationInfo other = (VoiceSpecificRegistrationInfo) o; |
| return this.cssSupported == other.cssSupported |
| && this.roamingIndicator == other.roamingIndicator |
| && this.systemIsInPrl == other.systemIsInPrl |
| && this.defaultRoamingIndicator == other.defaultRoamingIndicator; |
| } |
| |
| |
| public static final @NonNull Parcelable.Creator<VoiceSpecificRegistrationInfo> CREATOR = |
| new Parcelable.Creator<VoiceSpecificRegistrationInfo>() { |
| @Override |
| public VoiceSpecificRegistrationInfo createFromParcel(Parcel source) { |
| return new VoiceSpecificRegistrationInfo(source); |
| } |
| |
| @Override |
| public VoiceSpecificRegistrationInfo[] newArray(int size) { |
| return new VoiceSpecificRegistrationInfo[size]; |
| } |
| }; |
| } |