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

Commit 7707ae91 authored by Ravi Nagarajan's avatar Ravi Nagarajan Committed by Zhihai Xu
Browse files

Fix for roam indicator not updating correctly

Use telephony manager PhoneStateListener to update the roam indicator
bug 8781689

Change-Id: I7c06f162918a10d06d77fb302e99bd2db8b02874
parent 4cdc5548
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -178,6 +178,8 @@ class HeadsetPhoneState {
            mService = (serviceState.getState() == ServiceState.STATE_IN_SERVICE) ?
                HeadsetHalConstants.NETWORK_STATE_AVAILABLE :
                HeadsetHalConstants.NETWORK_STATE_NOT_AVAILABLE;
            setRoam(serviceState.getRoaming() ? HeadsetHalConstants.SERVICE_TYPE_ROAMING
                                              : HeadsetHalConstants.SERVICE_TYPE_HOME);
            sendDeviceStateChanged();
        }

+0 −11
Original line number Diff line number Diff line
@@ -257,12 +257,6 @@ public class HeadsetService extends ProfileService {
            service.phoneStateChanged(numActive, numHeld, callState, number, type);
        }

        public void roamChanged(boolean roam) {
            HeadsetService service = getService();
            if (service == null) return;
            service.roamChanged(roam);
        }

        public void clccResponse(int index, int direction, int status, int mode, boolean mpty,
                                 String number, int type) {
            HeadsetService service = getService();
@@ -478,11 +472,6 @@ public class HeadsetService extends ProfileService {
        mStateMachine.sendMessage(msg);
    }

    private void roamChanged(boolean roam) {
        enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, null);
        mStateMachine.sendMessage(HeadsetStateMachine.ROAM_CHANGED, roam);
    }

    private void clccResponse(int index, int direction, int status, int mode, boolean mpty,
                             String number, int type) {
        enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, null);
+3 −21
Original line number Diff line number Diff line
@@ -88,11 +88,10 @@ final class HeadsetStateMachine extends StateMachine {
    static final int CALL_STATE_CHANGED = 9;
    static final int INTENT_BATTERY_CHANGED = 10;
    static final int DEVICE_STATE_CHANGED = 11;
    static final int ROAM_CHANGED = 12;
    static final int SEND_CCLC_RESPONSE = 13;
    static final int SEND_CCLC_RESPONSE = 12;

    static final int VIRTUAL_CALL_START = 14;
    static final int VIRTUAL_CALL_STOP = 15;
    static final int VIRTUAL_CALL_START = 13;
    static final int VIRTUAL_CALL_STOP = 14;

    private static final int STACK_EVENT = 101;
    private static final int DIALING_OUT_TIMEOUT = 102;
@@ -285,9 +284,6 @@ final class HeadsetStateMachine extends StateMachine {
                case INTENT_BATTERY_CHANGED:
                    processIntentBatteryChanged((Intent) message.obj);
                    break;
                case ROAM_CHANGED:
                    processRoamChanged((Boolean) message.obj);
                    break;
                case CALL_STATE_CHANGED:
                    processCallState((HeadsetCallState) message.obj,
                        ((message.arg1 == 1)?true:false));
@@ -416,9 +412,6 @@ final class HeadsetStateMachine extends StateMachine {
                case INTENT_BATTERY_CHANGED:
                    processIntentBatteryChanged((Intent) message.obj);
                    break;
                case ROAM_CHANGED:
                    processRoamChanged((Boolean) message.obj);
                    break;
                case CALL_STATE_CHANGED:
                    processCallState((HeadsetCallState) message.obj,
                        ((message.arg1 == 1)?true:false));
@@ -649,9 +642,6 @@ final class HeadsetStateMachine extends StateMachine {
                case INTENT_BATTERY_CHANGED:
                    processIntentBatteryChanged((Intent) message.obj);
                    break;
                case ROAM_CHANGED:
                    processRoamChanged((Boolean) message.obj);
                    break;
                case DEVICE_STATE_CHANGED:
                    processDeviceStateChanged((HeadsetDeviceState) message.obj);
                    break;
@@ -866,9 +856,6 @@ final class HeadsetStateMachine extends StateMachine {
                case INTENT_BATTERY_CHANGED:
                    processIntentBatteryChanged((Intent) message.obj);
                    break;
                case ROAM_CHANGED:
                    processRoamChanged((Boolean) message.obj);
                    break;
                case DEVICE_STATE_CHANGED:
                    processDeviceStateChanged((HeadsetDeviceState) message.obj);
                    break;
@@ -1891,11 +1878,6 @@ final class HeadsetStateMachine extends StateMachine {
        mPhoneState.setBatteryCharge(batteryLevel);
    }

    private void processRoamChanged(boolean roam) {
        mPhoneState.setRoam(roam ? HeadsetHalConstants.SERVICE_TYPE_ROAMING :
                            HeadsetHalConstants.SERVICE_TYPE_HOME);
    }

    private void processDeviceStateChanged(HeadsetDeviceState deviceState) {
        notifyDeviceStatusNative(deviceState.mService, deviceState.mRoam, deviceState.mSignal,
                                 deviceState.mBatteryCharge);