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

Commit ee96c3a2 authored by Fan Zhang's avatar Fan Zhang
Browse files

Fix context leak in AudioSwitchPreferenceController.

In this controller the context is stored into a global singleton but was
not cleared, thus leaking context and associated views.

Change-Id: I4247f8ff753bc0a331c6c81a0e4b5b4bc41588de
Fixes: 80507279
Test: robotests
Test: inspected hprof before/after change
parent 32d9f451
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -118,7 +118,6 @@ public abstract class AudioSwitchPreferenceController extends BasePreferenceCont
            Log.e(TAG, "Bluetooth is not supported on this device");
            return;
        }
        mLocalBluetoothManager.setForegroundActivity(mContext);
        mProfileManager = mLocalBluetoothManager.getProfileManager();
    }

@@ -171,11 +170,13 @@ public abstract class AudioSwitchPreferenceController extends BasePreferenceCont

    @Override
    public void onStart() {
        mLocalBluetoothManager.setForegroundActivity(mContext);
        register();
    }

    @Override
    public void onStop() {
        mLocalBluetoothManager.setForegroundActivity(null);
        unregister();
    }

+2 −0
Original line number Diff line number Diff line
@@ -230,6 +230,7 @@ public class AudioOutputSwitchPreferenceControllerTest {
        verify(mLocalBluetoothManager.getEventManager()).registerCallback(
                any(BluetoothCallback.class));
        verify(mContext).registerReceiver(any(BroadcastReceiver.class), any(IntentFilter.class));
        verify(mLocalBluetoothManager).setForegroundActivity(mContext);
    }

    @Test
@@ -240,6 +241,7 @@ public class AudioOutputSwitchPreferenceControllerTest {
        verify(mLocalBluetoothManager.getEventManager()).unregisterCallback(
                any(BluetoothCallback.class));
        verify(mContext).unregisterReceiver(any(BroadcastReceiver.class));
        verify(mLocalBluetoothManager).setForegroundActivity(null);
    }

    @Test