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

Commit 42723c5e authored by William Escande's avatar William Escande Committed by Gerrit Code Review
Browse files

Merge changes Idd1258bc,Ie47d71b5,I92007320,I6e817cfc,If90840d3, ...

* changes:
  HEARINGAID Enforce priviled on setVolume
  Removed useless testapi annotation
  Remove duplicate method exposure
  Remove non logical permission on api
  Fix some API recently added
  API Changes needed for apex to build
parents fa3e4cb6 701ebfc5
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -2049,6 +2049,8 @@ public class AdapterService extends Service {
                return new ArrayList<>();
            }

            enforceBluetoothPrivilegedPermission(service);

            return service.mDatabaseManager.getMostRecentlyConnectedDevices();
        }

@@ -2159,6 +2161,8 @@ public class AdapterService extends Service {
                return false;
            }

            enforceBluetoothPrivilegedPermission(service);

            DeviceProperties deviceProp = service.mRemoteDevices.getDeviceProperties(device);
            if (deviceProp != null) {
                deviceProp.setBondingInitiatedLocally(false);
+3 −0
Original line number Diff line number Diff line
@@ -536,7 +536,10 @@ public class HearingAidService extends ProfileService {
                .getProfileConnectionPolicy(device, BluetoothProfile.HEARING_AID);
    }

    @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)
    void setVolume(int volume) {
        enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED,
                "Need BLUETOOTH_PRIVILEGED permission");
        mHearingAidNativeInterface.setVolume(volume);
    }

+134 −0

File changed.

Preview size limit exceeded, changes collapsed.

