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

Commit 8cef98dd authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add setConnectionPolicy to HidDeviceService and PanService"

parents 51164c0d 9a0c9b1b
Loading
Loading
Loading
Loading
+43 −0
Original line number Original line Diff line number Diff line
@@ -404,6 +404,21 @@ public class HidDeviceService extends ProfileService {
            return service.disconnect(device);
            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
        @Override
        public boolean reportError(BluetoothDevice device, byte error) {
        public boolean reportError(BluetoothDevice device, byte error) {
            if (DBG) {
            if (DBG) {
@@ -627,6 +642,34 @@ public class HidDeviceService extends ProfileService {
        return checkDevice(device) && mHidDeviceNativeInterface.disconnect();
        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) {
    synchronized boolean reportError(BluetoothDevice device, byte error) {
        enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission");
        enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission");
        if (DBG) {
        if (DBG) {
+9 −0
Original line number Original line Diff line number Diff line
@@ -249,6 +249,15 @@ public class PanService extends ProfileService {
            return service.disconnect(device);
            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
        @Override
        public int getConnectionState(BluetoothDevice device) {
        public int getConnectionState(BluetoothDevice device) {
            PanService service = getService();
            PanService service = getService();