1b208a24cf521401912cfce16fce550a995cf1250Wink Saville/* 2b208a24cf521401912cfce16fce550a995cf1250Wink Saville * Copyright (C) 2012 The Android Open Source Project 3b208a24cf521401912cfce16fce550a995cf1250Wink Saville * 4b208a24cf521401912cfce16fce550a995cf1250Wink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 5b208a24cf521401912cfce16fce550a995cf1250Wink Saville * you may not use this file except in compliance with the License. 6b208a24cf521401912cfce16fce550a995cf1250Wink Saville * You may obtain a copy of the License at 7b208a24cf521401912cfce16fce550a995cf1250Wink Saville * 8b208a24cf521401912cfce16fce550a995cf1250Wink Saville * http://www.apache.org/licenses/LICENSE-2.0 9b208a24cf521401912cfce16fce550a995cf1250Wink Saville * 10b208a24cf521401912cfce16fce550a995cf1250Wink Saville * Unless required by applicable law or agreed to in writing, software 11b208a24cf521401912cfce16fce550a995cf1250Wink Saville * distributed under the License is distributed on an "AS IS" BASIS, 12b208a24cf521401912cfce16fce550a995cf1250Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b208a24cf521401912cfce16fce550a995cf1250Wink Saville * See the License for the specific language governing permissions and 14b208a24cf521401912cfce16fce550a995cf1250Wink Saville * limitations under the License. 15b208a24cf521401912cfce16fce550a995cf1250Wink Saville */ 16b208a24cf521401912cfce16fce550a995cf1250Wink Saville 17b208a24cf521401912cfce16fce550a995cf1250Wink Savillepackage android.telephony; 18b208a24cf521401912cfce16fce550a995cf1250Wink Saville 19b208a24cf521401912cfce16fce550a995cf1250Wink Savilleimport android.os.Parcel; 20b208a24cf521401912cfce16fce550a995cf1250Wink Savilleimport android.os.Parcelable; 21b208a24cf521401912cfce16fce550a995cf1250Wink Savilleimport android.util.Log; 22b208a24cf521401912cfce16fce550a995cf1250Wink Saville 23b208a24cf521401912cfce16fce550a995cf1250Wink Saville/** 24b208a24cf521401912cfce16fce550a995cf1250Wink Saville * LTE signal strength related information. 25b208a24cf521401912cfce16fce550a995cf1250Wink Saville */ 26c6e4917adda19beb780386bcc26b652748b8ab13Wink Savillepublic final class CellSignalStrengthLte extends CellSignalStrength implements Parcelable { 27b208a24cf521401912cfce16fce550a995cf1250Wink Saville 28b208a24cf521401912cfce16fce550a995cf1250Wink Saville private static final String LOG_TAG = "CellSignalStrengthLte"; 29b208a24cf521401912cfce16fce550a995cf1250Wink Saville private static final boolean DBG = false; 30b208a24cf521401912cfce16fce550a995cf1250Wink Saville 31b208a24cf521401912cfce16fce550a995cf1250Wink Saville private int mSignalStrength; 32b208a24cf521401912cfce16fce550a995cf1250Wink Saville private int mRsrp; 33b208a24cf521401912cfce16fce550a995cf1250Wink Saville private int mRsrq; 34b208a24cf521401912cfce16fce550a995cf1250Wink Saville private int mRssnr; 35b208a24cf521401912cfce16fce550a995cf1250Wink Saville private int mCqi; 36b208a24cf521401912cfce16fce550a995cf1250Wink Saville private int mTimingAdvance; 37b208a24cf521401912cfce16fce550a995cf1250Wink Saville 38b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** 39b208a24cf521401912cfce16fce550a995cf1250Wink Saville * Empty constructor 40b208a24cf521401912cfce16fce550a995cf1250Wink Saville * 41b208a24cf521401912cfce16fce550a995cf1250Wink Saville * @hide 42b208a24cf521401912cfce16fce550a995cf1250Wink Saville */ 43b208a24cf521401912cfce16fce550a995cf1250Wink Saville public CellSignalStrengthLte() { 44b208a24cf521401912cfce16fce550a995cf1250Wink Saville setDefaultValues(); 45b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 46b208a24cf521401912cfce16fce550a995cf1250Wink Saville 47b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** 48b208a24cf521401912cfce16fce550a995cf1250Wink Saville * Constructor 49b208a24cf521401912cfce16fce550a995cf1250Wink Saville * 50b208a24cf521401912cfce16fce550a995cf1250Wink Saville * @hide 51b208a24cf521401912cfce16fce550a995cf1250Wink Saville */ 52b208a24cf521401912cfce16fce550a995cf1250Wink Saville public CellSignalStrengthLte(int signalStrength, int rsrp, int rsrq, int rssnr, int cqi, 53b208a24cf521401912cfce16fce550a995cf1250Wink Saville int timingAdvance) { 54b208a24cf521401912cfce16fce550a995cf1250Wink Saville initialize(signalStrength, rsrp, rsrq, rssnr, cqi, timingAdvance); 55b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 56b208a24cf521401912cfce16fce550a995cf1250Wink Saville 57b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** 58b208a24cf521401912cfce16fce550a995cf1250Wink Saville * Copy constructors 59b208a24cf521401912cfce16fce550a995cf1250Wink Saville * 60b208a24cf521401912cfce16fce550a995cf1250Wink Saville * @param s Source SignalStrength 61b208a24cf521401912cfce16fce550a995cf1250Wink Saville * 62b208a24cf521401912cfce16fce550a995cf1250Wink Saville * @hide 63b208a24cf521401912cfce16fce550a995cf1250Wink Saville */ 64b208a24cf521401912cfce16fce550a995cf1250Wink Saville public CellSignalStrengthLte(CellSignalStrengthLte s) { 65b208a24cf521401912cfce16fce550a995cf1250Wink Saville copyFrom(s); 66b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 67b208a24cf521401912cfce16fce550a995cf1250Wink Saville 68b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** 69b208a24cf521401912cfce16fce550a995cf1250Wink Saville * Initialize all the values 70b208a24cf521401912cfce16fce550a995cf1250Wink Saville * 71b208a24cf521401912cfce16fce550a995cf1250Wink Saville * @param lteSignalStrength 72b208a24cf521401912cfce16fce550a995cf1250Wink Saville * @param rsrp 73b208a24cf521401912cfce16fce550a995cf1250Wink Saville * @param rsrq 74b208a24cf521401912cfce16fce550a995cf1250Wink Saville * @param rssnr 75b208a24cf521401912cfce16fce550a995cf1250Wink Saville * @param cqi 76b208a24cf521401912cfce16fce550a995cf1250Wink Saville * 77b208a24cf521401912cfce16fce550a995cf1250Wink Saville * @hide 78b208a24cf521401912cfce16fce550a995cf1250Wink Saville */ 79b208a24cf521401912cfce16fce550a995cf1250Wink Saville public void initialize(int lteSignalStrength, int rsrp, int rsrq, int rssnr, int cqi, 80b208a24cf521401912cfce16fce550a995cf1250Wink Saville int timingAdvance) { 81b208a24cf521401912cfce16fce550a995cf1250Wink Saville mSignalStrength = lteSignalStrength; 82b208a24cf521401912cfce16fce550a995cf1250Wink Saville mRsrp = rsrp; 83b208a24cf521401912cfce16fce550a995cf1250Wink Saville mRsrq = rsrq; 84b208a24cf521401912cfce16fce550a995cf1250Wink Saville mRssnr = rssnr; 85b208a24cf521401912cfce16fce550a995cf1250Wink Saville mCqi = cqi; 86b208a24cf521401912cfce16fce550a995cf1250Wink Saville mTimingAdvance = timingAdvance; 87b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 88b208a24cf521401912cfce16fce550a995cf1250Wink Saville 89b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** 902900a3fae6e3da65522ffc16673ab1757352afbbWink Saville * Initialize from the SignalStrength structure. 912900a3fae6e3da65522ffc16673ab1757352afbbWink Saville * 922900a3fae6e3da65522ffc16673ab1757352afbbWink Saville * @param ss 932900a3fae6e3da65522ffc16673ab1757352afbbWink Saville * 942900a3fae6e3da65522ffc16673ab1757352afbbWink Saville * @hide 952900a3fae6e3da65522ffc16673ab1757352afbbWink Saville */ 962900a3fae6e3da65522ffc16673ab1757352afbbWink Saville public void initialize(SignalStrength ss, int timingAdvance) { 972900a3fae6e3da65522ffc16673ab1757352afbbWink Saville mSignalStrength = ss.getLteSignalStrenght(); 982900a3fae6e3da65522ffc16673ab1757352afbbWink Saville mRsrp = ss.getLteRsrp(); 992900a3fae6e3da65522ffc16673ab1757352afbbWink Saville mRsrq = ss.getLteRsrq(); 1002900a3fae6e3da65522ffc16673ab1757352afbbWink Saville mRssnr = ss.getLteRssnr(); 1012900a3fae6e3da65522ffc16673ab1757352afbbWink Saville mCqi = ss.getLteCqi(); 1022900a3fae6e3da65522ffc16673ab1757352afbbWink Saville mTimingAdvance = timingAdvance; 1032900a3fae6e3da65522ffc16673ab1757352afbbWink Saville } 1042900a3fae6e3da65522ffc16673ab1757352afbbWink Saville 1052900a3fae6e3da65522ffc16673ab1757352afbbWink Saville /** 106b208a24cf521401912cfce16fce550a995cf1250Wink Saville * @hide 107b208a24cf521401912cfce16fce550a995cf1250Wink Saville */ 108b208a24cf521401912cfce16fce550a995cf1250Wink Saville protected void copyFrom(CellSignalStrengthLte s) { 109b208a24cf521401912cfce16fce550a995cf1250Wink Saville mSignalStrength = s.mSignalStrength; 110b208a24cf521401912cfce16fce550a995cf1250Wink Saville mRsrp = s.mRsrp; 111b208a24cf521401912cfce16fce550a995cf1250Wink Saville mRsrq = s.mRsrq; 112b208a24cf521401912cfce16fce550a995cf1250Wink Saville mRssnr = s.mRssnr; 113b208a24cf521401912cfce16fce550a995cf1250Wink Saville mCqi = s.mCqi; 114b208a24cf521401912cfce16fce550a995cf1250Wink Saville mTimingAdvance = s.mTimingAdvance; 115b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 116b208a24cf521401912cfce16fce550a995cf1250Wink Saville 117b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** 118b208a24cf521401912cfce16fce550a995cf1250Wink Saville * @hide 119b208a24cf521401912cfce16fce550a995cf1250Wink Saville */ 120b208a24cf521401912cfce16fce550a995cf1250Wink Saville @Override 121b208a24cf521401912cfce16fce550a995cf1250Wink Saville public CellSignalStrengthLte copy() { 122b208a24cf521401912cfce16fce550a995cf1250Wink Saville return new CellSignalStrengthLte(this); 123b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 124b208a24cf521401912cfce16fce550a995cf1250Wink Saville 125b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** @hide */ 126b208a24cf521401912cfce16fce550a995cf1250Wink Saville @Override 127b208a24cf521401912cfce16fce550a995cf1250Wink Saville public void setDefaultValues() { 128b208a24cf521401912cfce16fce550a995cf1250Wink Saville mSignalStrength = Integer.MAX_VALUE; 129b208a24cf521401912cfce16fce550a995cf1250Wink Saville mRsrp = Integer.MAX_VALUE; 130b208a24cf521401912cfce16fce550a995cf1250Wink Saville mRsrq = Integer.MAX_VALUE; 131b208a24cf521401912cfce16fce550a995cf1250Wink Saville mRssnr = Integer.MAX_VALUE; 132b208a24cf521401912cfce16fce550a995cf1250Wink Saville mCqi = Integer.MAX_VALUE; 133b208a24cf521401912cfce16fce550a995cf1250Wink Saville mTimingAdvance = Integer.MAX_VALUE; 134b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 135b208a24cf521401912cfce16fce550a995cf1250Wink Saville 136b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** 13782e6ee62b2be3c716c215e4ba72c8a12c58620fbWink Saville * Get signal level as an int from 0..4 138b208a24cf521401912cfce16fce550a995cf1250Wink Saville */ 139b208a24cf521401912cfce16fce550a995cf1250Wink Saville @Override 140b208a24cf521401912cfce16fce550a995cf1250Wink Saville public int getLevel() { 141b208a24cf521401912cfce16fce550a995cf1250Wink Saville int levelRsrp = 0; 142b208a24cf521401912cfce16fce550a995cf1250Wink Saville int levelRssnr = 0; 143b208a24cf521401912cfce16fce550a995cf1250Wink Saville 144b208a24cf521401912cfce16fce550a995cf1250Wink Saville if (mRsrp == Integer.MAX_VALUE) levelRsrp = 0; 145b208a24cf521401912cfce16fce550a995cf1250Wink Saville else if (mRsrp >= -95) levelRsrp = SIGNAL_STRENGTH_GREAT; 146b208a24cf521401912cfce16fce550a995cf1250Wink Saville else if (mRsrp >= -105) levelRsrp = SIGNAL_STRENGTH_GOOD; 147b208a24cf521401912cfce16fce550a995cf1250Wink Saville else if (mRsrp >= -115) levelRsrp = SIGNAL_STRENGTH_MODERATE; 148b208a24cf521401912cfce16fce550a995cf1250Wink Saville else levelRsrp = SIGNAL_STRENGTH_POOR; 149b208a24cf521401912cfce16fce550a995cf1250Wink Saville 150b208a24cf521401912cfce16fce550a995cf1250Wink Saville // See RIL_LTE_SignalStrength in ril.h 151b208a24cf521401912cfce16fce550a995cf1250Wink Saville if (mRssnr == Integer.MAX_VALUE) levelRssnr = 0; 152b208a24cf521401912cfce16fce550a995cf1250Wink Saville else if (mRssnr >= 45) levelRssnr = SIGNAL_STRENGTH_GREAT; 153b208a24cf521401912cfce16fce550a995cf1250Wink Saville else if (mRssnr >= 10) levelRssnr = SIGNAL_STRENGTH_GOOD; 154b208a24cf521401912cfce16fce550a995cf1250Wink Saville else if (mRssnr >= -30) levelRssnr = SIGNAL_STRENGTH_MODERATE; 155b208a24cf521401912cfce16fce550a995cf1250Wink Saville else levelRssnr = SIGNAL_STRENGTH_POOR; 156b208a24cf521401912cfce16fce550a995cf1250Wink Saville 157b208a24cf521401912cfce16fce550a995cf1250Wink Saville int level; 158b208a24cf521401912cfce16fce550a995cf1250Wink Saville if (mRsrp == Integer.MAX_VALUE) 159b208a24cf521401912cfce16fce550a995cf1250Wink Saville level = levelRssnr; 160b208a24cf521401912cfce16fce550a995cf1250Wink Saville else if (mRssnr == Integer.MAX_VALUE) 161b208a24cf521401912cfce16fce550a995cf1250Wink Saville level = levelRsrp; 162b208a24cf521401912cfce16fce550a995cf1250Wink Saville else 163b208a24cf521401912cfce16fce550a995cf1250Wink Saville level = (levelRssnr < levelRsrp) ? levelRssnr : levelRsrp; 164b208a24cf521401912cfce16fce550a995cf1250Wink Saville 165b208a24cf521401912cfce16fce550a995cf1250Wink Saville if (DBG) log("Lte rsrp level: " + levelRsrp 166b208a24cf521401912cfce16fce550a995cf1250Wink Saville + " snr level: " + levelRssnr + " level: " + level); 167b208a24cf521401912cfce16fce550a995cf1250Wink Saville return level; 168b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 169b208a24cf521401912cfce16fce550a995cf1250Wink Saville 170b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** 17182e6ee62b2be3c716c215e4ba72c8a12c58620fbWink Saville * Get signal strength as dBm 172b208a24cf521401912cfce16fce550a995cf1250Wink Saville */ 173b208a24cf521401912cfce16fce550a995cf1250Wink Saville @Override 174b208a24cf521401912cfce16fce550a995cf1250Wink Saville public int getDbm() { 175b208a24cf521401912cfce16fce550a995cf1250Wink Saville return mRsrp; 176b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 177b208a24cf521401912cfce16fce550a995cf1250Wink Saville 178b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** 179b208a24cf521401912cfce16fce550a995cf1250Wink Saville * Get the LTE signal level as an asu value between 0..97, 99 is unknown 180b208a24cf521401912cfce16fce550a995cf1250Wink Saville * Asu is calculated based on 3GPP RSRP. Refer to 3GPP 27.007 (Ver 10.3.0) Sec 8.69 181b208a24cf521401912cfce16fce550a995cf1250Wink Saville */ 182b208a24cf521401912cfce16fce550a995cf1250Wink Saville @Override 183b208a24cf521401912cfce16fce550a995cf1250Wink Saville public int getAsuLevel() { 184b208a24cf521401912cfce16fce550a995cf1250Wink Saville int lteAsuLevel = 99; 185b208a24cf521401912cfce16fce550a995cf1250Wink Saville int lteDbm = getDbm(); 186b208a24cf521401912cfce16fce550a995cf1250Wink Saville if (lteDbm <= -140) lteAsuLevel = 0; 187b208a24cf521401912cfce16fce550a995cf1250Wink Saville else if (lteDbm >= -43) lteAsuLevel = 97; 188b208a24cf521401912cfce16fce550a995cf1250Wink Saville else lteAsuLevel = lteDbm + 140; 189b208a24cf521401912cfce16fce550a995cf1250Wink Saville if (DBG) log("Lte Asu level: "+lteAsuLevel); 190b208a24cf521401912cfce16fce550a995cf1250Wink Saville return lteAsuLevel; 191b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 192b208a24cf521401912cfce16fce550a995cf1250Wink Saville 193b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** 194b208a24cf521401912cfce16fce550a995cf1250Wink Saville * Get the timing advance value for LTE. 195b208a24cf521401912cfce16fce550a995cf1250Wink Saville * See 3GPP xxxx 196b208a24cf521401912cfce16fce550a995cf1250Wink Saville */ 197b208a24cf521401912cfce16fce550a995cf1250Wink Saville public int getTimingAdvance() { 198b208a24cf521401912cfce16fce550a995cf1250Wink Saville return mTimingAdvance; 199b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 200b208a24cf521401912cfce16fce550a995cf1250Wink Saville 201b208a24cf521401912cfce16fce550a995cf1250Wink Saville @Override 202b208a24cf521401912cfce16fce550a995cf1250Wink Saville public int hashCode() { 203b208a24cf521401912cfce16fce550a995cf1250Wink Saville int primeNum = 31; 204b208a24cf521401912cfce16fce550a995cf1250Wink Saville return (mSignalStrength * primeNum) + (mRsrp * primeNum) 205b208a24cf521401912cfce16fce550a995cf1250Wink Saville + (mRsrq * primeNum) + (mRssnr * primeNum) + (mCqi * primeNum) 206b208a24cf521401912cfce16fce550a995cf1250Wink Saville + (mTimingAdvance * primeNum); 207b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 208b208a24cf521401912cfce16fce550a995cf1250Wink Saville 209b208a24cf521401912cfce16fce550a995cf1250Wink Saville @Override 210b208a24cf521401912cfce16fce550a995cf1250Wink Saville public boolean equals (Object o) { 211b208a24cf521401912cfce16fce550a995cf1250Wink Saville CellSignalStrengthLte s; 212b208a24cf521401912cfce16fce550a995cf1250Wink Saville 213b208a24cf521401912cfce16fce550a995cf1250Wink Saville try { 214b208a24cf521401912cfce16fce550a995cf1250Wink Saville s = (CellSignalStrengthLte) o; 215b208a24cf521401912cfce16fce550a995cf1250Wink Saville } catch (ClassCastException ex) { 216b208a24cf521401912cfce16fce550a995cf1250Wink Saville return false; 217b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 218b208a24cf521401912cfce16fce550a995cf1250Wink Saville 219b208a24cf521401912cfce16fce550a995cf1250Wink Saville if (o == null) { 220b208a24cf521401912cfce16fce550a995cf1250Wink Saville return false; 221b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 222b208a24cf521401912cfce16fce550a995cf1250Wink Saville 223b208a24cf521401912cfce16fce550a995cf1250Wink Saville return mSignalStrength == s.mSignalStrength 224b208a24cf521401912cfce16fce550a995cf1250Wink Saville && mRsrp == s.mRsrp 225b208a24cf521401912cfce16fce550a995cf1250Wink Saville && mRsrq == s.mRsrq 226b208a24cf521401912cfce16fce550a995cf1250Wink Saville && mRssnr == s.mRssnr 227b208a24cf521401912cfce16fce550a995cf1250Wink Saville && mCqi == s.mCqi 228b208a24cf521401912cfce16fce550a995cf1250Wink Saville && mTimingAdvance == s.mTimingAdvance; 229b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 230b208a24cf521401912cfce16fce550a995cf1250Wink Saville 231b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** 232b208a24cf521401912cfce16fce550a995cf1250Wink Saville * @return string representation. 233b208a24cf521401912cfce16fce550a995cf1250Wink Saville */ 234b208a24cf521401912cfce16fce550a995cf1250Wink Saville @Override 235b208a24cf521401912cfce16fce550a995cf1250Wink Saville public String toString() { 236b208a24cf521401912cfce16fce550a995cf1250Wink Saville return "CellSignalStrengthLte:" 237b208a24cf521401912cfce16fce550a995cf1250Wink Saville + " ss=" + mSignalStrength 238b208a24cf521401912cfce16fce550a995cf1250Wink Saville + " rsrp=" + mRsrp 239b208a24cf521401912cfce16fce550a995cf1250Wink Saville + " rsrq=" + mRsrq 240b208a24cf521401912cfce16fce550a995cf1250Wink Saville + " rssnr=" + mRssnr 241b208a24cf521401912cfce16fce550a995cf1250Wink Saville + " cqi=" + mCqi 242b208a24cf521401912cfce16fce550a995cf1250Wink Saville + " ta=" + mTimingAdvance; 243b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 244b208a24cf521401912cfce16fce550a995cf1250Wink Saville 245b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** Implement the Parcelable interface */ 246b208a24cf521401912cfce16fce550a995cf1250Wink Saville @Override 247b208a24cf521401912cfce16fce550a995cf1250Wink Saville public void writeToParcel(Parcel dest, int flags) { 248b208a24cf521401912cfce16fce550a995cf1250Wink Saville if (DBG) log("writeToParcel(Parcel, int): " + toString()); 249b208a24cf521401912cfce16fce550a995cf1250Wink Saville dest.writeInt(mSignalStrength); 250b208a24cf521401912cfce16fce550a995cf1250Wink Saville dest.writeInt(mRsrp); 251b208a24cf521401912cfce16fce550a995cf1250Wink Saville dest.writeInt(mRsrq); 252b208a24cf521401912cfce16fce550a995cf1250Wink Saville dest.writeInt(mRssnr); 253b208a24cf521401912cfce16fce550a995cf1250Wink Saville dest.writeInt(mCqi); 254b208a24cf521401912cfce16fce550a995cf1250Wink Saville dest.writeInt(mTimingAdvance); 255b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 256b208a24cf521401912cfce16fce550a995cf1250Wink Saville 257b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** 258b208a24cf521401912cfce16fce550a995cf1250Wink Saville * Construct a SignalStrength object from the given parcel 259b208a24cf521401912cfce16fce550a995cf1250Wink Saville * where the token is already been processed. 260b208a24cf521401912cfce16fce550a995cf1250Wink Saville */ 261b208a24cf521401912cfce16fce550a995cf1250Wink Saville private CellSignalStrengthLte(Parcel in) { 262b208a24cf521401912cfce16fce550a995cf1250Wink Saville mSignalStrength = in.readInt(); 263b208a24cf521401912cfce16fce550a995cf1250Wink Saville mRsrp = in.readInt(); 264b208a24cf521401912cfce16fce550a995cf1250Wink Saville mRsrq = in.readInt(); 265b208a24cf521401912cfce16fce550a995cf1250Wink Saville mRssnr = in.readInt(); 266b208a24cf521401912cfce16fce550a995cf1250Wink Saville mCqi = in.readInt(); 267b208a24cf521401912cfce16fce550a995cf1250Wink Saville mTimingAdvance = in.readInt(); 268b208a24cf521401912cfce16fce550a995cf1250Wink Saville if (DBG) log("CellSignalStrengthLte(Parcel): " + toString()); 269b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 270b208a24cf521401912cfce16fce550a995cf1250Wink Saville 271b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** Implement the Parcelable interface */ 272b208a24cf521401912cfce16fce550a995cf1250Wink Saville @Override 273b208a24cf521401912cfce16fce550a995cf1250Wink Saville public int describeContents() { 274b208a24cf521401912cfce16fce550a995cf1250Wink Saville return 0; 275b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 276b208a24cf521401912cfce16fce550a995cf1250Wink Saville 277b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** Implement the Parcelable interface */ 278b208a24cf521401912cfce16fce550a995cf1250Wink Saville @SuppressWarnings("hiding") 279b208a24cf521401912cfce16fce550a995cf1250Wink Saville public static final Parcelable.Creator<CellSignalStrengthLte> CREATOR = 280b208a24cf521401912cfce16fce550a995cf1250Wink Saville new Parcelable.Creator<CellSignalStrengthLte>() { 281b208a24cf521401912cfce16fce550a995cf1250Wink Saville @Override 282b208a24cf521401912cfce16fce550a995cf1250Wink Saville public CellSignalStrengthLte createFromParcel(Parcel in) { 283c6e4917adda19beb780386bcc26b652748b8ab13Wink Saville return new CellSignalStrengthLte(in); 284b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 285b208a24cf521401912cfce16fce550a995cf1250Wink Saville 286b208a24cf521401912cfce16fce550a995cf1250Wink Saville @Override 287b208a24cf521401912cfce16fce550a995cf1250Wink Saville public CellSignalStrengthLte[] newArray(int size) { 288b208a24cf521401912cfce16fce550a995cf1250Wink Saville return new CellSignalStrengthLte[size]; 289b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 290b208a24cf521401912cfce16fce550a995cf1250Wink Saville }; 291b208a24cf521401912cfce16fce550a995cf1250Wink Saville 292b208a24cf521401912cfce16fce550a995cf1250Wink Saville /** 293b208a24cf521401912cfce16fce550a995cf1250Wink Saville * log 294b208a24cf521401912cfce16fce550a995cf1250Wink Saville */ 295b208a24cf521401912cfce16fce550a995cf1250Wink Saville private static void log(String s) { 296b208a24cf521401912cfce16fce550a995cf1250Wink Saville Log.w(LOG_TAG, s); 297b208a24cf521401912cfce16fce550a995cf1250Wink Saville } 298b208a24cf521401912cfce16fce550a995cf1250Wink Saville} 299