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

Commit 0d7cd438 authored by Hariprasad Jayakumar's avatar Hariprasad Jayakumar Committed by Steve Kondik
Browse files

Settings: Show Service State status in Phone Status properly

When the network mode is data only mode, the voice service state
would be OOS. In such cases, data service state is not checked to
show the phone status UI. Fix to consider data service state also to
update the UI properly.

Change-Id: I20fb6ea3256d0fe4a534fbb781e664d7ce774a05
CRs-Fixed: 517234
parent b1bae2ac
Loading
Loading
Loading
Loading
+19 −15
Original line number Diff line number Diff line
@@ -397,6 +397,20 @@ public class Status extends PreferenceActivity {
             }
    }

    private String getServiceStateString(int state) {
        switch (state) {
            case ServiceState.STATE_IN_SERVICE:
                return mRes.getString(R.string.radioInfo_service_in);
            case ServiceState.STATE_OUT_OF_SERVICE:
            case ServiceState.STATE_EMERGENCY_ONLY:
                return mRes.getString(R.string.radioInfo_service_out);
            case ServiceState.STATE_POWER_OFF:
                return mRes.getString(R.string.radioInfo_service_off);
            default:
                return mRes.getString(R.string.radioInfo_unknown);
        }
    }

    private void updateNetworkType() {
        // Whether EDGE, UMTS, etc...
        String networktype = null;
@@ -429,23 +443,13 @@ public class Status extends PreferenceActivity {
    }

    private void updateServiceState(ServiceState serviceState) {
        int state = serviceState.getState();
        String display = mRes.getString(R.string.radioInfo_unknown);
        int voiceState = serviceState.getState();
        String voiceDisplay = getServiceStateString(voiceState);

        switch (state) {
            case ServiceState.STATE_IN_SERVICE:
                display = mRes.getString(R.string.radioInfo_service_in);
                break;
            case ServiceState.STATE_OUT_OF_SERVICE:
            case ServiceState.STATE_EMERGENCY_ONLY:
                display = mRes.getString(R.string.radioInfo_service_out);
                break;
            case ServiceState.STATE_POWER_OFF:
                display = mRes.getString(R.string.radioInfo_service_off);
                break;
        }
        int dataState = serviceState.getDataRegState();
        String dataDisplay = getServiceStateString(dataState);

        setSummaryText(KEY_SERVICE_STATE, display);
        setSummaryText(KEY_SERVICE_STATE, "Voice: " + voiceDisplay + " / Data: " + dataDisplay);

        if (serviceState.getRoaming()) {
            setSummaryText(KEY_ROAMING_STATE, mRes.getString(R.string.radioInfo_roaming_in));