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

Commit 5a18072f authored by Mats 2, Åkesson's avatar Mats 2, Åkesson Committed by Toshiya Ikenaga
Browse files

Customization of LTE Signal Bars

Make LTE signal bar thresholds customizable to any values.
Some operators require values which are not supported by current 2 level
configurations.

Test: manual
Bug: 28122517
Change-Id: Ib7f492d8b4fc5ba8a71bc2e978ae6572f2485e8f
parent e011bf80
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -25,12 +25,15 @@
    -->
    <integer name="config_mobile_mtu">1358</integer>

    <!-- Flag indicating whether strict threshold is used, or lenient threshold is used,
          when evaluating RSRP for LTE antenna bar display
           0. Strict threshold
           1. Lenient threshold
    -->
    <integer name="config_LTE_RSRP_threshold_type">0</integer>
    <!--Thresholds for LTE dbm in status bar-->
    <integer-array translatable="false" name="config_lteDbmThresholds">
        <item>-140</item>    <!-- SIGNAL_STRENGTH_NONE_OR_UNKNOWN -->
        <item>-115</item>    <!-- SIGNAL_STRENGTH_POOR -->
        <item>-105</item>    <!-- SIGNAL_STRENGTH_MODERATE -->
        <item>-95</item>     <!-- SIGNAL_STRENGTH_GOOD -->
        <item>-85</item>     <!-- SIGNAL_STRENGTH_GREAT -->
        <item>-44</item>
    </integer-array>

    <string-array translatable="false" name="config_sms_convert_destination_number_support">
        <item>true;BAE0000000000000</item>
+9 −6
Original line number Diff line number Diff line
@@ -53,12 +53,15 @@

    <bool name="config_auto_attach_data_on_creation">false</bool>

    <!-- Flag indicating whether strict threshold is used, or lenient threshold is used,
          when evaluating RSRP for LTE antenna bar display
           0. Strict threshold
           1. Lenient threshold
    -->
    <integer name="config_LTE_RSRP_threshold_type">0</integer>
    <!--Thresholds for LTE dbm in status bar-->
    <integer-array translatable="false" name="config_lteDbmThresholds">
        <item>-140</item>    <!-- SIGNAL_STRENGTH_NONE_OR_UNKNOWN -->
        <item>-115</item>    <!-- SIGNAL_STRENGTH_POOR -->
        <item>-105</item>    <!-- SIGNAL_STRENGTH_MODERATE -->
        <item>-95</item>     <!-- SIGNAL_STRENGTH_GOOD -->
        <item>-85</item>     <!-- SIGNAL_STRENGTH_GREAT -->
        <item>-44</item>
    </integer-array>

    <string-array translatable="false" name="config_sms_convert_destination_number_support">
        <item>true</item>
+9 −6
Original line number Diff line number Diff line
@@ -2256,12 +2256,15 @@

    <bool name="config_sms_force_7bit_encoding">false</bool>

    <!-- Flag indicating whether strict threshold is used, or lenient threshold is used,
          when evaluating RSRP for LTE antenna bar display
           0. Strict threshold
           1. Lenient threshold
    -->
    <integer name="config_LTE_RSRP_threshold_type">1</integer>
    <!--Thresholds for LTE dbm in status bar-->
    <integer-array translatable="false" name="config_lteDbmThresholds">
        <item>-140</item>    <!-- SIGNAL_STRENGTH_NONE_OR_UNKNOWN -->
        <item>-128</item>    <!-- SIGNAL_STRENGTH_POOR -->
        <item>-118</item>    <!-- SIGNAL_STRENGTH_MODERATE -->
        <item>-108</item>    <!-- SIGNAL_STRENGTH_GOOD -->
        <item>-98</item>     <!-- SIGNAL_STRENGTH_GREAT -->
        <item>-44</item>
    </integer-array>

    <!-- Enabled built-in zen mode condition providers -->
    <string-array translatable="false" name="config_system_condition_providers">
+1 −1
Original line number Diff line number Diff line
@@ -2258,7 +2258,7 @@
  <java-symbol type="dimen" name="cascading_menus_min_smallest_width" />

  <!-- From SignalStrength -->
  <java-symbol type="integer" name="config_LTE_RSRP_threshold_type" />
  <java-symbol type="array" name="config_lteDbmThresholds" />

  <java-symbol type="string" name="android_system_label" />
  <java-symbol type="string" name="system_error_wipe_data" />
+12 −18
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.telephony.Rlog;
import android.util.Log;
import android.content.res.Resources;

/**
@@ -51,11 +52,6 @@ public class SignalStrength implements Parcelable {
    //Use int max, as -1 is a valid value in signal strength
    public static final int INVALID = 0x7FFFFFFF;

    private static final int RSRP_THRESH_TYPE_STRICT = 0;
    private static final int[] RSRP_THRESH_STRICT = new int[] {-140, -115, -105, -95, -85, -44};
    private static final int[] RSRP_THRESH_LENIENT = new int[] {-140, -128, -118, -108, -98, -44};


    private int mGsmSignalStrength; // Valid values are (0-31, 99) as defined in TS 27.007 8.5
    private int mGsmBitErrorRate;   // bit error rate (0-7, 99) as defined in TS 27.007 8.5
    private int mCdmaDbm;   // This value is the RSSI value
@@ -791,21 +787,19 @@ public class SignalStrength implements Parcelable {
         */
        int rssiIconLevel = SIGNAL_STRENGTH_NONE_OR_UNKNOWN, rsrpIconLevel = -1, snrIconLevel = -1;

        int rsrpThreshType = Resources.getSystem().getInteger(com.android.internal.R.integer.
                config_LTE_RSRP_threshold_type);
        int[] threshRsrp;
        if (rsrpThreshType == RSRP_THRESH_TYPE_STRICT) {
            threshRsrp = RSRP_THRESH_STRICT;
        int[] threshRsrp = Resources.getSystem().getIntArray(
                com.android.internal.R.array.config_lteDbmThresholds);
        if (threshRsrp.length != 6) {
            Log.wtf(LOG_TAG, "getLteLevel - config_lteDbmThresholds has invalid num of elements."
                    + " Cannot evaluate RSRP signal.");
        } else {
            threshRsrp = RSRP_THRESH_LENIENT;
        }

            if (mLteRsrp > threshRsrp[5]) rsrpIconLevel = -1;
            else if (mLteRsrp >= threshRsrp[4]) rsrpIconLevel = SIGNAL_STRENGTH_GREAT;
            else if (mLteRsrp >= threshRsrp[3]) rsrpIconLevel = SIGNAL_STRENGTH_GOOD;
            else if (mLteRsrp >= threshRsrp[2]) rsrpIconLevel = SIGNAL_STRENGTH_MODERATE;
            else if (mLteRsrp >= threshRsrp[1]) rsrpIconLevel = SIGNAL_STRENGTH_POOR;
            else if (mLteRsrp >= threshRsrp[0]) rsrpIconLevel = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
        }

        /*
         * Values are -200 dB to +300 (SNR*10dB) RS_SNR >= 13.0 dB =>4 bars 4.5