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

Commit 1360c622 authored by Andre Eisenbach's avatar Andre Eisenbach Committed by android-build-merger
Browse files

Merge "Bluetooth: HID: Add support for Set Idle and Get Idle Commands (3/4)"...

Merge "Bluetooth: HID: Add support for Set Idle and Get Idle Commands (3/4)" am: 51876abe am: 9413fd9e
am: 01d1188a

Change-Id: Ie92cbd1f5795d7b9f55d0e51503e7d08b61e8732
parents 70967121 01d1188a
Loading
Loading
Loading
Loading
+61 −0
Original line number Diff line number Diff line
@@ -97,6 +97,12 @@ public final class BluetoothInputDevice implements BluetoothProfile {
    public static final String ACTION_VIRTUAL_UNPLUG_STATUS =
        "android.bluetooth.input.profile.action.VIRTUAL_UNPLUG_STATUS";

    /**
     * @hide
     */
    @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
    public static final String ACTION_IDLE_TIME_CHANGED =
        "android.bluetooth.input.profile.action.IDLE_TIME_CHANGED";

    /**
     * Return codes for the connect and disconnect Bluez / Dbus calls.
@@ -200,6 +206,11 @@ public final class BluetoothInputDevice implements BluetoothProfile {
     */
    public static final String EXTRA_VIRTUAL_UNPLUG_STATUS = "android.bluetooth.BluetoothInputDevice.extra.VIRTUAL_UNPLUG_STATUS";

    /**
     * @hide
     */
    public static final String EXTRA_IDLE_TIME = "android.bluetooth.BluetoothInputDevice.extra.IDLE_TIME";

    private Context mContext;
    private ServiceListener mServiceListener;
    private BluetoothAdapter mAdapter;
@@ -659,6 +670,56 @@ public final class BluetoothInputDevice implements BluetoothProfile {
        if (mService == null) Log.w(TAG, "Proxy not attached to service");
        return false;
    }

    /**
     * Send Get_Idle_Time command to the connected HID input device.
     *
     * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN} permission.
     *
     * @param device Remote Bluetooth Device
     * @return false on immediate error,
     *               true otherwise
     * @hide
     */
    public boolean getIdleTime(BluetoothDevice device) {
        if (DBG) log("getIdletime(" + device + ")");
        if (mService != null && isEnabled() && isValidDevice(device)) {
            try {
                return mService.getIdleTime(device);
            } catch (RemoteException e) {
                Log.e(TAG, "Stack:" + Log.getStackTraceString(new Throwable()));
                return false;
            }
        }
        if (mService == null) Log.w(TAG, "Proxy not attached to service");
        return false;
    }

    /**
     * Send Set_Idle_Time command to the connected HID input device.
     *
     * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN} permission.
     *
     * @param device Remote Bluetooth Device
     * @param idleTime Idle time to be set on HID Device
     * @return false on immediate error,
     *               true otherwise
     * @hide
     */
    public boolean setIdleTime(BluetoothDevice device, byte idleTime) {
        if (DBG) log("setIdletime(" + device + "), idleTime=" + idleTime);
        if (mService != null && isEnabled() && isValidDevice(device)) {
            try {
                return mService.setIdleTime(device, idleTime);
            } catch (RemoteException e) {
                Log.e(TAG, "Stack:" + Log.getStackTraceString(new Throwable()));
                return false;
            }
        }
        if (mService == null) Log.w(TAG, "Proxy not attached to service");
        return false;
    }

    private static void log(String msg) {
      Log.d(TAG, msg);
    }
+8 −0
Original line number Diff line number Diff line
@@ -56,4 +56,12 @@ interface IBluetoothInputDevice {
    * @hide
    */
    boolean sendData(in BluetoothDevice device, String report);
    /**
    * @hide
    */
    boolean getIdleTime(in BluetoothDevice device);
    /**
    * @hide
    */
    boolean setIdleTime(in BluetoothDevice device, byte idleTime);
}