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

Commit 1f8eba1b authored by Nitin Shivpure's avatar Nitin Shivpure Committed by Andre Eisenbach
Browse files

DO NOT MERGE Bluetooth: Fix to avoid framework reboot during monkey testing

When running monkeyrunner, sometimes the framework is disconnected due
to an unhandled Java exception while binding the PAN service (when it
is unsuccessful). Handing the Java exception while binding PAN service
solves this issue.

Change-Id: Idea710593a3f9496305f636042605303e73e7749
parent c50315e0
Loading
Loading
Loading
Loading
+15 −6
Original line number Diff line number Diff line
@@ -138,7 +138,6 @@ public final class BluetoothPan implements BluetoothProfile {
        }
        if (VDBG) Log.d(TAG, "BluetoothPan() call bindService");
        doBind();
        if (VDBG) Log.d(TAG, "BluetoothPan(), bindService called");
    }

    boolean doBind() {
@@ -185,12 +184,22 @@ public final class BluetoothPan implements BluetoothProfile {
    final private IBluetoothStateChangeCallback mStateChangeCallback = new IBluetoothStateChangeCallback.Stub() {

        @Override
        public void onBluetoothStateChange(boolean on) throws RemoteException {
        public void onBluetoothStateChange(boolean on) {
            // Handle enable request to bind again.
            Log.d(TAG, "onBluetoothStateChange on: " + on);
            if (on) {
                Log.d(TAG, "onBluetoothStateChange(on) call bindService");
                try {
                    if (mPanService == null) {
                        if (VDBG) Log.d(TAG, "onBluetoothStateChange calling doBind()");
                        doBind();
                if (VDBG) Log.d(TAG, "BluetoothPan(), bindService called");
                    }

                } catch (IllegalStateException e) {
                    Log.e(TAG,"onBluetoothStateChange: could not bind to PAN service: ", e);

                } catch (SecurityException e) {
                    Log.e(TAG,"onBluetoothStateChange: could not bind to PAN service: ", e);
                }
            } else {
                if (VDBG) Log.d(TAG,"Unbinding service...");
                synchronized (mConnection) {