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

Commit 41b7d6b4 authored by Md Shahriar Hossain Sajib's avatar Md Shahriar Hossain Sajib Committed by Gerrit Code Review
Browse files

Merge "Refactoring API names to increase scope for future"

parents 81d367cc 2bf529b7
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -20,13 +20,13 @@ import android.annotation.RequiresPermission;
import android.annotation.SuppressLint;
import android.bluetooth.BluetoothA2dp;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothAudioPolicy;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothHapClient;
import android.bluetooth.BluetoothHeadset;
import android.bluetooth.BluetoothHearingAid;
import android.bluetooth.BluetoothLeAudio;
import android.bluetooth.BluetoothProfile;
import android.bluetooth.BluetoothSinkAudioPolicy;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -706,9 +706,9 @@ class ActiveDeviceManager {
        if (headsetService == null) {
            return;
        }
        BluetoothAudioPolicy audioPolicy = headsetService.getHfpCallAudioPolicy(device);
        if (audioPolicy == null || audioPolicy.getConnectingTimePolicy()
                != BluetoothAudioPolicy.POLICY_NOT_ALLOWED) {
        BluetoothSinkAudioPolicy audioPolicy = headsetService.getHfpCallAudioPolicy(device);
        if (audioPolicy == null || audioPolicy.getActiveDevicePolicyAfterConnection()
                != BluetoothSinkAudioPolicy.POLICY_NOT_ALLOWED) {
            if (!headsetService.setActiveDevice(device)) {
                return;
            }
+32 −29
Original line number Diff line number Diff line
@@ -45,7 +45,6 @@ import android.bluetooth.BluetoothActivityEnergyInfo;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothAdapter.ActiveDeviceProfile;
import android.bluetooth.BluetoothAdapter.ActiveDeviceUse;
import android.bluetooth.BluetoothAudioPolicy;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothFrameworkInitializer;
@@ -54,6 +53,7 @@ import android.bluetooth.BluetoothProfile;
import android.bluetooth.BluetoothProtoEnums;
import android.bluetooth.BluetoothSap;
import android.bluetooth.BluetoothServerSocket;
import android.bluetooth.BluetoothSinkAudioPolicy;
import android.bluetooth.BluetoothSocket;
import android.bluetooth.BluetoothStatusCodes;
import android.bluetooth.BluetoothUuid;
@@ -4018,70 +4018,73 @@ public class AdapterService extends Service {
        }

        @Override
        public void getAudioPolicyRemoteSupported(BluetoothDevice device,
        public void isRequestAudioPolicyAsSinkSupported(BluetoothDevice device,
                AttributionSource source, SynchronousResultReceiver receiver) {
            try {
                receiver.send(getAudioPolicyRemoteSupported(device, source));
                receiver.send(isRequestAudioPolicyAsSinkSupported(device, source));
            } catch (RuntimeException e) {
                receiver.propagateException(e);
            }
        }
        private int getAudioPolicyRemoteSupported(BluetoothDevice device,
        private int isRequestAudioPolicyAsSinkSupported(BluetoothDevice device,
                AttributionSource source) {
            AdapterService service = getService();
            if (service == null
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG,
                        "getAudioPolicyRemoteSupported")
                        "isRequestAudioPolicyAsSinkSupported")
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return BluetoothAudioPolicy.FEATURE_UNCONFIGURED_BY_REMOTE;
                return BluetoothStatusCodes.FEATURE_NOT_CONFIGURED;
            }
            enforceBluetoothPrivilegedPermission(service);
            return service.getAudioPolicyRemoteSupported(device);
            return service.isRequestAudioPolicyAsSinkSupported(device);
        }

        @Override
        public void setAudioPolicy(BluetoothDevice device, BluetoothAudioPolicy policies,
                AttributionSource source, SynchronousResultReceiver receiver) {
        public void requestAudioPolicyAsSink(BluetoothDevice device,
                BluetoothSinkAudioPolicy policies, AttributionSource source,
                SynchronousResultReceiver receiver) {
            try {
                receiver.send(setAudioPolicy(device, policies, source));
                receiver.send(requestAudioPolicyAsSink(device, policies, source));
            } catch (RuntimeException e) {
                receiver.propagateException(e);
            }
        }
        private int setAudioPolicy(BluetoothDevice device, BluetoothAudioPolicy policies,
                AttributionSource source) {
        private int requestAudioPolicyAsSink(BluetoothDevice device,
                BluetoothSinkAudioPolicy policies, AttributionSource source) {
            AdapterService service = getService();
            if (service == null) {
                return BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED;
            } else if (!callerIsSystemOrActiveOrManagedUser(service, TAG, "setAudioPolicy")) {
            } else if (!callerIsSystemOrActiveOrManagedUser(service,
                    TAG, "requestAudioPolicyAsSink")) {
                return BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ALLOWED;
            } else if (!Utils.checkConnectPermissionForDataDelivery(
                    service, source, TAG)) {
                return BluetoothStatusCodes.ERROR_MISSING_BLUETOOTH_CONNECT_PERMISSION;
            }
            enforceBluetoothPrivilegedPermission(service);
            return service.setAudioPolicy(device, policies);
            return service.requestAudioPolicyAsSink(device, policies);
        }

        @Override
        public void getAudioPolicy(BluetoothDevice device,
        public void getRequestedAudioPolicyAsSink(BluetoothDevice device,
                AttributionSource source, SynchronousResultReceiver receiver) {
            try {
                receiver.send(getAudioPolicy(device, source));
                receiver.send(getRequestedAudioPolicyAsSink(device, source));
            } catch (RuntimeException e) {
                receiver.propagateException(e);
            }
        }
        private BluetoothAudioPolicy getAudioPolicy(BluetoothDevice device,
        private BluetoothSinkAudioPolicy getRequestedAudioPolicyAsSink(BluetoothDevice device,
                AttributionSource source) {
            AdapterService service = getService();
            if (service == null
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "getAudioPolicy")
                    || !callerIsSystemOrActiveOrManagedUser(service,
                            TAG, "getRequestedAudioPolicyAsSink")
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return null;
            }
            enforceBluetoothPrivilegedPermission(service);
            return service.getAudioPolicy(device);
            return service.getRequestedAudioPolicyAsSink(device);
        }

        @Override
@@ -6329,12 +6332,12 @@ public class AdapterService extends Service {
     * @param device Bluetooth device to be checked for audio policy support
     * @return int status of the remote support for audio policy feature
     */
    public int getAudioPolicyRemoteSupported(BluetoothDevice device) {
    public int isRequestAudioPolicyAsSinkSupported(BluetoothDevice device) {
        if (mHeadsetClientService != null) {
            return mHeadsetClientService.getAudioPolicyRemoteSupported(device);
        } else {
            Log.e(TAG, "No audio transport connected");
            return BluetoothAudioPolicy.FEATURE_UNCONFIGURED_BY_REMOTE;
            return BluetoothStatusCodes.FEATURE_NOT_CONFIGURED;
        }
    }

@@ -6342,19 +6345,19 @@ public class AdapterService extends Service {
     * Set audio policy for remote device
     *
     * @param device Bluetooth device to be set policy for
     * @return int result status for setAudioPolicy API
     * @return int result status for requestAudioPolicyAsSink API
     */
    public int setAudioPolicy(BluetoothDevice device, BluetoothAudioPolicy policies) {
    public int requestAudioPolicyAsSink(BluetoothDevice device, BluetoothSinkAudioPolicy policies) {
        DeviceProperties deviceProp = mRemoteDevices.getDeviceProperties(device);
        if (deviceProp == null) {
            return BluetoothStatusCodes.ERROR_DEVICE_NOT_BONDED;
        }

        if (mHeadsetClientService != null) {
            if (getAudioPolicyRemoteSupported(device)
                    != BluetoothAudioPolicy.FEATURE_SUPPORTED_BY_REMOTE) {
                Log.w(TAG, "Audio Policy feature not supported by AG");
                return BluetoothStatusCodes.FEATURE_NOT_SUPPORTED;
            if (isRequestAudioPolicyAsSinkSupported(device)
                    != BluetoothStatusCodes.FEATURE_SUPPORTED) {
                throw new UnsupportedOperationException(
                        "Request Audio Policy As Sink not supported");
            }
            deviceProp.setHfAudioPolicyForRemoteAg(policies);
            mHeadsetClientService.setAudioPolicy(device, policies);
@@ -6369,9 +6372,9 @@ public class AdapterService extends Service {
     * Get audio policy for remote device
     *
     * @param device Bluetooth device to be set policy for
     * @return {@link BluetoothAudioPolicy} policy stored for the device
     * @return {@link BluetoothSinkAudioPolicy} policy stored for the device
     */
    public BluetoothAudioPolicy getAudioPolicy(BluetoothDevice device) {
    public BluetoothSinkAudioPolicy getRequestedAudioPolicyAsSink(BluetoothDevice device) {
        DeviceProperties deviceProp = mRemoteDevices.getDeviceProperties(device);
        if (deviceProp == null) {
            return null;
+4 −4
Original line number Diff line number Diff line
@@ -23,13 +23,13 @@ import android.annotation.RequiresPermission;
import android.app.admin.SecurityLog;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothAssignedNumbers;
import android.bluetooth.BluetoothAudioPolicy;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothHeadset;
import android.bluetooth.BluetoothHeadsetClient;
import android.bluetooth.BluetoothManager;
import android.bluetooth.BluetoothProfile;
import android.bluetooth.BluetoothSinkAudioPolicy;
import android.bluetooth.IBluetoothConnectionCallback;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -321,7 +321,7 @@ final class RemoteDevices {
        @VisibleForTesting int mBondState;
        @VisibleForTesting int mDeviceType;
        @VisibleForTesting ParcelUuid[] mUuids;
        private BluetoothAudioPolicy mAudioPolicy;
        private BluetoothSinkAudioPolicy mAudioPolicy;

        DeviceProperties() {
            mBondState = BluetoothDevice.BOND_NONE;
@@ -666,11 +666,11 @@ final class RemoteDevices {
            }
        }

        public void setHfAudioPolicyForRemoteAg(BluetoothAudioPolicy policies) {
        public void setHfAudioPolicyForRemoteAg(BluetoothSinkAudioPolicy policies) {
            mAudioPolicy = policies;
        }

        public BluetoothAudioPolicy getHfAudioPolicyForRemoteAg() {
        public BluetoothSinkAudioPolicy getHfAudioPolicyForRemoteAg() {
            return mAudioPolicy;
        }
    }
+4 −4
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

package com.android.bluetooth.btservice.storage;

import android.bluetooth.BluetoothAudioPolicy;
import android.bluetooth.BluetoothSinkAudioPolicy;

import androidx.room.ColumnInfo;
import androidx.room.Entity;
@@ -31,9 +31,9 @@ class AudioPolicyEntity {
    public int inBandRingtoneAudioPolicy;

    AudioPolicyEntity() {
        callEstablishAudioPolicy = BluetoothAudioPolicy.POLICY_UNCONFIGURED;
        connectingTimeAudioPolicy = BluetoothAudioPolicy.POLICY_UNCONFIGURED;
        inBandRingtoneAudioPolicy = BluetoothAudioPolicy.POLICY_UNCONFIGURED;
        callEstablishAudioPolicy = BluetoothSinkAudioPolicy.POLICY_UNCONFIGURED;
        connectingTimeAudioPolicy = BluetoothSinkAudioPolicy.POLICY_UNCONFIGURED;
        inBandRingtoneAudioPolicy = BluetoothSinkAudioPolicy.POLICY_UNCONFIGURED;
    }

    AudioPolicyEntity(int callEstablishAudioPolicy, int connectingTimeAudioPolicy,
+7 −6
Original line number Diff line number Diff line
@@ -20,10 +20,10 @@ import android.bluetooth.BluetoothA2dp;
import android.bluetooth.BluetoothA2dp.OptionalCodecsPreferenceStatus;
import android.bluetooth.BluetoothA2dp.OptionalCodecsSupportStatus;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothAudioPolicy;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothProfile;
import android.bluetooth.BluetoothProtoEnums;
import android.bluetooth.BluetoothSinkAudioPolicy;
import android.bluetooth.BluetoothStatusCodes;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
@@ -290,7 +290,8 @@ public class DatabaseManager {
     * Set audio policy metadata to database with requested key
     */
    @VisibleForTesting
    public boolean setAudioPolicyMetadata(BluetoothDevice device, BluetoothAudioPolicy policies) {
    public boolean setAudioPolicyMetadata(BluetoothDevice device,
            BluetoothSinkAudioPolicy policies) {
        synchronized (mMetadataCache) {
            if (device == null) {
                Log.e(TAG, "setAudioPolicyMetadata: device is null");
@@ -304,7 +305,7 @@ public class DatabaseManager {
            Metadata data = mMetadataCache.get(address);
            AudioPolicyEntity entity = data.audioPolicyMetadata;
            entity.callEstablishAudioPolicy = policies.getCallEstablishPolicy();
            entity.connectingTimeAudioPolicy = policies.getConnectingTimePolicy();
            entity.connectingTimeAudioPolicy = policies.getActiveDevicePolicyAfterConnection();
            entity.inBandRingtoneAudioPolicy = policies.getInBandRingtonePolicy();

            updateDatabase(data);
@@ -316,7 +317,7 @@ public class DatabaseManager {
     * Get audio policy metadata from database with requested key
     */
    @VisibleForTesting
    public BluetoothAudioPolicy getAudioPolicyMetadata(BluetoothDevice device) {
    public BluetoothSinkAudioPolicy getAudioPolicyMetadata(BluetoothDevice device) {
        synchronized (mMetadataCache) {
            if (device == null) {
                Log.e(TAG, "getAudioPolicyMetadata: device is null");
@@ -331,9 +332,9 @@ public class DatabaseManager {
            }

            AudioPolicyEntity entity = mMetadataCache.get(address).audioPolicyMetadata;
            return new BluetoothAudioPolicy.Builder()
            return new BluetoothSinkAudioPolicy.Builder()
                    .setCallEstablishPolicy(entity.callEstablishAudioPolicy)
                    .setConnectingTimePolicy(entity.connectingTimeAudioPolicy)
                    .setActiveDevicePolicyAfterConnection(entity.connectingTimeAudioPolicy)
                    .setInBandRingtonePolicy(entity.inBandRingtoneAudioPolicy)
                    .build();
        }
Loading