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

Commit f9b377f9 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Disconnect pending player when turn bluetooth off"

parents 57abcb6d dac97423
Loading
Loading
Loading
Loading
+18 −5
Original line number Diff line number Diff line
@@ -152,11 +152,7 @@ public class BrowsablePlayerConnector {

                    case MSG_TIMEOUT: {
                        Log.v(TAG, "Timed out waiting for players");
                        for (BrowsedPlayerWrapper wrapper : mPendingPlayers) {
                            if (DEBUG) Log.d(TAG, "Disconnecting " + wrapper.getPackageName());
                            wrapper.disconnect();
                        }
                        mPendingPlayers.clear();
                        removePendingPlayers();
                    } break;
                }

@@ -169,4 +165,21 @@ public class BrowsablePlayerConnector {
            }
        };
    }

    private void removePendingPlayers() {
        for (BrowsedPlayerWrapper wrapper : mPendingPlayers) {
            if (DEBUG) Log.d(TAG, "Disconnecting " + wrapper.getPackageName());
            wrapper.disconnect();
        }
        mPendingPlayers.clear();
    }

    void cleanup() {
        if (mPendingPlayers.size() != 0) {
            Log.i(TAG, "Bluetooth turn off with " + mPendingPlayers.size() + " pending player(s)");
            mHandler.removeMessages(MSG_TIMEOUT);
            removePendingPlayers();
            mHandler = null;
        }
    }
}
+6 −2
Original line number Diff line number Diff line
@@ -89,6 +89,7 @@ public class MediaPlayerList {
    private int mActivePlayerId = NO_ACTIVE_PLAYER;

    private AvrcpTargetService.ListCallback mCallback;
    private BrowsablePlayerConnector mBrowsablePlayerConnector;

    interface MediaUpdateCallback {
        void run(MediaData data);
@@ -140,8 +141,8 @@ public class MediaPlayerList {
                    .getPackageManager()
                    .queryIntentServices(intent, PackageManager.MATCH_ALL);

        BrowsablePlayerConnector.connectToPlayers(mContext, mLooper, playerList,
                (List<BrowsedPlayerWrapper> players) -> {
        mBrowsablePlayerConnector = BrowsablePlayerConnector.connectToPlayers(mContext, mLooper,
                playerList, (List<BrowsedPlayerWrapper> players) -> {
                Log.i(TAG, "init: Browsable Player list size is " + players.size());

                // Check to see if the list has been cleaned up before this completed
@@ -196,6 +197,9 @@ public class MediaPlayerList {
        }
        mMediaPlayers.clear();

        if (mBrowsablePlayerConnector != null) {
            mBrowsablePlayerConnector.cleanup();
        }
        for (BrowsedPlayerWrapper player : mBrowsablePlayers.values()) {
            player.disconnect();
        }