2 * Copyright (C) 2012 The Android Open Source Project
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package android.telephony;
19 import android.os.Parcel;
20 import android.os.Parcelable;
21 import android.telephony.Rlog;
24 * Immutable cell information from a point in time.
26 public final class CellInfoGsm extends CellInfo implements Parcelable {
28 private static final String LOG_TAG = "CellInfoGsm";
29 private static final boolean DBG = false;
31 private CellIdentityGsm mCellIdentityGsm;
32 private CellSignalStrengthGsm mCellSignalStrengthGsm;
35 public CellInfoGsm() {
37 mCellIdentityGsm = new CellIdentityGsm();
38 mCellSignalStrengthGsm = new CellSignalStrengthGsm();
42 public CellInfoGsm(CellInfoGsm ci) {
44 this.mCellIdentityGsm = ci.mCellIdentityGsm.copy();
45 this.mCellSignalStrengthGsm = ci.mCellSignalStrengthGsm.copy();
48 public CellIdentityGsm getCellIdentity() {
49 return mCellIdentityGsm;
52 public void setCellIdentity(CellIdentityGsm cid) {
53 mCellIdentityGsm = cid;
56 public CellSignalStrengthGsm getCellSignalStrength() {
57 return mCellSignalStrengthGsm;
60 public void setCellSignalStrength(CellSignalStrengthGsm css) {
61 mCellSignalStrengthGsm = css;
68 public int hashCode() {
69 return super.hashCode() + mCellIdentityGsm.hashCode() + mCellSignalStrengthGsm.hashCode();
73 public boolean equals(Object other) {
74 if (!super.equals(other)) {
78 CellInfoGsm o = (CellInfoGsm) other;
79 return mCellIdentityGsm.equals(o.mCellIdentityGsm)
80 && mCellSignalStrengthGsm.equals(o.mCellSignalStrengthGsm);
81 } catch (ClassCastException e) {
87 public String toString() {
88 StringBuffer sb = new StringBuffer();
90 sb.append("CellInfoGsm:{");
91 sb.append(super.toString());
92 sb.append(" ").append(mCellIdentityGsm);
93 sb.append(" ").append(mCellSignalStrengthGsm);
99 /** Implement the Parcelable interface */
101 public int describeContents() {
105 /** Implement the Parcelable interface */
107 public void writeToParcel(Parcel dest, int flags) {
108 super.writeToParcel(dest, flags, TYPE_GSM);
109 mCellIdentityGsm.writeToParcel(dest, flags);
110 mCellSignalStrengthGsm.writeToParcel(dest, flags);
114 * Construct a CellInfoGsm object from the given parcel
115 * where the token is already been processed.
117 private CellInfoGsm(Parcel in) {
119 mCellIdentityGsm = CellIdentityGsm.CREATOR.createFromParcel(in);
120 mCellSignalStrengthGsm = CellSignalStrengthGsm.CREATOR.createFromParcel(in);
123 /** Implement the Parcelable interface */
124 public static final Creator<CellInfoGsm> CREATOR = new Creator<CellInfoGsm>() {
126 public CellInfoGsm createFromParcel(Parcel in) {
127 in.readInt(); // Skip past token, we know what it is
128 return createFromParcelBody(in);
132 public CellInfoGsm[] newArray(int size) {
133 return new CellInfoGsm[size];
138 protected static CellInfoGsm createFromParcelBody(Parcel in) {
139 return new CellInfoGsm(in);
145 private static void log(String s) {