235 lines
5.5 KiB
Java
235 lines
5.5 KiB
Java
/*
|
|
* Copyright (C) 2014 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.compat.annotation.UnsupportedAppUsage;
|
|
import android.os.Build;
|
|
import android.os.Bundle;
|
|
import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
|
|
import com.android.telephony.Rlog;
|
|
|
|
/**
|
|
* Contains LTE network state related information.
|
|
* @deprecated Only contains SRVCC state, which isn't specific to LTE handovers. For SRVCC
|
|
* indications, use {@link PhoneStateListener#onSrvccStateChanged(int)}.
|
|
* @hide
|
|
*/
|
|
@Deprecated
|
|
public final class VoLteServiceState implements Parcelable {
|
|
|
|
private static final String LOG_TAG = "VoLteServiceState";
|
|
private static final boolean DBG = false;
|
|
|
|
//Use int max, as -1 is a valid value in signal strength
|
|
public static final int INVALID = 0x7FFFFFFF;
|
|
|
|
public static final int NOT_SUPPORTED = 0;
|
|
public static final int SUPPORTED = 1;
|
|
|
|
// Single Radio Voice Call Continuity(SRVCC) progress state
|
|
public static final int HANDOVER_STARTED = 0;
|
|
public static final int HANDOVER_COMPLETED = 1;
|
|
public static final int HANDOVER_FAILED = 2;
|
|
public static final int HANDOVER_CANCELED = 3;
|
|
|
|
private int mSrvccState;
|
|
|
|
/**
|
|
* Create a new VoLteServiceState from a intent notifier Bundle
|
|
*
|
|
* This method is maybe used by external applications.
|
|
*
|
|
* @param m Bundle from intent notifier
|
|
* @return newly created VoLteServiceState
|
|
*
|
|
* @hide
|
|
*/
|
|
public static VoLteServiceState newFromBundle(Bundle m) {
|
|
VoLteServiceState ret;
|
|
ret = new VoLteServiceState();
|
|
ret.setFromNotifierBundle(m);
|
|
return ret;
|
|
}
|
|
|
|
/**
|
|
* Empty constructor
|
|
*
|
|
* @hide
|
|
*/
|
|
public VoLteServiceState() {
|
|
initialize();
|
|
}
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* @hide
|
|
*/
|
|
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
|
|
public VoLteServiceState(int srvccState) {
|
|
initialize();
|
|
|
|
mSrvccState = srvccState;
|
|
}
|
|
|
|
/**
|
|
* Copy constructors
|
|
*
|
|
* @param s Source VoLteServiceState
|
|
*
|
|
* @hide
|
|
*/
|
|
public VoLteServiceState(VoLteServiceState s) {
|
|
copyFrom(s);
|
|
}
|
|
|
|
/**
|
|
* Initialize values to defaults.
|
|
*
|
|
* @hide
|
|
*/
|
|
private void initialize() {
|
|
mSrvccState = INVALID;
|
|
}
|
|
|
|
/**
|
|
* @hide
|
|
*/
|
|
protected void copyFrom(VoLteServiceState s) {
|
|
mSrvccState = s.mSrvccState;
|
|
}
|
|
|
|
/**
|
|
* Construct a VoLteServiceState object from the given parcel.
|
|
*
|
|
* @hide
|
|
*/
|
|
public VoLteServiceState(Parcel in) {
|
|
if (DBG) log("Size of VoLteServiceState parcel:" + in.dataSize());
|
|
|
|
mSrvccState = in.readInt();
|
|
}
|
|
|
|
/**
|
|
* {@link Parcelable#writeToParcel}
|
|
*/
|
|
public void writeToParcel(Parcel out, int flags) {
|
|
out.writeInt(mSrvccState);
|
|
}
|
|
|
|
/**
|
|
* {@link Parcelable#describeContents}
|
|
*/
|
|
public int describeContents() {
|
|
return 0;
|
|
}
|
|
|
|
/**
|
|
* {@link Parcelable.Creator}
|
|
*
|
|
* @hide
|
|
*/
|
|
public static final @android.annotation.NonNull Parcelable.Creator<VoLteServiceState> CREATOR = new Parcelable.Creator() {
|
|
public VoLteServiceState createFromParcel(Parcel in) {
|
|
return new VoLteServiceState(in);
|
|
}
|
|
|
|
public VoLteServiceState[] newArray(int size) {
|
|
return new VoLteServiceState[size];
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Validate the individual fields as per the range
|
|
* specified in ril.h
|
|
* Set to invalid any field that is not in the valid range
|
|
*
|
|
* @return
|
|
* Valid values for all fields
|
|
* @hide
|
|
*/
|
|
public void validateInput() {
|
|
}
|
|
|
|
public int hashCode() {
|
|
int primeNum = 31;
|
|
return ((mSrvccState * primeNum));
|
|
}
|
|
|
|
/**
|
|
* @return true if the LTE network states are the same
|
|
*/
|
|
@Override
|
|
public boolean equals (Object o) {
|
|
VoLteServiceState s;
|
|
|
|
try {
|
|
s = (VoLteServiceState) o;
|
|
} catch (ClassCastException ex) {
|
|
return false;
|
|
}
|
|
|
|
if (o == null) {
|
|
return false;
|
|
}
|
|
|
|
return (mSrvccState == s.mSrvccState);
|
|
}
|
|
|
|
/**
|
|
* @return string representation.
|
|
*/
|
|
@Override
|
|
public String toString() {
|
|
return ("VoLteServiceState:"
|
|
+ " " + mSrvccState);
|
|
}
|
|
|
|
/**
|
|
* Set VoLteServiceState based on intent notifier map
|
|
*
|
|
* @param m intent notifier map
|
|
* @hide
|
|
*/
|
|
private void setFromNotifierBundle(Bundle m) {
|
|
mSrvccState = m.getInt("mSrvccState");
|
|
}
|
|
|
|
/**
|
|
* Set intent notifier Bundle based on VoLteServiceState
|
|
*
|
|
* @param m intent notifier Bundle
|
|
* @hide
|
|
*/
|
|
public void fillInNotifierBundle(Bundle m) {
|
|
m.putInt("mSrvccState", mSrvccState);
|
|
}
|
|
|
|
public int getSrvccState() {
|
|
return mSrvccState;
|
|
}
|
|
|
|
/**
|
|
* log
|
|
*/
|
|
private static void log(String s) {
|
|
Rlog.w(LOG_TAG, s);
|
|
}
|
|
}
|