Merge "Use mDatabaseManager when calling database functions"
diff --git a/src/com/android/bluetooth/a2dp/A2dpService.java b/src/com/android/bluetooth/a2dp/A2dpService.java
index 091a5c7..2fa4bab 100644
--- a/src/com/android/bluetooth/a2dp/A2dpService.java
+++ b/src/com/android/bluetooth/a2dp/A2dpService.java
@@ -43,6 +43,7 @@
import com.android.bluetooth.btservice.MetricsLogger;
import com.android.bluetooth.btservice.ProfileService;
import com.android.bluetooth.btservice.ServiceFactory;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.ArrayUtils;
@@ -64,6 +65,7 @@
private static A2dpService sA2dpService;
private AdapterService mAdapterService;
+ private DatabaseManager mDatabaseManager;
private HandlerThread mStateMachinesThread;
@VisibleForTesting
@@ -108,12 +110,14 @@
throw new IllegalStateException("start() called twice");
}
- // Step 1: Get AdapterService, A2dpNativeInterface, AudioManager.
+ // Step 1: Get AdapterService, A2dpNativeInterface, DatabaseManager, AudioManager.
// None of them can be null.
mAdapterService = Objects.requireNonNull(AdapterService.getAdapterService(),
"AdapterService cannot be null when A2dpService starts");
mA2dpNativeInterface = Objects.requireNonNull(A2dpNativeInterface.getInstance(),
"A2dpNativeInterface cannot be null when A2dpService starts");
+ mDatabaseManager = Objects.requireNonNull(mAdapterService.getDatabase(),
+ "DatabaseManager cannot be null when A2dpService starts");
mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
Objects.requireNonNull(mAudioManager,
"AudioManager cannot be null when A2dpService starts");
@@ -641,16 +645,17 @@
if (DBG) {
Log.d(TAG, "Saved connectionPolicy " + device + " = " + connectionPolicy);
}
- boolean setSuccessfully;
- setSuccessfully = mAdapterService.getDatabase()
- .setProfileConnectionPolicy(device, BluetoothProfile.A2DP, connectionPolicy);
- if (setSuccessfully && connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
+
+ if (!mDatabaseManager.setProfileConnectionPolicy(device, BluetoothProfile.A2DP,
+ connectionPolicy)) {
+ return false;
+ }
+ if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
connect(device);
- } else if (setSuccessfully
- && connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN) {
+ } else if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN) {
disconnect(device);
}
- return setSuccessfully;
+ return true;
}
/**
@@ -666,7 +671,7 @@
* @hide
*/
public int getConnectionPolicy(BluetoothDevice device) {
- return mAdapterService.getDatabase()
+ return mDatabaseManager
.getProfileConnectionPolicy(device, BluetoothProfile.A2DP);
}
@@ -834,14 +839,14 @@
*/
public @OptionalCodecsSupportStatus int getSupportsOptionalCodecs(BluetoothDevice device) {
enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission");
- return mAdapterService.getDatabase().getA2dpSupportsOptionalCodecs(device);
+ return mDatabaseManager.getA2dpSupportsOptionalCodecs(device);
}
public void setSupportsOptionalCodecs(BluetoothDevice device, boolean doesSupport) {
enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission");
int value = doesSupport ? BluetoothA2dp.OPTIONAL_CODECS_SUPPORTED
: BluetoothA2dp.OPTIONAL_CODECS_NOT_SUPPORTED;
- mAdapterService.getDatabase().setA2dpSupportsOptionalCodecs(device, value);
+ mDatabaseManager.setA2dpSupportsOptionalCodecs(device, value);
}
/**
@@ -855,7 +860,7 @@
*/
public @OptionalCodecsPreferenceStatus int getOptionalCodecsEnabled(BluetoothDevice device) {
enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission");
- return mAdapterService.getDatabase().getA2dpOptionalCodecsEnabled(device);
+ return mDatabaseManager.getA2dpOptionalCodecsEnabled(device);
}
/**
@@ -876,7 +881,7 @@
Log.w(TAG, "Unexpected value passed to setOptionalCodecsEnabled:" + value);
return;
}
- mAdapterService.getDatabase().setA2dpOptionalCodecsEnabled(device, value);
+ mDatabaseManager.setA2dpOptionalCodecsEnabled(device, value);
}
// Handle messages from native (JNI) to Java
diff --git a/src/com/android/bluetooth/a2dpsink/A2dpSinkService.java b/src/com/android/bluetooth/a2dpsink/A2dpSinkService.java
index 95b6cdd..1335920 100644
--- a/src/com/android/bluetooth/a2dpsink/A2dpSinkService.java
+++ b/src/com/android/bluetooth/a2dpsink/A2dpSinkService.java
@@ -26,12 +26,14 @@
import com.android.bluetooth.Utils;
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.ProfileService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.internal.annotations.VisibleForTesting;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@@ -45,6 +47,7 @@
static final int MAXIMUM_CONNECTED_DEVICES = 1;
private final BluetoothAdapter mAdapter;
+ private DatabaseManager mDatabaseManager;
protected Map<BluetoothDevice, A2dpSinkStateMachine> mDeviceStateMap =
new ConcurrentHashMap<>(1);
@@ -59,6 +62,9 @@
@Override
protected boolean start() {
+ mDatabaseManager = Objects.requireNonNull(AdapterService.getAdapterService().getDatabase(),
+ "DatabaseManager cannot be null when A2dpSinkService starts");
+
synchronized (mStreamHandlerLock) {
mA2dpSinkStreamHandler = new A2dpSinkStreamHandler(this, this);
}
@@ -389,8 +395,11 @@
if (DBG) {
Log.d(TAG, "Saved connectionPolicy " + device + " = " + connectionPolicy);
}
- AdapterService.getAdapterService().getDatabase()
- .setProfileConnectionPolicy(device, BluetoothProfile.A2DP_SINK, connectionPolicy);
+
+ if (!mDatabaseManager.setProfileConnectionPolicy(device, BluetoothProfile.A2DP_SINK,
+ connectionPolicy)) {
+ return false;
+ }
if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
connect(device);
} else if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN) {
@@ -408,7 +417,7 @@
public int getConnectionPolicy(BluetoothDevice device) {
enforceCallingOrSelfPermission(
BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission");
- return AdapterService.getAdapterService().getDatabase()
+ return mDatabaseManager
.getProfileConnectionPolicy(device, BluetoothProfile.A2DP_SINK);
}
diff --git a/src/com/android/bluetooth/btservice/AdapterService.java b/src/com/android/bluetooth/btservice/AdapterService.java
index f147e69..d6d215e 100644
--- a/src/com/android/bluetooth/btservice/AdapterService.java
+++ b/src/com/android/bluetooth/btservice/AdapterService.java
@@ -459,6 +459,9 @@
mSdpManager = SdpManager.init(this);
registerReceiver(mAlarmBroadcastReceiver, new IntentFilter(ACTION_ALARM_WAKEUP));
+ mDatabaseManager = new DatabaseManager(this);
+ mDatabaseManager.start(MetadataDatabase.createDatabase(this));
+
// Phone policy is specific to phone implementations and hence if a device wants to exclude
// it out then it can be disabled by using the flag below.
if (getResources().getBoolean(com.android.bluetooth.R.bool.enable_phone_policy)) {
@@ -472,9 +475,6 @@
mActiveDeviceManager = new ActiveDeviceManager(this, new ServiceFactory());
mActiveDeviceManager.start();
- mDatabaseManager = new DatabaseManager(this);
- mDatabaseManager.start(MetadataDatabase.createDatabase(this));
-
mSilenceDeviceManager = new SilenceDeviceManager(this, new ServiceFactory(),
Looper.getMainLooper());
mSilenceDeviceManager.start();
diff --git a/src/com/android/bluetooth/btservice/PhonePolicy.java b/src/com/android/bluetooth/btservice/PhonePolicy.java
index 05a0183..c1667a1 100644
--- a/src/com/android/bluetooth/btservice/PhonePolicy.java
+++ b/src/com/android/bluetooth/btservice/PhonePolicy.java
@@ -35,6 +35,7 @@
import android.util.Log;
import com.android.bluetooth.a2dp.A2dpService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.bluetooth.hearingaid.HearingAidService;
import com.android.bluetooth.hfp.HeadsetService;
import com.android.bluetooth.hid.HidHostService;
@@ -45,6 +46,7 @@
import java.util.HashSet;
import java.util.List;
+import java.util.Objects;
// Describes the phone policy
//
@@ -86,6 +88,7 @@
// Timeouts
@VisibleForTesting static int sConnectOtherProfilesTimeoutMillis = 6000; // 6s
+ private DatabaseManager mDatabaseManager;
private final AdapterService mAdapterService;
private final ServiceFactory mFactory;
private final Handler mHandler;
@@ -242,6 +245,8 @@
PhonePolicy(AdapterService service, ServiceFactory factory) {
mAdapterService = service;
+ mDatabaseManager = Objects.requireNonNull(mAdapterService.getDatabase(),
+ "DatabaseManager cannot be null when PhonePolicy starts");
mFactory = factory;
mHandler = new PhonePolicyHandler(service.getMainLooper());
}
@@ -318,7 +323,7 @@
}
if (nextState == BluetoothProfile.STATE_DISCONNECTED) {
if (profileId == BluetoothProfile.A2DP) {
- mAdapterService.getDatabase().setDisconnection(device);
+ mDatabaseManager.setDisconnection(device);
}
handleAllProfilesDisconnected(device);
}
@@ -335,13 +340,13 @@
debugLog("processActiveDeviceChanged, device=" + device + ", profile=" + profileId);
if (device != null) {
- mAdapterService.getDatabase().setConnection(device, profileId == BluetoothProfile.A2DP);
+ mDatabaseManager.setConnection(device, profileId == BluetoothProfile.A2DP);
}
}
private void processDeviceConnected(BluetoothDevice device) {
debugLog("processDeviceConnected, device=" + device);
- mAdapterService.getDatabase().setConnection(device, false);
+ mDatabaseManager.setConnection(device, false);
}
private boolean handleAllProfilesDisconnected(BluetoothDevice device) {
@@ -397,7 +402,7 @@
if (!mAdapterService.isQuietModeEnabled()) {
debugLog("autoConnect: Initiate auto connection on BT on...");
final BluetoothDevice mostRecentlyActiveA2dpDevice =
- mAdapterService.getDatabase().getMostRecentlyConnectedA2dpDevice();
+ mDatabaseManager.getMostRecentlyConnectedA2dpDevice();
if (mostRecentlyActiveA2dpDevice == null) {
errorLog("autoConnect: most recently active a2dp device is null");
return;
diff --git a/src/com/android/bluetooth/hearingaid/HearingAidService.java b/src/com/android/bluetooth/hearingaid/HearingAidService.java
index addc011..0d81f65 100644
--- a/src/com/android/bluetooth/hearingaid/HearingAidService.java
+++ b/src/com/android/bluetooth/hearingaid/HearingAidService.java
@@ -37,6 +37,7 @@
import com.android.bluetooth.btservice.MetricsLogger;
import com.android.bluetooth.btservice.ProfileService;
import com.android.bluetooth.btservice.ServiceFactory;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.ArrayUtils;
@@ -60,6 +61,7 @@
private static HearingAidService sHearingAidService;
private AdapterService mAdapterService;
+ private DatabaseManager mDatabaseManager;
private HandlerThread mStateMachinesThread;
private BluetoothDevice mPreviousAudioDevice;
@@ -101,12 +103,12 @@
throw new IllegalStateException("start() called twice");
}
- // Get AdapterService, HearingAidNativeInterface, AudioManager.
- // None of them can be null.
mAdapterService = Objects.requireNonNull(AdapterService.getAdapterService(),
"AdapterService cannot be null when HearingAidService starts");
mHearingAidNativeInterface = Objects.requireNonNull(HearingAidNativeInterface.getInstance(),
"HearingAidNativeInterface cannot be null when HearingAidService starts");
+ mDatabaseManager = Objects.requireNonNull(mAdapterService.getDatabase(),
+ "DatabaseManager cannot be null when HearingAidService starts");
mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
Objects.requireNonNull(mAudioManager,
"AudioManager cannot be null when HearingAidService starts");
@@ -485,8 +487,11 @@
if (DBG) {
Log.d(TAG, "Saved connectionPolicy " + device + " = " + connectionPolicy);
}
- mAdapterService.getDatabase()
- .setProfileConnectionPolicy(device, BluetoothProfile.HEARING_AID, connectionPolicy);
+
+ if (!mDatabaseManager.setProfileConnectionPolicy(device, BluetoothProfile.HEARING_AID,
+ connectionPolicy)) {
+ return false;
+ }
if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
connect(device);
} else if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN) {
@@ -510,7 +515,7 @@
public int getConnectionPolicy(BluetoothDevice device) {
enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED,
"Need BLUETOOTH_PRIVILEGED permission");
- return mAdapterService.getDatabase()
+ return mDatabaseManager
.getProfileConnectionPolicy(device, BluetoothProfile.HEARING_AID);
}
diff --git a/src/com/android/bluetooth/hfp/HeadsetService.java b/src/com/android/bluetooth/hfp/HeadsetService.java
index bb71e87..101dacf 100644
--- a/src/com/android/bluetooth/hfp/HeadsetService.java
+++ b/src/com/android/bluetooth/hfp/HeadsetService.java
@@ -50,6 +50,7 @@
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.MetricsLogger;
import com.android.bluetooth.btservice.ProfileService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.internal.annotations.VisibleForTesting;
import java.util.ArrayList;
@@ -99,6 +100,7 @@
private int mMaxHeadsetConnections = 1;
private BluetoothDevice mActiveDevice;
private AdapterService mAdapterService;
+ private DatabaseManager mDatabaseManager;
private HandlerThread mStateMachinesThread;
private Handler mStateMachinesThreadHandler;
// This is also used as a lock for shared data in HeadsetService
@@ -141,9 +143,11 @@
if (mStarted) {
throw new IllegalStateException("start() called twice");
}
- // Step 1: Get adapter service, should never be null
+ // Step 1: Get AdapterService and DatabaseManager, should never be null
mAdapterService = Objects.requireNonNull(AdapterService.getAdapterService(),
"AdapterService cannot be null when HeadsetService starts");
+ mDatabaseManager = Objects.requireNonNull(mAdapterService.getDatabase(),
+ "DatabaseManager cannot be null when HeadsetService starts");
// Step 2: Start handler thread for state machines
mStateMachinesThread = new HandlerThread("HeadsetService.StateMachines");
mStateMachinesThread.start();
@@ -861,8 +865,11 @@
public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy) {
Log.i(TAG, "setConnectionPolicy: device=" + device
+ ", connectionPolicy=" + connectionPolicy + ", " + Utils.getUidPidString());
- mAdapterService.getDatabase()
- .setProfileConnectionPolicy(device, BluetoothProfile.HEADSET, connectionPolicy);
+
+ if (!mDatabaseManager.setProfileConnectionPolicy(device, BluetoothProfile.HEADSET,
+ connectionPolicy)) {
+ return false;
+ }
if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
connect(device);
} else if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN) {
@@ -884,7 +891,7 @@
* @hide
*/
public int getConnectionPolicy(BluetoothDevice device) {
- return mAdapterService.getDatabase()
+ return mDatabaseManager
.getProfileConnectionPolicy(device, BluetoothProfile.HEADSET);
}
diff --git a/src/com/android/bluetooth/hfpclient/HeadsetClientService.java b/src/com/android/bluetooth/hfpclient/HeadsetClientService.java
index ce843d9..fc0d108 100644
--- a/src/com/android/bluetooth/hfpclient/HeadsetClientService.java
+++ b/src/com/android/bluetooth/hfpclient/HeadsetClientService.java
@@ -34,6 +34,7 @@
import com.android.bluetooth.Utils;
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.ProfileService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.bluetooth.hfpclient.connserv.HfpClientConnectionService;
import java.util.ArrayList;
@@ -41,6 +42,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.UUID;
/**
@@ -58,6 +60,7 @@
private NativeInterface mNativeInterface = null;
private HandlerThread mSmThread = null;
private HeadsetClientStateMachineFactory mSmFactory = null;
+ private DatabaseManager mDatabaseManager;
private AudioManager mAudioManager = null;
// Maxinum number of devices we can try connecting to in one session
private static final int MAX_STATE_MACHINES_POSSIBLE = 100;
@@ -79,6 +82,9 @@
return false;
}
+ mDatabaseManager = Objects.requireNonNull(AdapterService.getAdapterService().getDatabase(),
+ "DatabaseManager cannot be null when HeadsetClientService starts");
+
// Setup the JNI service
mNativeInterface = NativeInterface.getInstance();
mNativeInterface.initialize();
@@ -581,8 +587,11 @@
if (DBG) {
Log.d(TAG, "Saved connectionPolicy " + device + " = " + connectionPolicy);
}
- AdapterService.getAdapterService().getDatabase().setProfileConnectionPolicy(
- device, BluetoothProfile.HEADSET_CLIENT, connectionPolicy);
+
+ if (!mDatabaseManager.setProfileConnectionPolicy(device, BluetoothProfile.HEADSET_CLIENT,
+ connectionPolicy)) {
+ return false;
+ }
if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
connect(device);
} else if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN) {
@@ -605,7 +614,7 @@
*/
public int getConnectionPolicy(BluetoothDevice device) {
enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission");
- return AdapterService.getAdapterService().getDatabase()
+ return mDatabaseManager
.getProfileConnectionPolicy(device, BluetoothProfile.HEADSET_CLIENT);
}
diff --git a/src/com/android/bluetooth/hid/HidDeviceService.java b/src/com/android/bluetooth/hid/HidDeviceService.java
index 6086175..7783745 100644
--- a/src/com/android/bluetooth/hid/HidDeviceService.java
+++ b/src/com/android/bluetooth/hid/HidDeviceService.java
@@ -39,6 +39,7 @@
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.MetricsLogger;
import com.android.bluetooth.btservice.ProfileService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.internal.annotations.VisibleForTesting;
import java.nio.ByteBuffer;
@@ -46,6 +47,7 @@
import java.util.Arrays;
import java.util.List;
import java.util.NoSuchElementException;
+import java.util.Objects;
/** @hide */
public class HidDeviceService extends ProfileService {
@@ -66,6 +68,7 @@
private static HidDeviceService sHidDeviceService;
+ private DatabaseManager mDatabaseManager;
private HidDeviceNativeInterface mHidDeviceNativeInterface;
private boolean mNativeAvailable = false;
@@ -664,13 +667,15 @@
if (DBG) {
Log.d(TAG, "Saved connectionPolicy " + device + " = " + connectionPolicy);
}
- AdapterService.getAdapterService().getDatabase()
- .setProfileConnectionPolicy(device, BluetoothProfile.HID_DEVICE, connectionPolicy);
+
+ if (!mDatabaseManager.setProfileConnectionPolicy(device, BluetoothProfile.HID_DEVICE,
+ connectionPolicy)) {
+ return false;
+ }
if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN) {
disconnect(device);
- return true;
}
- return false;
+ return true;
}
/**
@@ -691,7 +696,7 @@
}
enforceCallingOrSelfPermission(
BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission");
- return AdapterService.getAdapterService().getDatabase()
+ return mDatabaseManager
.getProfileConnectionPolicy(device, BluetoothProfile.HID_DEVICE);
}
@@ -720,6 +725,9 @@
Log.d(TAG, "start()");
}
+ mDatabaseManager = Objects.requireNonNull(AdapterService.getAdapterService().getDatabase(),
+ "DatabaseManager cannot be null when HidDeviceService starts");
+
mHandler = new HidDeviceServiceHandler();
mHidDeviceNativeInterface = HidDeviceNativeInterface.getInstance();
mHidDeviceNativeInterface.init();
diff --git a/src/com/android/bluetooth/hid/HidHostService.java b/src/com/android/bluetooth/hid/HidHostService.java
index 10d414d..561b37c 100644
--- a/src/com/android/bluetooth/hid/HidHostService.java
+++ b/src/com/android/bluetooth/hid/HidHostService.java
@@ -38,12 +38,14 @@
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.MetricsLogger;
import com.android.bluetooth.btservice.ProfileService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
/**
* Provides Bluetooth Hid Host profile, as a service in
@@ -59,6 +61,8 @@
private static HidHostService sHidHostService;
private BluetoothDevice mTargetDevice = null;
+ private DatabaseManager mDatabaseManager;
+
private static final int MESSAGE_CONNECT = 1;
private static final int MESSAGE_DISCONNECT = 2;
private static final int MESSAGE_CONNECT_STATE_CHANGED = 3;
@@ -87,6 +91,9 @@
@Override
protected boolean start() {
+ mDatabaseManager = Objects.requireNonNull(AdapterService.getAdapterService().getDatabase(),
+ "DatabaseManager cannot be null when HidHostService starts");
+
mInputDevices = Collections.synchronizedMap(new HashMap<BluetoothDevice, Integer>());
initializeNative();
mNativeAvailable = true;
@@ -579,8 +586,11 @@
if (DBG) {
Log.d(TAG, "setConnectionPolicy: " + device.getAddress());
}
- AdapterService.getAdapterService().getDatabase()
- .setProfileConnectionPolicy(device, BluetoothProfile.HID_HOST, connectionPolicy);
+
+ if (!mDatabaseManager.setProfileConnectionPolicy(device, BluetoothProfile.HID_HOST,
+ connectionPolicy)) {
+ return false;
+ }
if (DBG) {
Log.d(TAG, "Saved connectionPolicy " + device + " = " + connectionPolicy);
}
@@ -608,7 +618,7 @@
if (DBG) {
Log.d(TAG, "getConnectionPolicy: " + device.getAddress());
}
- return AdapterService.getAdapterService().getDatabase()
+ return mDatabaseManager
.getProfileConnectionPolicy(device, BluetoothProfile.HID_HOST);
}
diff --git a/src/com/android/bluetooth/map/BluetoothMapService.java b/src/com/android/bluetooth/map/BluetoothMapService.java
index 231fb02..d4fca14 100644
--- a/src/com/android/bluetooth/map/BluetoothMapService.java
+++ b/src/com/android/bluetooth/map/BluetoothMapService.java
@@ -49,12 +49,14 @@
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.MetricsLogger;
import com.android.bluetooth.btservice.ProfileService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.internal.annotations.VisibleForTesting;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Objects;
import java.util.Set;
public class BluetoothMapService extends ProfileService {
@@ -113,6 +115,7 @@
private static final int MAS_ID_SMS_MMS = 0;
private BluetoothAdapter mAdapter;
+ private DatabaseManager mDatabaseManager;
private BluetoothMnsObexClient mBluetoothMnsObexClient = null;
@@ -608,8 +611,11 @@
if (VERBOSE) {
Log.v(TAG, "Saved connectionPolicy " + device + " = " + connectionPolicy);
}
- AdapterService.getAdapterService().getDatabase()
- .setProfileConnectionPolicy(device, BluetoothProfile.MAP, connectionPolicy);
+
+ if (!mDatabaseManager.setProfileConnectionPolicy(device, BluetoothProfile.MAP,
+ connectionPolicy)) {
+ return false;
+ }
if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN) {
disconnect(device);
}
@@ -631,7 +637,7 @@
int getConnectionPolicy(BluetoothDevice device) {
enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED,
"Need BLUETOOTH_PRIVILEGED permission");
- return AdapterService.getAdapterService().getDatabase()
+ return mDatabaseManager
.getProfileConnectionPolicy(device, BluetoothProfile.MAP);
}
@@ -645,6 +651,10 @@
if (DEBUG) {
Log.d(TAG, "start()");
}
+
+ mDatabaseManager = Objects.requireNonNull(AdapterService.getAdapterService().getDatabase(),
+ "DatabaseManager cannot be null when MapService starts");
+
HandlerThread thread = new HandlerThread("BluetoothMapHandler");
thread.start();
Looper looper = thread.getLooper();
diff --git a/src/com/android/bluetooth/mapclient/MapClientService.java b/src/com/android/bluetooth/mapclient/MapClientService.java
index de75c0c..238446a 100644
--- a/src/com/android/bluetooth/mapclient/MapClientService.java
+++ b/src/com/android/bluetooth/mapclient/MapClientService.java
@@ -35,6 +35,7 @@
import com.android.bluetooth.Utils;
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.ProfileService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.internal.annotations.VisibleForTesting;
import java.util.ArrayList;
@@ -42,6 +43,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@@ -58,6 +60,7 @@
private Map<BluetoothDevice, MceStateMachine> mMapInstanceMap = new ConcurrentHashMap<>(1);
private MnsService mMnsServer;
private BluetoothAdapter mAdapter;
+ private DatabaseManager mDatabaseManager;
private static MapClientService sMapClientService;
private MapBroadcastReceiver mMapReceiver;
@@ -243,8 +246,11 @@
}
enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED,
"Need BLUETOOTH_PRIVILEGED permission");
- AdapterService.getAdapterService().getDatabase()
- .setProfileConnectionPolicy(device, BluetoothProfile.MAP_CLIENT, connectionPolicy);
+
+ if (!mDatabaseManager.setProfileConnectionPolicy(device, BluetoothProfile.MAP_CLIENT,
+ connectionPolicy)) {
+ return false;
+ }
if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
connect(device);
} else if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN) {
@@ -268,7 +274,7 @@
public int getConnectionPolicy(BluetoothDevice device) {
enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED,
"Need BLUETOOTH_PRIVILEGED permission");
- return AdapterService.getAdapterService().getDatabase()
+ return mDatabaseManager
.getProfileConnectionPolicy(device, BluetoothProfile.MAP_CLIENT);
}
@@ -288,6 +294,9 @@
protected synchronized boolean start() {
Log.e(TAG, "start()");
+ mDatabaseManager = Objects.requireNonNull(AdapterService.getAdapterService().getDatabase(),
+ "DatabaseManager cannot be null when MapClientService starts");
+
if (mMnsServer == null) {
mMnsServer = MapUtils.newMnsServiceInstance(this);
if (mMnsServer == null) {
diff --git a/src/com/android/bluetooth/pan/PanService.java b/src/com/android/bluetooth/pan/PanService.java
index 207a0ab..7430d0d 100644
--- a/src/com/android/bluetooth/pan/PanService.java
+++ b/src/com/android/bluetooth/pan/PanService.java
@@ -44,12 +44,14 @@
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.MetricsLogger;
import com.android.bluetooth.btservice.ProfileService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.internal.annotations.VisibleForTesting;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Objects;
/**
* Provides Bluetooth Pan Device profile, as a service in
@@ -72,6 +74,7 @@
private String mNapIfaceAddr;
private boolean mNativeAvailable;
+ private DatabaseManager mDatabaseManager;
@VisibleForTesting
UserManager mUserManager;
@@ -114,6 +117,9 @@
@Override
protected boolean start() {
+ mDatabaseManager = Objects.requireNonNull(AdapterService.getAdapterService().getDatabase(),
+ "DatabaseManager cannot be null when PanService starts");
+
mPanDevices = new HashMap<BluetoothDevice, BluetoothPanDevice>();
mBluetoothIfaceAddresses = new ArrayList<String>();
try {
@@ -436,16 +442,17 @@
if (DBG) {
Log.d(TAG, "Saved connectionPolicy " + device + " = " + connectionPolicy);
}
- boolean setSuccessfully;
- setSuccessfully = AdapterService.getAdapterService().getDatabase()
- .setProfileConnectionPolicy(device, BluetoothProfile.PAN, connectionPolicy);
- if (setSuccessfully && connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
+
+ if (!mDatabaseManager.setProfileConnectionPolicy(device, BluetoothProfile.PAN,
+ connectionPolicy)) {
+ return false;
+ }
+ if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
connect(device);
- } else if (setSuccessfully
- && connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN) {
+ } else if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN) {
disconnect(device);
}
- return setSuccessfully;
+ return true;
}
/**
@@ -462,7 +469,7 @@
*/
public int getConnectionPolicy(BluetoothDevice device) {
enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission");
- return AdapterService.getAdapterService().getDatabase()
+ return mDatabaseManager
.getProfileConnectionPolicy(device, BluetoothProfile.PAN);
}
diff --git a/src/com/android/bluetooth/pbap/BluetoothPbapService.java b/src/com/android/bluetooth/pbap/BluetoothPbapService.java
index 38d5472..62e6b63 100644
--- a/src/com/android/bluetooth/pbap/BluetoothPbapService.java
+++ b/src/com/android/bluetooth/pbap/BluetoothPbapService.java
@@ -58,6 +58,7 @@
import com.android.bluetooth.Utils;
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.ProfileService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.bluetooth.sdp.SdpManager;
import com.android.bluetooth.util.DevicePolicyUtils;
import com.android.internal.annotations.VisibleForTesting;
@@ -65,6 +66,7 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Objects;
public class BluetoothPbapService extends ProfileService implements IObexConnectionHandler {
private static final String TAG = "BluetoothPbapService";
@@ -138,6 +140,7 @@
private static String sLocalPhoneName;
private ObexServerSockets mServerSockets = null;
+ private DatabaseManager mDatabaseManager;
private static final int SDP_PBAP_SERVER_VERSION = 0x0102;
private static final int SDP_PBAP_SUPPORTED_REPOSITORIES = 0x0001;
@@ -489,8 +492,11 @@
if (DEBUG) {
Log.d(TAG, "Saved connectionPolicy " + device + " = " + connectionPolicy);
}
- AdapterService.getAdapterService().getDatabase()
- .setProfileConnectionPolicy(device, BluetoothProfile.PBAP, connectionPolicy);
+
+ if (!mDatabaseManager.setProfileConnectionPolicy(device, BluetoothProfile.PBAP,
+ connectionPolicy)) {
+ return false;
+ }
if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN) {
disconnect(device);
}
@@ -514,7 +520,7 @@
throw new IllegalArgumentException("Null device");
}
enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission");
- return AdapterService.getAdapterService().getDatabase()
+ return mDatabaseManager
.getProfileConnectionPolicy(device, BluetoothProfile.PBAP);
}
@@ -550,6 +556,9 @@
if (VERBOSE) {
Log.v(TAG, "start()");
}
+ mDatabaseManager = Objects.requireNonNull(AdapterService.getAdapterService().getDatabase(),
+ "DatabaseManager cannot be null when PbapService starts");
+
mContext = this;
mContactsLoaded = false;
mHandlerThread = new HandlerThread("PbapHandlerThread");
diff --git a/src/com/android/bluetooth/pbapclient/PbapClientService.java b/src/com/android/bluetooth/pbapclient/PbapClientService.java
index 718683e..a767563 100644
--- a/src/com/android/bluetooth/pbapclient/PbapClientService.java
+++ b/src/com/android/bluetooth/pbapclient/PbapClientService.java
@@ -33,12 +33,14 @@
import com.android.bluetooth.R;
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.ProfileService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import com.android.bluetooth.hfpclient.connserv.HfpClientConnectionService;
import com.android.bluetooth.sdp.SdpManager;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
/**
@@ -60,6 +62,8 @@
private PbapBroadcastReceiver mPbapBroadcastReceiver = new PbapBroadcastReceiver();
private int mSdpHandle = -1;
+ private DatabaseManager mDatabaseManager;
+
@Override
public IProfileServiceBinder initBinder() {
return new BluetoothPbapClientBinder(this);
@@ -70,6 +74,10 @@
if (VDBG) {
Log.v(TAG, "onStart");
}
+
+ mDatabaseManager = Objects.requireNonNull(AdapterService.getAdapterService().getDatabase(),
+ "DatabaseManager cannot be null when PbapClientService starts");
+
IntentFilter filter = new IntentFilter();
filter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED);
// delay initial download until after the user is unlocked to add an account.
@@ -446,8 +454,11 @@
if (DBG) {
Log.d(TAG, "Saved connectionPolicy " + device + " = " + connectionPolicy);
}
- AdapterService.getAdapterService().getDatabase()
- .setProfileConnectionPolicy(device, BluetoothProfile.PBAP_CLIENT, connectionPolicy);
+
+ if (!mDatabaseManager.setProfileConnectionPolicy(device, BluetoothProfile.PBAP_CLIENT,
+ connectionPolicy)) {
+ return false;
+ }
if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
connect(device);
} else if (connectionPolicy == BluetoothProfile.CONNECTION_POLICY_FORBIDDEN) {
@@ -474,7 +485,7 @@
}
enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED,
"Need BLUETOOTH_PRIVILEGED permission");
- return AdapterService.getAdapterService().getDatabase()
+ return mDatabaseManager
.getProfileConnectionPolicy(device, BluetoothProfile.PBAP_CLIENT);
}
diff --git a/tests/unit/src/com/android/bluetooth/a2dp/A2dpServiceTest.java b/tests/unit/src/com/android/bluetooth/a2dp/A2dpServiceTest.java
index 99403eb..c23434c 100644
--- a/tests/unit/src/com/android/bluetooth/a2dp/A2dpServiceTest.java
+++ b/tests/unit/src/com/android/bluetooth/a2dp/A2dpServiceTest.java
@@ -94,6 +94,7 @@
TestUtils.setAdapterService(mAdapterService);
doReturn(MAX_CONNECTED_AUDIO_DEVICES).when(mAdapterService).getMaxConnectedAudioDevices();
doReturn(false).when(mAdapterService).isQuietModeEnabled();
+ doReturn(mDatabaseManager).when(mAdapterService).getDatabase();
mAdapter = BluetoothAdapter.getDefaultAdapter();
@@ -259,21 +260,18 @@
*/
@Test
public void testGetPriority() {
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(mTestDevice, BluetoothProfile.A2DP))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_UNKNOWN);
Assert.assertEquals("Initial device priority",
BluetoothProfile.CONNECTION_POLICY_UNKNOWN,
mA2dpService.getConnectionPolicy(mTestDevice));
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(mTestDevice, BluetoothProfile.A2DP))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_FORBIDDEN);
Assert.assertEquals("Setting device priority to PRIORITY_OFF",
BluetoothProfile.CONNECTION_POLICY_FORBIDDEN,
mA2dpService.getConnectionPolicy(mTestDevice));
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(mTestDevice, BluetoothProfile.A2DP))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
Assert.assertEquals("Setting device priority to PRIORITY_ON",
@@ -329,7 +327,6 @@
@Test
public void testOutgoingConnectMissingAudioSinkUuid() {
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(mTestDevice, BluetoothProfile.A2DP))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
doReturn(true).when(mA2dpNativeInterface).connectA2dp(any(BluetoothDevice.class));
@@ -352,7 +349,6 @@
doReturn(true).when(mA2dpNativeInterface).disconnectA2dp(any(BluetoothDevice.class));
// Set the device priority to PRIORITY_OFF so connect() should fail
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(mTestDevice, BluetoothProfile.A2DP))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_FORBIDDEN);
@@ -366,7 +362,6 @@
@Test
public void testOutgoingConnectTimeout() {
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(mTestDevice, BluetoothProfile.A2DP))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
doReturn(true).when(mA2dpNativeInterface).connectA2dp(any(BluetoothDevice.class));
@@ -397,7 +392,6 @@
A2dpStackEvent connCompletedEvent;
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(mTestDevice, BluetoothProfile.A2DP))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
doReturn(true).when(mA2dpNativeInterface).connectA2dp(any(BluetoothDevice.class));
@@ -468,7 +462,6 @@
for (int i = 0; i < MAX_CONNECTED_AUDIO_DEVICES; i++) {
BluetoothDevice testDevice = TestUtils.getTestDevice(mAdapter, i);
testDevices[i] = testDevice;
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(testDevice, BluetoothProfile.A2DP))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
// Send a connect request
@@ -496,7 +489,6 @@
// Prepare and connect the extra test device. The connect request should fail
extraTestDevice = TestUtils.getTestDevice(mAdapter, MAX_CONNECTED_AUDIO_DEVICES);
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(extraTestDevice, BluetoothProfile.A2DP))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
// Send a connect request
@@ -512,7 +504,6 @@
A2dpStackEvent stackEvent;
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(mTestDevice, BluetoothProfile.A2DP))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
doReturn(true).when(mA2dpNativeInterface).connectA2dp(any(BluetoothDevice.class));
@@ -592,7 +583,6 @@
codecsSelectableCapabilities);
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(mTestDevice, BluetoothProfile.A2DP))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
doReturn(true).when(mA2dpNativeInterface).connectA2dp(any(BluetoothDevice.class));
@@ -657,7 +647,6 @@
A2dpStackEvent stackEvent;
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(mTestDevice, BluetoothProfile.A2DP))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
doReturn(true).when(mA2dpNativeInterface).connectA2dp(any(BluetoothDevice.class));
@@ -716,7 +705,6 @@
A2dpStackEvent stackEvent;
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(mTestDevice, BluetoothProfile.A2DP))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
doReturn(true).when(mA2dpNativeInterface).connectA2dp(any(BluetoothDevice.class));
@@ -890,7 +878,6 @@
List<BluetoothDevice> prevConnectedDevices = mA2dpService.getConnectedDevices();
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(device, BluetoothProfile.A2DP))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
doReturn(true).when(mA2dpNativeInterface).connectA2dp(device);
@@ -1010,7 +997,6 @@
private void testOkToConnectCase(BluetoothDevice device, int bondState, int priority,
boolean expected) {
doReturn(bondState).when(mAdapterService).getBondState(device);
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(device, BluetoothProfile.A2DP))
.thenReturn(priority);
@@ -1040,7 +1026,6 @@
private void testUpdateOptionalCodecsSupportCase(int previousSupport, boolean support,
int previousEnabled, int verifySupportTime, int verifyNotSupportTime,
int verifyEnabledTime) {
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
doReturn(true).when(mA2dpNativeInterface).setActiveDevice(any(BluetoothDevice.class));
BluetoothCodecConfig codecConfigSbc =
diff --git a/tests/unit/src/com/android/bluetooth/a2dpsink/A2dpSinkServiceTest.java b/tests/unit/src/com/android/bluetooth/a2dpsink/A2dpSinkServiceTest.java
index c089dd3..3bbc2c0 100644
--- a/tests/unit/src/com/android/bluetooth/a2dpsink/A2dpSinkServiceTest.java
+++ b/tests/unit/src/com/android/bluetooth/a2dpsink/A2dpSinkServiceTest.java
@@ -61,13 +61,13 @@
mTargetContext.getResources().getBoolean(R.bool.profile_supported_a2dp_sink));
MockitoAnnotations.initMocks(this);
TestUtils.setAdapterService(mAdapterService);
+ doReturn(mDatabaseManager).when(mAdapterService).getDatabase();
TestUtils.startService(mServiceRule, A2dpSinkService.class);
mService = A2dpSinkService.getA2dpSinkService();
Assert.assertNotNull(mService);
// Try getting the Bluetooth adapter
mAdapter = BluetoothAdapter.getDefaultAdapter();
Assert.assertNotNull(mAdapter);
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
}
@After
diff --git a/tests/unit/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachineTest.java b/tests/unit/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachineTest.java
index 07e1a29..923d309 100644
--- a/tests/unit/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachineTest.java
+++ b/tests/unit/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachineTest.java
@@ -40,6 +40,7 @@
import com.android.bluetooth.a2dpsink.A2dpSinkService;
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.ProfileService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import org.hamcrest.core.IsInstanceOf;
import org.junit.After;
@@ -86,6 +87,8 @@
private AvrcpControllerService mAvrcpControllerService;
@Mock
private A2dpSinkService mA2dpSinkService;
+ @Mock
+ private DatabaseManager mDatabaseManager;
@Mock
private Resources mMockResources;
@@ -108,6 +111,7 @@
TestUtils.startService(mAvrcpServiceRule, AvrcpControllerService.class);
TestUtils.clearAdapterService(mAvrcpAdapterService);
TestUtils.setAdapterService(mA2dpAdapterService);
+ doReturn(mDatabaseManager).when(mA2dpAdapterService).getDatabase();
TestUtils.startService(mA2dpServiceRule, A2dpSinkService.class);
when(mA2dpSinkService.setActiveDeviceNative(any())).thenReturn(true);
diff --git a/tests/unit/src/com/android/bluetooth/btservice/PhonePolicyTest.java b/tests/unit/src/com/android/bluetooth/btservice/PhonePolicyTest.java
index fa0c7c0..de02747 100644
--- a/tests/unit/src/com/android/bluetooth/btservice/PhonePolicyTest.java
+++ b/tests/unit/src/com/android/bluetooth/btservice/PhonePolicyTest.java
@@ -76,6 +76,7 @@
TestUtils.setAdapterService(mAdapterService);
// Configure the maximum connected audio devices
doReturn(MAX_CONNECTED_AUDIO_DEVICES).when(mAdapterService).getMaxConnectedAudioDevices();
+ doReturn(mDatabaseManager).when(mAdapterService).getDatabase();
// Setup the mocked factory to return mocked services
doReturn(mHeadsetService).when(mServiceFactory).getHeadsetService();
doReturn(mA2dpService).when(mServiceFactory).getA2dpService();
@@ -148,7 +149,6 @@
// Return a list of connection order
BluetoothDevice bondedDevice = TestUtils.getTestDevice(mAdapter, 0);
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getMostRecentlyConnectedA2dpDevice()).thenReturn(bondedDevice);
when(mAdapterService.getBondState(bondedDevice)).thenReturn(BluetoothDevice.BOND_BONDED);
@@ -184,7 +184,6 @@
connectionOrder.add(TestUtils.getTestDevice(mAdapter, 2));
connectionOrder.add(TestUtils.getTestDevice(mAdapter, 3));
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getMostRecentlyConnectedA2dpDevice()).thenReturn(
connectionOrder.get(0));
@@ -307,7 +306,6 @@
public void testReconnectOnPartialConnect_PreviousPartialFail() {
List<BluetoothDevice> connectionOrder = new ArrayList<>();
connectionOrder.add(TestUtils.getTestDevice(mAdapter, 0));
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getMostRecentlyConnectedA2dpDevice()).thenReturn(
connectionOrder.get(0));
diff --git a/tests/unit/src/com/android/bluetooth/btservice/ProfileServiceTest.java b/tests/unit/src/com/android/bluetooth/btservice/ProfileServiceTest.java
index 3de2f48..f2b4d94 100644
--- a/tests/unit/src/com/android/bluetooth/btservice/ProfileServiceTest.java
+++ b/tests/unit/src/com/android/bluetooth/btservice/ProfileServiceTest.java
@@ -29,6 +29,7 @@
import androidx.test.runner.AndroidJUnit4;
import com.android.bluetooth.TestUtils;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import org.junit.After;
import org.junit.Assert;
@@ -81,6 +82,7 @@
}
private @Mock AdapterService mMockAdapterService;
+ @Mock private DatabaseManager mDatabaseManager;
private Class[] mProfiles;
@@ -100,6 +102,7 @@
0 /* config_compare_result */, new String[0]);
TestUtils.setAdapterService(mMockAdapterService);
+ doReturn(mDatabaseManager).when(mMockAdapterService).getDatabase();
Assert.assertNotNull(AdapterService.getAdapterService());
}
diff --git a/tests/unit/src/com/android/bluetooth/hearingaid/HearingAidServiceTest.java b/tests/unit/src/com/android/bluetooth/hearingaid/HearingAidServiceTest.java
index a1c938c..81a9db4 100644
--- a/tests/unit/src/com/android/bluetooth/hearingaid/HearingAidServiceTest.java
+++ b/tests/unit/src/com/android/bluetooth/hearingaid/HearingAidServiceTest.java
@@ -91,6 +91,7 @@
}
TestUtils.setAdapterService(mAdapterService);
+ doReturn(mDatabaseManager).when(mAdapterService).getDatabase();
mAdapter = BluetoothAdapter.getDefaultAdapter();
@@ -216,21 +217,18 @@
*/
@Test
public void testGetSetPriority() {
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(mLeftDevice, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_UNKNOWN);
Assert.assertEquals("Initial device priority",
BluetoothProfile.CONNECTION_POLICY_UNKNOWN,
mService.getConnectionPolicy(mLeftDevice));
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(mLeftDevice, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_FORBIDDEN);
Assert.assertEquals("Setting device priority to PRIORITY_OFF",
BluetoothProfile.CONNECTION_POLICY_FORBIDDEN,
mService.getConnectionPolicy(mLeftDevice));
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(mLeftDevice, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
Assert.assertEquals("Setting device priority to PRIORITY_ON",
@@ -285,7 +283,6 @@
@Test
public void testOutgoingConnectMissingHearingAidUuid() {
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(mLeftDevice, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
when(mDatabaseManager
@@ -314,7 +311,6 @@
doReturn(true).when(mNativeInterface).disconnectHearingAid(any(BluetoothDevice.class));
// Set the device priority to PRIORITY_OFF so connect() should fail
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager
.getProfileConnectionPolicy(mLeftDevice, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_FORBIDDEN);
@@ -329,7 +325,6 @@
@Test
public void testOutgoingConnectTimeout() {
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager
.getProfileConnectionPolicy(mLeftDevice, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
@@ -367,7 +362,6 @@
// Update hiSyncId map
getHiSyncIdFromNative();
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager
.getProfileConnectionPolicy(mLeftDevice, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
@@ -402,7 +396,6 @@
// Update hiSyncId map
getHiSyncIdFromNative();
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager
.getProfileConnectionPolicy(mLeftDevice, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
@@ -469,7 +462,6 @@
// Update hiSyncId map
getHiSyncIdFromNative();
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager
.getProfileConnectionPolicy(mLeftDevice, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
@@ -589,7 +581,6 @@
@Test
public void testCreateStateMachineStackEvents() {
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager
.getProfileConnectionPolicy(mLeftDevice, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
@@ -657,7 +648,6 @@
@Test
public void testDeleteStateMachineUnbondEvents() {
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager
.getProfileConnectionPolicy(mLeftDevice, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
@@ -721,7 +711,6 @@
@Test
public void testDeleteStateMachineDisconnectEvents() {
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager
.getProfileConnectionPolicy(mLeftDevice, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
@@ -773,7 +762,6 @@
// Update hiSyncId map
getHiSyncIdFromNative();
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager
.getProfileConnectionPolicy(mLeftDevice, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
@@ -810,7 +798,6 @@
// Update hiSyncId map
getHiSyncIdFromNative();
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager
.getProfileConnectionPolicy(mLeftDevice, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
@@ -846,7 +833,6 @@
@Test
public void firstTimeConnection_shouldConnectToBothDevices() {
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager
.getProfileConnectionPolicy(mLeftDevice, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
@@ -931,7 +917,6 @@
@Test
public void getHiSyncId_afterFirstDeviceConnected() {
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager
.getProfileConnectionPolicy(mLeftDevice, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
@@ -1026,7 +1011,6 @@
List<BluetoothDevice> prevConnectedDevices = mService.getConnectedDevices();
// Update the device priority so okToConnect() returns true
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(device, BluetoothProfile.HEARING_AID))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_ALLOWED);
doReturn(true).when(mNativeInterface).connectHearingAid(device);
@@ -1095,7 +1079,6 @@
private void testOkToConnectCase(BluetoothDevice device, int bondState, int priority,
boolean expected) {
doReturn(bondState).when(mAdapterService).getBondState(device);
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(device, BluetoothProfile.HEARING_AID))
.thenReturn(priority);
Assert.assertEquals(expected, mService.okToConnect(device));
diff --git a/tests/unit/src/com/android/bluetooth/hfp/HeadsetServiceAndStateMachineTest.java b/tests/unit/src/com/android/bluetooth/hfp/HeadsetServiceAndStateMachineTest.java
index 149c64f..2dd5356 100644
--- a/tests/unit/src/com/android/bluetooth/hfp/HeadsetServiceAndStateMachineTest.java
+++ b/tests/unit/src/com/android/bluetooth/hfp/HeadsetServiceAndStateMachineTest.java
@@ -167,6 +167,7 @@
doReturn(MAX_HEADSET_CONNECTIONS).when(mAdapterService).getMaxConnectedAudioDevices();
doReturn(new ParcelUuid[]{BluetoothUuid.HFP}).when(mAdapterService)
.getRemoteUuids(any(BluetoothDevice.class));
+ doReturn(mDatabaseManager).when(mAdapterService).getDatabase();
// We cannot mock HeadsetObjectsFactory.getInstance() with Mockito.
// Hence we need to use reflection to call a private method to
// initialize properly the HeadsetObjectsFactory.sInstance field.
@@ -278,7 +279,6 @@
@Test
public void testConnectFromApi() {
BluetoothDevice device = TestUtils.getTestDevice(mAdapter, 0);
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(device, BluetoothProfile.HEADSET))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_UNKNOWN);
mBondedDevices.add(device);
@@ -322,7 +322,6 @@
@Test
public void testUnbondDevice_disconnectBeforeUnbond() {
BluetoothDevice device = TestUtils.getTestDevice(mAdapter, 0);
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(device, BluetoothProfile.HEADSET))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_UNKNOWN);
mBondedDevices.add(device);
@@ -366,7 +365,6 @@
@Test
public void testUnbondDevice_disconnectAfterUnbond() {
BluetoothDevice device = TestUtils.getTestDevice(mAdapter, 0);
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(device, BluetoothProfile.HEADSET))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_UNKNOWN);
mBondedDevices.add(device);
@@ -1152,7 +1150,6 @@
}
private void connectTestDevice(BluetoothDevice device) {
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(device, BluetoothProfile.HEADSET))
.thenReturn(BluetoothProfile.CONNECTION_POLICY_UNKNOWN);
// Make device bonded
diff --git a/tests/unit/src/com/android/bluetooth/hfp/HeadsetServiceTest.java b/tests/unit/src/com/android/bluetooth/hfp/HeadsetServiceTest.java
index 465b78e..cf3458c 100644
--- a/tests/unit/src/com/android/bluetooth/hfp/HeadsetServiceTest.java
+++ b/tests/unit/src/com/android/bluetooth/hfp/HeadsetServiceTest.java
@@ -110,6 +110,7 @@
.getRemoteUuids(any(BluetoothDevice.class));
doReturn(BluetoothDevice.BOND_BONDED).when(mAdapterService)
.getBondState(any(BluetoothDevice.class));
+ doReturn(mDatabaseManager).when(mAdapterService).getDatabase();
doAnswer(invocation -> {
Set<BluetoothDevice> keys = mStateMachines.keySet();
return keys.toArray(new BluetoothDevice[keys.size()]);
@@ -149,8 +150,6 @@
mHeadsetServiceBinder = (IBluetoothHeadset.Stub) mHeadsetService.initBinder();
Assert.assertNotNull(mHeadsetServiceBinder);
mHeadsetServiceBinder.setForceScoAudio(true);
- // Mock database for getConnectionPolicy()
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
}
@After
diff --git a/tests/unit/src/com/android/bluetooth/hfpclient/HeadsetClientServiceTest.java b/tests/unit/src/com/android/bluetooth/hfpclient/HeadsetClientServiceTest.java
index 17afcc3..05b3f43 100644
--- a/tests/unit/src/com/android/bluetooth/hfpclient/HeadsetClientServiceTest.java
+++ b/tests/unit/src/com/android/bluetooth/hfpclient/HeadsetClientServiceTest.java
@@ -16,6 +16,8 @@
package com.android.bluetooth.hfpclient;
+import static org.mockito.Mockito.doReturn;
+
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
@@ -27,6 +29,7 @@
import com.android.bluetooth.R;
import com.android.bluetooth.TestUtils;
import com.android.bluetooth.btservice.AdapterService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import org.junit.After;
import org.junit.Assert;
@@ -49,6 +52,8 @@
@Mock private AdapterService mAdapterService;
+ @Mock private DatabaseManager mDatabaseManager;
+
@Before
public void setUp() throws Exception {
mTargetContext = InstrumentationRegistry.getTargetContext();
@@ -56,6 +61,7 @@
mTargetContext.getResources().getBoolean(R.bool.profile_supported_hfpclient));
MockitoAnnotations.initMocks(this);
TestUtils.setAdapterService(mAdapterService);
+ doReturn(mDatabaseManager).when(mAdapterService).getDatabase();
TestUtils.startService(mServiceRule, HeadsetClientService.class);
// At this point the service should have started so check NOT null
mService = HeadsetClientService.getHeadsetClientService();
diff --git a/tests/unit/src/com/android/bluetooth/hid/HidDeviceTest.java b/tests/unit/src/com/android/bluetooth/hid/HidDeviceTest.java
index eae1c1c..1078a2e 100644
--- a/tests/unit/src/com/android/bluetooth/hid/HidDeviceTest.java
+++ b/tests/unit/src/com/android/bluetooth/hid/HidDeviceTest.java
@@ -38,6 +38,7 @@
import com.android.bluetooth.R;
import com.android.bluetooth.TestUtils;
import com.android.bluetooth.btservice.AdapterService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import org.junit.After;
import org.junit.Assert;
@@ -74,6 +75,7 @@
private static final int CALLBACK_ON_VIRTUAL_UNPLUG = 6;
@Mock private AdapterService mAdapterService;
+ @Mock private DatabaseManager mDatabaseManager;
@Mock private HidDeviceNativeInterface mHidDeviceNativeInterface;
private BluetoothAdapter mAdapter;
@@ -108,6 +110,7 @@
// Set up mocks and test assets
MockitoAnnotations.initMocks(this);
TestUtils.setAdapterService(mAdapterService);
+ doReturn(mDatabaseManager).when(mAdapterService).getDatabase();
setHidDeviceNativeInterfaceInstance(mHidDeviceNativeInterface);
// This line must be called to make sure relevant objects are initialized properly
mAdapter = BluetoothAdapter.getDefaultAdapter();
diff --git a/tests/unit/src/com/android/bluetooth/hid/HidHostServiceTest.java b/tests/unit/src/com/android/bluetooth/hid/HidHostServiceTest.java
index c88fb75..03e8d5c 100644
--- a/tests/unit/src/com/android/bluetooth/hid/HidHostServiceTest.java
+++ b/tests/unit/src/com/android/bluetooth/hid/HidHostServiceTest.java
@@ -62,6 +62,7 @@
mTargetContext.getResources().getBoolean(R.bool.profile_supported_hid_host));
MockitoAnnotations.initMocks(this);
TestUtils.setAdapterService(mAdapterService);
+ when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
TestUtils.startService(mServiceRule, HidHostService.class);
mService = HidHostService.getHidHostService();
Assert.assertNotNull(mService);
@@ -128,9 +129,6 @@
badBondState, BluetoothProfile.CONNECTION_POLICY_ALLOWED, false);
testOkToConnectCase(mTestDevice,
badBondState, badPriorityValue, false);
- // Restore prirority to undefined for this test device
- Assert.assertTrue(mService.setConnectionPolicy(
- mTestDevice, BluetoothProfile.CONNECTION_POLICY_UNKNOWN));
}
/**
@@ -144,7 +142,6 @@
private void testOkToConnectCase(BluetoothDevice device, int bondState, int priority,
boolean expected) {
doReturn(bondState).when(mAdapterService).getBondState(device);
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
when(mDatabaseManager.getProfileConnectionPolicy(device, BluetoothProfile.HID_HOST))
.thenReturn(priority);
diff --git a/tests/unit/src/com/android/bluetooth/map/BluetoothMapServiceTest.java b/tests/unit/src/com/android/bluetooth/map/BluetoothMapServiceTest.java
index 0a000a2..6957962 100644
--- a/tests/unit/src/com/android/bluetooth/map/BluetoothMapServiceTest.java
+++ b/tests/unit/src/com/android/bluetooth/map/BluetoothMapServiceTest.java
@@ -15,6 +15,8 @@
*/
package com.android.bluetooth.map;
+import static org.mockito.Mockito.doReturn;
+
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
@@ -26,6 +28,7 @@
import com.android.bluetooth.R;
import com.android.bluetooth.TestUtils;
import com.android.bluetooth.btservice.AdapterService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import org.junit.After;
import org.junit.Assert;
@@ -47,6 +50,7 @@
@Rule public final ServiceTestRule mServiceRule = new ServiceTestRule();
@Mock private AdapterService mAdapterService;
+ @Mock private DatabaseManager mDatabaseManager;
@Before
public void setUp() throws Exception {
@@ -55,6 +59,7 @@
mTargetContext.getResources().getBoolean(R.bool.profile_supported_map));
MockitoAnnotations.initMocks(this);
TestUtils.setAdapterService(mAdapterService);
+ doReturn(mDatabaseManager).when(mAdapterService).getDatabase();
TestUtils.startService(mServiceRule, BluetoothMapService.class);
mService = BluetoothMapService.getBluetoothMapService();
Assert.assertNotNull(mService);
diff --git a/tests/unit/src/com/android/bluetooth/mapclient/MapClientTest.java b/tests/unit/src/com/android/bluetooth/mapclient/MapClientTest.java
index 002cac9..429416b 100644
--- a/tests/unit/src/com/android/bluetooth/mapclient/MapClientTest.java
+++ b/tests/unit/src/com/android/bluetooth/mapclient/MapClientTest.java
@@ -68,12 +68,12 @@
mTargetContext.getResources().getBoolean(R.bool.profile_supported_mapmce));
MockitoAnnotations.initMocks(this);
TestUtils.setAdapterService(mAdapterService);
+ when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
MapUtils.setMnsService(mMockMnsService);
TestUtils.startService(mServiceRule, MapClientService.class);
mService = MapClientService.getMapClientService();
Assert.assertNotNull(mService);
mAdapter = BluetoothAdapter.getDefaultAdapter();
- when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
}
@After
diff --git a/tests/unit/src/com/android/bluetooth/pan/PanServiceTest.java b/tests/unit/src/com/android/bluetooth/pan/PanServiceTest.java
index 3573f84..092698c 100644
--- a/tests/unit/src/com/android/bluetooth/pan/PanServiceTest.java
+++ b/tests/unit/src/com/android/bluetooth/pan/PanServiceTest.java
@@ -15,6 +15,7 @@
*/
package com.android.bluetooth.pan;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.when;
import android.bluetooth.BluetoothAdapter;
@@ -30,6 +31,7 @@
import com.android.bluetooth.R;
import com.android.bluetooth.TestUtils;
import com.android.bluetooth.btservice.AdapterService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import org.junit.After;
import org.junit.Assert;
@@ -51,6 +53,7 @@
@Rule public final ServiceTestRule mServiceRule = new ServiceTestRule();
@Mock private AdapterService mAdapterService;
+ @Mock private DatabaseManager mDatabaseManager;
@Mock private UserManager mMockUserManager;
@Before
@@ -60,6 +63,7 @@
mTargetContext.getResources().getBoolean(R.bool.profile_supported_pan));
MockitoAnnotations.initMocks(this);
TestUtils.setAdapterService(mAdapterService);
+ doReturn(mDatabaseManager).when(mAdapterService).getDatabase();
TestUtils.startService(mServiceRule, PanService.class);
mService = PanService.getPanService();
Assert.assertNotNull(mService);
diff --git a/tests/unit/src/com/android/bluetooth/pbap/BluetoothPbapServiceTest.java b/tests/unit/src/com/android/bluetooth/pbap/BluetoothPbapServiceTest.java
index 8990eb7..a2a13c7 100644
--- a/tests/unit/src/com/android/bluetooth/pbap/BluetoothPbapServiceTest.java
+++ b/tests/unit/src/com/android/bluetooth/pbap/BluetoothPbapServiceTest.java
@@ -15,6 +15,8 @@
*/
package com.android.bluetooth.pbap;
+import static org.mockito.Mockito.doReturn;
+
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
@@ -26,6 +28,7 @@
import com.android.bluetooth.R;
import com.android.bluetooth.TestUtils;
import com.android.bluetooth.btservice.AdapterService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import org.junit.After;
import org.junit.Assert;
@@ -47,6 +50,7 @@
@Rule public final ServiceTestRule mServiceRule = new ServiceTestRule();
@Mock private AdapterService mAdapterService;
+ @Mock private DatabaseManager mDatabaseManager;
@Before
public void setUp() throws Exception {
@@ -55,6 +59,7 @@
mTargetContext.getResources().getBoolean(R.bool.profile_supported_pbap));
MockitoAnnotations.initMocks(this);
TestUtils.setAdapterService(mAdapterService);
+ doReturn(mDatabaseManager).when(mAdapterService).getDatabase();
TestUtils.startService(mServiceRule, BluetoothPbapService.class);
mService = BluetoothPbapService.getBluetoothPbapService();
Assert.assertNotNull(mService);
diff --git a/tests/unit/src/com/android/bluetooth/pbapclient/PbapClientServiceTest.java b/tests/unit/src/com/android/bluetooth/pbapclient/PbapClientServiceTest.java
index 5e9b5ae..8311549 100644
--- a/tests/unit/src/com/android/bluetooth/pbapclient/PbapClientServiceTest.java
+++ b/tests/unit/src/com/android/bluetooth/pbapclient/PbapClientServiceTest.java
@@ -15,6 +15,8 @@
*/
package com.android.bluetooth.pbapclient;
+import static org.mockito.Mockito.doReturn;
+
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
@@ -26,6 +28,7 @@
import com.android.bluetooth.R;
import com.android.bluetooth.TestUtils;
import com.android.bluetooth.btservice.AdapterService;
+import com.android.bluetooth.btservice.storage.DatabaseManager;
import org.junit.After;
import org.junit.Assert;
@@ -48,6 +51,8 @@
@Mock private AdapterService mAdapterService;
+ @Mock private DatabaseManager mDatabaseManager;
+
@Before
public void setUp() throws Exception {
mTargetContext = InstrumentationRegistry.getTargetContext();
@@ -55,6 +60,7 @@
mTargetContext.getResources().getBoolean(R.bool.profile_supported_pbapclient));
MockitoAnnotations.initMocks(this);
TestUtils.setAdapterService(mAdapterService);
+ doReturn(mDatabaseManager).when(mAdapterService).getDatabase();
TestUtils.startService(mServiceRule, PbapClientService.class);
mService = PbapClientService.getPbapClientService();
Assert.assertNotNull(mService);