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

Commit 7e380e41 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Force AttributionSource on all BluetoothDevice." into sc-dev am: 65ed32d8

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Bluetooth/+/15162448

Change-Id: I4af692c412af973d6ba855350bbd9926296d9101
parents 01027937 65ed32d8
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.bluetooth.BluetoothProfile;
import android.bluetooth.BluetoothUuid;
import android.bluetooth.BufferConstraints;
import android.bluetooth.IBluetoothA2dp;
import android.content.Attributable;
import android.content.AttributionSource;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -1241,6 +1242,7 @@ public class A2dpService extends ProfileService {

        @Override
        public boolean connectWithAttribution(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            if (service == null) {
                return false;
@@ -1255,6 +1257,7 @@ public class A2dpService extends ProfileService {

        @Override
        public boolean disconnectWithAttribution(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            if (service == null) {
                return false;
@@ -1300,6 +1303,7 @@ public class A2dpService extends ProfileService {
        @Override
        public int getConnectionStateWithAttribution(BluetoothDevice device,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            if (service == null) {
                return BluetoothProfile.STATE_DISCONNECTED;
@@ -1309,6 +1313,7 @@ public class A2dpService extends ProfileService {

        @Override
        public boolean setActiveDevice(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            if (service == null) {
                return false;
@@ -1328,6 +1333,7 @@ public class A2dpService extends ProfileService {
        @Override
        public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            if (service == null) {
                return false;
@@ -1337,6 +1343,7 @@ public class A2dpService extends ProfileService {

        @Override
        public int getPriority(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            if (service == null) {
                return BluetoothProfile.CONNECTION_POLICY_UNKNOWN;
@@ -1346,6 +1353,7 @@ public class A2dpService extends ProfileService {

        @Override
        public int getConnectionPolicy(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            if (service == null) {
                return BluetoothProfile.CONNECTION_POLICY_UNKNOWN;
@@ -1371,6 +1379,7 @@ public class A2dpService extends ProfileService {

        @Override
        public boolean isA2dpPlaying(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            if (service == null) {
                return false;
@@ -1381,6 +1390,7 @@ public class A2dpService extends ProfileService {
        @Override
        public BluetoothCodecStatus getCodecStatus(BluetoothDevice device,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            if (service == null) {
                return null;
@@ -1391,6 +1401,7 @@ public class A2dpService extends ProfileService {
        @Override
        public void setCodecConfigPreference(BluetoothDevice device,
                BluetoothCodecConfig codecConfig, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            if (service == null) {
                return;
@@ -1400,6 +1411,7 @@ public class A2dpService extends ProfileService {

        @Override
        public void enableOptionalCodecs(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            if (service == null) {
                return;
@@ -1409,6 +1421,7 @@ public class A2dpService extends ProfileService {

        @Override
        public void disableOptionalCodecs(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            if (service == null) {
                return;
@@ -1418,6 +1431,7 @@ public class A2dpService extends ProfileService {

        @Override
        public int supportsOptionalCodecs(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            if (service == null) {
                return BluetoothA2dp.OPTIONAL_CODECS_SUPPORT_UNKNOWN;
@@ -1427,6 +1441,7 @@ public class A2dpService extends ProfileService {

        @Override
        public int getOptionalCodecsEnabled(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            if (service == null) {
                return BluetoothA2dp.OPTIONAL_CODECS_PREF_UNKNOWN;
@@ -1437,6 +1452,7 @@ public class A2dpService extends ProfileService {
        @Override
        public void setOptionalCodecsEnabled(BluetoothDevice device, int value,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            if (service == null) {
                return;
+8 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.bluetooth.BluetoothAudioConfig;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothProfile;
import android.bluetooth.IBluetoothA2dpSink;
import android.content.Attributable;
import android.content.AttributionSource;
import android.media.AudioManager;
import android.util.Log;
@@ -206,6 +207,7 @@ public class A2dpSinkService extends ProfileService {

        @Override
        public boolean connect(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpSinkService service = getService(source);
            if (service == null) {
                return false;
@@ -215,6 +217,7 @@ public class A2dpSinkService extends ProfileService {

        @Override
        public boolean disconnect(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpSinkService service = getService(source);
            if (service == null) {
                return false;
@@ -243,6 +246,7 @@ public class A2dpSinkService extends ProfileService {

        @Override
        public int getConnectionState(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpSinkService service = getService(source);
            if (service == null) {
                return BluetoothProfile.STATE_DISCONNECTED;
@@ -253,6 +257,7 @@ public class A2dpSinkService extends ProfileService {
        @Override
        public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpSinkService service = getService(source);
            if (service == null) {
                return false;
@@ -262,6 +267,7 @@ public class A2dpSinkService extends ProfileService {

        @Override
        public int getConnectionPolicy(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpSinkService service = getService(source);
            if (service == null) {
                return BluetoothProfile.CONNECTION_POLICY_UNKNOWN;
@@ -271,6 +277,7 @@ public class A2dpSinkService extends ProfileService {

        @Override
        public boolean isA2dpPlaying(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpSinkService service = getService(source);
            if (service == null) {
                return false;
@@ -281,6 +288,7 @@ public class A2dpSinkService extends ProfileService {
        @Override
        public BluetoothAudioConfig getAudioConfig(BluetoothDevice device,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpSinkService service = getService(source);
            if (service == null) {
                return null;
+4 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.bluetooth.BluetoothAvrcpPlayerSettings;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothProfile;
import android.bluetooth.IBluetoothAvrcpController;
import android.content.Attributable;
import android.content.AttributionSource;
import android.content.Intent;
import android.support.v4.media.MediaBrowserCompat.MediaItem;
@@ -387,6 +388,7 @@ public class AvrcpControllerService extends ProfileService {

        @Override
        public int getConnectionState(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AvrcpControllerService service = getService(source);
            if (service == null) {
                return BluetoothProfile.STATE_DISCONNECTED;
@@ -397,6 +399,7 @@ public class AvrcpControllerService extends ProfileService {
        @Override
        public void sendGroupNavigationCmd(BluetoothDevice device, int keyCode, int keyState,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AvrcpControllerService service = getService(source);
            if (service == null) {
                return;
@@ -418,6 +421,7 @@ public class AvrcpControllerService extends ProfileService {
        @Override
        public BluetoothAvrcpPlayerSettings getPlayerSettings(BluetoothDevice device,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AvrcpControllerService service = getService(source);
            if (service == null) {
                return null;
+35 −0
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ import android.bluetooth.IBluetoothSocketManager;
import android.bluetooth.OobData;
import android.bluetooth.UidTraffic;
import android.companion.CompanionDeviceManager;
import android.content.Attributable;
import android.content.AttributionSource;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -1587,6 +1588,7 @@ public class AdapterService extends Service {
        @Override
        public boolean createBond(BluetoothDevice device, int transport, OobData remoteP192Data,
                OobData remoteP256Data, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveOrManagedUser(service, TAG, "createBond")
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -1606,6 +1608,7 @@ public class AdapterService extends Service {
        @Override
        public boolean cancelBondProcess(
                BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "cancelBondProcess")
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -1623,6 +1626,7 @@ public class AdapterService extends Service {

        @Override
        public boolean removeBond(BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "removeBond")
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -1646,6 +1650,7 @@ public class AdapterService extends Service {
        @Override
        public int getBondState(BluetoothDevice device, AttributionSource attributionSource) {
            // don't check caller, may be called from system UI
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null || !Utils.checkConnectPermissionForDataDelivery(
                    service, attributionSource, "AdapterService getBondState")) {
@@ -1659,6 +1664,7 @@ public class AdapterService extends Service {
        public boolean isBondingInitiatedLocally(
                BluetoothDevice device, AttributionSource attributionSource) {
            // don't check caller, may be called from system UI
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null || !Utils.checkConnectPermissionForDataDelivery(
                    service, attributionSource, "AdapterService isBondingInitiatedLocally")) {
@@ -1699,6 +1705,7 @@ public class AdapterService extends Service {
        @Override
        public int getConnectionStateWithAttribution(
                BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null || !Utils.checkConnectPermissionForDataDelivery(
                    service, attributionSource, "AdapterService getConnectionState")) {
@@ -1710,6 +1717,7 @@ public class AdapterService extends Service {

        @Override
        public boolean canBondWithoutDialog(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
@@ -1736,6 +1744,7 @@ public class AdapterService extends Service {
        @Override
        public boolean setActiveDevice(BluetoothDevice device, @ActiveDeviceUse int profiles,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -1748,6 +1757,7 @@ public class AdapterService extends Service {
        @Override
        public boolean connectAllEnabledProfiles(BluetoothDevice device,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -1769,6 +1779,7 @@ public class AdapterService extends Service {
        @Override
        public boolean disconnectAllEnabledProfiles(BluetoothDevice device,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -1789,6 +1800,7 @@ public class AdapterService extends Service {

        @Override
        public String getRemoteName(BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "getRemoteName")
@@ -1802,6 +1814,7 @@ public class AdapterService extends Service {

        @Override
        public int getRemoteType(BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "getRemoteType")
@@ -1822,6 +1835,7 @@ public class AdapterService extends Service {
        @Override
        public String getRemoteAliasWithAttribution(
                BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "getRemoteAlias")
@@ -1837,6 +1851,7 @@ public class AdapterService extends Service {
        @Override
        public int setRemoteAlias(BluetoothDevice device, String name,
                AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null) {
                return BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED;
@@ -1867,6 +1882,7 @@ public class AdapterService extends Service {

        @Override
        public int getRemoteClass(BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "getRemoteClass")
@@ -1882,6 +1898,7 @@ public class AdapterService extends Service {
        @Override
        public ParcelUuid[] getRemoteUuids(
                BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "getRemoteUuids")
@@ -1901,6 +1918,7 @@ public class AdapterService extends Service {
        @Override
        public boolean fetchRemoteUuidsWithAttribution(
                BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "fetchRemoteUuids")
@@ -1917,6 +1935,7 @@ public class AdapterService extends Service {
        @Override
        public boolean setPin(BluetoothDevice device, boolean accept, int len, byte[] pinCode,
                AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setPin")
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -1942,6 +1961,7 @@ public class AdapterService extends Service {
        @Override
        public boolean setPasskey(BluetoothDevice device, boolean accept, int len, byte[] passkey,
                AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setPasskey")
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -1969,6 +1989,7 @@ public class AdapterService extends Service {
        @Override
        public boolean setPairingConfirmation(BluetoothDevice device, boolean accept,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -1992,6 +2013,7 @@ public class AdapterService extends Service {

        @Override
        public boolean getSilenceMode(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -2008,6 +2030,7 @@ public class AdapterService extends Service {
        @Override
        public boolean setSilenceMode(BluetoothDevice device, boolean silence,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -2024,6 +2047,7 @@ public class AdapterService extends Service {
        @Override
        public int getPhonebookAccessPermission(
                BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getPhonebookAccessPermission")
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -2037,6 +2061,7 @@ public class AdapterService extends Service {
        @Override
        public boolean setPhonebookAccessPermission(BluetoothDevice device, int value,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -2053,6 +2078,7 @@ public class AdapterService extends Service {
        @Override
        public int getMessageAccessPermission(
                BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getMessageAccessPermission")
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -2066,6 +2092,7 @@ public class AdapterService extends Service {
        @Override
        public boolean setMessageAccessPermission(BluetoothDevice device, int value,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -2082,6 +2109,7 @@ public class AdapterService extends Service {
        @Override
        public int getSimAccessPermission(
                BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getSimAccessPermission")
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -2095,6 +2123,7 @@ public class AdapterService extends Service {
        @Override
        public boolean setSimAccessPermission(BluetoothDevice device, int value,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -2121,6 +2150,7 @@ public class AdapterService extends Service {
        @Override
        public boolean sdpSearch(
                BluetoothDevice device, ParcelUuid uuid, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "sdpSearch")
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -2137,6 +2167,7 @@ public class AdapterService extends Service {

        @Override
        public int getBatteryLevel(BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getBatteryLevel")
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -2365,6 +2396,7 @@ public class AdapterService extends Service {
        @Override
        public boolean registerMetadataListener(IBluetoothMetadataListener listener,
                BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -2392,6 +2424,7 @@ public class AdapterService extends Service {
        @Override
        public boolean unregisterMetadataListener(BluetoothDevice device,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -2413,6 +2446,7 @@ public class AdapterService extends Service {
        @Override
        public boolean setMetadata(BluetoothDevice device, int key, byte[] value,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -2431,6 +2465,7 @@ public class AdapterService extends Service {
        @Override
        public byte[] getMetadata(BluetoothDevice device, int key,
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
+10 −0

File changed.

Preview size limit exceeded, changes collapsed.

Loading