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

Commit af3dec5e authored by Prerepa Viswanadham's avatar Prerepa Viswanadham Committed by Android Git Automerger
Browse files

am 2792be93: OnLost/OnFound integration - onfound match is done in framework,...

am 2792be93: OnLost/OnFound integration - onfound match is done in framework, whereas hw signal is used to report onlost.

* commit '2792be930bb082fcd18ab47ea60fc723396144ba':
  OnLost/OnFound integration - onfound match is done in framework, whereas hw signal is used to report onlost.
parents a95cd4e5 d5324e41
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -124,8 +124,7 @@ public class BluetoothGattCallbackWrapper extends IBluetoothGattCallback.Stub {
    }

    @Override
    public void onFoundOrLost(boolean onFound, String address, int rssi, byte[] advData)
            throws RemoteException {
    public void onFoundOrLost(boolean onFound, ScanResult scanResult) throws RemoteException {
    }

}
+1 −2
Original line number Diff line number Diff line
@@ -69,6 +69,5 @@ oneway interface IBluetoothGattCallback {
                                  in AdvertiseSettings advertiseSettings);
    void onConfigureMTU(in String address, in int mtu, in int status);
    void onConnectionCongested(in String address, in boolean congested);
    void onFoundOrLost(in boolean onFound, in String address, in int rssi,
                             in byte[] advData);
    void onFoundOrLost(in boolean onFound, in ScanResult scanResult);
}
+18 −13
Original line number Diff line number Diff line
@@ -322,23 +322,28 @@ public final class BluetoothLeScanner {
        }

        @Override
        public void onFoundOrLost(boolean onFound, String address, int rssi,
                byte[] advData) {
        public void onFoundOrLost(final boolean onFound, final ScanResult scanResult) {
            if (DBG) {
                Log.d(TAG, "onFoundOrLost() - Device=" + address);
            }
            // ToDo: Fix issue with underlying reporting from chipset
            BluetoothDevice device = BluetoothAdapter.getDefaultAdapter().getRemoteDevice(
                    address);
            long scanNanos = SystemClock.elapsedRealtimeNanos();
            ScanResult result = new ScanResult(device, ScanRecord.parseFromBytes(advData), rssi,
                    scanNanos);
                Log.d(TAG, "onFoundOrLost() - onFound = " + onFound +
                        " " + scanResult.toString());
            }

            // Check null in case the scan has been stopped
            synchronized (this) {
                if (mClientIf <= 0) return;
            }
            Handler handler = new Handler(Looper.getMainLooper());
            handler.post(new Runnable() {
                    @Override
                public void run() {
                    if (onFound) {
                mScanCallback.onScanResult(ScanSettings.CALLBACK_TYPE_FIRST_MATCH, result);
                        mScanCallback.onScanResult(ScanSettings.CALLBACK_TYPE_FIRST_MATCH, scanResult);
                    } else {
                mScanCallback.onScanResult(ScanSettings.CALLBACK_TYPE_MATCH_LOST, result);
                        mScanCallback.onScanResult(ScanSettings.CALLBACK_TYPE_MATCH_LOST, scanResult);
                    }
                }
            });
        }
    }

    //TODO: move this api to a common util class.