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

Commit b1998d02 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 12210778 from 082a9169 to 24Q4-release

Change-Id: Ia2714080d27052c3effc1abc1f015401e2744320
parents 2e88a664 082a9169
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -122,7 +122,7 @@ interface IBluetooth
    int getRemoteClass(in BluetoothDevice device, in AttributionSource attributionSource);
    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
    List<ParcelUuid> getRemoteUuids(in BluetoothDevice device, in AttributionSource attributionSource);
    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true)")
    boolean fetchRemoteUuids(in BluetoothDevice device, in int transport, in AttributionSource attributionSource);
    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
    boolean sdpSearch(in BluetoothDevice device, in ParcelUuid uuid, in AttributionSource attributionSource);
+25 −0
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ static uint16_t getCurrentPlayerId();
static std::vector<MediaPlayerInfo> getMediaPlayerList();
using SetBrowsedPlayerCb = MediaInterface::SetBrowsedPlayerCallback;
static void setBrowsedPlayer(uint16_t player_id, SetBrowsedPlayerCb);
static uint16_t setAddressedPlayer(uint16_t player_id);
using GetFolderItemsCb = MediaInterface::FolderItemsCallback;
static void getFolderItems(uint16_t player_id, std::string media_id, GetFolderItemsCb cb);
static void playItem(uint16_t player_id, bool now_playing, std::string media_id);
@@ -146,10 +147,19 @@ public:
    getFolderItems(player_id, media_id, folder_cb);
  }

  void GetAddressedPlayer(GetAddressedPlayerCallback cb) override {
    uint16_t current_player = getCurrentPlayerId();
    cb.Run(current_player);
  }

  void SetBrowsedPlayer(uint16_t player_id, SetBrowsedPlayerCallback browse_cb) override {
    setBrowsedPlayer(player_id, browse_cb);
  }

  void SetAddressedPlayer(uint16_t player_id, SetAddressedPlayerCallback addressed_cb) override {
    addressed_cb.Run(setAddressedPlayer(player_id));
  }

  void RegisterUpdateCallback(MediaCallbacks* callback) override {
    // TODO(apanicke): Allow multiple registrations in the future
    mServiceCallbacks = callback;
@@ -209,6 +219,7 @@ static jmethodID method_getCurrentMediaId;
static jmethodID method_getNowPlayingList;

static jmethodID method_setBrowsedPlayer;
static jmethodID method_setAddressedPlayer;
static jmethodID method_getCurrentPlayerId;
static jmethodID method_getMediaPlayerList;
static jmethodID method_getFolderItemsRequest;
@@ -695,6 +706,19 @@ static void setBrowsedPlayerResponseNative(JNIEnv* env, jobject /* object */, ji
  set_browsed_player_cb.Run(success == JNI_TRUE, root, num_items);
}

static uint16_t setAddressedPlayer(uint16_t player_id) {
  log::debug("");
  std::shared_lock<std::shared_timed_mutex> lock(callbacks_mutex);
  CallbackEnv sCallbackEnv(__func__);
  if (!sCallbackEnv.valid() || !mJavaInterface) {
    return 0u;
  }

  jint new_player =
          sCallbackEnv->CallIntMethod(mJavaInterface, method_setAddressedPlayer, player_id);
  return static_cast<int>(new_player) & 0xFFFF;
}

static void getFolderItemsResponseNative(JNIEnv* env, jobject /* object */, jstring parent_id,
                                         jobject list) {
  log::debug("");
@@ -1065,6 +1089,7 @@ int register_com_android_bluetooth_avrcp_target(JNIEnv* env) {
          {"getCurrentPlayerId", "()I", &method_getCurrentPlayerId},
          {"getMediaPlayerList", "()Ljava/util/List;", &method_getMediaPlayerList},
          {"setBrowsedPlayer", "(I)V", &method_setBrowsedPlayer},
          {"setAddressedPlayer", "(I)I", &method_setAddressedPlayer},
          {"getFolderItemsRequest", "(ILjava/lang/String;)V", &method_getFolderItemsRequest},
          {"playItem", "(IZLjava/lang/String;)V", &method_playItem},
          {"setActiveDevice", "(Ljava/lang/String;)V", &method_setActiveDevice},
+1 −1
Original line number Diff line number Diff line
@@ -113,7 +113,7 @@ public class BluetoothObexTransport implements ObexTransport {
            return null;
        }
        String identityAddress =
                Flags.identityAddressNullIfUnknown()
                Flags.identityAddressNullIfNotKnown()
                        ? Utils.getBrEdrAddress(mSocket.getRemoteDevice())
                        : mSocket.getRemoteDevice().getIdentityAddress();
        return mSocket.getConnectionType() == BluetoothSocket.TYPE_RFCOMM
+1 −1
Original line number Diff line number Diff line
@@ -169,7 +169,7 @@ public class A2dpNativeInterface {
        if (device == null) {
            return Utils.getBytesFromAddress("00:00:00:00:00:00");
        }
        if (Flags.identityAddressNullIfUnknown()) {
        if (Flags.identityAddressNullIfNotKnown()) {
            return Utils.getByteBrEdrAddress(device);
        } else {
            return mAdapterService.getByteIdentityAddress(device);
+1 −1
Original line number Diff line number Diff line
@@ -81,7 +81,7 @@ public class A2dpSinkNativeInterface {
    }

    private byte[] getByteAddress(BluetoothDevice device) {
        if (Flags.identityAddressNullIfUnknown()) {
        if (Flags.identityAddressNullIfNotKnown()) {
            return Utils.getByteBrEdrAddress(device);
        } else {
            return mAdapterService.getByteIdentityAddress(device);
Loading