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

Commit 6da83d58 authored by Irfan Sheriff's avatar Irfan Sheriff
Browse files

Handle AsyncChannel disconnect in WifiService

Backport change I928544a0 to LTE branch and also handle
disconnect on WifiStateMachine channel

Bug: 4473750
Change-Id: I556330c10243a1805555f6bf6dcc7e43b78e3bfd
parent e9d32283
Loading
Loading
Loading
Loading
+22 −1
Original line number Diff line number Diff line
@@ -235,6 +235,15 @@ public class WifiService extends IWifiManager.Stub {
                    }
                    break;
                }
                case AsyncChannel.CMD_CHANNEL_DISCONNECTED: {
                    if (msg.arg1 == AsyncChannel.STATUS_SEND_UNSUCCESSFUL) {
                        Slog.d(TAG, "Send failed, client connection lost");
                    } else {
                        Slog.d(TAG, "Client connection lost with reason: " + msg.arg1);
                    }
                    mClients.remove((AsyncChannel) msg.obj);
                    break;
                }
                case AsyncChannel.CMD_CHANNEL_FULL_CONNECTION: {
                    AsyncChannel ac = new AsyncChannel();
                    ac.connect(mContext, this, msg.replyTo);
@@ -312,6 +321,13 @@ public class WifiService extends IWifiManager.Stub {
                    }
                    break;
                }
                case AsyncChannel.CMD_CHANNEL_DISCONNECTED: {
                    Slog.e(TAG, "WifiStateMachine channel lost, msg.arg1 =" + msg.arg1);
                    mWifiStateMachineChannel = null;
                    //Re-establish connection to state machine
                    mWsmChannel.connect(mContext, this, mWifiStateMachine.getHandler());
                    break;
                }
                default: {
                    Slog.d(TAG, "WifiStateMachineHandler.handleMessage ignoring msg=" + msg);
                    break;
@@ -584,7 +600,12 @@ public class WifiService extends IWifiManager.Stub {
     */
    public WifiConfiguration getWifiApConfiguration() {
        enforceAccessPermission();
        if (mWifiStateMachineChannel != null) {
            return mWifiStateMachine.syncGetWifiApConfiguration(mWifiStateMachineChannel);
        } else {
            Slog.e(TAG, "mWifiStateMachineChannel is not initialized");
            return null;
        }
    }

    /**