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

Commit 3e09f14f authored by vich's avatar vich Committed by android-build-merger
Browse files

Merge "Disconnect pending player when turn bluetooth off"

am: f9b377f9

Change-Id: I061dace33f7a23a89552271e4314990ec43a32ba
parents 8815974d f9b377f9
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();
        }