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

Commit 4f4c8ed3 authored by Ricardo Cerqueira's avatar Ricardo Cerqueira
Browse files

SignalStrength: Hotfix TD-SCDMA take 2

The previous approach worked for 3G, but failed with TD-LTE. Let's
try something different to make them both work, and use the derpy
LTE checks only if a GSM signal is present.

Change-Id: I77e3b5a1e0f99df30c32b102918af418a20077c1
parent 36454f05
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -513,9 +513,10 @@ public class SignalStrength implements Parcelable {

        if (isGsm) {
            boolean lteChecks = (getLteRsrp() == INVALID && getLteRsrq() == INVALID && getLteRssnr() == INVALID && getLteSignalStrength() == 99);
            boolean otherSignals = needsOldRilFeature("signalstrength") || getTdScdmaLevel() != SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
            boolean oldRil = needsOldRilFeature("signalstrength");
            level = getLteLevel();
            if ((level == SIGNAL_STRENGTH_NONE_OR_UNKNOWN && getGsmAsuLevel() != 99 && lteChecks) || otherSignals) {
            if ((level == SIGNAL_STRENGTH_NONE_OR_UNKNOWN && ((getGsmAsuLevel() != 99 && lteChecks)
                   || getTdScdmaLevel() != SIGNAL_STRENGTH_NONE_OR_UNKNOWN)) || oldRil) {
                level = getTdScdmaLevel();
                if (level == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) {
                    level = getGsmLevel();
@@ -547,9 +548,10 @@ public class SignalStrength implements Parcelable {
    public int getAsuLevel() {
        int asuLevel = 0;
        if (isGsm) {
            boolean otherSignals = needsOldRilFeature("signalstrength") || getTdScdmaLevel() != SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
            boolean oldRil = needsOldRilFeature("signalstrength");
            boolean lteChecks = (getLteRsrp() == INVALID && getLteRsrq() == INVALID && getLteRssnr() == INVALID && getLteSignalStrength() == 99);
            if ((getLteLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN && getGsmAsuLevel() != 99 && lteChecks) || otherSignals) {
            if ((getLteLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN && ( (getGsmAsuLevel() != 99 &&
                   lteChecks) || getTdScdmaAsuLevel() != 99 )) || oldRil) {
                if (getTdScdmaLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) {
                    asuLevel = getGsmAsuLevel();
                } else {
@@ -585,9 +587,10 @@ public class SignalStrength implements Parcelable {
        int dBm = INVALID;

        if(isGsm()) {
            boolean otherSignals = needsOldRilFeature("signalstrength") || getTdScdmaLevel() != SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
            boolean oldRil = needsOldRilFeature("signalstrength");
            boolean lteChecks = (getLteRsrp() == INVALID && getLteRsrq() == INVALID && getLteRssnr() == INVALID && getLteSignalStrength() == 99);
            if ((getLteLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN && getGsmAsuLevel() != 99 && lteChecks) || otherSignals) {
            if ((getLteLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN && ( (getGsmAsuLevel() != 99 && lteChecks)
                    || getTdScdmaAsuLevel() != 99 )) || oldRil) {
                if (getTdScdmaLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) {
                    dBm = getGsmDbm();
                } else {