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

Commit f50bb9b4 authored by sbrissen's avatar sbrissen
Browse files

Display correct signal bars for some Samsung devices

Some Samsung devices need a fix to show the signal bars correctly

Change-Id: I331ea33b3389fbfcbdd32b663ba53726cb4ecf65

	modified:   telephony/java/android/telephony/SignalStrength.java
parent bd6edb07
Loading
Loading
Loading
Loading

core/res/res/values/config.xml

100755 → 100644
+3 −0
Original line number Diff line number Diff line
@@ -790,4 +790,7 @@
    <!-- Asus dock compatibility disabled by default -->
    <bool name="config_hasDockBattery">false</bool>

    <!-- If true, Device uses Samsung CDMA Signal Strength fix for displaying signal bars -->
    <bool name="config_SamsungCDMASignalStrength">false</bool>

</resources>
+4 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@

package android.telephony;

import android.content.res.Resources;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
@@ -445,6 +446,8 @@ public class SignalStrength implements Parcelable {
        final int cdmaEcio = getCdmaEcio();
        int levelDbm;
        int levelEcio;
        boolean useSamsungCdmaSignalFix = Resources.getSystem()
           .getBoolean(com.android.internal.R.bool.config_SamsungCDMASignalStrength);

        if (cdmaDbm >= -75) levelDbm = SIGNAL_STRENGTH_GREAT;
        else if (cdmaDbm >= -85) levelDbm = SIGNAL_STRENGTH_GOOD;
@@ -459,7 +462,7 @@ public class SignalStrength implements Parcelable {
        else if (cdmaEcio >= -150) levelEcio = SIGNAL_STRENGTH_POOR;
        else levelEcio = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;

        int level = (levelDbm < levelEcio) ? levelDbm : levelEcio;
        int level = ((levelDbm < levelEcio) || useSamsungCdmaSignalFix) ? levelDbm : levelEcio;
        if (DBG) log("getCdmaLevel=" + level);
        return level;
    }