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

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

Remove enable from PeriodicAdvertisingPariameters (1/2)

Instead of setting enable to true, one can just pass null
PeriodicAdvertisingParameters and achieve same result when starting the
set.
Passing the "enable" when updating the parameters make no sense, and
might be confusing.
Experience with "timeout" field, which was a part of AdvertiseSettings
show that merging fields that go into different HCI commands can cause
problems during processing, so keep enable as separate field.

Test: manual
Bug: 30622771
Change-Id: Ida02c59eb8433537179b4d22202fe745f8b4bb3e
parent d8d204d4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -386,7 +386,7 @@ public final class BluetoothLeAdvertiser {
            }

            boolean supportPeriodic = mBluetoothAdapter.isLePeriodicAdvertisingSupported();
            if (periodicParameters != null && periodicParameters.getEnable() && !supportPeriodic) {
            if (periodicParameters != null && !supportPeriodic) {
                throw new IllegalArgumentException(
                    "Controller does not support LE Periodic Advertising");
            }
+2 −20
Original line number Diff line number Diff line
@@ -29,27 +29,19 @@ public final class PeriodicAdvertisingParameters implements Parcelable {
    private static final int INTERVAL_MAX = 80;
    private static final int INTERVAL_MIN = 65519;

    private final boolean enable;
    private final boolean includeTxPower;
    private final int interval;

    private PeriodicAdvertisingParameters(boolean enable, boolean includeTxPower, int interval) {
        this.enable = enable;
    private PeriodicAdvertisingParameters(boolean includeTxPower, int interval) {
        this.includeTxPower = includeTxPower;
        this.interval = interval;
    }

    private PeriodicAdvertisingParameters(Parcel in) {
        enable = in.readInt() != 0 ? true : false;
        includeTxPower = in.readInt() != 0 ? true : false;
        interval = in.readInt();
    }

    /**
     * Returns whether the periodic advertising shall be enabled.
     */
    public boolean getEnable() { return enable; }

    /**
     * Returns whether the TX Power will be included.
     */
@@ -68,7 +60,6 @@ public final class PeriodicAdvertisingParameters implements Parcelable {

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(enable ? 1 : 0);
        dest.writeInt(includeTxPower ? 1 : 0);
        dest.writeInt(interval);
    }
@@ -89,17 +80,8 @@ public final class PeriodicAdvertisingParameters implements Parcelable {

    public static final class Builder {
        private boolean includeTxPower = false;
        private boolean enable = false;
        private int interval = INTERVAL_MAX;

        /**
         * Set whether the Periodic Advertising should be enabled for this set.
         */
        public Builder setEnable(boolean enable) {
            this.enable = enable;
            return this;
        }

        /**
         * Whether the transmission power level should be included in the periodic
         * packet.
@@ -128,7 +110,7 @@ public final class PeriodicAdvertisingParameters implements Parcelable {
         * Build the {@link AdvertisingSetParameters} object.
         */
        public PeriodicAdvertisingParameters build() {
            return new PeriodicAdvertisingParameters(enable, includeTxPower, interval);
            return new PeriodicAdvertisingParameters(includeTxPower, interval);
        }
    }
}