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:
39943994 ["devicelab", "hostonly"]
39953995 task_name : platform_channel_sample_test_windows
39963996 scheduler : luci
3997- bringup : true
39983997
39993998 - name : Windows plugin_dependencies_test
40003999 recipe : devicelab/devicelab_drone
Original file line number Diff line number Diff line change @@ -28,8 +28,12 @@ class _PlatformChannelState extends State<PlatformChannel> {
2828 try {
2929 final int ? result = await methodChannel.invokeMethod ('getBatteryLevel' );
3030 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+ }
3337 }
3438 setState (() {
3539 _batteryLevel = batteryLevel;
Original file line number Diff line number Diff line change @@ -31,7 +31,11 @@ void main() {
3131 batteryLevel = await driver.getText (batteryLevelLabel);
3232 }
3333
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);
3539 });
3640 });
3741}
Original file line number Diff line number Diff line change 1616
1717#include " flutter/generated_plugin_registrant.h"
1818
19+ static constexpr int kBatteryError = -1 ;
20+ static constexpr int kNoBattery = -2 ;
21+
1922static int GetBatteryLevel () {
2023 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 ;
2330 }
2431 return status.BatteryLifePercent ;
2532}
@@ -59,10 +66,12 @@ bool FlutterWindow::OnCreate() {
5966 if (call.method_name () == " getBatteryLevel" ) {
6067 int battery_level = GetBatteryLevel ();
6168
62- if (battery_level != -1 ) {
63- result->Success (battery_level);
64- } else {
69+ if (battery_level == kBatteryError ) {
6570 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);
6675 }
6776 } else {
6877 result->NotImplemented ();
You can’t perform that action at this time.
0 commit comments