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

Commit 46327561 authored by Uma Maheswari Ramalingam's avatar Uma Maheswari Ramalingam Committed by Linux Build Service Account
Browse files

Fix for data and roaming icons

- Enable data connected flag based on the data state.

- Do not display data icon in data connected state
if radio type is unknown

- Display data icon independent of voice service state
i.e even if voice network is unavailable

- Show cdma roaming indicators if either voice
or data is roaming.

- Cleanup roaming indicator default values.
Set default CDMA Eri index to roaming off

- Show service if either voice/data is in
service if ro.config.combined_signal is true

- Consider eri only when in service

- Add in service check to isCdmaEri.
roaming related information
in registration state will not be valid
during out of service.

Change-Id: I915421a6f5906d80ed5b8dd9c433115ad5df1f14
CRs-Fixed: 285986, 303275, 326204, 326634, 333008, 339297
(cherry picked from commit 7a3c1c35ed00f17dd345f824690877999dff2042)
(cherry picked from commit 83894db8b770d770891d42d078ba6d4dcfb29fb5)
Destination PS no: 2
parent 7cf83124
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -1298,4 +1298,8 @@
        <item>333</item>
        <item>333</item>
        <item>353</item>
        <item>353</item>
    </string-array>
    </string-array>

    <!-- set to false if we dont need to consider data
         service state to display signal strength bars -->
    <bool name="config_combined_signal">true</bool>
</resources>
</resources>
+1 −0
Original line number Original line Diff line number Diff line
@@ -1662,6 +1662,7 @@
  <java-symbol type="string" name="usb_storage_stop_title" />
  <java-symbol type="string" name="usb_storage_stop_title" />
  <java-symbol type="string" name="usb_storage_title" />
  <java-symbol type="string" name="usb_storage_title" />
  <java-symbol type="style" name="Animation.RecentApplications" />
  <java-symbol type="style" name="Animation.RecentApplications" />
  <java-symbol type="bool" name="config_combined_signal" />


  <!-- ImfTest -->
  <!-- ImfTest -->
  <java-symbol type="layout" name="auto_complete_list" />
  <java-symbol type="layout" name="auto_complete_list" />
+47 −26
Original line number Original line Diff line number Diff line
@@ -56,8 +56,8 @@ import java.util.Locale;
public class NetworkController extends BroadcastReceiver implements DemoMode {
public class NetworkController extends BroadcastReceiver implements DemoMode {
    // debug
    // debug
    static final String TAG = "StatusBar.NetworkController";
    static final String TAG = "StatusBar.NetworkController";
    static final boolean DEBUG = false;
    static final boolean DEBUG = true;
    static final boolean CHATTY = false; // additional diagnostics, but not logspew
    static final boolean CHATTY = true; // additional diagnostics, but not logspew


    private static final int FLIGHT_MODE_ICON = R.drawable.stat_sys_signal_flightmode;
    private static final int FLIGHT_MODE_ICON = R.drawable.stat_sys_signal_flightmode;


@@ -119,7 +119,7 @@ public class NetworkController extends BroadcastReceiver implements DemoMode {
    private int mWimaxSignal = 0;
    private int mWimaxSignal = 0;
    private int mWimaxState = 0;
    private int mWimaxState = 0;
    private int mWimaxExtraState = 0;
    private int mWimaxExtraState = 0;

    private int mDataServiceState = ServiceState.STATE_OUT_OF_SERVICE;
    // data connectivity (regardless of state, can we access the internet?)
    // data connectivity (regardless of state, can we access the internet?)
    // state of inet connection - 0 not connected, 100 connected
    // state of inet connection - 0 not connected, 100 connected
    private boolean mConnected = false;
    private boolean mConnected = false;
@@ -411,6 +411,17 @@ public class NetworkController extends BroadcastReceiver implements DemoMode {
                        + " dataState=" + state.getDataRegState());
                        + " dataState=" + state.getDataRegState());
            }
            }
            mServiceState = state;
            mServiceState = state;
            if (mContext.getResources().getBoolean(
                    com.android.internal.R.bool.config_combined_signal)) {
                /*
                 * if combined_signal is set to true only then consider data
                 * service state for signal display
                 */
                mDataServiceState = mServiceState.getDataRegState();
                if (DEBUG) {
                    Log.d(TAG, "Combining data service state " + mDataServiceState + " for signal");
                }
            }
            updateTelephonySignalStrength();
            updateTelephonySignalStrength();
            updateDataNetType();
            updateDataNetType();
            updateDataIcon();
            updateDataIcon();
