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

Commit f89654dd authored by Hung-ying Tyan's avatar Hung-ying Tyan
Browse files

Do not hold wifi lock when SIP is also available over mobile network.

Bug: 3111564
Change-Id: Ifc76e5c378d620e40ce4adf6ffa20807e9750fdb
parent a6cec8fe
Loading
Loading
Loading
Loading
+30 −21
Original line number Diff line number Diff line
@@ -83,6 +83,8 @@ public final class SipService extends ISipService.Stub {
    private WifiScanProcess mWifiScanProcess;
    private WifiManager.WifiLock mWifiLock;
    private boolean mWifiOnly;
    private BroadcastReceiver mWifiStateReceiver = null;

    private IntervalMeasurementProcess mIntervalMeasurementProcess;

    private MyExecutor mExecutor = new MyExecutor();
@@ -123,7 +125,8 @@ public final class SipService extends ISipService.Stub {
        mWifiOnly = SipManager.isSipWifiOnly(context);
    }

    private BroadcastReceiver mWifiStateReceiver = new BroadcastReceiver() {
    private BroadcastReceiver createWifiBroadcastReceiver() {
        return new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
@@ -145,18 +148,24 @@ public final class SipService extends ISipService.Stub {
                }
            }
        };
    };

    private void registerReceivers() {
        mContext.registerReceiver(mConnectivityReceiver,
                new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
        if (SipManager.isSipWifiOnly(mContext)) {
            mWifiStateReceiver = createWifiBroadcastReceiver();
            mContext.registerReceiver(mWifiStateReceiver,
                    new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION));
        }
        if (DEBUG) Log.d(TAG, " +++ register receivers");
    }

    private void unregisterReceivers() {
        mContext.unregisterReceiver(mConnectivityReceiver);
        if (SipManager.isSipWifiOnly(mContext)) {
            mContext.unregisterReceiver(mWifiStateReceiver);
        }
        if (DEBUG) Log.d(TAG, " --- unregister receivers");
    }