Commit 0d695d3
Changed files (2)
app
lib
bluetooth
app/lib/bluetooth/bluetooth_cubit.dart
@@ -45,13 +45,14 @@ class BluetoothCubit extends Cubit<BluetoothState> {
emit(BluetoothUnauthorized());
await requestPermission();
case BluetoothAdapterState.on:
- if (await requestPermission()) {
+ if (await Permission.bluetoothConnect.isGranted) {
emit(BluetoothReady());
Permission.bluetoothConnect
- .onDeniedCallback(() => _onAdapterStateChanged(state));
+ .onGrantedCallback(() => _onAdapterStateChanged(state));
} else {
emit(BluetoothUnauthorized());
}
+
case BluetoothAdapterState.off:
case BluetoothAdapterState.turningOff:
case BluetoothAdapterState.turningOn:
@@ -63,27 +64,18 @@ class BluetoothCubit extends Cubit<BluetoothState> {
}
/// Request the permission to connect to bluetooth devices.
- Future<bool> requestPermission() async {
- // Permissions are not only required for connecting, but sometimes also for
- // reading values.
+ Future<bool> requestPermission() async { // TODO: can this be removed entirely ?
+ assert(_adapterState == BluetoothAdapterState.unauthorized, 'No need to '
+ 'request permission when device unavailable or already authorized.');
try {
- bool connectPermission = await Permission.bluetoothConnect.isGranted;
- bool locationPermission = await Permission.locationWhenInUse.isGranted;
- if (!connectPermission) {
- connectPermission = await Permission.bluetoothConnect.request().isGranted;
- Log.trace('requestPermission: connectPermission = $connectPermission');
- }
- if (!locationPermission) {
- locationPermission = await Permission.locationWhenInUse.request().isGranted;
- Log.trace('requestPermission: locationPermission = $locationPermission');
- }
- return connectPermission
- && locationPermission;
+ assert(!await Permission.bluetoothConnect.isGranted, 'Permissions handler'
+ 'should report the same as blue_plus');
+ final permission = await Permission.bluetoothConnect.request();
+ return permission.isGranted;
} catch (error) {
Log.err('Failed to request bluetooth permissions', [error]);
return false;
}
-
}
/// Request to enable bluetooth on the device
app/pubspec.lock
@@ -65,6 +65,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "8.1.4"
+ bloc_test:
+ dependency: "direct dev"
+ description:
+ name: bloc_test
+ sha256: "165a6ec950d9252ebe36dc5335f2e6eb13055f33d56db0eeb7642768849b43d2"
+ url: "https://pub.dev"
+ source: hosted
+ version: "9.1.7"
boolean_selector:
dependency: transitive
description:
@@ -81,6 +89,46 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.4.1"
+ build_config:
+ dependency: transitive
+ description:
+ name: build_config
+ sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.1"
+ build_daemon:
+ dependency: transitive
+ description:
+ name: build_daemon
+ sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9"
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.0.2"
+ build_resolvers:
+ dependency: transitive
+ description:
+ name: build_resolvers
+ sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.4.2"
+ build_runner:
+ dependency: "direct dev"
+ description:
+ name: build_runner
+ sha256: "644dc98a0f179b872f612d3eb627924b578897c629788e858157fa5e704ca0c7"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.4.11"
+ build_runner_core:
+ dependency: transitive
+ description:
+ name: build_runner_core
+ sha256: e3c79f69a64bdfcd8a776a3c28db4eb6e3fb5356d013ae5eb2e52007706d5dbe
+ url: "https://pub.dev"
+ source: hosted
+ version: "7.3.1"
built_collection:
dependency: transitive
description:
@@ -113,6 +161,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.3.1"
+ checked_yaml:
+ dependency: transitive
+ description:
+ name: checked_yaml
+ sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.3"
clock:
dependency: transitive
description:
@@ -145,6 +201,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.1.1"
+ coverage:
+ dependency: transitive
+ description:
+ name: coverage
+ sha256: "3945034e86ea203af7a056d98e98e42a5518fff200d6e8e6647e1886b07e936e"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.8.0"
cross_file:
dependency: transitive
description:
@@ -177,6 +241,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.3.6"
+ diff_match_patch:
+ dependency: transitive
+ description:
+ name: diff_match_patch
+ sha256: "2efc9e6e8f449d0abe15be240e2c2a3bcd977c8d126cfd70598aee60af35c0a4"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.4.1"
equatable:
dependency: transitive
description:
@@ -309,6 +381,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.4.1"
+ frontend_server_client:
+ dependency: transitive
+ description:
+ name: frontend_server_client
+ sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.0.0"
function_tree:
dependency: "direct main"
description:
@@ -325,6 +405,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.2"
+ graphs:
+ dependency: transitive
+ description:
+ name: graphs
+ sha256: aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.3.1"
health_data_store:
dependency: "direct main"
description:
@@ -340,6 +428,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.2.1"
+ http_multi_server:
+ dependency: transitive
+ description:
+ name: http_multi_server
+ sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.2.1"
http_parser:
dependency: transitive
description:
@@ -364,6 +460,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.19.0"
+ io:
+ dependency: transitive
+ description:
+ name: io
+ sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.4"
js:
dependency: transitive
description:
@@ -392,18 +496,18 @@ packages:
dependency: transitive
description:
name: leak_tracker
- sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
+ sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
url: "https://pub.dev"
source: hosted
- version: "10.0.4"
+ version: "10.0.5"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
- sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
+ sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
url: "https://pub.dev"
source: hosted
- version: "3.0.3"
+ version: "3.0.5"
leak_tracker_testing:
dependency: transitive
description:
@@ -448,18 +552,26 @@ packages:
dependency: transitive
description:
name: material_color_utilities
- sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
+ sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
url: "https://pub.dev"
source: hosted
- version: "0.8.0"
+ version: "0.11.1"
meta:
dependency: transitive
description:
name: meta
- sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
+ sha256: "25dfcaf170a0190f47ca6355bdd4552cb8924b430512ff0cafb8db9bd41fe33b"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.14.0"
+ mime:
+ dependency: transitive
+ description:
+ name: mime
+ sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2"
url: "https://pub.dev"
source: hosted
- version: "1.12.0"
+ version: "1.0.5"
mockito:
dependency: "direct dev"
description:
@@ -468,6 +580,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "5.4.4"
+ mocktail:
+ dependency: transitive
+ description:
+ name: mocktail
+ sha256: "890df3f9688106f25755f26b1c60589a92b3ab91a22b8b224947ad041bf172d8"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.4"
nested:
dependency: transitive
description:
@@ -476,6 +596,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.0"
+ node_preamble:
+ dependency: transitive
+ description:
+ name: node_preamble
+ sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.2"
package_config:
dependency: transitive
description:
@@ -620,6 +748,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.8"
+ pool:
+ dependency: transitive
+ description:
+ name: pool
+ sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.5.1"
provider:
dependency: "direct main"
description:
@@ -636,6 +772,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.4"
+ pubspec_parse:
+ dependency: transitive
+ description:
+ name: pubspec_parse
+ sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.3.0"
qr:
dependency: transitive
description:
@@ -708,6 +852,38 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.3.2"
+ shelf:
+ dependency: transitive
+ description:
+ name: shelf
+ sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.4.1"
+ shelf_packages_handler:
+ dependency: transitive
+ description:
+ name: shelf_packages_handler
+ sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.2"
+ shelf_static:
+ dependency: transitive
+ description:
+ name: shelf_static
+ sha256: a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.2"
+ shelf_web_socket:
+ dependency: transitive
+ description:
+ name: shelf_web_socket
+ sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.0"
sky_engine:
dependency: transitive
description: flutter
@@ -721,6 +897,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.5.0"
+ source_map_stack_trace:
+ dependency: transitive
+ description:
+ name: source_map_stack_trace
+ sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.1"
+ source_maps:
+ dependency: transitive
+ description:
+ name: source_maps
+ sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.10.12"
source_span:
dependency: transitive
description:
@@ -785,6 +977,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.2"
+ stream_transform:
+ dependency: transitive
+ description:
+ name: stream_transform
+ sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.0"
string_scanner:
dependency: transitive
description:
@@ -809,14 +1009,38 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.2.1"
+ test:
+ dependency: transitive
+ description:
+ name: test
+ sha256: d11b55850c68c1f6c0cf00eabded4e66c4043feaf6c0d7ce4a36785137df6331
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.25.5"
test_api:
dependency: transitive
description:
name: test_api
- sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
+ sha256: "2419f20b0c8677b2d67c8ac4d1ac7372d862dc6c460cdbb052b40155408cd794"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.7.1"
+ test_core:
+ dependency: transitive
+ description:
+ name: test_core
+ sha256: "4d070a6bc36c1c4e89f20d353bfd71dc30cdf2bd0e14349090af360a029ab292"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.6.2"
+ timing:
+ dependency: transitive
+ description:
+ name: timing
+ sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32"
url: "https://pub.dev"
source: hosted
- version: "0.7.0"
+ version: "1.0.1"
translations_cleaner:
dependency: "direct dev"
description:
@@ -909,10 +1133,10 @@ packages:
dependency: transitive
description:
name: vm_service
- sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
+ sha256: "7475cb4dd713d57b6f7464c0e13f06da0d535d8b2067e188962a59bac2cf280b"
url: "https://pub.dev"
source: hosted
- version: "14.2.1"
+ version: "14.2.2"
watcher:
dependency: transitive
description:
@@ -929,6 +1153,30 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.5.1"
+ web_socket:
+ dependency: transitive
+ description:
+ name: web_socket
+ sha256: "24301d8c293ce6fe327ffe6f59d8fd8834735f0ec36e4fd383ec7ff8a64aa078"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.1.5"
+ web_socket_channel:
+ dependency: transitive
+ description:
+ name: web_socket_channel
+ sha256: a2d56211ee4d35d9b344d9d4ce60f362e4f5d1aafb988302906bd732bc731276
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.0"
+ webkit_inspection_protocol:
+ dependency: transitive
+ description:
+ name: webkit_inspection_protocol
+ sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.2.1"
win32:
dependency: transitive
description:
@@ -962,5 +1210,5 @@ packages:
source: hosted
version: "3.1.2"
sdks:
- dart: ">=3.3.0 <4.0.0"
+ dart: ">=3.4.0 <4.0.0"
flutter: ">=3.19.0"