Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44ba2305 authored by Marie Janssen's avatar Marie Janssen Committed by Andre Eisenbach
Browse files

A2DP: Only unregister receiver if we registered

If A2DP isn't ever started, A2dpService.cleanup() would try to unregister
when we are not registered.

Bug: 63061079
Test: none
Change-Id: I7229625f19c07dddeb58d7ee0787c83f0164e3e8
(cherry picked from commit 03352f57934dfae89c7696455f2f6f79d4d8ad22)
parent 070b2a82
Loading
Loading
Loading
Loading
+15 −6
Original line number Diff line number Diff line
@@ -48,7 +48,9 @@ public class A2dpService extends ProfileService {
    private A2dpStateMachine mStateMachine;
    private Avrcp mAvrcp;

    private BroadcastReceiver mConnectionStateChangedReceiver = new BroadcastReceiver() {
    private BroadcastReceiver mConnectionStateChangedReceiver = null;

    private class CodecSupportReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (!BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED.equals(intent.getAction())) {
@@ -108,9 +110,12 @@ public class A2dpService extends ProfileService {
        mAvrcp = Avrcp.make(this);
        mStateMachine = A2dpStateMachine.make(this, this);
        setA2dpService(this);
        if (mConnectionStateChangedReceiver == null) {
            IntentFilter filter = new IntentFilter();
            filter.addAction(BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED);
            mConnectionStateChangedReceiver = new CodecSupportReceiver();
            registerReceiver(mConnectionStateChangedReceiver, filter);
        }
        return true;
    }

@@ -125,9 +130,13 @@ public class A2dpService extends ProfileService {
    }

    protected boolean cleanup() {
        if (mConnectionStateChangedReceiver != null) {
            unregisterReceiver(mConnectionStateChangedReceiver);
            mConnectionStateChangedReceiver = null;
        }
        if (mStateMachine != null) {
            mStateMachine.cleanup();
            mStateMachine = null;
        }
        if (mAvrcp != null) {
            mAvrcp.cleanup();