Reset CDM if resuming from a suspended session.

Also covers any cases where the CDM was not properly stopped
prior to a start call.

Fixes: 151341433
Test: Suspend while connected to a device and verify
reconnection is successful.

Change-Id: I3b616be2eaf1006d99b6f8a0097515a63d3d5e68
diff --git a/connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java b/connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java
index f10bb85..f8805a1 100644
--- a/connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java
+++ b/connected-device-lib/src/com/android/car/connecteddevice/ConnectedDeviceManager.java
@@ -107,6 +107,8 @@
 
     private final AtomicBoolean mIsConnectingToUserDevice = new AtomicBoolean(false);
 
+    private final AtomicBoolean mHasStarted = new AtomicBoolean(false);
+
     private final int mReconnectTimeoutSeconds;
 
     private String mNameForAssociation;
@@ -193,8 +195,12 @@
      * connections can be made using {@link #connectToActiveUserDevice()}.
      */
     public void start() {
-        logd(TAG, "Starting ConnectedDeviceManager.");
-        EventLog.onConnectedDeviceManagerStarted();
+        if (mHasStarted.getAndSet(true)) {
+            reset();
+        } else {
+            logd(TAG, "Starting ConnectedDeviceManager.");
+            EventLog.onConnectedDeviceManagerStarted();
+        }
         // TODO (b/141312136) Start central manager
         mPeripheralManager.start();
         connectToActiveUserDevice();