| /* | 
 |  * Copyright (C) 2013 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.net; | 
 |  | 
 | import android.os.Parcel; | 
 |  | 
 | /** | 
 |  *  Class that represents useful attributes of mobile network links | 
 |  *  such as the upload/download throughput or error rate etc. | 
 |  *  @hide | 
 |  */ | 
 | public class MobileLinkQualityInfo extends LinkQualityInfo { | 
 |     // Represents TelephonyManager.NetworkType | 
 |     private int mMobileNetworkType = UNKNOWN_INT; | 
 |     private int mRssi = UNKNOWN_INT; | 
 |     private int mGsmErrorRate = UNKNOWN_INT; | 
 |     private int mCdmaDbm = UNKNOWN_INT; | 
 |     private int mCdmaEcio = UNKNOWN_INT; | 
 |     private int mEvdoDbm = UNKNOWN_INT; | 
 |     private int mEvdoEcio = UNKNOWN_INT; | 
 |     private int mEvdoSnr = UNKNOWN_INT; | 
 |     private int mLteSignalStrength = UNKNOWN_INT; | 
 |     private int mLteRsrp = UNKNOWN_INT; | 
 |     private int mLteRsrq = UNKNOWN_INT; | 
 |     private int mLteRssnr = UNKNOWN_INT; | 
 |     private int mLteCqi = UNKNOWN_INT; | 
 |  | 
 |     /** | 
 |      * Implement the Parcelable interface. | 
 |      * @hide | 
 |      */ | 
 |     @Override | 
 |     public void writeToParcel(Parcel dest, int flags) { | 
 |         super.writeToParcel(dest, flags, OBJECT_TYPE_MOBILE_LINK_QUALITY_INFO); | 
 |  | 
 |         dest.writeInt(mMobileNetworkType); | 
 |         dest.writeInt(mRssi); | 
 |         dest.writeInt(mGsmErrorRate); | 
 |         dest.writeInt(mCdmaDbm); | 
 |         dest.writeInt(mCdmaEcio); | 
 |         dest.writeInt(mEvdoDbm); | 
 |         dest.writeInt(mEvdoEcio); | 
 |         dest.writeInt(mEvdoSnr); | 
 |         dest.writeInt(mLteSignalStrength); | 
 |         dest.writeInt(mLteRsrp); | 
 |         dest.writeInt(mLteRsrq); | 
 |         dest.writeInt(mLteRssnr); | 
 |         dest.writeInt(mLteCqi); | 
 |     } | 
 |  | 
 |     /* Un-parceling helper */ | 
 |     /** | 
 |      * @hide | 
 |      */ | 
 |     public static MobileLinkQualityInfo createFromParcelBody(Parcel in) { | 
 |  | 
 |         MobileLinkQualityInfo li = new MobileLinkQualityInfo(); | 
 |  | 
 |         li.initializeFromParcel(in); | 
 |  | 
 |         li.mMobileNetworkType = in.readInt(); | 
 |         li.mRssi = in.readInt(); | 
 |         li.mGsmErrorRate = in.readInt(); | 
 |         li.mCdmaDbm = in.readInt(); | 
 |         li.mCdmaEcio = in.readInt(); | 
 |         li.mEvdoDbm = in.readInt(); | 
 |         li.mEvdoEcio = in.readInt(); | 
 |         li.mEvdoSnr = in.readInt(); | 
 |         li.mLteSignalStrength = in.readInt(); | 
 |         li.mLteRsrp = in.readInt(); | 
 |         li.mLteRsrq = in.readInt(); | 
 |         li.mLteRssnr = in.readInt(); | 
 |         li.mLteCqi = in.readInt(); | 
 |  | 
 |         return li; | 
 |     } | 
 |  | 
 |     /** | 
 |      * returns mobile network type as defined by {@link android.telephony.TelephonyManager} | 
 |      * @return network type or {@link android.net.LinkQualityInfo#UNKNOWN_INT} | 
 |      */ | 
 |     public int getMobileNetworkType() { | 
 |         return mMobileNetworkType; | 
 |     } | 
 |  | 
 |     /** | 
 |      * @hide | 
 |      */ | 
 |     public void setMobileNetworkType(int mobileNetworkType) { | 
 |         mMobileNetworkType = mobileNetworkType; | 
 |     } | 
 |  | 
 |     /** | 
 |      * returns signal strength for GSM networks | 
 |      * @return signal strength in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} | 
 |      */ | 
 |     public int getRssi() { | 
 |         return mRssi; | 
 |     } | 
 |  | 
 |     /** | 
 |      * @hide | 
 |      */ | 
 |     public void setRssi(int Rssi) { | 
 |         mRssi = Rssi; | 
 |     } | 
 |  | 
 |     /** | 
 |      * returns error rates for GSM networks | 
 |      * @return error rate or {@link android.net.LinkQualityInfo#UNKNOWN_INT} | 
 |      */ | 
 |     public int getGsmErrorRate() { | 
 |         return mGsmErrorRate; | 
 |     } | 
 |  | 
 |     /** | 
 |      * @hide | 
 |      */ | 
 |     public void setGsmErrorRate(int gsmErrorRate) { | 
 |         mGsmErrorRate = gsmErrorRate; | 
 |     } | 
 |  | 
 |     /** | 
 |      * returns signal strength for CDMA networks | 
 |      * @return signal strength in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} | 
 |      */ | 
 |     public int getCdmaDbm() { | 
 |         return mCdmaDbm; | 
 |     } | 
 |  | 
 |     /** | 
 |      * @hide | 
 |      */ | 
 |     public void setCdmaDbm(int cdmaDbm) { | 
 |         mCdmaDbm = cdmaDbm; | 
 |     } | 
 |  | 
 |     /** | 
 |      * returns signal to noise ratio for CDMA networks | 
 |      * @return signal to noise ratio in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} | 
 |      */ | 
 |     public int getCdmaEcio() { | 
 |         return mCdmaEcio; | 
 |     } | 
 |  | 
 |     /** | 
 |      * @hide | 
 |      */ | 
 |     public void setCdmaEcio(int cdmaEcio) { | 
 |         mCdmaEcio = cdmaEcio; | 
 |     } | 
 |  | 
 |     /** | 
 |      * returns signal strength for EVDO networks | 
 |      * @return signal strength in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} | 
 |      */ | 
 |     public int getEvdoDbm() { | 
 |         return mEvdoDbm; | 
 |     } | 
 |  | 
 |     /** | 
 |      * @hide | 
 |      */ | 
 |     public void setEvdoDbm(int evdoDbm) { | 
 |         mEvdoDbm = evdoDbm; | 
 |     } | 
 |  | 
 |     /** | 
 |      * returns signal to noise ratio for EVDO spectrum | 
 |      * @return signal to noise ration in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} | 
 |      */ | 
 |     public int getEvdoEcio() { | 
 |         return mEvdoEcio; | 
 |     } | 
 |  | 
 |     /** | 
 |      * @hide | 
 |      */ | 
 |     public void setEvdoEcio(int evdoEcio) { | 
 |         mEvdoEcio = evdoEcio; | 
 |     } | 
 |  | 
 |     /** | 
 |      * returns end-to-end signal to noise ratio for EVDO networks | 
 |      * @return signal to noise ration in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} | 
 |      */ | 
 |     public int getEvdoSnr() { | 
 |         return mEvdoSnr; | 
 |     } | 
 |  | 
 |     /** | 
 |      * @hide | 
 |      */ | 
 |     public void setEvdoSnr(int evdoSnr) { | 
 |         mEvdoSnr = evdoSnr; | 
 |     } | 
 |  | 
 |     /** | 
 |      * returns signal strength for LTE network | 
 |      * @return signal strength in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} | 
 |      */ | 
 |     public int getLteSignalStrength() { | 
 |         return mLteSignalStrength; | 
 |     } | 
 |  | 
 |     /** | 
 |      * @hide | 
 |      */ | 
 |     public void setLteSignalStrength(int lteSignalStrength) { | 
 |         mLteSignalStrength = lteSignalStrength; | 
 |     } | 
 |  | 
 |     /** | 
 |      * returns RSRP (Reference Signal Received Power) for LTE network | 
 |      * @return RSRP in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} | 
 |      */ | 
 |     public int getLteRsrp() { | 
 |         return mLteRsrp; | 
 |     } | 
 |  | 
 |     /** | 
 |      * @hide | 
 |      */ | 
 |     public void setLteRsrp(int lteRsrp) { | 
 |         mLteRsrp = lteRsrp; | 
 |     } | 
 |  | 
 |     /** | 
 |      * returns RSRQ (Reference Signal Received Quality) for LTE network | 
 |      * @return RSRQ ??? or {@link android.net.LinkQualityInfo#UNKNOWN_INT} | 
 |      */ | 
 |     public int getLteRsrq() { | 
 |         return mLteRsrq; | 
 |     } | 
 |  | 
 |     /** | 
 |      * @hide | 
 |      */ | 
 |     public void setLteRsrq(int lteRsrq) { | 
 |         mLteRsrq = lteRsrq; | 
 |     } | 
 |  | 
 |     /** | 
 |      * returns signal to noise ratio for LTE networks | 
 |      * @return signal to noise ration in db or {@link android.net.LinkQualityInfo#UNKNOWN_INT} | 
 |      */ | 
 |     public int getLteRssnr() { | 
 |         return mLteRssnr; | 
 |     } | 
 |  | 
 |     /** | 
 |      * @hide | 
 |      */ | 
 |     public void setLteRssnr(int lteRssnr) { | 
 |         mLteRssnr = lteRssnr; | 
 |     } | 
 |  | 
 |     /** | 
 |      * returns channel quality indicator for LTE networks | 
 |      * @return CQI or {@link android.net.LinkQualityInfo#UNKNOWN_INT} | 
 |      */ | 
 |     public int getLteCqi() { | 
 |         return mLteCqi; | 
 |     } | 
 |  | 
 |     /** | 
 |      * @hide | 
 |      */ | 
 |     public void setLteCqi(int lteCqi) { | 
 |         mLteCqi = lteCqi; | 
 |     } | 
 | } |