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

Commit 433c384b authored by Marie Janssen's avatar Marie Janssen Committed by Gerrit Code Review
Browse files

Merge "AVRCP: Don't send notifications in callbacks"

parents bc24ab0e 458b66ca
Loading
Loading
Loading
Loading
+33 −14
Original line number Original line Diff line number Diff line
@@ -156,6 +156,9 @@ public final class Avrcp {
    private static final int MSG_REWIND = 19;
    private static final int MSG_REWIND = 19;
    private static final int MSG_CHANGE_PLAY_POS = 20;
    private static final int MSG_CHANGE_PLAY_POS = 20;
    private static final int MSG_SET_A2DP_AUDIO_STATE = 21;
    private static final int MSG_SET_A2DP_AUDIO_STATE = 21;
    private static final int MSG_ADDRESSED_PLAYER_CHANGED_RSP = 22;
    private static final int MSG_AVAILABLE_PLAYERS_CHANGED_RSP = 23;
    private static final int MSG_NOW_PLAYING_CHANGED_RSP = 24;


    private static final int BUTTON_TIMEOUT_TIME = 2000;
    private static final int BUTTON_TIMEOUT_TIME = 2000;
    private static final int BASE_SKIP_AMOUNT = 2000;
    private static final int BASE_SKIP_AMOUNT = 2000;
@@ -358,12 +361,7 @@ public final class Avrcp {


            Log.v(TAG, "onQueueChanged: NowPlaying list changed, Queue Size = "+ queue.size());
            Log.v(TAG, "onQueueChanged: NowPlaying list changed, Queue Size = "+ queue.size());
            mAddressedMediaPlayer.updateNowPlayingList(queue);
            mAddressedMediaPlayer.updateNowPlayingList(queue);

            mHandler.sendEmptyMessage(MSG_NOW_PLAYING_CHANGED_RSP);
            /* sent notification to remote for NowPlayingList changed */
            if(!registerNotificationRspNowPlayingChangedNative(
                    AvrcpConstants.NOTIFICATION_TYPE_CHANGED)){
                Log.e(TAG, "onQueueChanged-registerNotificationRspNowPlayingChangedNative failed");
            }
        }
        }
    }
    }


@@ -429,6 +427,32 @@ public final class Avrcp {
                processRegisterNotification((byte[]) msg.obj, msg.arg1, msg.arg2);
                processRegisterNotification((byte[]) msg.obj, msg.arg1, msg.arg2);
                break;
                break;


            case MSG_AVAILABLE_PLAYERS_CHANGED_RSP:
                if (DEBUG) Log.v(TAG, "MSG_AVAILABLE_PLAYERS_CHANGED_RSP");
                removeMessages(MSG_AVAILABLE_PLAYERS_CHANGED_RSP);
                registerNotificationRspAvalPlayerChangedNative(
                        AvrcpConstants.NOTIFICATION_TYPE_CHANGED);
                break;

            case MSG_NOW_PLAYING_CHANGED_RSP:
                if (DEBUG) Log.v(TAG, "MSG_NOW_PLAYING_CHANGED_RSP");
                removeMessages(MSG_NOW_PLAYING_CHANGED_RSP);
                registerNotificationRspNowPlayingChangedNative(
                        AvrcpConstants.NOTIFICATION_TYPE_CHANGED);
                break;

            case MSG_ADDRESSED_PLAYER_CHANGED_RSP:
                if (DEBUG)
                    Log.v(TAG, "MSG_ADDRESSED_PLAYER_CHANGED_RSP: newAddrPlayer = " + msg.arg1);
                // Later addressed players override earlier ones.
                if (hasMessages(MSG_ADDRESSED_PLAYER_CHANGED_RSP)) {
                    Log.i(TAG, "MSG_ADDRESSED_PLAYER_CHANGED_RSP: skip, more changes in queue");
                    break;
                }
                registerNotificationRspAddrPlayerChangedNative(
                        AvrcpConstants.NOTIFICATION_TYPE_CHANGED, msg.arg1, sUIDCounter);
                break;

            case MSG_PLAY_INTERVAL_TIMEOUT:
            case MSG_PLAY_INTERVAL_TIMEOUT:
                if (DEBUG) Log.v(TAG, "MSG_PLAY_INTERVAL_TIMEOUT");
                if (DEBUG) Log.v(TAG, "MSG_PLAY_INTERVAL_TIMEOUT");
                sendPlayPosNotificationRsp(false);
                sendPlayPosNotificationRsp(false);
@@ -1618,18 +1642,13 @@ public final class Avrcp {


        private void sendAddressedPlayerChanged(int newAddrPlayerID) {
        private void sendAddressedPlayerChanged(int newAddrPlayerID) {
            if (DEBUG) Log.d(TAG, "sendAddressedPlayerChanged: new PlayerID=" + newAddrPlayerID);
            if (DEBUG) Log.d(TAG, "sendAddressedPlayerChanged: new PlayerID=" + newAddrPlayerID);

            mHandler.obtainMessage(MSG_ADDRESSED_PLAYER_CHANGED_RSP, newAddrPlayerID, 0)
            /* notify remote addressed player changed */
                    .sendToTarget();
            registerNotificationRspAddrPlayerChangedNative(
                    AvrcpConstants.NOTIFICATION_TYPE_CHANGED, newAddrPlayerID, sUIDCounter);
        }
        }


        private void sendAvailablePlayersChanged() {
        private void sendAvailablePlayersChanged() {
            if (DEBUG) Log.d(TAG, "sendAvailablePlayersChanged");
            if (DEBUG) Log.d(TAG, "sendAvailablePlayersChanged");

            mHandler.sendEmptyMessage(MSG_AVAILABLE_PLAYERS_CHANGED_RSP);
            /* Notify remote available players changed */
            registerNotificationRspAvalPlayerChangedNative(
                    AvrcpConstants.NOTIFICATION_TYPE_CHANGED);
        }
        }


        private boolean isAddressedPlayerChanged(List<MediaController> mediaControllerList) {
        private boolean isAddressedPlayerChanged(List<MediaController> mediaControllerList) {