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

Commit e8a9d3dc authored by Umashankar Godachi's avatar Umashankar Godachi Committed by Gerrit - the friendly Code Review server
Browse files

Fix to show both voice and data service state under sim status settings

Only voice registration state value was considered to show Service state
under phone settings. This was confusing when data is registered on the
device and signal strength icon is shown but voice reg state will be OOS.
Fix: Showing both voice and data registration states under "Service state"

Change-Id: Iffdf3a074845427877e9f350aeb0e7a53bfe8e1e
CRs-Fixed: 822051.
parent 584a7b64
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.Profile;
import android.provider.ContactsContract.RawContacts;
import android.service.persistentdata.PersistentDataBlockManager;
import android.telephony.ServiceState;
import android.telephony.TelephonyManager;
import android.text.Spannable;
import android.text.SpannableString;
@@ -1245,5 +1246,19 @@ public final class Utils {
            return UserHandle.myUserId();
        }
    }

    public static String getServiceStateString(int state, Resources res) {
        switch (state) {
            case ServiceState.STATE_IN_SERVICE:
                return res.getString(R.string.radioInfo_service_in);
            case ServiceState.STATE_OUT_OF_SERVICE:
            case ServiceState.STATE_EMERGENCY_ONLY:
                return res.getString(R.string.radioInfo_service_out);
            case ServiceState.STATE_POWER_OFF:
                return res.getString(R.string.radioInfo_service_off);
            default:
                return res.getString(R.string.radioInfo_unknown);
        }
    }

}
+4 −10
Original line number Diff line number Diff line
@@ -290,30 +290,24 @@ public class SimStatus extends InstrumentedPreferenceActivity {
    private void updateServiceState(ServiceState serviceState) {
        final int state = serviceState.getState();
        final int dataState = mPhone.getServiceState().getDataRegState();
        String display = mRes.getString(R.string.radioInfo_unknown);

        switch (state) {
            case ServiceState.STATE_IN_SERVICE:
                display = mRes.getString(R.string.radioInfo_service_in);
                break;
            case ServiceState.STATE_OUT_OF_SERVICE:
                // Set signal strength to 0 when service state is STATE_OUT_OF_SERVICE
                if (ServiceState.STATE_OUT_OF_SERVICE == dataState) {
                    mSignalStrength.setSummary("0");
                }
            case ServiceState.STATE_EMERGENCY_ONLY:
                // Set summary string of service state to radioInfo_service_out when
                // service state is both STATE_OUT_OF_SERVICE & 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);
                // Also set signal strength to 0
                mSignalStrength.setSummary("0");
                break;
        }
        String voiceDisplay = Utils.getServiceStateString(state, mRes);

        String dataDisplay = Utils.getServiceStateString(dataState, mRes);

        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));