summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRitwika Mitra <ritwikam@google.com>2019-11-21 11:57:13 -0800
committerandroid-build-merger <android-build-merger@google.com>2019-11-21 11:57:13 -0800
commit446044e13673b535925d5cc58566c2c4c31c971d (patch)
treee713ff48f5823a294f653ec5ed6353a8d8442715 /src
parent74f2b36cd83b543408642e7f573088ee9717d1ab (diff)
parentf05024ea55292c7c831ede3c5b09017953b788f8 (diff)
downloadMessenger-446044e13673b535925d5cc58566c2c4c31c971d.tar.gz
Disconnect from MAP on onDestroy am: 1deb027c9d am: 8e4469cce2 am: c952b06498
am: f05024ea55 Change-Id: I9d67d1bca446ad4e11af73c44f718546e787b66f
Diffstat (limited to 'src')
-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 5a3d2e0..4662625 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;
}
}
@@ -318,13 +310,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();