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

Commit 50a907fe authored by Martin Brabham's avatar Martin Brabham Committed by Automerger Merge Worker
Browse files

OOB: Return local adapter name in generated OOB Data am: f78537af

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Bluetooth/+/15162889

Change-Id: I9152aa8a7e57dbdaa0710e06cd0ebb3166dfa23f
parents 73d7eb6b f78537af
Loading
Loading
Loading
Loading
+38 −0
Original line number Diff line number Diff line
@@ -436,6 +436,25 @@ static jobject createClassicOobDataObject(JNIEnv* env, bt_oob_data_t oob_data) {
  oobDataClassicBuilder =
      env->CallObjectMethod(oobDataClassicBuilder, setRMethod, randomizerHash);

  jmethodID setNameMethod =
      env->GetMethodID(classicBuilderClass, "setDeviceName",
                       "([B)Landroid/bluetooth/OobData$ClassicBuilder;");

  int name_char_count = 0;
  for (int i = 0; i < OOB_NAME_MAX_SIZE; i++) {
    if (oob_data.device_name[i] == 0) {
      name_char_count = i;
      break;
    }
  }

  jbyteArray deviceName = env->NewByteArray(name_char_count);
  env->SetByteArrayRegion(deviceName, 0, name_char_count,
                          reinterpret_cast<jbyte*>(oob_data.device_name));

  oobDataClassicBuilder =
      env->CallObjectMethod(oobDataClassicBuilder, setNameMethod, deviceName);

  jmethodID buildMethod = env->GetMethodID(classicBuilderClass, "build",
                                           "()Landroid/bluetooth/OobData;");

@@ -473,6 +492,25 @@ static jobject createLeOobDataObject(JNIEnv* env, bt_oob_data_t oob_data) {
  oobDataLeBuilder =
      env->CallObjectMethod(oobDataLeBuilder, setRMethod, randomizerHash);

  jmethodID setNameMethod =
      env->GetMethodID(leBuilderClass, "setDeviceName",
                       "([B)Landroid/bluetooth/OobData$LeBuilder;");

  int name_char_count = 0;
  for (int i = 0; i < OOB_NAME_MAX_SIZE; i++) {
    if (oob_data.device_name[i] == 0) {
      name_char_count = i;
      break;
    }
  }

  jbyteArray deviceName = env->NewByteArray(name_char_count);
  env->SetByteArrayRegion(deviceName, 0, name_char_count,
                          reinterpret_cast<jbyte*>(oob_data.device_name));

  oobDataLeBuilder =
      env->CallObjectMethod(oobDataLeBuilder, setNameMethod, deviceName);

  jmethodID buildMethod = env->GetMethodID(leBuilderClass, "build",
                                           "()Landroid/bluetooth/OobData;");