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

Commit d07d5481 authored by Nathan Harold's avatar Nathan Harold Committed by android-build-merger
Browse files

Merge "Add Conversion from CellIdentity to CellLocation" am: 713eef40

am: fe3124bb

Change-Id: Ia74528413a6a860e1884c377db294d27f77751be
parents 1d39fb02 fe3124bb
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -129,6 +129,12 @@ public abstract class CellIdentity implements Parcelable {
        return mAlphaShort;
    }

    /**
     * @return a CellLocation object for this CellIdentity
     * @hide
     */
    public abstract CellLocation asCellLocation();

    @Override
    public boolean equals(Object other) {
        if (!(other instanceof CellIdentity)) {
+13 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ package android.telephony;
import android.annotation.Nullable;
import android.annotation.UnsupportedAppUsage;
import android.os.Parcel;
import android.text.TextUtils;
import android.telephony.cdma.CdmaCellLocation;

import java.util.Objects;

@@ -178,6 +178,18 @@ public final class CellIdentityCdma extends CellIdentity {
                super.hashCode());
    }

    /** @hide */
    @Override
    public CdmaCellLocation asCellLocation() {
        CdmaCellLocation cl = new CdmaCellLocation();
        int bsid = mBasestationId != Integer.MAX_VALUE ? mBasestationId : -1;
        int sid = mSystemId != Integer.MAX_VALUE ? mSystemId : -1;
        int nid = mNetworkId != Integer.MAX_VALUE ? mNetworkId : -1;
        // lat and long already use Integer.MAX_VALUE for invalid/unknown
        cl.setCellLocationData(bsid, mLatitude, mLongitude, sid, nid);
        return cl;
    }

    @Override
    public boolean equals(Object other) {
        if (this == other) {
+12 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package android.telephony;
import android.annotation.Nullable;
import android.annotation.UnsupportedAppUsage;
import android.os.Parcel;
import android.telephony.gsm.GsmCellLocation;
import android.text.TextUtils;

import java.util.Objects;
@@ -198,6 +199,17 @@ public final class CellIdentityGsm extends CellIdentity {
        return Integer.MAX_VALUE;
    }

    /** @hide */
    @Override
    public GsmCellLocation asCellLocation() {
        GsmCellLocation cl = new GsmCellLocation();
        int lac = mLac != Integer.MAX_VALUE ? mLac : -1;
        int cid = mCid != Integer.MAX_VALUE ? mCid : -1;
        cl.setLacAndCid(lac, cid);
        cl.setPsc(-1);
        return cl;
    }

    @Override
    public int hashCode() {
        return Objects.hash(mLac, mCid, super.hashCode());
+23 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package android.telephony;
import android.annotation.Nullable;
import android.annotation.UnsupportedAppUsage;
import android.os.Parcel;
import android.telephony.gsm.GsmCellLocation;
import android.text.TextUtils;

import java.util.Objects;
@@ -200,6 +201,28 @@ public final class CellIdentityLte extends CellIdentity {
        return mEarfcn;
    }

    /**
     * A hack to allow tunneling of LTE information via GsmCellLocation
     * so that older Network Location Providers can return some information
     * on LTE only networks, see bug 9228974.
     *
     * The tunnel'd LTE information is returned as follows:
     *   LAC = TAC field
     *   CID = CI field
     *   PSC = 0.
     *
     * @hide
     */
    @Override
    public GsmCellLocation asCellLocation() {
        GsmCellLocation cl = new GsmCellLocation();
        int tac = mTac != Integer.MAX_VALUE ? mTac : -1;
        int cid = mCi != Integer.MAX_VALUE ? mCi : -1;
        cl.setLacAndCid(tac, cid);
        cl.setPsc(0);
        return cl;
    }

    @Override
    public int hashCode() {
        return Objects.hash(mCi, mPci, mTac, super.hashCode());
+12 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package android.telephony;

import android.os.Parcel;
import android.telephony.gsm.GsmCellLocation;

import java.util.Objects;

@@ -134,6 +135,17 @@ public final class CellIdentityTdscdma extends CellIdentity {
        return mUarfcn;
    }

    /** @hide */
    @Override
    public GsmCellLocation asCellLocation() {
        GsmCellLocation cl = new GsmCellLocation();
        int lac = mLac != Integer.MAX_VALUE ? mLac : -1;
        int cid = mCid != Integer.MAX_VALUE ? mCid : -1;
        cl.setLacAndCid(lac, cid);
        cl.setPsc(-1); // There is no PSC for TD-SCDMA; not using this for CPI to stem shenanigans
        return cl;
    }

    @Override
    public boolean equals(Object other) {
        if (this == other) {
Loading