Loading android/app/src/com/android/bluetooth/audio_util/MediaPlayerList.java +12 −3 Original line number Diff line number Diff line Loading @@ -385,14 +385,23 @@ public class MediaPlayerList { } int playerIndex = Integer.parseInt(mediaId.substring(0, 2)); String itemId = mediaId.substring(2); if (!haveMediaBrowser(playerIndex)) { e("playFolderItem: Do not have the a browsable player with ID " + playerIndex); return; } mBrowsablePlayers.get(playerIndex).playItem(itemId); BrowsedPlayerWrapper wrapper = mBrowsablePlayers.get(playerIndex); String itemId = mediaId.substring(2); if (TextUtils.isEmpty(itemId)) { itemId = wrapper.getRootId(); if (TextUtils.isEmpty(itemId)) { e("playFolderItem: Failed to start playback with an empty media id."); return; } Log.i(TAG, "playFolderItem: Empty media id, trying with the root id for " + wrapper.getPackageName()); } wrapper.playItem(itemId); } void getFolderItemsMediaPlayerList(GetFolderItemsCallback cb) { Loading android/app/src/com/android/bluetooth/avrcp/AvrcpNativeInterface.java +1 −1 Original line number Diff line number Diff line Loading @@ -196,7 +196,7 @@ public class AvrcpNativeInterface { } void playItem(int playerId, boolean nowPlaying, String mediaId) { d("playItem: playerId=" + playerId + " nowPlaying=" + nowPlaying + " mediaId" + mediaId); d("playItem: playerId=" + playerId + " nowPlaying=" + nowPlaying + " mediaId=" + mediaId); if (mAvrcpService == null) { Log.d(TAG, "playItem: AvrcpTargetService is null"); return; Loading apex/Android.bp +12 −12 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ package { } linker_config { name: "bluetooth-linker-config", name: "btservices-linker-config", src: "linker.config.json", installable: false, } Loading @@ -19,8 +19,8 @@ apex { name: "com.android.bluetooth", defaults: ["t-launched-apex-module"], manifest: "apex_manifest.json", bootclasspath_fragments: ["com.android.bluetooth-bootclasspath-fragment"], systemserverclasspath_fragments: ["com.android.bluetooth-systemserverclasspath-fragment"], bootclasspath_fragments: ["com.android.btservices-bootclasspath-fragment"], systemserverclasspath_fragments: ["com.android.btservices-systemserverclasspath-fragment"], apps: ["Bluetooth"], multilib: { Loading @@ -37,7 +37,7 @@ apex { "audio_set_configurations_json", "audio_set_scenarios_bfbs", "audio_set_scenarios_json", "bluetooth-linker-config", "btservices-linker-config", "bt_did.conf", "bt_stack.conf", "privapp_allowlist_com.android.bluetooth.xml", Loading @@ -53,8 +53,8 @@ apex { name: "com.android.btservices", defaults: ["t-launched-apex-module"], manifest: "apex_manifest.json", bootclasspath_fragments: ["com.android.bluetooth-bootclasspath-fragment"], systemserverclasspath_fragments: ["com.android.bluetooth-systemserverclasspath-fragment"], bootclasspath_fragments: ["com.android.btservices-bootclasspath-fragment"], systemserverclasspath_fragments: ["com.android.btservices-systemserverclasspath-fragment"], apps: ["Bluetooth"], multilib: { Loading @@ -71,7 +71,7 @@ apex { "audio_set_configurations_json", "audio_set_scenarios_bfbs", "audio_set_scenarios_json", "bluetooth-linker-config", "btservices-linker-config", "bt_did.conf", "bt_stack.conf", "privapp_allowlist_com.android.bluetooth.xml", Loading @@ -94,14 +94,14 @@ android_app_certificate { } sdk { name: "bluetooth-module-sdk", bootclasspath_fragments: ["com.android.bluetooth-bootclasspath-fragment"], systemserverclasspath_fragments: ["com.android.bluetooth-systemserverclasspath-fragment"], name: "btservices-module-sdk", bootclasspath_fragments: ["com.android.btservices-bootclasspath-fragment"], systemserverclasspath_fragments: ["com.android.btservices-systemserverclasspath-fragment"], } // Encapsulate the contributions made by the com.android.bluetooth to the bootclasspath. bootclasspath_fragment { name: "com.android.bluetooth-bootclasspath-fragment", name: "com.android.btservices-bootclasspath-fragment", contents: ["framework-bluetooth"], apex_available: ["com.android.bluetooth"], Loading Loading @@ -151,7 +151,7 @@ bootclasspath_fragment { } systemserverclasspath_fragment { name: "com.android.bluetooth-systemserverclasspath-fragment", name: "com.android.btservices-systemserverclasspath-fragment", standalone_contents: ["service-bluetooth"], apex_available: ["com.android.bluetooth"], } apex/apex_manifest.json +6 −1 Original line number Diff line number Diff line { "name": "com.android.bluetooth", "version": 339990000, "provideNativeLibs": [ ], "provideSharedApexLibs": false, "requireSharedApexLibs": [ ], "name": "com.android.btservices", "requireNativeLibs": [ "libaptX_encoder.so", "libaptXHD_encoder.so" Loading system/audio_hal_interface/aidl/client_interface_aidl.cc +8 −2 Original line number Diff line number Diff line Loading @@ -274,8 +274,14 @@ int BluetoothAudioClientInterface::StartSession() { auto aidl_retval = provider_->startSession( stack_if, transport_->GetAudioConfiguration(), latency_modes, &mq_desc); if (!aidl_retval.isOk()) { if (aidl_retval.getExceptionCode() == EX_ILLEGAL_ARGUMENT) { LOG(ERROR) << __func__ << ": BluetoothAudioHal Error: " << aidl_retval.getDescription() << ", audioConfig=" << transport_->GetAudioConfiguration().toString(); } else { LOG(FATAL) << __func__ << ": BluetoothAudioHal failure: " << aidl_retval.getDescription(); } return -EPROTO; } data_mq.reset(new DataMQ(mq_desc)); Loading Loading
android/app/src/com/android/bluetooth/audio_util/MediaPlayerList.java +12 −3 Original line number Diff line number Diff line Loading @@ -385,14 +385,23 @@ public class MediaPlayerList { } int playerIndex = Integer.parseInt(mediaId.substring(0, 2)); String itemId = mediaId.substring(2); if (!haveMediaBrowser(playerIndex)) { e("playFolderItem: Do not have the a browsable player with ID " + playerIndex); return; } mBrowsablePlayers.get(playerIndex).playItem(itemId); BrowsedPlayerWrapper wrapper = mBrowsablePlayers.get(playerIndex); String itemId = mediaId.substring(2); if (TextUtils.isEmpty(itemId)) { itemId = wrapper.getRootId(); if (TextUtils.isEmpty(itemId)) { e("playFolderItem: Failed to start playback with an empty media id."); return; } Log.i(TAG, "playFolderItem: Empty media id, trying with the root id for " + wrapper.getPackageName()); } wrapper.playItem(itemId); } void getFolderItemsMediaPlayerList(GetFolderItemsCallback cb) { Loading
android/app/src/com/android/bluetooth/avrcp/AvrcpNativeInterface.java +1 −1 Original line number Diff line number Diff line Loading @@ -196,7 +196,7 @@ public class AvrcpNativeInterface { } void playItem(int playerId, boolean nowPlaying, String mediaId) { d("playItem: playerId=" + playerId + " nowPlaying=" + nowPlaying + " mediaId" + mediaId); d("playItem: playerId=" + playerId + " nowPlaying=" + nowPlaying + " mediaId=" + mediaId); if (mAvrcpService == null) { Log.d(TAG, "playItem: AvrcpTargetService is null"); return; Loading
apex/Android.bp +12 −12 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ package { } linker_config { name: "bluetooth-linker-config", name: "btservices-linker-config", src: "linker.config.json", installable: false, } Loading @@ -19,8 +19,8 @@ apex { name: "com.android.bluetooth", defaults: ["t-launched-apex-module"], manifest: "apex_manifest.json", bootclasspath_fragments: ["com.android.bluetooth-bootclasspath-fragment"], systemserverclasspath_fragments: ["com.android.bluetooth-systemserverclasspath-fragment"], bootclasspath_fragments: ["com.android.btservices-bootclasspath-fragment"], systemserverclasspath_fragments: ["com.android.btservices-systemserverclasspath-fragment"], apps: ["Bluetooth"], multilib: { Loading @@ -37,7 +37,7 @@ apex { "audio_set_configurations_json", "audio_set_scenarios_bfbs", "audio_set_scenarios_json", "bluetooth-linker-config", "btservices-linker-config", "bt_did.conf", "bt_stack.conf", "privapp_allowlist_com.android.bluetooth.xml", Loading @@ -53,8 +53,8 @@ apex { name: "com.android.btservices", defaults: ["t-launched-apex-module"], manifest: "apex_manifest.json", bootclasspath_fragments: ["com.android.bluetooth-bootclasspath-fragment"], systemserverclasspath_fragments: ["com.android.bluetooth-systemserverclasspath-fragment"], bootclasspath_fragments: ["com.android.btservices-bootclasspath-fragment"], systemserverclasspath_fragments: ["com.android.btservices-systemserverclasspath-fragment"], apps: ["Bluetooth"], multilib: { Loading @@ -71,7 +71,7 @@ apex { "audio_set_configurations_json", "audio_set_scenarios_bfbs", "audio_set_scenarios_json", "bluetooth-linker-config", "btservices-linker-config", "bt_did.conf", "bt_stack.conf", "privapp_allowlist_com.android.bluetooth.xml", Loading @@ -94,14 +94,14 @@ android_app_certificate { } sdk { name: "bluetooth-module-sdk", bootclasspath_fragments: ["com.android.bluetooth-bootclasspath-fragment"], systemserverclasspath_fragments: ["com.android.bluetooth-systemserverclasspath-fragment"], name: "btservices-module-sdk", bootclasspath_fragments: ["com.android.btservices-bootclasspath-fragment"], systemserverclasspath_fragments: ["com.android.btservices-systemserverclasspath-fragment"], } // Encapsulate the contributions made by the com.android.bluetooth to the bootclasspath. bootclasspath_fragment { name: "com.android.bluetooth-bootclasspath-fragment", name: "com.android.btservices-bootclasspath-fragment", contents: ["framework-bluetooth"], apex_available: ["com.android.bluetooth"], Loading Loading @@ -151,7 +151,7 @@ bootclasspath_fragment { } systemserverclasspath_fragment { name: "com.android.bluetooth-systemserverclasspath-fragment", name: "com.android.btservices-systemserverclasspath-fragment", standalone_contents: ["service-bluetooth"], apex_available: ["com.android.bluetooth"], }
apex/apex_manifest.json +6 −1 Original line number Diff line number Diff line { "name": "com.android.bluetooth", "version": 339990000, "provideNativeLibs": [ ], "provideSharedApexLibs": false, "requireSharedApexLibs": [ ], "name": "com.android.btservices", "requireNativeLibs": [ "libaptX_encoder.so", "libaptXHD_encoder.so" Loading
system/audio_hal_interface/aidl/client_interface_aidl.cc +8 −2 Original line number Diff line number Diff line Loading @@ -274,8 +274,14 @@ int BluetoothAudioClientInterface::StartSession() { auto aidl_retval = provider_->startSession( stack_if, transport_->GetAudioConfiguration(), latency_modes, &mq_desc); if (!aidl_retval.isOk()) { if (aidl_retval.getExceptionCode() == EX_ILLEGAL_ARGUMENT) { LOG(ERROR) << __func__ << ": BluetoothAudioHal Error: " << aidl_retval.getDescription() << ", audioConfig=" << transport_->GetAudioConfiguration().toString(); } else { LOG(FATAL) << __func__ << ": BluetoothAudioHal failure: " << aidl_retval.getDescription(); } return -EPROTO; } data_mq.reset(new DataMQ(mq_desc)); Loading