Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b208a24c authored by Wink Saville's avatar Wink Saville
Browse files

Revise and update CellInfo API's

Change-Id: I25a46076a244f50edb9da65816b3717e00820b34
parent ea56e5ca
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.text.TextUtils;
import android.util.Slog;

import java.util.ArrayList;
import java.util.List;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.net.NetworkInterface;
@@ -109,7 +110,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {

    private int mOtaspMode = ServiceStateTracker.OTASP_UNKNOWN;

    private CellInfo mCellInfo = null;
    private List<CellInfo> mCellInfo = null;

    static final int PHONE_STATE_PERMISSION_MASK =
                PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR |
@@ -242,7 +243,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
                    }
                    if ((events & PhoneStateListener.LISTEN_CELL_INFO) != 0) {
                        try {
                            r.callback.onCellInfoChanged(new CellInfo(mCellInfo));
                            r.callback.onCellInfoChanged(mCellInfo);
                        } catch (RemoteException ex) {
                            remove(r.binder);
                        }
@@ -336,7 +337,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
        broadcastSignalStrengthChanged(signalStrength);
    }

    public void notifyCellInfo(CellInfo cellInfo) {
    public void notifyCellInfo(List<CellInfo> cellInfo) {
        if (!checkNotifyPermission("notifyCellInfo()")) {
            return;
        }
@@ -346,7 +347,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
            for (Record r : mRecords) {
                if ((r.events & PhoneStateListener.LISTEN_CELL_INFO) != 0) {
                    try {
                        r.callback.onCellInfoChanged(new CellInfo(cellInfo));
                        r.callback.onCellInfoChanged(cellInfo);
                    } catch (RemoteException ex) {
                        mRemoveList.add(r.binder);
                    }
+47 −38
Original line number Diff line number Diff line
/*
 * Copyright (C) 2008 The Android Open Source Project
 * Copyright (C) 2012 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.
@@ -20,70 +20,79 @@ import android.os.Parcel;
import android.os.Parcelable;

/**
 * CellIdentity is to represent ONE unique cell in the world
 * CellIdentity is immutable and represents ONE unique cell in the world
 * it contains all levels of info to identity country, carrier, etc.
 *
 * @hide pending API review
 * @hide
 */
public abstract class CellIdentity implements Parcelable {

    // Cell is a GSM Cell {@link GsmCellIdentity}
    public static final int CELLID_TYPE_GSM = 1;
    // Cell is a CMDA Cell {@link CdmaCellIdentity}
    public static final int CELLID_TYPE_CDMA = 2;
    // Cell is a LTE Cell {@link LteCellIdentity}
    public static final int CELLID_TYPE_LTE = 3;
    // Type fields for parceling
    protected static final int TYPE_GSM = 1;
    protected static final int TYPE_CDMA = 2;
    protected static final int TYPE_LTE = 3;

    private int mCellIdType;
    private String mCellIdAttributes;

    protected CellIdentity(int type, String attr) {
        this.mCellIdType = type;
        this.mCellIdAttributes = new String(attr);
    protected CellIdentity() {
    }

    protected CellIdentity(Parcel in) {
        this.mCellIdType = in.readInt();
        this.mCellIdAttributes = new String(in.readString());
    }

    protected CellIdentity(CellIdentity cid) {
        this.mCellIdType = cid.mCellIdType;
        this.mCellIdAttributes = new String(cid.mCellIdAttributes);
    }

    /**
     * @return Cell Identity type as one of CELLID_TYPE_XXXX
     * @return a copy of this object with package visibility.
     */
    public int getCellIdType() {
        return mCellIdType;
    }
    abstract CellIdentity copy();

    @Override
    public abstract int hashCode();

    /**
     * @return Cell identity attribute pairs
     * Comma separated “key=value” pairs.
     *   key := must must an single alpha-numeric word
     *   value := “quoted value string”
     *
     * Current list of keys and values:
     *   type = fixed | mobile
     */
    public String getCellIdAttributes() {
        return mCellIdAttributes;
    @Override
    public boolean equals(Object other) {
        if (other == null) {
            return false;
        }
        if (this == other) {
            return true;
        }
        return (other instanceof CellIdentity);
    }

    @Override
    public String toString() {
        return "";
    }

    /** Implement the Parcelable interface {@hide} */
    /** Implement the Parcelable interface */
    @Override
    public int describeContents() {
        return 0;
    }

    /** Implement the Parcelable interface {@hide} */
    /** Implement the Parcelable interface */
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(mCellIdType);
        dest.writeString(mCellIdAttributes);
    }

    /** Implement the Parcelable interface */
    public static final Creator<CellIdentity> CREATOR =
            new Creator<CellIdentity>() {
        @Override
        public CellIdentity createFromParcel(Parcel in) {
            int type = in.readInt();
            switch (type) {
                case TYPE_GSM: return CellIdentityGsm.createFromParcelBody(in);
                case TYPE_CDMA: return CellIdentityCdma.createFromParcelBody(in);
                case TYPE_LTE: return CellIdentityLte.createFromParcelBody(in);
                default: throw new RuntimeException("Bad CellIdentity Parcel");
            }
        }

        @Override
        public CellIdentity[] newArray(int size) {
            return new CellIdentity[size];
        }
    };
}
+102 −29
Original line number Diff line number Diff line
/*
 * Copyright (C) 2008 The Android Open Source Project
 * Copyright (C) 2012 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.
@@ -18,13 +18,18 @@ package android.telephony;

import android.os.Parcel;
import android.os.Parcelable;
import android.util.Log;

/**
 * CellIdentity is to represent a unique CDMA cell
 *
 * @hide pending API review
 * @hide
 */
public final class CdmaCellIdentity extends CellIdentity implements Parcelable {
public final class CellIdentityCdma extends CellIdentity implements Parcelable {

    private static final String LOG_TAG = "CellSignalStrengthCdma";
    private static final boolean DBG = false;

    // Network Id 0..65535
    private final int mNetworkId;
    // CDMA System Id 0..32767
@@ -46,6 +51,17 @@ public final class CdmaCellIdentity extends CellIdentity implements Parcelable {
     */
    private final int mLatitude;

    /**
     * @hide
     */
    public CellIdentityCdma() {
        mNetworkId = Integer.MAX_VALUE;
        mSystemId = Integer.MAX_VALUE;
        mBasestationId = Integer.MAX_VALUE;
        mLongitude = Integer.MAX_VALUE;
        mLatitude = Integer.MAX_VALUE;
    }

    /**
     * public constructor
     * @param nid Network Id 0..65535
@@ -55,11 +71,10 @@ public final class CdmaCellIdentity extends CellIdentity implements Parcelable {
     *        to 2592000
     * @param lat Latitude is a decimal number ranges from -1296000
     *        to 1296000
     * @param attr is comma separated “key=value” attribute pairs.
     *
     * @hide
     */
    public CdmaCellIdentity (int nid, int sid,
            int bid, int lon, int lat, String attr) {
        super(CELLID_TYPE_CDMA, attr);
    public CellIdentityCdma (int nid, int sid, int bid, int lon, int lat) {
        mNetworkId = nid;
        mSystemId = sid;
        mBasestationId = bid;
@@ -67,16 +82,7 @@ public final class CdmaCellIdentity extends CellIdentity implements Parcelable {
        mLatitude = lat;
    }

    private CdmaCellIdentity(Parcel in) {
        super(in);
        mNetworkId = in.readInt();
        mSystemId = in.readInt();
        mBasestationId = in.readInt();
        mLongitude = in.readInt();
        mLatitude = in.readInt();
    }

    CdmaCellIdentity(CdmaCellIdentity cid) {
    private CellIdentityCdma(CellIdentityCdma cid) {
        super(cid);
        mNetworkId = cid.mNetworkId;
        mSystemId = cid.mSystemId;
@@ -85,6 +91,11 @@ public final class CdmaCellIdentity extends CellIdentity implements Parcelable {
        mLatitude = cid.mLatitude;
    }

    @Override
    CellIdentityCdma copy() {
        return new CellIdentityCdma(this);
    }

    /**
     * @return Network Id 0..65535
     */
@@ -117,9 +128,6 @@ public final class CdmaCellIdentity extends CellIdentity implements Parcelable {
        return mLongitude;
    }

    /**
     * @return Base station
     */
    /**
     * @return Base station latitude, which is a decimal number as
     * specified in 3GPP2 C.S0005-A v6.0. It is represented in units
@@ -131,15 +139,55 @@ public final class CdmaCellIdentity extends CellIdentity implements Parcelable {
        return mLatitude;
    }

    /** Implement the Parcelable interface {@hide} */
    @Override
    public int hashCode() {
        int primeNum = 31;
        return (mNetworkId * primeNum) + (mSystemId * primeNum) + (mBasestationId * primeNum) +
                (mLatitude * primeNum) + (mLongitude * primeNum);
    }

    @Override
    public boolean equals(Object other) {
        if (super.equals(other)) {
            try {
                CellIdentityCdma o = (CellIdentityCdma)other;
                return mNetworkId == o.mNetworkId &&
                        mSystemId == o.mSystemId &&
                        mBasestationId == o.mBasestationId &&
                        mLatitude == o.mLatitude &&
                        mLongitude == o.mLongitude;
            } catch (ClassCastException e) {
                return false;
            }
        } else {
            return false;
        }
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder("CdmaCellIdentitiy:");
        sb.append(super.toString());
        sb.append(" mNetworkId="); sb.append(mNetworkId);
        sb.append(" mSystemId="); sb.append(mSystemId);
        sb.append(" mBasestationId="); sb.append(mBasestationId);
        sb.append(" mLongitude="); sb.append(mLongitude);
        sb.append(" mLatitude="); sb.append(mLatitude);

        return sb.toString();
    }

    /** Implement the Parcelable interface */
    @Override
    public int describeContents() {
        return 0;
    }

    /** Implement the Parcelable interface {@hide} */
    /** Implement the Parcelable interface */
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        if (DBG) log("writeToParcel(Parcel, int): " + toString());
        dest.writeInt(TYPE_CDMA);
        super.writeToParcel(dest, flags);
        dest.writeInt(mNetworkId);
        dest.writeInt(mSystemId);
@@ -148,17 +196,42 @@ public final class CdmaCellIdentity extends CellIdentity implements Parcelable {
        dest.writeInt(mLatitude);
    }

    /** Implement the Parcelable interface {@hide} */
    public static final Creator<CdmaCellIdentity> CREATOR =
            new Creator<CdmaCellIdentity>() {
    /** Construct from Parcel, type has already been processed */
    private CellIdentityCdma(Parcel in) {
        super(in);
        mNetworkId = in.readInt();
        mSystemId = in.readInt();
        mBasestationId = in.readInt();
        mLongitude = in.readInt();
        mLatitude = in.readInt();
        if (DBG) log("CellIdentityCdma(Parcel): " + toString());
    }

    /** Implement the Parcelable interface */
    @SuppressWarnings("hiding")
    public static final Creator<CellIdentityCdma> CREATOR =
            new Creator<CellIdentityCdma>() {
        @Override
        public CdmaCellIdentity createFromParcel(Parcel in) {
            return new CdmaCellIdentity(in);
        public CellIdentityCdma createFromParcel(Parcel in) {
            in.readInt(); // Skip past token, we know what it is
            return createFromParcelBody(in);
        }

        @Override
        public CdmaCellIdentity[] newArray(int size) {
            return new CdmaCellIdentity[size];
        public CellIdentityCdma[] newArray(int size) {
            return new CellIdentityCdma[size];
        }
    };

    /** @hide */
    static CellIdentityCdma createFromParcelBody(Parcel in) {
        return new CellIdentityCdma(in);
    }

    /**
     * log
     */
    private static void log(String s) {
        Log.w(LOG_TAG, s);
    }
}
+100 −26
Original line number Diff line number Diff line
/*
 * Copyright (C) 2008 The Android Open Source Project
 * Copyright (C) 2012 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.
@@ -18,13 +18,17 @@ package android.telephony;

import android.os.Parcel;
import android.os.Parcelable;
import android.util.Log;

/**
 * CellIdentity to represent a unique GSM or UMTS cell
 *
 * @hide pending API review
 * @hide
 */
public final class GsmCellIdentity extends CellIdentity implements Parcelable {
public final class CellIdentityGsm extends CellIdentity implements Parcelable {

    private static final String LOG_TAG = "CellIdentityGsm";
    private static final boolean DBG = false;

    // 3-digit Mobile Country Code, 0..999
    private final int mMcc;
@@ -38,6 +42,16 @@ public final class GsmCellIdentity extends CellIdentity implements Parcelable {
    // 9-bit UMTS Primary Scrambling Code described in TS 25.331, 0..511
    private final int mPsc;

    /**
     * @hide
     */
    public CellIdentityGsm() {
        mMcc = Integer.MAX_VALUE;
        mMnc = Integer.MAX_VALUE;
        mLac = Integer.MAX_VALUE;
        mCid = Integer.MAX_VALUE;
        mPsc = Integer.MAX_VALUE;
    }
    /**
     * public constructor
     * @param mcc 3-digit Mobile Country Code, 0..999
@@ -45,11 +59,10 @@ public final class GsmCellIdentity extends CellIdentity implements Parcelable {
     * @param lac 16-bit Location Area Code, 0..65535
     * @param cid 16-bit GSM Cell Identity or 28-bit UMTS Cell Identity
     * @param psc 9-bit UMTS Primary Scrambling Code
     * @param attr is comma separated “key=value” attribute pairs.
     *
     * @hide
     */
    public GsmCellIdentity (int mcc, int mnc,
            int lac, int cid, int psc, String attr) {
        super(CELLID_TYPE_GSM, attr);
    public CellIdentityGsm (int mcc, int mnc, int lac, int cid, int psc) {
        mMcc = mcc;
        mMnc = mnc;
        mLac = lac;
@@ -57,16 +70,7 @@ public final class GsmCellIdentity extends CellIdentity implements Parcelable {
        mPsc = psc;
    }

    private GsmCellIdentity(Parcel in) {
        super(in);
        mMcc = in.readInt();
        mMnc = in.readInt();
        mLac = in.readInt();
        mCid = in.readInt();
        mPsc = in.readInt();
    }

    GsmCellIdentity(GsmCellIdentity cid) {
    private CellIdentityGsm(CellIdentityGsm cid) {
        super(cid);
        mMcc = cid.mMcc;
        mMnc = cid.mMnc;
@@ -75,6 +79,11 @@ public final class GsmCellIdentity extends CellIdentity implements Parcelable {
        mPsc = cid.mPsc;
    }

    @Override
    CellIdentityGsm copy() {
       return new CellIdentityGsm(this);
    }

    /**
     * @return 3-digit Mobile Country Code, 0..999
     */
@@ -115,15 +124,55 @@ public final class GsmCellIdentity extends CellIdentity implements Parcelable {
        return mPsc;
    }

    /** Implement the Parcelable interface {@hide} */
    @Override
    public int hashCode() {
        int primeNum = 31;
        return (mMcc * primeNum) + (mMnc * primeNum) + (mLac * primeNum) + (mCid * primeNum) +
                (mPsc * primeNum);
    }

    @Override
    public boolean equals(Object other) {
        if (super.equals(other)) {
            try {
                CellIdentityGsm o = (CellIdentityGsm)other;
                return mMcc == o.mMcc &&
                        mMnc == o.mMnc &&
                        mLac == o.mLac &&
                        mCid == o.mCid &&
                        mPsc == o.mPsc;
            } catch (ClassCastException e) {
                return false;
            }
        } else {
            return false;
        }
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder("GsmCellIdentitiy:");
        sb.append(super.toString());
        sb.append(" mMcc=").append(mMcc);
        sb.append(" mMnc=").append(mMcc);
        sb.append(" mLac=").append(mLac);
        sb.append(" mCid=").append(mCid);
        sb.append(" mPsc=").append(mPsc);

        return sb.toString();
    }

    /** Implement the Parcelable interface */
    @Override
    public int describeContents() {
        return 0;
    }

    /** Implement the Parcelable interface {@hide} */
    /** Implement the Parcelable interface */
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        if (DBG) log("writeToParcel(Parcel, int): " + toString());
        dest.writeInt(TYPE_GSM);
        super.writeToParcel(dest, flags);
        dest.writeInt(mMcc);
        dest.writeInt(mMnc);
@@ -132,17 +181,42 @@ public final class GsmCellIdentity extends CellIdentity implements Parcelable {
        dest.writeInt(mPsc);
    }

    /** Implement the Parcelable interface {@hide} */
    public static final Creator<GsmCellIdentity> CREATOR =
            new Creator<GsmCellIdentity>() {
    /** Construct from Parcel, type has already been processed */
    private CellIdentityGsm(Parcel in) {
        super(in);
        mMcc = in.readInt();
        mMnc = in.readInt();
        mLac = in.readInt();
        mCid = in.readInt();
        mPsc = in.readInt();
        if (DBG) log("CellIdentityGsm(Parcel): " + toString());
    }

    /** Implement the Parcelable interface */
    @SuppressWarnings("hiding")
    public static final Creator<CellIdentityGsm> CREATOR =
            new Creator<CellIdentityGsm>() {
        @Override
        public GsmCellIdentity createFromParcel(Parcel in) {
            return new GsmCellIdentity(in);
        public CellIdentityGsm createFromParcel(Parcel in) {
            in.readInt(); // Skip past token, we know what it is
            return createFromParcelBody(in);
        }

        @Override
        public GsmCellIdentity[] newArray(int size) {
            return new GsmCellIdentity[size];
        public CellIdentityGsm[] newArray(int size) {
            return new CellIdentityGsm[size];
        }
    };

    /** @hide */
    static CellIdentityGsm createFromParcelBody(Parcel in) {
        return new CellIdentityGsm(in);
    }

    /**
     * log
     */
    private static void log(String s) {
        Log.w(LOG_TAG, s);
    }
}
+217 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2008 The Android Open Source Project
 * Copyright (C) 2012 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.
@@ -18,13 +18,17 @@ package android.telephony;

import android.os.Parcel;
import android.os.Parcelable;
import android.util.Log;

/**
 * CellIdentity is to represent a unique LTE cell
 *
 * @hide pending API review
 * @hide
 */
public final class LteCellIdentity extends CellIdentity implements Parcelable {
public final class CellIdentityLte extends CellIdentity implements Parcelable {

    private static final String LOG_TAG = "CellIdentityLte";
    private static final boolean DBG = false;

    // 3-digit Mobile Country Code, 0..999
    private final int mMcc;
@@ -37,6 +41,17 @@ public final class LteCellIdentity extends CellIdentity implements Parcelable {
    // 16-bit tracking area code
    private final int mTac;

    /**
     * @hide
     */
    public CellIdentityLte() {
        mMcc = Integer.MAX_VALUE;
        mMnc = Integer.MAX_VALUE;
        mCi = Integer.MAX_VALUE;
        mPci = Integer.MAX_VALUE;
        mTac = Integer.MAX_VALUE;
    }

    /**
     *
     * @param mcc 3-digit Mobile Country Code, 0..999
@@ -44,11 +59,10 @@ public final class LteCellIdentity extends CellIdentity implements Parcelable {
     * @param ci 28-bit Cell Identity
     * @param pci Physical Cell Id 0..503
     * @param tac 16-bit Tracking Area Code
     * @param attr is comma separated “key=value” attribute pairs.
     *
     * @hide
     */
    public LteCellIdentity (int mcc, int mnc,
            int ci, int pci, int tac, String attr) {
        super(CELLID_TYPE_CDMA, attr);
    public CellIdentityLte (int mcc, int mnc, int ci, int pci, int tac) {
        mMcc = mcc;
        mMnc = mnc;
        mCi = ci;
@@ -56,16 +70,7 @@ public final class LteCellIdentity extends CellIdentity implements Parcelable {
        mTac = tac;
    }

    private LteCellIdentity(Parcel in) {
        super(in);
        mMcc = in.readInt();
        mMnc = in.readInt();
        mCi = in.readInt();
        mPci = in.readInt();
        mTac = in.readInt();
    }

    LteCellIdentity(LteCellIdentity cid) {
    private CellIdentityLte(CellIdentityLte cid) {
        super(cid);
        mMcc = cid.mMcc;
        mMnc = cid.mMnc;
@@ -74,6 +79,11 @@ public final class LteCellIdentity extends CellIdentity implements Parcelable {
        mTac = cid.mTac;
    }

    @Override
    CellIdentityLte copy() {
        return new CellIdentityLte(this);
    }

    /**
     * @return 3-digit Mobile Country Code, 0..999
     */
@@ -109,15 +119,55 @@ public final class LteCellIdentity extends CellIdentity implements Parcelable {
        return mTac;
    }

    /** Implement the Parcelable interface {@hide} */
    @Override
    public int hashCode() {
        int primeNum = 31;
        return (mMcc * primeNum) + (mMnc * primeNum) + (mCi * primeNum) + (mPci * primeNum) +
                (mTac * primeNum);
    }

    @Override
    public boolean equals(Object other) {
        if (super.equals(other)) {
            try {
                CellIdentityLte o = (CellIdentityLte)other;
                return mMcc == o.mMcc &&
                        mMnc == o.mMnc &&
                        mCi == o.mCi &&
                        mPci == o.mCi &&
                        mTac == o.mTac;
            } catch (ClassCastException e) {
                return false;
            }
        } else {
            return false;
        }
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder("LteCellIdentitiy:");
        sb.append(super.toString());
        sb.append(" mMcc="); sb.append(mMcc);
        sb.append(" mMnc="); sb.append(mMnc);
        sb.append(" mCi="); sb.append(mCi);
        sb.append(" mPci="); sb.append(mPci);
        sb.append(" mTac="); sb.append(mTac);

        return sb.toString();
    }

    /** Implement the Parcelable interface */
    @Override
    public int describeContents() {
        return 0;
    }

    /** Implement the Parcelable interface {@hide} */
    /** Implement the Parcelable interface */
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        if (DBG) log("writeToParcel(Parcel, int): " + toString());
        dest.writeInt(TYPE_LTE);
        super.writeToParcel(dest, flags);
        dest.writeInt(mMcc);
        dest.writeInt(mMnc);
@@ -126,17 +176,42 @@ public final class LteCellIdentity extends CellIdentity implements Parcelable {
        dest.writeInt(mTac);
    }

    /** Implement the Parcelable interface {@hide} */
    public static final Creator<LteCellIdentity> CREATOR =
            new Creator<LteCellIdentity>() {
    /** Construct from Parcel, type has already been processed */
    private CellIdentityLte(Parcel in) {
        super(in);
        mMcc = in.readInt();
        mMnc = in.readInt();
        mCi = in.readInt();
        mPci = in.readInt();
        mTac = in.readInt();
        if (DBG) log("CellIdentityLte(Parcel): " + toString());
    }

    /** Implement the Parcelable interface */
    @SuppressWarnings("hiding")
    public static final Creator<CellIdentityLte> CREATOR =
            new Creator<CellIdentityLte>() {
        @Override
        public LteCellIdentity createFromParcel(Parcel in) {
            return new LteCellIdentity(in);
        public CellIdentityLte createFromParcel(Parcel in) {
            in.readInt(); // Skip past token, we know what it is
            return createFromParcelBody(in);
        }

        @Override
        public LteCellIdentity[] newArray(int size) {
            return new LteCellIdentity[size];
        public CellIdentityLte[] newArray(int size) {
            return new CellIdentityLte[size];
        }
    };

    /** @hide */
    static CellIdentityLte createFromParcelBody(Parcel in) {
        return new CellIdentityLte(in);
    }

    /**
     * log
     */
    private static void log(String s) {
        Log.w(LOG_TAG, s);
    }
}
Loading