Merge "Refactor methods to access/modify BluetoothDevice alias and name"

This commit is contained in:
Treehugger Robot
2019-11-15 23:20:37 +00:00
committed by Gerrit Code Review
10 changed files with 35 additions and 47 deletions

View File

@@ -8357,6 +8357,7 @@ package android.bluetooth {
method public int describeContents();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean fetchUuidsWithSdp();
method public String getAddress();
method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH) public String getAlias();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothClass getBluetoothClass();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getBondState();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public String getName();
@@ -8368,6 +8369,7 @@ package android.bluetooth {
field public static final String ACTION_ACL_CONNECTED = "android.bluetooth.device.action.ACL_CONNECTED";
field public static final String ACTION_ACL_DISCONNECTED = "android.bluetooth.device.action.ACL_DISCONNECTED";
field public static final String ACTION_ACL_DISCONNECT_REQUESTED = "android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED";
field public static final String ACTION_ALIAS_CHANGED = "android.bluetooth.action.ALIAS_CHANGED";
field public static final String ACTION_BOND_STATE_CHANGED = "android.bluetooth.device.action.BOND_STATE_CHANGED";
field public static final String ACTION_CLASS_CHANGED = "android.bluetooth.device.action.CLASS_CHANGED";
field public static final String ACTION_FOUND = "android.bluetooth.device.action.FOUND";

View File

@@ -1264,6 +1264,7 @@ package android.bluetooth {
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isEncrypted();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isInSilenceMode();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean removeBond();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean setAlias(@NonNull String);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setMetadata(int, @NonNull byte[]);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setPhonebookAccessPermission(int);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setSilenceMode(boolean);

View File

@@ -173,13 +173,10 @@ public final class BluetoothDevice implements Parcelable {
* changed.
* <p>Always contains the extra field {@link #EXTRA_DEVICE}.
* <p>Requires {@link android.Manifest.permission#BLUETOOTH} to receive.
*
* @hide
*/
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
@UnsupportedAppUsage
public static final String ACTION_ALIAS_CHANGED =
"android.bluetooth.device.action.ALIAS_CHANGED";
"android.bluetooth.action.ALIAS_CHANGED";
/**
* Broadcast Action: Indicates a change in the bond state of a remote
@@ -1048,10 +1045,11 @@ public final class BluetoothDevice implements Parcelable {
* Get the Bluetooth alias of the remote device.
* <p>Alias is the locally modified name of a remote device.
*
* @return the Bluetooth alias, or null if no alias or there was a problem
* @hide
* @return the Bluetooth alias, the friendly device name if no alias, or
* null if there was a problem
*/
@UnsupportedAppUsage(publicAlternatives = "Use {@link #getName()} instead.")
@Nullable
@RequiresPermission(Manifest.permission.BLUETOOTH)
public String getAlias() {
final IBluetooth service = sService;
if (service == null) {
@@ -1059,7 +1057,11 @@ public final class BluetoothDevice implements Parcelable {
return null;
}
try {
return service.getRemoteAlias(this);
String alias = service.getRemoteAlias(this);
if (alias == null) {
return getName();
}
return alias;
} catch (RemoteException e) {
Log.e(TAG, "", e);
}
@@ -1076,8 +1078,9 @@ public final class BluetoothDevice implements Parcelable {
* @return true on success, false on error
* @hide
*/
@UnsupportedAppUsage
public boolean setAlias(String alias) {
@SystemApi
@RequiresPermission(Manifest.permission.BLUETOOTH)
public boolean setAlias(@NonNull String alias) {
final IBluetooth service = sService;
if (service == null) {
Log.e(TAG, "BT not enabled. Cannot set Remote Device name");
@@ -1091,24 +1094,6 @@ public final class BluetoothDevice implements Parcelable {
return false;
}
/**
* Get the Bluetooth alias of the remote device.
* If Alias is null, get the Bluetooth name instead.
*
* @return the Bluetooth alias, or null if no alias or there was a problem
* @hide
* @see #getAlias()
* @see #getName()
*/
@UnsupportedAppUsage(publicAlternatives = "Use {@link #getName()} instead.")
public String getAliasName() {
String name = getAlias();
if (name == null) {
name = getName();
}
return name;
}
/**
* Get the most recent identified battery level of this Bluetooth device
* <p>Requires {@link android.Manifest.permission#BLUETOOTH}

View File

@@ -129,7 +129,7 @@ public class BluetoothDeviceFilterUtils {
@UnsupportedAppUsage
public static String getDeviceDisplayNameInternal(@NonNull BluetoothDevice device) {
return firstNotEmpty(device.getAliasName(), device.getAddress());
return firstNotEmpty(device.getAlias(), device.getAddress());
}
@UnsupportedAppUsage

View File

@@ -142,7 +142,7 @@
<protected-broadcast android:name="android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED" />
<protected-broadcast android:name="android.bluetooth.device.action.UUID" />
<protected-broadcast android:name="android.bluetooth.device.action.MAS_INSTANCE" />
<protected-broadcast android:name="android.bluetooth.device.action.ALIAS_CHANGED" />
<protected-broadcast android:name="android.bluetooth.action.ALIAS_CHANGED" />
<protected-broadcast android:name="android.bluetooth.device.action.FOUND" />
<protected-broadcast android:name="android.bluetooth.device.action.CLASS_CHANGED" />
<protected-broadcast android:name="android.bluetooth.device.action.ACL_CONNECTED" />

View File

@@ -363,12 +363,12 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
/**
* Get name from remote device
* @return {@link BluetoothDevice#getAliasName()} if
* {@link BluetoothDevice#getAliasName()} is not null otherwise return
* @return {@link BluetoothDevice#getAlias()} if
* {@link BluetoothDevice#getAlias()} is not null otherwise return
* {@link BluetoothDevice#getAddress()}
*/
public String getName() {
final String aliasName = mDevice.getAliasName();
final String aliasName = mDevice.getAlias();
return TextUtils.isEmpty(aliasName) ? getAddress() : aliasName;
}
@@ -426,7 +426,7 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
* @return true if device's alias name is not null nor empty, false otherwise
*/
public boolean hasHumanReadableName() {
return !TextUtils.isEmpty(mDevice.getAliasName());
return !TextUtils.isEmpty(mDevice.getAlias());
}
/**
@@ -573,7 +573,7 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
}
if (BluetoothUtils.D) {
Log.e(TAG, "updating profiles for " + mDevice.getAliasName() + ", " + mDevice);
Log.e(TAG, "updating profiles for " + mDevice.getAlias() + ", " + mDevice);
BluetoothClass bluetoothClass = mDevice.getBluetoothClass();
if (bluetoothClass != null) Log.v(TAG, "Class: " + bluetoothClass.toString());

View File

@@ -166,7 +166,7 @@ public class CachedBluetoothDeviceManager {
return cachedDevice.getName();
}
String name = device.getAliasName();
String name = device.getAlias();
if (name != null) {
return name;
}

View File

@@ -95,9 +95,9 @@ public class CachedBluetoothDeviceManagerTest {
when(mDevice1.getName()).thenReturn(DEVICE_NAME_1);
when(mDevice2.getName()).thenReturn(DEVICE_NAME_2);
when(mDevice3.getName()).thenReturn(DEVICE_NAME_3);
when(mDevice1.getAliasName()).thenReturn(DEVICE_ALIAS_1);
when(mDevice2.getAliasName()).thenReturn(DEVICE_ALIAS_2);
when(mDevice3.getAliasName()).thenReturn(DEVICE_ALIAS_3);
when(mDevice1.getAlias()).thenReturn(DEVICE_ALIAS_1);
when(mDevice2.getAlias()).thenReturn(DEVICE_ALIAS_2);
when(mDevice3.getAlias()).thenReturn(DEVICE_ALIAS_3);
when(mDevice1.getBluetoothClass()).thenReturn(DEVICE_CLASS_1);
when(mDevice2.getBluetoothClass()).thenReturn(DEVICE_CLASS_2);
when(mDevice3.getBluetoothClass()).thenReturn(DEVICE_CLASS_2);
@@ -224,7 +224,7 @@ public class CachedBluetoothDeviceManagerTest {
assertThat(cachedDevice1.getName()).isEqualTo(DEVICE_ALIAS_1);
final String newAliasName = "NewAliasName";
when(mDevice1.getAliasName()).thenReturn(newAliasName);
when(mDevice1.getAlias()).thenReturn(newAliasName);
mCachedDeviceManager.onDeviceNameUpdated(mDevice1);
assertThat(cachedDevice1.getName()).isEqualTo(newAliasName);
}

View File

@@ -699,7 +699,7 @@ public class CachedBluetoothDeviceTest {
@Test
public void deviceName_testAliasNameAvailable() {
when(mDevice.getAliasName()).thenReturn(DEVICE_ALIAS);
when(mDevice.getAlias()).thenReturn(DEVICE_ALIAS);
when(mDevice.getName()).thenReturn(DEVICE_NAME);
CachedBluetoothDevice cachedBluetoothDevice =
new CachedBluetoothDevice(mContext, mProfileManager, mDevice);
@@ -722,7 +722,7 @@ public class CachedBluetoothDeviceTest {
@Test
public void deviceName_testRenameDevice() {
final String[] alias = {DEVICE_ALIAS};
doAnswer(invocation -> alias[0]).when(mDevice).getAliasName();
doAnswer(invocation -> alias[0]).when(mDevice).getAlias();
doAnswer(invocation -> {
alias[0] = (String) invocation.getArguments()[0];
return true;
@@ -839,14 +839,14 @@ public class CachedBluetoothDeviceTest {
@Test
public void getName_aliasNameNotNull_returnAliasName() {
when(mDevice.getAliasName()).thenReturn(DEVICE_NAME);
when(mDevice.getAlias()).thenReturn(DEVICE_NAME);
assertThat(mCachedDevice.getName()).isEqualTo(DEVICE_NAME);
}
@Test
public void getName_aliasNameIsNull_returnAddress() {
when(mDevice.getAliasName()).thenReturn(null);
when(mDevice.getAlias()).thenReturn(null);
assertThat(mCachedDevice.getName()).isEqualTo(DEVICE_ADDRESS);
}
@@ -854,7 +854,7 @@ public class CachedBluetoothDeviceTest {
@Test
public void setName_setDeviceNameIsNotNull() {
final String name = "test name";
when(mDevice.getAliasName()).thenReturn(DEVICE_NAME);
when(mDevice.getAlias()).thenReturn(DEVICE_NAME);
mCachedDevice.setName(name);

View File

@@ -75,8 +75,8 @@ public class HearingAidDeviceManagerTest {
when(mDevice2.getAddress()).thenReturn(DEVICE_ADDRESS_2);
when(mDevice1.getName()).thenReturn(DEVICE_NAME_1);
when(mDevice2.getName()).thenReturn(DEVICE_NAME_2);
when(mDevice1.getAliasName()).thenReturn(DEVICE_ALIAS_1);
when(mDevice2.getAliasName()).thenReturn(DEVICE_ALIAS_2);
when(mDevice1.getAlias()).thenReturn(DEVICE_ALIAS_1);
when(mDevice2.getAlias()).thenReturn(DEVICE_ALIAS_2);
when(mDevice1.getBluetoothClass()).thenReturn(DEVICE_CLASS);
when(mDevice2.getBluetoothClass()).thenReturn(DEVICE_CLASS);
when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager);