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

Commit a781c978 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Add setConnectionPolicy to HidDeviceService and PanService" am: 8cef98dd am: 6eeabc39

Change-Id: Id448d3be0b438b563da326cadb6becbabe1be52a
parents 37d60ab0 6eeabc39
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
@@ -404,6 +404,21 @@ public class HidDeviceService extends ProfileService {
            return service.disconnect(device);
        }

        @Override
        public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy) {
            if (DBG) {
                Log.d(TAG, "setConnectionPolicy(): device=" + device + " connectionPolicy="
                        + connectionPolicy);
            }

            HidDeviceService service = getService();
            if (service == null) {
                return false;
            }

            return service.setConnectionPolicy(device, connectionPolicy);
        }

        @Override
        public boolean reportError(BluetoothDevice device, byte error) {
            if (DBG) {
@@ -627,6 +642,34 @@ public class HidDeviceService extends ProfileService {
        return checkDevice(device) && mHidDeviceNativeInterface.disconnect();
    }

    /**
     * Connects Hid Device if connectionPolicy is {@link BluetoothProfile#CONNECTION_POLICY_ALLOWED}
     * and disconnects Hid device if connectionPolicy is
     * {@link BluetoothProfile#CONNECTION_POLICY_FORBIDDEN}.
     *
     * <p> The device should already be paired.
     * Connection policy can be one of:
     * {@link BluetoothProfile#CONNECTION_POLICY_ALLOWED},
     * {@link BluetoothProfile#CONNECTION_POLICY_FORBIDDEN},
     * {@link BluetoothProfile#CONNECTION_POLICY_UNKNOWN}
     *
     * @param device Paired bluetooth device
     * @param connectionPolicy determines whether hid device should be connected or disconnected
     * @return true if hid device is connected or disconnected, false otherwise
     */
    public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy) {
        enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission");
        if (DBG) {
            Log.d(TAG, "setConnectionPolicy: device " + device
                    + " and connectionPolicy " + connectionPolicy);
        }
        if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN) {
            disconnect(device);
            return true;
        }
        return false;
    }

    synchronized boolean reportError(BluetoothDevice device, byte error) {
        enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission");
        if (DBG) {
+9 −0
Original line number Diff line number Diff line
@@ -249,6 +249,15 @@ public class PanService extends ProfileService {
            return service.disconnect(device);
        }

        @Override
        public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy) {
            PanService service = getService();
            if (service == null) {
                return false;
            }
            return service.setConnectionPolicy(device, connectionPolicy);
        }

        @Override
        public int getConnectionState(BluetoothDevice device) {
            PanService service = getService();