+17 −10
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.annotation.RequiresNoPermission;
import android.annotation.RequiresPermission;
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.bluetooth.annotations.RequiresBluetoothConnectPermission;
import android.bluetooth.annotations.RequiresLegacyBluetoothAdminPermission;
@@ -124,11 +125,12 @@ public final class BluetoothA2dp implements BluetoothProfile {
     *
     * @hide
     */
    @SystemApi
    @RequiresLegacyBluetoothPermission
    @RequiresBluetoothConnectPermission
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
    @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
    @UnsupportedAppUsage(trackingBug = 171933273)
    @SuppressLint("ActionValue")
    public static final String ACTION_ACTIVE_DEVICE_CHANGED =
            "android.bluetooth.a2dp.profile.action.ACTIVE_DEVICE_CHANGED";

@@ -145,11 +147,12 @@ public final class BluetoothA2dp implements BluetoothProfile {
     *
     * @hide
     */
    @SystemApi
    @RequiresLegacyBluetoothPermission
    @RequiresBluetoothConnectPermission
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
    @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
    @UnsupportedAppUsage(trackingBug = 181103983)
    @SuppressLint("ActionValue")
    public static final String ACTION_CODEC_CONFIG_CHANGED =
            "android.bluetooth.a2dp.profile.action.CODEC_CONFIG_CHANGED";

@@ -695,8 +698,12 @@ public final class BluetoothA2dp implements BluetoothProfile {
     * @param volume Absolute volume to be set on AVRCP side
     * @hide
     */
    @SystemApi
    @RequiresBluetoothConnectPermission
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
    @RequiresPermission(allOf = {
            android.Manifest.permission.BLUETOOTH_CONNECT,
            android.Manifest.permission.BLUETOOTH_PRIVILEGED,
    })
    public void setAvrcpAbsoluteVolume(int volume) {
        if (DBG) Log.d(TAG, "setAvrcpAbsoluteVolume");
        final IBluetoothA2dp service = getService();
@@ -769,7 +776,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
     * @return the current codec status
     * @hide
     */
    @UnsupportedAppUsage(trackingBug = 181103983)
    @SystemApi
    @Nullable
    @RequiresLegacyBluetoothPermission
    @RequiresBluetoothConnectPermission
@@ -802,7 +809,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
     * @param codecConfig the codec configuration preference
     * @hide
     */
    @UnsupportedAppUsage(trackingBug = 181103983)
    @SystemApi
    @RequiresLegacyBluetoothPermission
    @RequiresBluetoothConnectPermission
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
@@ -833,7 +840,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
     * @param device the remote Bluetooth device.
     * @hide
     */
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
    @SystemApi
    @RequiresLegacyBluetoothPermission
    @RequiresBluetoothConnectPermission
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
@@ -849,7 +856,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
     * @param device the remote Bluetooth device.
     * @hide
     */
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
    @SystemApi
    @RequiresLegacyBluetoothPermission
    @RequiresBluetoothConnectPermission
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
@@ -892,7 +899,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
     * OPTIONAL_CODECS_SUPPORTED.
     * @hide
     */
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
    @SystemApi
    @RequiresLegacyBluetoothAdminPermission
    @RequiresBluetoothConnectPermission
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
@@ -925,7 +932,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
     * OPTIONAL_CODECS_PREF_DISABLED.
     * @hide
     */
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
    @SystemApi
    @RequiresLegacyBluetoothAdminPermission
    @RequiresBluetoothConnectPermission
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
@@ -959,7 +966,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
     * OPTIONAL_CODECS_PREF_DISABLED.
     * @hide
     */
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
    @SystemApi
    @RequiresLegacyBluetoothAdminPermission
    @RequiresBluetoothConnectPermission
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
+35 −12
Original line number Diff line number Diff line
@@ -222,6 +222,7 @@ public final class BluetoothAdapter {
     *
     * @hide
     */
    @SystemApi
    public static final int STATE_BLE_ON = 15;

    /**
@@ -271,6 +272,9 @@ public final class BluetoothAdapter {
     *
     * @hide
     */
    @SystemApi
    @RequiresNoPermission
    @NonNull
    public static String nameForState(@AdapterState int state) {
        switch (state) {
            case STATE_OFF:
@@ -367,10 +371,13 @@ public final class BluetoothAdapter {
     *
     * @hide
     */
    @SystemApi
    @RequiresLegacyBluetoothPermission
    @RequiresBluetoothConnectPermission
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) public static final String
    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
    @SuppressLint("ActionValue")
    public static final String
            ACTION_REQUEST_DISABLE = "android.bluetooth.adapter.action.REQUEST_DISABLE";

    /**
@@ -1395,7 +1402,7 @@ public final class BluetoothAdapter {
     * @return true to indicate that the config file was successfully cleared
     * @hide
     */
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
    @SystemApi
    @RequiresBluetoothConnectPermission
    @RequiresPermission(allOf = {
            android.Manifest.permission.BLUETOOTH_CONNECT,
@@ -1429,10 +1436,11 @@ public final class BluetoothAdapter {
     * @return the UUIDs supported by the local Bluetooth Adapter.
     * @hide
     */
    @UnsupportedAppUsage
    @SystemApi
    @RequiresLegacyBluetoothPermission
    @RequiresBluetoothConnectPermission
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
    @SuppressLint(value = {"ArrayReturn", "NullableCollection"})
    public @Nullable ParcelUuid[] getUuids() {
        if (getState() != STATE_ON) {
            return null;
@@ -2643,12 +2651,14 @@ public final class BluetoothAdapter {
     * @param result The callback to which to send the activity info.
     * @hide
     */
    @SystemApi
    @RequiresBluetoothConnectPermission
    @RequiresPermission(allOf = {
            android.Manifest.permission.BLUETOOTH_CONNECT,
            android.Manifest.permission.BLUETOOTH_PRIVILEGED,
    })
    public void requestControllerActivityEnergyInfo(ResultReceiver result) {
    public void requestControllerActivityEnergyInfo(@NonNull ResultReceiver result) {
        requireNonNull(result, "ResultReceiver cannot be null");
        try {
            mServiceLock.readLock().lock();
            if (mService != null) {
@@ -2675,9 +2685,13 @@ public final class BluetoothAdapter {
     *
     * @hide
     */
    @SystemApi
    @RequiresLegacyBluetoothAdminPermission
    @RequiresBluetoothConnectPermission
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
    @RequiresPermission(allOf = {
            android.Manifest.permission.BLUETOOTH_CONNECT,
            android.Manifest.permission.BLUETOOTH_PRIVILEGED,
    })
    public @NonNull List<BluetoothDevice> getMostRecentlyConnectedDevices() {
        if (getState() != STATE_ON) {
            return new ArrayList<>();
@@ -2835,8 +2849,7 @@ public final class BluetoothAdapter {
     * #STATE_CONNECTING} or {@link #STATE_DISCONNECTED}
     * @hide
     */
    @UnsupportedAppUsage
    @RequiresLegacyBluetoothPermission
    @SystemApi
    @RequiresNoPermission
    public int getConnectionState() {
        if (getState() != STATE_ON) {
@@ -4129,7 +4142,9 @@ public final class BluetoothAdapter {
     *
     * @hide
     */
    public boolean registerServiceLifecycleCallback(ServiceLifecycleCallback callback) {
    @RequiresNoPermission
    @SystemApi
    public boolean registerServiceLifecycleCallback(@NonNull ServiceLifecycleCallback callback) {
        return getBluetoothService(callback.mRemote) != null;
    }

@@ -4138,7 +4153,9 @@ public final class BluetoothAdapter {
     *
     * @hide
     */
    public void unregisterServiceLifecycleCallback(ServiceLifecycleCallback callback) {
    @RequiresNoPermission
    @SystemApi
    public void unregisterServiceLifecycleCallback(@NonNull ServiceLifecycleCallback callback) {
        removeServiceStateCallback(callback.mRemote);
    }

@@ -4147,6 +4164,7 @@ public final class BluetoothAdapter {
     *
     * @hide
     */
    @SystemApi
    public abstract static class ServiceLifecycleCallback {

        /** Called when the bluetooth stack is up */
@@ -4622,6 +4640,7 @@ public final class BluetoothAdapter {
     * @throws IllegalArgumentException if the callback is already registered
     * @hide
     */
    @SystemApi
    @RequiresBluetoothConnectPermission
    @RequiresPermission(allOf = {
            android.Manifest.permission.BLUETOOTH_CONNECT,
@@ -4630,7 +4649,7 @@ public final class BluetoothAdapter {
    public boolean registerBluetoothConnectionCallback(@NonNull @CallbackExecutor Executor executor,
            @NonNull BluetoothConnectionCallback callback) {
        if (DBG) Log.d(TAG, "registerBluetoothConnectionCallback()");
        if (callback == null) {
        if (callback == null || executor == null) {
            return false;
        }

@@ -4673,6 +4692,7 @@ public final class BluetoothAdapter {
     * @return true if the callback was unregistered successfully, false otherwise
     * @hide
     */
    @SystemApi
    @RequiresBluetoothConnectPermission
    @RequiresPermission(allOf = {
            android.Manifest.permission.BLUETOOTH_CONNECT,
@@ -4719,19 +4739,21 @@ public final class BluetoothAdapter {
     *
     * @hide
     */
    @SystemApi
    public abstract static class BluetoothConnectionCallback {
        /**
         * Callback triggered when a bluetooth device (classic or BLE) is connected
         * @param device is the connected bluetooth device
         */
        public void onDeviceConnected(BluetoothDevice device) {}
        public void onDeviceConnected(@NonNull BluetoothDevice device) {}

        /**
         * Callback triggered when a bluetooth device (classic or BLE) is disconnected
         * @param device is the disconnected bluetooth device
         * @param reason is the disconnect reason
         */
        public void onDeviceDisconnected(BluetoothDevice device, @DisconnectReason int reason) {}
        public void onDeviceDisconnected(@NonNull BluetoothDevice device,
                @DisconnectReason int reason) {}

        /**
         * @hide
@@ -4754,6 +4776,7 @@ public final class BluetoothAdapter {
        /**
         * Returns human-readable strings corresponding to {@link DisconnectReason}.
         */
        @NonNull
        public static String disconnectReasonText(@DisconnectReason int reason) {
            switch (reason) {
                case BluetoothStatusCodes.ERROR_UNKNOWN:
Loading