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

Commit 713eef40 authored by Nathan Harold's avatar Nathan Harold Committed by Gerrit Code Review
Browse files

Merge "Add Conversion from CellIdentity to CellLocation"

parents 7fe46504 7590feeb
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