@@ -515,14 +526,18 @@ public class NetworkController extends BroadcastReceiver implements DemoMode {
    }
    }


    private final void updateTelephonySignalStrength() {
    private final void updateTelephonySignalStrength() {
        if (!hasService()) {
        if (!hasService() &&
            if (CHATTY) Log.d(TAG, "updateTelephonySignalStrength: !hasService()");
                (mDataServiceState != ServiceState.STATE_IN_SERVICE)) {
            if (DEBUG) Log.d(TAG, " No service");
            mPhoneSignalIconId = R.drawable.stat_sys_signal_null;
            mPhoneSignalIconId = R.drawable.stat_sys_signal_null;
            mQSPhoneSignalIconId = R.drawable.ic_qs_signal_no_signal;
            mQSPhoneSignalIconId = R.drawable.ic_qs_signal_no_signal;
            mDataSignalIconId = R.drawable.stat_sys_signal_null;
            mDataSignalIconId = R.drawable.stat_sys_signal_null;
        } else {
        } else {
            if (mSignalStrength == null) {
            if ((mSignalStrength == null) || (mServiceState == null)) {
                if (CHATTY) Log.d(TAG, "updateTelephonySignalStrength: mSignalStrength == null");
                if (DEBUG) {
                    Log.d(TAG, " Null object, mSignalStrength= " + mSignalStrength
                            + " mServiceState " + mServiceState);
                }
                mPhoneSignalIconId = R.drawable.stat_sys_signal_null;
                mPhoneSignalIconId = R.drawable.stat_sys_signal_null;
                mQSPhoneSignalIconId = R.drawable.ic_qs_signal_no_signal;
                mQSPhoneSignalIconId = R.drawable.ic_qs_signal_no_signal;
                mDataSignalIconId = R.drawable.stat_sys_signal_null;
                mDataSignalIconId = R.drawable.stat_sys_signal_null;
@@ -540,20 +555,13 @@ public class NetworkController extends BroadcastReceiver implements DemoMode {
                    mLastSignalLevel = iconLevel = mSignalStrength.getLevel();
                    mLastSignalLevel = iconLevel = mSignalStrength.getLevel();
                }
                }


                if (isCdma()) {
                    if (isCdmaEri()) {
                        iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH_ROAMING[mInetCondition];
                    } else {
                        iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[mInetCondition];
                    }
                } else {
                // Though mPhone is a Manager, this call is not an IPC
                // Though mPhone is a Manager, this call is not an IPC
                    if (mPhone.isNetworkRoaming()) {
                if ((isCdma() && isCdmaEri()) || mPhone.isNetworkRoaming()) {
                    iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH_ROAMING[mInetCondition];
                    iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH_ROAMING[mInetCondition];
                } else {
                } else {
                    iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[mInetCondition];
                    iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[mInetCondition];
                }
                }
                }

                mPhoneSignalIconId = iconList[iconLevel];
                mPhoneSignalIconId = iconList[iconLevel];
                mQSPhoneSignalIconId =
                mQSPhoneSignalIconId =
                        TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH[mInetCondition][iconLevel];
                        TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH[mInetCondition][iconLevel];
@@ -575,6 +583,9 @@ public class NetworkController extends BroadcastReceiver implements DemoMode {
        } else {
        } else {
            switch (mDataNetType) {
            switch (mDataNetType) {
                case TelephonyManager.NETWORK_TYPE_UNKNOWN:
                case TelephonyManager.NETWORK_TYPE_UNKNOWN:
                    if (DEBUG) {
                        Log.e(TAG, "updateDataNetType NETWORK_TYPE_UNKNOWN");
                    }
                    if (!mShowAtLeastThreeGees) {
                    if (!mShowAtLeastThreeGees) {
                        mDataIconList = TelephonyIcons.DATA_G[mInetCondition];
                        mDataIconList = TelephonyIcons.DATA_G[mInetCondition];
                        mDataTypeIconId = 0;
                        mDataTypeIconId = 0;
@@ -671,7 +682,7 @@ public class NetworkController extends BroadcastReceiver implements DemoMode {
                                R.string.accessibility_data_connection_lte);
                                R.string.accessibility_data_connection_lte);
                    }
                    }
                    break;
                    break;
                default:
                case TelephonyManager.NETWORK_TYPE_GPRS:
                    if (!mShowAtLeastThreeGees) {
                    if (!mShowAtLeastThreeGees) {
                        mDataIconList = TelephonyIcons.DATA_G[mInetCondition];
                        mDataIconList = TelephonyIcons.DATA_G[mInetCondition];
                        mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_g;
                        mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_g;
@@ -686,6 +697,13 @@ public class NetworkController extends BroadcastReceiver implements DemoMode {
                                R.string.accessibility_data_connection_3g);
                                R.string.accessibility_data_connection_3g);
                    }
                    }
                    break;
                    break;
                default:
                    if (DEBUG) {
                        Log.e(TAG, "updateDataNetType unknown radio:" + mDataNetType);
                    }
                    mDataNetType = TelephonyManager.NETWORK_TYPE_UNKNOWN;
                    mDataTypeIconId = 0;
                    break;
            }
            }
        }
        }


@@ -701,7 +719,8 @@ public class NetworkController extends BroadcastReceiver implements DemoMode {
    }
    }


    boolean isCdmaEri() {
    boolean isCdmaEri() {
        if (mServiceState != null) {
        if ((mServiceState != null)
                && (hasService() || (mDataServiceState == ServiceState.STATE_IN_SERVICE))) {
            final int iconIndex = mServiceState.getCdmaEriIconIndex();
            final int iconIndex = mServiceState.getCdmaEriIconIndex();
            if (iconIndex != EriInfo.ROAMING_INDICATOR_OFF) {
            if (iconIndex != EriInfo.ROAMING_INDICATOR_OFF) {
                final int iconMode = mServiceState.getCdmaEriIconMode();
                final int iconMode = mServiceState.getCdmaEriIconMode();
@@ -715,14 +734,16 @@ public class NetworkController extends BroadcastReceiver implements DemoMode {
    }
    }


    private final void updateDataIcon() {
    private final void updateDataIcon() {
        int iconId;
        int iconId = 0;
        boolean visible = true;
        boolean visible = true;

        if (mDataNetType == TelephonyManager.NETWORK_TYPE_UNKNOWN) {
        if (!isCdma()) {
            // If data network type is unknown do not display data icon
            visible = false;
        } else if (!isCdma()) {
            // GSM case, we have to check also the sim state
            // GSM case, we have to check also the sim state
            if (mSimState == IccCardConstants.State.READY ||
            if (mSimState == IccCardConstants.State.READY ||
                    mSimState == IccCardConstants.State.UNKNOWN) {
                    mSimState == IccCardConstants.State.UNKNOWN) {
                if (hasService() && mDataState == TelephonyManager.DATA_CONNECTED) {
                if (mDataState == TelephonyManager.DATA_CONNECTED) {
                    switch (mDataActivity) {
                    switch (mDataActivity) {
                        case TelephonyManager.DATA_ACTIVITY_IN:
                        case TelephonyManager.DATA_ACTIVITY_IN:
                            iconId = mDataIconList[1];
                            iconId = mDataIconList[1];
@@ -748,7 +769,7 @@ public class NetworkController extends BroadcastReceiver implements DemoMode {
            }
            }
        } else {
        } else {
            // CDMA case, mDataActivity can be also DATA_ACTIVITY_DORMANT
            // CDMA case, mDataActivity can be also DATA_ACTIVITY_DORMANT
            if (hasService() && mDataState == TelephonyManager.DATA_CONNECTED) {
            if (mDataState == TelephonyManager.DATA_CONNECTED) {
                switch (mDataActivity) {
                switch (mDataActivity) {
                    case TelephonyManager.DATA_ACTIVITY_IN:
                    case TelephonyManager.DATA_ACTIVITY_IN:
                        iconId = mDataIconList[1];
                        iconId = mDataIconList[1];
+1 −1
Original line number Original line Diff line number Diff line
@@ -186,7 +186,7 @@ public class ServiceState implements Parcelable {
    private int mSystemId;
    private int mSystemId;
    private int mCdmaRoamingIndicator;
    private int mCdmaRoamingIndicator;
    private int mCdmaDefaultRoamingIndicator;
    private int mCdmaDefaultRoamingIndicator;
    private int mCdmaEriIconIndex;
    private int mCdmaEriIconIndex = 1; //EriInfo.ROAMING_INDICATOR_OFF;
    private int mCdmaEriIconMode;
    private int mCdmaEriIconMode;


    /**
    /**