Bluetooth: add metrics for pairing with devices without names
* Also caches context in onClick() method Bug: 34685932 Test: make, unit test Change-Id: I99beab2c85b8e48c4bc41f69146759d4b7c62428
This commit is contained in:
@@ -188,22 +188,27 @@ public final class BluetoothDevicePreference extends GearPreference implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
void onClicked() {
|
void onClicked() {
|
||||||
|
Context context = getContext();
|
||||||
int bondState = mCachedDevice.getBondState();
|
int bondState = mCachedDevice.getBondState();
|
||||||
|
|
||||||
final MetricsFeatureProvider metricsFeatureProvider =
|
final MetricsFeatureProvider metricsFeatureProvider =
|
||||||
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider();
|
FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
||||||
|
|
||||||
if (mCachedDevice.isConnected()) {
|
if (mCachedDevice.isConnected()) {
|
||||||
metricsFeatureProvider.action(getContext(),
|
metricsFeatureProvider.action(context,
|
||||||
MetricsEvent.ACTION_SETTINGS_BLUETOOTH_DISCONNECT);
|
MetricsEvent.ACTION_SETTINGS_BLUETOOTH_DISCONNECT);
|
||||||
askDisconnect();
|
askDisconnect();
|
||||||
} else if (bondState == BluetoothDevice.BOND_BONDED) {
|
} else if (bondState == BluetoothDevice.BOND_BONDED) {
|
||||||
metricsFeatureProvider.action(getContext(),
|
metricsFeatureProvider.action(context,
|
||||||
MetricsEvent.ACTION_SETTINGS_BLUETOOTH_CONNECT);
|
MetricsEvent.ACTION_SETTINGS_BLUETOOTH_CONNECT);
|
||||||
mCachedDevice.connect(true);
|
mCachedDevice.connect(true);
|
||||||
} else if (bondState == BluetoothDevice.BOND_NONE) {
|
} else if (bondState == BluetoothDevice.BOND_NONE) {
|
||||||
metricsFeatureProvider.action(getContext(),
|
metricsFeatureProvider.action(context,
|
||||||
MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
|
MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
|
||||||
|
if (!mCachedDevice.hasHumanReadableName()) {
|
||||||
|
metricsFeatureProvider.action(context,
|
||||||
|
MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR_DEVICES_WITHOUT_NAMES);
|
||||||
|
}
|
||||||
pair();
|
pair();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -42,6 +42,7 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
|
|
||||||
import static org.mockito.Mockito.doAnswer;
|
import static org.mockito.Mockito.doAnswer;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
@@ -98,11 +99,29 @@ public class BluetoothDevicePreferenceTest {
|
|||||||
when(mCachedBluetoothDevice.isConnected()).thenReturn(false);
|
when(mCachedBluetoothDevice.isConnected()).thenReturn(false);
|
||||||
when(mCachedBluetoothDevice.getBondState()).thenReturn(BluetoothDevice.BOND_NONE);
|
when(mCachedBluetoothDevice.getBondState()).thenReturn(BluetoothDevice.BOND_NONE);
|
||||||
when(mCachedBluetoothDevice.startPairing()).thenReturn(true);
|
when(mCachedBluetoothDevice.startPairing()).thenReturn(true);
|
||||||
|
when(mCachedBluetoothDevice.hasHumanReadableName()).thenReturn(true);
|
||||||
|
|
||||||
mPreference.onClicked();
|
mPreference.onClicked();
|
||||||
|
|
||||||
verify(mMetricsFeatureProvider).action(
|
verify(mMetricsFeatureProvider).action(
|
||||||
mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
|
mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
|
||||||
|
verify(mMetricsFeatureProvider, never()).action(mContext,
|
||||||
|
MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR_DEVICES_WITHOUT_NAMES);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onClicked_deviceNotBonded_shouldLogBluetoothPairEventAndPairWithoutNameEvent() {
|
||||||
|
when(mCachedBluetoothDevice.isConnected()).thenReturn(false);
|
||||||
|
when(mCachedBluetoothDevice.getBondState()).thenReturn(BluetoothDevice.BOND_NONE);
|
||||||
|
when(mCachedBluetoothDevice.startPairing()).thenReturn(true);
|
||||||
|
when(mCachedBluetoothDevice.hasHumanReadableName()).thenReturn(false);
|
||||||
|
|
||||||
|
mPreference.onClicked();
|
||||||
|
|
||||||
|
verify(mMetricsFeatureProvider).action(
|
||||||
|
mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
|
||||||
|
verify(mMetricsFeatureProvider).action(mContext,
|
||||||
|
MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR_DEVICES_WITHOUT_NAMES);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user