summaryrefslogtreecommitdiff
path: root/src/com/android/car
diff options
context:
space:
mode:
authorRitwika Mitra <ritwikam@google.com>2019-11-21 12:05:37 -0800
committerandroid-build-merger <android-build-merger@google.com>2019-11-21 12:05:37 -0800
commitbf050ec54464a12c11dbc360206707b30f3abbf6 (patch)
tree59529c99aabb82fc87f95366d423abf405a18fd9 /src/com/android/car
parent8ad55653ff7001f415e23e9af8f8e1225f2e62cd (diff)
parent446044e13673b535925d5cc58566c2c4c31c971d (diff)
downloadMessenger-bf050ec54464a12c11dbc360206707b30f3abbf6.tar.gz
Disconnect from MAP on onDestroy am: 1deb027c9d am: 8e4469cce2 am: c952b06498 am: f05024ea55
am: 446044e136 Change-Id: I57bb4a3d152f31096f0a7872f65749b5403a6a8a
Diffstat (limited to 'src/com/android/car')
-rw-r--r--src/com/android/car/messenger/MessengerDelegate.java19
-rw-r--r--src/com/android/car/messenger/MessengerService.java4
-rw-r--r--src/com/android/car/messenger/bluetooth/BluetoothMonitor.java37
3 files changed, 18 insertions, 42 deletions
diff --git a/src/com/android/car/messenger/MessengerDelegate.java b/src/com/android/car/messenger/MessengerDelegate.java
index 22eb30a..926e3bc 100644
--- a/src/com/android/car/messenger/MessengerDelegate.java
+++ b/src/com/android/car/messenger/MessengerDelegate.java
@@ -55,7 +55,7 @@ public class MessengerDelegate implements BluetoothMonitor.OnBluetoothEventListe
private final Context mContext;
@GuardedBy("mMapClientLock")
private BluetoothMapClient mBluetoothMapClient;
- private NotificationManager mNotificationManager;
+ private final NotificationManager mNotificationManager;
private final SmsDatabaseHandler mSmsDatabaseHandler;
private boolean mShouldLoadExistingMessages;
@@ -142,10 +142,6 @@ public class MessengerDelegate implements BluetoothMonitor.OnBluetoothEventListe
return;
}
- if (mBluetoothMapClient != null) {
- mBluetoothMapClient.close();
- }
-
mBluetoothMapClient = client;
connectedDevices = mBluetoothMapClient.getConnectedDevices();
}
@@ -157,14 +153,10 @@ public class MessengerDelegate implements BluetoothMonitor.OnBluetoothEventListe
}
@Override
- public void onMapDisconnected(int profile) {
+ public void onMapDisconnected() {
L.d(TAG, "Disconnected from BluetoothMapClient");
cleanupMessagesAndNotifications(key -> true);
synchronized (mMapClientLock) {
- BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
- if (adapter != null) {
- adapter.closeProfileProxy(BluetoothProfile.MAP_CLIENT, mBluetoothMapClient);
- }
mBluetoothMapClient = null;
}
}
@@ -322,13 +314,8 @@ public class MessengerDelegate implements BluetoothMonitor.OnBluetoothEventListe
return 0;
}
- protected void cleanup() {
+ protected void onDestroy() {
cleanupMessagesAndNotifications(key -> true);
- synchronized (mMapClientLock) {
- if (mBluetoothMapClient != null) {
- mBluetoothMapClient.close();
- }
- }
}
private Notification createNotification(
diff --git a/src/com/android/car/messenger/MessengerService.java b/src/com/android/car/messenger/MessengerService.java
index 3ea681f..0b0e4e4 100644
--- a/src/com/android/car/messenger/MessengerService.java
+++ b/src/com/android/car/messenger/MessengerService.java
@@ -136,8 +136,8 @@ public class MessengerService extends Service {
public void onDestroy() {
super.onDestroy();
L.d(TAG, "onDestroy");
- mMessengerDelegate.cleanup();
- mBluetoothMonitor.cleanup();
+ mMessengerDelegate.onDestroy();
+ mBluetoothMonitor.onDestroy();
}
@Override
diff --git a/src/com/android/car/messenger/bluetooth/BluetoothMonitor.java b/src/com/android/car/messenger/bluetooth/BluetoothMonitor.java
index 0015ebc..095474f 100644
--- a/src/com/android/car/messenger/bluetooth/BluetoothMonitor.java
+++ b/src/com/android/car/messenger/bluetooth/BluetoothMonitor.java
@@ -9,15 +9,10 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
-import android.content.res.Resources.NotFoundException;
import android.os.Parcelable;
-
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
-
-import com.android.car.messenger.R;
import com.android.car.messenger.log.L;
-
import java.util.HashSet;
import java.util.Set;
@@ -33,12 +28,12 @@ public class BluetoothMonitor {
private final BluetoothSdpReceiver mBluetoothSdpReceiver;
private final MapDeviceMonitor mMapDeviceMonitor;
private final BluetoothProfile.ServiceListener mMapServiceListener;
+ private BluetoothMapClient mBluetoothMapClient;
private final Set<OnBluetoothEventListener> mListeners;
public BluetoothMonitor(@NonNull Context context) {
mContext = context;
-
mBluetoothMapReceiver = new BluetoothMapReceiver();
mBluetoothSdpReceiver = new BluetoothSdpReceiver();
mMapDeviceMonitor = new MapDeviceMonitor();
@@ -52,7 +47,7 @@ public class BluetoothMonitor {
@Override
public void onServiceDisconnected(int profile) {
L.d(TAG, "Disconnected from MAP service!");
- onMapDisconnected(profile);
+ onMapDisconnected();
}
};
mListeners = new HashSet<>();
@@ -119,10 +114,8 @@ public class BluetoothMonitor {
/**
* Callback issued when a MAP client has been disconnected.
- *
- * @param profile see {@link BluetoothProfile.ServiceListener#onServiceDisconnected(int)}
*/
- void onMapDisconnected(int profile);
+ void onMapDisconnected();
/**
* Callback issued when a new SDP record has been detected.
@@ -150,22 +143,13 @@ public class BluetoothMonitor {
}
private void onMapConnected(BluetoothMapClient client) {
+ mBluetoothMapClient = client;
mListeners.forEach(listener -> listener.onMapConnected(client));
}
- private void onMapDisconnected(int profile) {
- mListeners.forEach(listener -> listener.onMapDisconnected(profile));
- boolean shouldReconnectToMap = false;
- try {
- shouldReconnectToMap = mContext.getResources().getBoolean(
- R.bool.config_loadExistingMessages);
- } catch (NotFoundException e) {
- // Should only happen for robolectric unit tests
- L.e(TAG, e, "Could not find loadExistingMessages config");
- }
- if (shouldReconnectToMap) {
- connectToMap();
- }
+ private void onMapDisconnected() {
+ mBluetoothMapClient = null;
+ mListeners.forEach(listener -> listener.onMapDisconnected());
}
private void onSdpRecord(BluetoothDevice device, boolean supportsReply) {
@@ -193,7 +177,12 @@ public class BluetoothMonitor {
/**
* Performs {@link Context} related cleanup (such as unregistering from receivers).
*/
- public void cleanup() {
+ public void onDestroy() {
+ BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+ if (adapter != null) {
+ adapter.closeProfileProxy(BluetoothProfile.MAP_CLIENT, mBluetoothMapClient);
+ }
+ onMapDisconnected();
mListeners.clear();
mBluetoothMapReceiver.unregisterReceivers();
mBluetoothSdpReceiver.unregisterReceivers();