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

Commit b70765cc authored by Jaikumar Ganesh's avatar Jaikumar Ganesh
Browse files

Decouple Tethering UI with registering of SDP records.

This can lead to usability issues, since the SDP record
will get registered later on.

Change-Id: Ifda78a3831572f1b9955bf06da9a8b0e949942aa
parent be881a3d
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -173,9 +173,9 @@ public final class BluetoothPan {
        Log.d(TAG, msg);
        Log.d(TAG, msg);
    }
    }


    public void setBluetoothTethering(boolean value, String uuid, String bridge) {
    public void setBluetoothTethering(boolean value) {
        try {
        try {
            mService.setBluetoothTethering(value, uuid, bridge);
            mService.setBluetoothTethering(value);
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            Log.e(TAG, "", e);
            Log.e(TAG, "", e);
        }
        }
+1 −1
Original line number Original line Diff line number Diff line
@@ -83,7 +83,7 @@ interface IBluetooth
    int getInputDevicePriority(in BluetoothDevice device);
    int getInputDevicePriority(in BluetoothDevice device);


    boolean isTetheringOn();
    boolean isTetheringOn();
    void setBluetoothTethering(boolean value, String uuid, String bridge);
    void setBluetoothTethering(boolean value);
    int getPanDeviceState(in BluetoothDevice device);
    int getPanDeviceState(in BluetoothDevice device);
    BluetoothDevice[] getConnectedPanDevices();
    BluetoothDevice[] getConnectedPanDevices();
    boolean connectPanDevice(in BluetoothDevice device);
    boolean connectPanDevice(in BluetoothDevice device);
+2 −1
Original line number Original line Diff line number Diff line
@@ -644,7 +644,8 @@ class BluetoothEventLoop {
             } else {
             } else {
                 Log.i(TAG, "Rejecting incoming HID connection from " + address);
                 Log.i(TAG, "Rejecting incoming HID connection from " + address);
             }
             }
        } else if (BluetoothUuid.isBnep(uuid) || BluetoothUuid.isNap(uuid)){
        } else if (BluetoothUuid.isBnep(uuid) || BluetoothUuid.isNap(uuid) &&
                mBluetoothService.isTetheringOn()){
            authorized = true;
            authorized = true;
        } else {
        } else {
            Log.i(TAG, "Rejecting incoming " + deviceUuid + " connection from " + address);
            Log.i(TAG, "Rejecting incoming " + deviceUuid + " connection from " + address);
+9 −7
Original line number Original line Diff line number Diff line
@@ -352,7 +352,7 @@ public class BluetoothService extends IBluetooth.Stub {
        }
        }
        setBluetoothState(BluetoothAdapter.STATE_TURNING_OFF);
        setBluetoothState(BluetoothAdapter.STATE_TURNING_OFF);
        mHandler.removeMessages(MESSAGE_REGISTER_SDP_RECORDS);
        mHandler.removeMessages(MESSAGE_REGISTER_SDP_RECORDS);
        setBluetoothTethering(false, BluetoothPan.NAP_ROLE, BluetoothPan.NAP_BRIDGE);
        setBluetoothTetheringNative(false, BluetoothPan.NAP_ROLE, BluetoothPan.NAP_BRIDGE);


        // Allow 3 seconds for profiles to gracefully disconnect
        // Allow 3 seconds for profiles to gracefully disconnect
        // TODO: Introduce a callback mechanism so that each profile can notify
        // TODO: Introduce a callback mechanism so that each profile can notify
@@ -576,8 +576,12 @@ public class BluetoothService extends IBluetooth.Stub {
                mBondState.readAutoPairingData();
                mBondState.readAutoPairingData();
                mBondState.loadBondState();
                mBondState.loadBondState();
                initProfileState();
                initProfileState();

                //Register SDP records.
                mHandler.sendMessageDelayed(
                mHandler.sendMessageDelayed(
                        mHandler.obtainMessage(MESSAGE_REGISTER_SDP_RECORDS, 1, -1), 3000);
                        mHandler.obtainMessage(MESSAGE_REGISTER_SDP_RECORDS, 1, -1), 3000);
                setBluetoothTetheringNative(true, BluetoothPan.NAP_ROLE, BluetoothPan.NAP_BRIDGE);



                // Log bluetooth on to battery stats.
                // Log bluetooth on to battery stats.
                long ident = Binder.clearCallingIdentity();
                long ident = Binder.clearCallingIdentity();
@@ -1258,14 +1262,12 @@ public class BluetoothService extends IBluetooth.Stub {


    private BroadcastReceiver mTetheringReceiver = null;
    private BroadcastReceiver mTetheringReceiver = null;


    public synchronized void setBluetoothTethering(boolean value, 
    public synchronized void setBluetoothTethering(boolean value) {
            final String uuid, final String bridge) {
        mTetheringOn = value;
        if (!value) {
        if (!value) {
            disconnectPan();
            disconnectPan();
        }
        }


        if (getBluetoothState() != BluetoothAdapter.STATE_ON && mTetheringOn) {
        if (getBluetoothState() != BluetoothAdapter.STATE_ON && value) {
            IntentFilter filter = new IntentFilter();
            IntentFilter filter = new IntentFilter();
            filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
            filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
            mTetheringReceiver = new BroadcastReceiver() {
            mTetheringReceiver = new BroadcastReceiver() {
@@ -1273,14 +1275,14 @@ public class BluetoothService extends IBluetooth.Stub {
                public synchronized void onReceive(Context context, Intent intent) {
                public synchronized void onReceive(Context context, Intent intent) {
                    if (intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.STATE_OFF)
                    if (intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.STATE_OFF)
                            == BluetoothAdapter.STATE_ON) {
                            == BluetoothAdapter.STATE_ON) {
                        setBluetoothTethering(true, uuid, bridge);
                        mTetheringOn = true;
                        mContext.unregisterReceiver(mTetheringReceiver);
                        mContext.unregisterReceiver(mTetheringReceiver);
                    }
                    }
                }
                }
            };
            };
            mContext.registerReceiver(mTetheringReceiver, filter);
            mContext.registerReceiver(mTetheringReceiver, filter);
        } else {
        } else {
            setBluetoothTetheringNative(value, uuid, bridge);
            mTetheringOn = value;
        }
        }
    }
    }