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

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

Merge "Disconnect pending player when turn bluetooth off"

parents 828b7c34 5fccde01
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();
        }