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

Commit dbf09ffe authored by Jaime Lopez's avatar Jaime Lopez Committed by Wink Saville
Browse files

Telephony: Read signal strength values as expected

Telephony framework expects Lte rsrp and rsrq, as well
as dbm and ecio values for cdma and evdoe to be negative.
RIL Interface provides positive values.
Fix that by changing the constructor from Parcel to
also multiply by -1
Writing to parcel also modified for consistency

Bug: 10440827
Change-Id: I6a8112a5b343c5e6c6dc12332a6e9a489b093cc1
parent caaefaea
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -331,10 +331,12 @@ public final class CellSignalStrengthCdma extends CellSignalStrength implements
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        if (DBG) log("writeToParcel(Parcel, int): " + toString());
        dest.writeInt(mCdmaDbm);
        dest.writeInt(mCdmaEcio);
        dest.writeInt(mEvdoDbm);
        dest.writeInt(mEvdoEcio);
        // Need to multiply CdmaDbm, CdmaEcio, EvdoDbm and EvdoEcio by -1
        // to ensure consistency when reading values written here
        dest.writeInt(mCdmaDbm * -1);
        dest.writeInt(mCdmaEcio * -1);
        dest.writeInt(mEvdoDbm * -1);
        dest.writeInt(mEvdoEcio * -1);
        dest.writeInt(mEvdoSnr);
    }

@@ -343,10 +345,13 @@ public final class CellSignalStrengthCdma extends CellSignalStrength implements
     * where the TYPE_LTE token is already been processed.
     */
    private CellSignalStrengthCdma(Parcel in) {
        mCdmaDbm = in.readInt();
        mCdmaEcio = in.readInt();
        mEvdoDbm = in.readInt();
        mEvdoEcio = in.readInt();
        // CdmaDbm, CdmaEcio, EvdoDbm and EvdoEcio are written into
        // the parcel as positive values.
        // Need to convert into negative values
        mCdmaDbm = in.readInt() * -1;
        mCdmaEcio = in.readInt() * -1;
        mEvdoDbm = in.readInt() * -1;
        mEvdoEcio = in.readInt() * -1;
        mEvdoSnr = in.readInt();
        if (DBG) log("CellSignalStrengthCdma(Parcel): " + toString());
    }
+8 −4
Original line number Diff line number Diff line
@@ -247,8 +247,10 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
    public void writeToParcel(Parcel dest, int flags) {
        if (DBG) log("writeToParcel(Parcel, int): " + toString());
        dest.writeInt(mSignalStrength);
        dest.writeInt(mRsrp);
        dest.writeInt(mRsrq);
        // Need to multiply rsrp and rsrq by -1
        // to ensure consistency when reading values written here
        dest.writeInt(mRsrp * -1);
        dest.writeInt(mRsrq * -1);
        dest.writeInt(mRssnr);
        dest.writeInt(mCqi);
        dest.writeInt(mTimingAdvance);
@@ -260,8 +262,10 @@ public final class CellSignalStrengthLte extends CellSignalStrength implements P
     */
    private CellSignalStrengthLte(Parcel in) {
        mSignalStrength = in.readInt();
        mRsrp = in.readInt();
        mRsrq = in.readInt();
        // rsrp and rsrq are written into the parcel as positive values.
        // Need to convert into negative values
        mRsrp = in.readInt() * -1;
        mRsrq = in.readInt() * -1;
        mRssnr = in.readInt();
        mCqi = in.readInt();
        mTimingAdvance = in.readInt();