diff options
author | Ritwika Mitra <ritwikam@google.com> | 2019-11-21 12:05:37 -0800 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-11-21 12:05:37 -0800 |
commit | bf050ec54464a12c11dbc360206707b30f3abbf6 (patch) | |
tree | 59529c99aabb82fc87f95366d423abf405a18fd9 /src/com | |
parent | 8ad55653ff7001f415e23e9af8f8e1225f2e62cd (diff) | |
parent | 446044e13673b535925d5cc58566c2c4c31c971d (diff) | |
download | Messenger-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')
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(); |