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

Commit b2f07e8b authored by Robert Snoeberger's avatar Robert Snoeberger
Browse files

Registering DeviceCallback too much

Fixes: 149753846
Test: manual - play music and toggle dark mode a few times
Change-Id: I9f5ddefee23d780072fe6c57bad187c3c2ddddbb
parent ef7b5342
Loading
Loading
Loading
Loading
+20 −10
Original line number Diff line number Diff line
@@ -133,6 +133,9 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
            new LocalMediaManager.DeviceCallback() {
        @Override
        public void onDeviceListUpdate(List<MediaDevice> devices) {
            if (mLocalMediaManager == null) {
                return;
            }
            MediaDevice currentDevice = mLocalMediaManager.getCurrentConnectedDevice();
            // Check because this can be called several times while changing devices
            if (mDevice == null || !mDevice.equals(currentDevice)) {
@@ -293,16 +296,19 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
        if (mMediaPlayers.size() > 0) {
            ((View) mMediaCarousel.getParent()).setVisibility(View.VISIBLE);

            if (mLocalMediaManager == null) {
                // Set up listener for device changes
                // TODO: integrate with MediaTransferManager?
                InfoMediaManager imm =
                        new InfoMediaManager(mContext, null, null, mLocalBluetoothManager);
            mLocalMediaManager = new LocalMediaManager(mContext, mLocalBluetoothManager, imm, null);
                mLocalMediaManager = new LocalMediaManager(mContext, mLocalBluetoothManager, imm,
                        null);
                mLocalMediaManager.startScan();
                mDevice = mLocalMediaManager.getCurrentConnectedDevice();
                mLocalMediaManager.registerCallback(mDeviceCallback);
            }
        }
    }

    protected View getMediaPanel() {
        return mMediaCarousel;
@@ -323,8 +329,11 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
        mMediaCarousel.removeView(player.getView());
        if (mMediaPlayers.size() == 0) {
            ((View) mMediaCarousel.getParent()).setVisibility(View.GONE);
            if (mLocalMediaManager != null) {
                mLocalMediaManager.stopScan();
                mLocalMediaManager.unregisterCallback(mDeviceCallback);
                mLocalMediaManager = null;
            }
        }
        return true;
    }
@@ -397,6 +406,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
        if (mLocalMediaManager != null) {
            mLocalMediaManager.stopScan();
            mLocalMediaManager.unregisterCallback(mDeviceCallback);
            mLocalMediaManager = null;
        }
        super.onDetachedFromWindow();
    }