File tree Expand file tree Collapse file tree 4 files changed +25
-9
lines changed
examples/platform_channel Expand file tree Collapse file tree 4 files changed +25
-9
lines changed Original file line number Diff line number Diff line change @@ -3994,7 +3994,6 @@ targets:
3994
3994
["devicelab", "hostonly"]
3995
3995
task_name : platform_channel_sample_test_windows
3996
3996
scheduler : luci
3997
- bringup : true
3998
3997
3999
3998
- name : Windows plugin_dependencies_test
4000
3999
recipe : devicelab/devicelab_drone
Original file line number Diff line number Diff line change @@ -28,8 +28,12 @@ class _PlatformChannelState extends State<PlatformChannel> {
28
28
try {
29
29
final int ? result = await methodChannel.invokeMethod ('getBatteryLevel' );
30
30
batteryLevel = 'Battery level: $result %.' ;
31
- } on PlatformException {
32
- batteryLevel = 'Failed to get battery level.' ;
31
+ } on PlatformException catch (e) {
32
+ if (e.code == 'NO_BATTERY' ) {
33
+ batteryLevel = 'No battery.' ;
34
+ } else {
35
+ batteryLevel = 'Failed to get battery level.' ;
36
+ }
33
37
}
34
38
setState (() {
35
39
_batteryLevel = batteryLevel;
Original file line number Diff line number Diff line change @@ -31,7 +31,11 @@ void main() {
31
31
batteryLevel = await driver.getText (batteryLevelLabel);
32
32
}
33
33
34
- expect (batteryLevel.contains ('%' ), isTrue);
34
+ // Allow either a battery percentage or "No battery" since it will vary
35
+ // by device; either indicates that a known response came from the host
36
+ // implementation.
37
+ expect (batteryLevel.contains ('%' ) || batteryLevel.contains ('No battery' ),
38
+ isTrue);
35
39
});
36
40
});
37
41
}
Original file line number Diff line number Diff line change 16
16
17
17
#include " flutter/generated_plugin_registrant.h"
18
18
19
+ static constexpr int kBatteryError = -1 ;
20
+ static constexpr int kNoBattery = -2 ;
21
+
19
22
static int GetBatteryLevel () {
20
23
SYSTEM_POWER_STATUS status;
21
- if (GetSystemPowerStatus (&status) == 0 || status.BatteryLifePercent == 255 ) {
22
- return -1 ;
24
+ if (GetSystemPowerStatus (&status) == 0 ) {
25
+ return kBatteryError ;
26
+ } else if (status.BatteryFlag == 128 ) {
27
+ return kNoBattery ;
28
+ } else if (status.BatteryLifePercent == 255 ) {
29
+ return kBatteryError ;
23
30
}
24
31
return status.BatteryLifePercent ;
25
32
}
@@ -59,10 +66,12 @@ bool FlutterWindow::OnCreate() {
59
66
if (call.method_name () == " getBatteryLevel" ) {
60
67
int battery_level = GetBatteryLevel ();
61
68
62
- if (battery_level != -1 ) {
63
- result->Success (battery_level);
64
- } else {
69
+ if (battery_level == kBatteryError ) {
65
70
result->Error (" UNAVAILABLE" , " Battery level not available." );
71
+ } else if (battery_level == kNoBattery ) {
72
+ result->Error (" NO_BATTERY" , " Device does not have a battery." );
73
+ } else {
74
+ result->Success (battery_level);
66
75
}
67
76
} else {
68
77
result->NotImplemented ();
You can’t perform that action at this time.
0 commit comments