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

Commit d923771d authored by Jakub Pawlowski's avatar Jakub Pawlowski
Browse files

Add setScannable to AdvertisingSetParameters (2/2)

There must be a proper way to specify if advertisment is scannable, when
updating the parameters.

Test: manual
Bug: 30622771
Change-Id: I9e5a8967a594ccb245acc30b6a9bf6ef2ff260d1
parent b9954db5
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -1593,8 +1593,7 @@ static void advertiseCleanupNative(JNIEnv* env, jobject object) {
  }
}

static AdvertiseParameters parseParams(JNIEnv* env, jobject i,
                                       bool isScannable) {
static AdvertiseParameters parseParams(JNIEnv* env, jobject i) {
  AdvertiseParameters p;

  jclass clazz = env->GetObjectClass(i);
@@ -1602,6 +1601,8 @@ static AdvertiseParameters parseParams(JNIEnv* env, jobject i,

  methodId = env->GetMethodID(clazz, "isConnectable", "()Z");
  jboolean isConnectable = env->CallBooleanMethod(i, methodId);
  methodId = env->GetMethodID(clazz, "isScannable", "()Z");
  jboolean isScannable = env->CallBooleanMethod(i, methodId);
  methodId = env->GetMethodID(clazz, "isLegacy", "()Z");
  jboolean isLegacy = env->CallBooleanMethod(i, methodId);
  methodId = env->GetMethodID(clazz, "isAnonymous", "()Z");
@@ -1619,7 +1620,7 @@ static AdvertiseParameters parseParams(JNIEnv* env, jobject i,

  uint16_t props = 0;
  if (isConnectable) props |= 0x01;
  if (isScannable || (isLegacy && isConnectable)) props |= 0x02;
  if (isScannable) props |= 0x02;
  if (isLegacy) props |= 0x10;
  if (isAnonymous) props |= 0x20;
  if (includeTxPower) props |= 0x40;
@@ -1695,8 +1696,7 @@ static void startAdvertisingSetNative(JNIEnv* env, jobject object,
                                     scan_resp_data + scan_resp_len);
  env->ReleaseByteArrayElements(scan_resp, scan_resp_data, JNI_ABORT);

  AdvertiseParameters params =
      parseParams(env, parameters, (scan_resp_len != 0));
  AdvertiseParameters params = parseParams(env, parameters);
  PeriodicAdvertisingParameters periodicParams =
      parsePeriodicParams(env, periodic_parameters);

@@ -1785,9 +1785,7 @@ static void setAdvertisingParametersNative(JNIEnv* env, jobject object,
                                           jobject parameters) {
  if (!sGattIf) return;

  // TODO: must learn somehow wether scan response is set ?
  AdvertiseParameters params =
      parseParams(env, parameters, false /*TODO: put proper value here!!!*/);
  AdvertiseParameters params = parseParams(env, parameters);
  sGattIf->advertiser->SetParameters(
      advertiser_id, params,
      base::Bind(setAdvertisingParametersNativeCb, advertiser_id));