Commit Graph
139 Commits
Author SHA1 Message Date
Janusz Sobczak 3cf20ee3bc Store metadata in FastPairDevice
Add DeviceMetadata to FastPairDevice after downloading it.
It simplifies the code and prevents fetching the same metadata several times.
FastPairDataEncryptorImpl does not download the metadata anymore. Metadata
must have already been downloaded, otherwise we wouldn't know what FP protocol
to use.

PiperOrigin-RevId: 542490742
2023-06-22 01:48:56 -07:00
Qin Wang e4b12dbd80 Interface for passing HTTP Responses/Requests to observers
PiperOrigin-RevId: 542402792
2023-06-21 17:06:23 -07:00
Janusz Sobczak 20acd4eeb9 Add initial pairing in scalable seeker
PiperOrigin-RevId: 541034178
2023-06-16 16:14:14 -07:00
Janusz Sobczak 4914cbc2f9 Set FastPairDevice version
PiperOrigin-RevId: 541030067
2023-06-16 16:00:31 -07:00
Qin Wang 4b13033389 Add fast pair proto to third_party/nearby/fastpair
PiperOrigin-RevId: 540977348
2023-06-16 13:09:38 -07:00
hai007 b5f1added4 Adding components for binding the C++ libraries with flutter app
- Branch class Listener from google3/location/nearby/cpp/sharing/clients/dart/platform/lib/listener.dart for further use of listening the change from notification controller.
- Create Device Metadata to store the device information relating to UI showing.
- Create binding class to bind C++ libraries to dart language.

PiperOrigin-RevId: 540644654
2023-06-15 11:44:11 -07:00
hai007 87fd2f130a Remove redundant design of fast pair wrapper.
PiperOrigin-RevId: 540410011
2023-06-14 16:18:48 -07:00
Janusz Sobczak c4139c83b0 Use RobustGattClient
PiperOrigin-RevId: 540060033
2023-06-13 13:42:19 -07:00
Qin Wang e20fb4f75d Add screen locked listener for fast pair windows
PiperOrigin-RevId: 540038338
2023-06-13 12:26:20 -07:00
hai007 5efbbe4a40 Connect UI related key services in mediator to flutter app. The whole fast pair libraries are in C++ language while flutter app is in dart language. That is, the purpose of adapter is connecting dart (flutter app) and c++ (Fast Pair libraries).
PiperOrigin-RevId: 540013256
2023-06-13 10:58:48 -07:00
Janusz Sobczak ca60afa007 Add robust gatt client
PiperOrigin-RevId: 539817203
2023-06-12 18:29:59 -07:00
hai007 589c126725 Create dart proto for transferring the data from C++ to flutter app.
- callback: transfer device C++ proto to dart proto
 - device: transfer metadata that get from the observer to dart proto
 - enum: transfer Discovery Action class to dart proto

PiperOrigin-RevId: 538935072
2023-06-08 17:36:11 -07:00
Guogang Li ae900f0baf Added flag to enable GATT on non-extended device
PiperOrigin-RevId: 538851144
2023-06-08 11:56:24 -07:00
Chun Zhang e101795cac Add Fast Pair Switches.
PiperOrigin-RevId: 538605609
2023-06-07 15:17:00 -07:00
hai007 4095b7978d Add Mediator Factory to avoid creating variables other than mediator in further adapter. The main purpose of the adapter is connecting dart (flutter app) and c++ (Fast Pair libraries).
PiperOrigin-RevId: 538604362
2023-06-07 15:12:21 -07:00
Chun Zhang 2027fed32f Add Fast Pair Preferences.
PiperOrigin-RevId: 538597935
2023-06-07 14:48:06 -07:00
Qin Wang c786b07fcf Add pair_broker to FastPairMediator/FastPairSeeker
PiperOrigin-RevId: 538592398
2023-06-07 14:27:29 -07:00
Qin Wang ba740c9a5c Implement RetroactivePairingDetector
PiperOrigin-RevId: 538319791
2023-06-06 16:18:38 -07:00
hai007 aefef91114 Add UI Discovery check and show into Mediator.
PiperOrigin-RevId: 538000396
2023-06-05 15:43:24 -07:00
Qin Wang 94b3263b63 Implement PairerBroker for fast pair windows
PiperOrigin-RevId: 537982117
2023-06-05 14:29:36 -07:00
Qin Wang 3dd893dd4c Implement FastPairPairer to handle the pairing process
PiperOrigin-RevId: 537124512
2023-06-01 14:07:22 -07:00
Janusz Sobczak ddbb711b7b Add InitialPair plugin
Creates plugins/ directory which will store internal plugins used for admin
tasks and testing. In this CL
* FakeFastPairPlugin for tests
* InitalPairPlugin - simple plugin that triggers Initial Pair flow

