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

Commit 245ce4d0 authored by Jakub Pawlowski's avatar Jakub Pawlowski Committed by Gerrit Code Review
Browse files

Merge changes from topic "cherrypick-BT-result-storage-descriptor"

* changes:
  Bluetooth: deprecate TruncatedFilter and ResultStorageDescriptor
  Get rid of ResultStorageDescriptor in startScan
parents 6b45a9a7 6ea20906
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -1752,17 +1752,17 @@ package android.bluetooth.le {
  public final class BluetoothLeScanner {
    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADMIN, android.Manifest.permission.UPDATE_DEVICE_STATS}) public void startScanFromSource(android.os.WorkSource, android.bluetooth.le.ScanCallback);
    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADMIN, android.Manifest.permission.UPDATE_DEVICE_STATS}) public void startScanFromSource(java.util.List<android.bluetooth.le.ScanFilter>, android.bluetooth.le.ScanSettings, android.os.WorkSource, android.bluetooth.le.ScanCallback);
    method public void startTruncatedScan(java.util.List<android.bluetooth.le.TruncatedFilter>, android.bluetooth.le.ScanSettings, android.bluetooth.le.ScanCallback);
    method @Deprecated public void startTruncatedScan(java.util.List<android.bluetooth.le.TruncatedFilter>, android.bluetooth.le.ScanSettings, android.bluetooth.le.ScanCallback);
  }
  public final class ResultStorageDescriptor implements android.os.Parcelable {
    ctor public ResultStorageDescriptor(int, int, int);
    method public int describeContents();
    method public int getLength();
    method public int getOffset();
    method public int getType();
    method public void writeToParcel(android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.ResultStorageDescriptor> CREATOR;
  @Deprecated public final class ResultStorageDescriptor implements android.os.Parcelable {
    ctor @Deprecated public ResultStorageDescriptor(int, int, int);
    method @Deprecated public int describeContents();
    method @Deprecated public int getLength();
    method @Deprecated public int getOffset();
    method @Deprecated public int getType();
    method @Deprecated public void writeToParcel(android.os.Parcel, int);
    field @Deprecated @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.ResultStorageDescriptor> CREATOR;
  }
  public final class ScanFilter implements android.os.Parcelable {
@@ -1786,10 +1786,10 @@ package android.bluetooth.le {
    method public android.bluetooth.le.ScanSettings.Builder setScanResultType(int);
  }
  public final class TruncatedFilter {
    ctor public TruncatedFilter(android.bluetooth.le.ScanFilter, java.util.List<android.bluetooth.le.ResultStorageDescriptor>);
    method public android.bluetooth.le.ScanFilter getFilter();
    method public java.util.List<android.bluetooth.le.ResultStorageDescriptor> getStorageDescriptors();
  @Deprecated public final class TruncatedFilter {
    ctor @Deprecated public TruncatedFilter(android.bluetooth.le.ScanFilter, java.util.List<android.bluetooth.le.ResultStorageDescriptor>);
    method @Deprecated public android.bluetooth.le.ScanFilter getFilter();
    method @Deprecated public java.util.List<android.bluetooth.le.ResultStorageDescriptor> getStorageDescriptors();
  }
}
+11 −15
Original line number Diff line number Diff line
@@ -144,7 +144,7 @@ public final class BluetoothLeScanner {
    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
    public void startScan(List<ScanFilter> filters, ScanSettings settings,
            final ScanCallback callback) {
        startScan(filters, settings, null, callback, /*callbackIntent=*/ null, null);
        startScan(filters, settings, null, callback, /*callbackIntent=*/ null);
    }

    /**
@@ -175,7 +175,7 @@ public final class BluetoothLeScanner {
            @NonNull PendingIntent callbackIntent) {
        return startScan(filters,
                settings != null ? settings : new ScanSettings.Builder().build(),
                null, null, callbackIntent, null);
                null, null, callbackIntent);
    }

    /**
@@ -210,13 +210,12 @@ public final class BluetoothLeScanner {
            Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.UPDATE_DEVICE_STATS})
    public void startScanFromSource(List<ScanFilter> filters, ScanSettings settings,
            final WorkSource workSource, final ScanCallback callback) {
        startScan(filters, settings, workSource, callback, null, null);
        startScan(filters, settings, workSource, callback, null);
    }

    private int startScan(List<ScanFilter> filters, ScanSettings settings,
            final WorkSource workSource, final ScanCallback callback,
            final PendingIntent callbackIntent,
            List<List<ResultStorageDescriptor>> resultStorages) {
            final PendingIntent callbackIntent) {
        BluetoothLeUtils.checkAdapterStateOn(mBluetoothAdapter);
        if (callback == null && callbackIntent == null) {
            throw new IllegalArgumentException("callback is null");
@@ -252,7 +251,7 @@ public final class BluetoothLeScanner {
            }
            if (callback != null) {
                BleScanCallbackWrapper wrapper = new BleScanCallbackWrapper(gatt, filters,
                        settings, workSource, callback, resultStorages);
                        settings, workSource, callback);
                wrapper.startRegistration();
            } else {
                try {
@@ -328,20 +327,20 @@ public final class BluetoothLeScanner {
    /**
     * Start truncated scan.
     *
     * @deprecated this is not used anywhere
     *
     * @hide
     */
    @Deprecated
    @SystemApi
    public void startTruncatedScan(List<TruncatedFilter> truncatedFilters, ScanSettings settings,
            final ScanCallback callback) {
        int filterSize = truncatedFilters.size();
        List<ScanFilter> scanFilters = new ArrayList<ScanFilter>(filterSize);
        List<List<ResultStorageDescriptor>> scanStorages =
                new ArrayList<List<ResultStorageDescriptor>>(filterSize);
        for (TruncatedFilter filter : truncatedFilters) {
            scanFilters.add(filter.getFilter());
            scanStorages.add(filter.getStorageDescriptors());
        }
        startScan(scanFilters, settings, null, callback, null, scanStorages);
        startScan(scanFilters, settings, null, callback, null);
    }

    /**
@@ -364,7 +363,6 @@ public final class BluetoothLeScanner {
        private final WorkSource mWorkSource;
        private ScanSettings mSettings;
        private IBluetoothGatt mBluetoothGatt;
        private List<List<ResultStorageDescriptor>> mResultStorages;

        // mLeHandle 0: not registered
        // -2: registration failed because app is scanning to frequently
@@ -374,15 +372,13 @@ public final class BluetoothLeScanner {

        public BleScanCallbackWrapper(IBluetoothGatt bluetoothGatt,
                List<ScanFilter> filters, ScanSettings settings,
                WorkSource workSource, ScanCallback scanCallback,
                List<List<ResultStorageDescriptor>> resultStorages) {
                WorkSource workSource, ScanCallback scanCallback) {
            mBluetoothGatt = bluetoothGatt;
            mFilters = filters;
            mSettings = settings;
            mWorkSource = workSource;
            mScanCallback = scanCallback;
            mScannerId = 0;
            mResultStorages = resultStorages;
        }

        public void startRegistration() {
@@ -458,7 +454,7 @@ public final class BluetoothLeScanner {
                        } else {
                            mScannerId = scannerId;
                            mBluetoothGatt.startScan(mScannerId, mSettings, mFilters,
                                    mResultStorages, mOpPackageName, mFeatureId);
                                    mOpPackageName, mFeatureId);
                        }
                    } catch (RemoteException e) {
                        Log.e(TAG, "fail to start le scan: " + e);
+3 −0
Original line number Diff line number Diff line
@@ -23,8 +23,11 @@ import android.os.Parcelable;
/**
 * Describes the way to store scan result.
 *
 * @deprecated this is not used anywhere
 *
 * @hide
 */
@Deprecated
@SystemApi
public final class ResultStorageDescriptor implements Parcelable {
    private int mType;
+3 −0
Original line number Diff line number Diff line
@@ -23,8 +23,11 @@ import java.util.List;
/**
 * A special scan filter that lets the client decide how the scan record should be stored.
 *
 * @deprecated this is not used anywhere
 *
 * @hide
 */
@Deprecated
@SystemApi
public final class TruncatedFilter {
    private final ScanFilter mFilter;