PiperOrigin-RevId: 536775192
2023-05-31 11:36:00 -07:00
Suet-Fei Li 7aa1d852f1 Use public link for MessageStream.
PiperOrigin-RevId: 536516027
2023-05-30 14:52:10 -07:00
Janusz Sobczak 82b5e10d5b Implement StartFastPairScan
PiperOrigin-RevId: 536487662
2023-05-30 13:08:31 -07:00
Suet-fei Li 9e37ea08be . 2023-05-27 01:08:14 +00:00
Janusz Sobczak 3adb98a5ff Introduce scanning sessions
FastPairScanner::ScanningSession and ScannerBroker::ScanningSession separate
the lifetime of FastPairScanner/ScannerBroker from the lifetime of scanning
sessions. This simplifies the cleanup.
PiperOrigin-RevId: 535675988
2023-05-26 11:50:54 -07:00
Chun Zhang 4596f32499 Adds Fast Pair account key related proto to communicate with Nearby Service.
PiperOrigin-RevId: 535415537
2023-05-25 15:53:17 -07:00
Janusz Sobczak 5bad45aed1 Use FastPairDeviceRepository in FastPairSevice
PiperOrigin-RevId: 535386036
2023-05-25 14:25:41 -07:00
Qin Wang 55750a0843 Write Accountkey to remote device via GATT connection
PiperOrigin-RevId: 534992810
2023-05-24 14:59:40 -07:00
Qin Wang 6b08c4dda7 Data Parse for subsequent pairing non-discoverable advertisement
PiperOrigin-RevId: 534929577
2023-05-24 11:57:58 -07:00
Qin Wang 1d5abfcc0f Create fast pair data encryptor with Accountkey
PiperOrigin-RevId: 534908947
2023-05-24 11:04:41 -07:00
Janusz Sobczak b80426a043 Inject SingleThreadExecutor in scanning classes
The goal is to use the same background thread for callbacks whenever possible.
It should simplify the locking.

PiperOrigin-RevId: 534632495
2023-05-23 18:34:14 -07:00
Janusz Sobczak 43291da5fd Define scalable seeker API
Defines the scalable seeker skeleton
* FastPairService - singleton FP service instance
* FastPairSeeker - FP interface for plugins
* FastPairPlugin - plugin interface

PiperOrigin-RevId: 534623965
2023-05-23 18:01:27 -07:00
Janusz Sobczak c2fc33038c Define FastPairDeviceRepository
Move onwership of Fast Par Devices to a single point, FastPairDeviceRepository,
which will live inside a singleton FastPairService.

PiperOrigin-RevId: 534547186
2023-05-23 13:54:05 -07:00
Qin Wang d420e9ff33 Fix data_race runtime error for fast_pair_discoverable_scanner_impl_test
PiperOrigin-RevId: 534148116
2023-05-22 12:31:13 -07:00
Qin Wang 9ee02c43ad Pure Refactor callback structure in FastPairDaraParser
PiperOrigin-RevId: 534131868
2023-05-22 11:35:57 -07:00
Qin Wang 363d2a819e Pure refactor set/get functions in FastPairDevice
PiperOrigin-RevId: 533218929
2023-05-18 12:45:55 -07:00
Qin Wang b7d2ee0c45 Add account_key_filter to see the current device is a saved device
PiperOrigin-RevId: 533197294
2023-05-18 11:39:05 -07:00
Janusz Sobczak 1c9dd093f1 Fix retroactive pairing test
PiperOrigin-RevId: 532853830
2023-05-17 11:35:48 -07:00
Qin Wang 60ba057230 Let fake_fast_pair_repository run with SingleThreadExecutor
PiperOrigin-RevId: 532838814
2023-05-17 10:51:04 -07:00
Qin Wang 6d3704f50a Add battery notification and not discoverable advertisement
PiperOrigin-RevId: 532187475
2023-05-15 12:19:45 -07:00
Janusz Sobczak 013bf1f420 Add retroactive pairing
PiperOrigin-RevId: 531637311
2023-05-12 16:56:55 -07:00
Crisrael Lucero 01c8e1ed05 Convert absl::string_view to const std::string&
PiperOrigin-RevId: 531634295
2023-05-12 16:40:50 -07:00
Janusz Sobczak f1f15bd967 Use canonical MAC address in tests.
PiperOrigin-RevId: 531601021
2023-05-12 14:12:25 -07:00
hai007 bd85557710 Add version update in presenter and mock UI Discovery services for further unit test.
PiperOrigin-RevId: 531371755
2023-05-11 19:42:08 -07:00
Qin Wang b19d4fb279 Implement BluetoothClassic Medium for fast pair windows
PiperOrigin-RevId: 531299637
2023-05-11 13:59:42 -07:00
Janusz Sobczak b5938c0d17 Add G3 gatt server
PiperOrigin-RevId: 531287485
2023-05-11 13:15:40 -07:00
Janusz Sobczak 0901aec6e2 Add BleMedium::GetRemotePeripheral
Added:
nearby::api::ble_v2::BlePeripheral::GetUniqueId()
nearby::api::ble_v2::BleMedium::GetRemotePeripheral(...)

Moved BlePeripheral implementation from bluetooth_adapter_* to ble_v2.*
Added G3 (test) implementation for the new methods.

PiperOrigin-RevId: 531023568
2023-05-10 15:40:38 -07:00
Qin Wang 69f4feaf55 Add g3 implementation for BluetoothPairing
PiperOrigin-RevId: 530965844
2023-05-10 11:47:00 -07:00
Qin Wang 115c286885 Use nearby/internal/platform/mutex instead of absl:mutex
PiperOrigin-RevId: 530727456
2023-05-09 15:20:41 -07:00