plus_plugins icon indicating copy to clipboard operation
plus_plugins copied to clipboard

[Bug]: battery_plus "is on low power mode" does not work in web

Open Chever-John opened this issue 3 years ago • 4 comments

Platform

Chrome Version 102.0.5005.115 (Official Build) (arm64 && 32-bit)

Plugin

battery_plus

Version

Flutter SDK

3.0.2

Steps to reproduce

macOS

  1. Go to the directory /plus_plugins/packages/battery_plus/battery_plus/example;
  2. Run command flutter run -d chrome;
  3. Then click the button Is on low power mode and you will see it does not work; The Error message as follows.
Error: UnimplementedError: isInBatterySaveMode() has not been implemented. at Object.throw_ [as throw] (http://localhost:50156/dart_sdk.js:5080:11) at get isInBatterySaveMode [as isInBatterySaveMode] (http://localhost:50156/packages/battery_plus_platform_interface/method_channel_battery_plus.dart.lib.js:81:17) at get isInBatterySaveMode [as isInBatterySaveMode] (http://localhost:50156/packages/battery_plus/battery_plus.dart.lib.js:33:45) at main._MyHomePageState.new. (http://localhost:50156/packages/battery_plus_example/main.dart.lib.js:471:65) at Generator.next () at runBody (http://localhost:50156/dart_sdk.js:40660:34) at Object._async [as async] (http://localhost:50156/dart_sdk.js:40691:7) at http://localhost:50156/packages/battery_plus_example/main.dart.lib.js:470:212 at [_handleTap] (http://localhost:50156/packages/flutter/src/material/icon_button.dart.lib.js:42247:31) at tap.TapGestureRecognizer.new.invokeCallback (http://localhost:50156/packages/flutter/src/gestures/recognizer.dart.lib.js:198:18) at tap.TapGestureRecognizer.new.handleTapUp (http://localhost:50156/packages/flutter/src/gestures/tap.dart.lib.js:411:42) at [_checkUp] (http://localhost:50156/packages/flutter/src/gestures/tap.dart.lib.js:217:12) at tap.TapGestureRecognizer.new.handlePrimaryPointer (http://localhost:50156/packages/flutter/src/gestures/tap.dart.lib.js:166:23) at tap.TapGestureRecognizer.new.handleEvent (http://localhost:50156/packages/flutter/src/gestures/recognizer.dart.lib.js:444:16) at [_dispatch] (http://localhost:50156/packages/flutter/src/gestures/pointer_router.dart.lib.js:86:9) at http://localhost:50156/packages/flutter/src/gestures/pointer_router.dart.lib.js:112:26 at LinkedMap.new.forEach (http://localhost:50156/dart_sdk.js:27745:11) at [_dispatchEventToRoutes] (http://localhost:50156/packages/flutter/src/gestures/pointer_router.dart.lib.js:110:29) at pointer_router.PointerRouter.new.route (http://localhost:50156/packages/flutter/src/gestures/pointer_router.dart.lib.js:105:37) at binding$5.WidgetsFlutterBinding.new.handleEvent (http://localhost:50156/packages/flutter/src/gestures/binding.dart.lib.js:367:26) at binding$5.WidgetsFlutterBinding.new.dispatchEvent (http://localhost:50156/packages/flutter/src/gestures/binding.dart.lib.js:355:24) at binding$5.WidgetsFlutterBinding.new.dispatchEvent (http://localhost:50156/packages/flutter/src/rendering/layer.dart.lib.js:5440:13) at [_handlePointerEventImmediately] (http://localhost:50156/packages/flutter/src/gestures/binding.dart.lib.js:331:14) at binding$5.WidgetsFlutterBinding.new.handlePointerEvent (http://localhost:50156/packages/flutter/src/gestures/binding.dart.lib.js:305:43) at [_flushPointerEventQueue] (http://localhost:50156/packages/flutter/src/gestures/binding.dart.lib.js:295:14) at [_handlePointerDataPacket] (http://localhost:50156/packages/flutter/src/gestures/binding.dart.lib.js:286:54) at Object.invoke1 (http://localhost:50156/dart_sdk.js:191747:7) at _engine.EnginePlatformDispatcher.__.invokeOnPointerDataPacket (http://localhost:50156/dart_sdk.js:171943:15) at [_onPointerData] (http://localhost:50156/dart_sdk.js:172879:49) at http://localhost:50156/dart_sdk.js:173317:28 at http://localhost:50156/dart_sdk.js:173273:16 at loggedHandler (http://localhost:50156/dart_sdk.js:172978:11)

Windows

  1. Go to the directory /plus_plugins/packages/battery_plus/battery_plus/example;
  2. Run command flutter run -d chrome --web-port=8080 --web-hostname=127.0.0.1;
  3. Then click the button Is on low power mode and you will see it does not work; The Error message as follows.
Error: UnimplementedError: isInBatterySaveMode() has not been implemented. at Object.throw_ [as throw] (http://127.0.0.1:8080/dart_sdk.js:5080:11) at get isInBatterySaveMode [as isInBatterySaveMode] (http://127.0.0.1:8080/packages/battery_plus_platform_interface/method_channel_battery_plus.dart.lib.js:81:17) at get isInBatterySaveMode [as isInBatterySaveMode] (http://127.0.0.1:8080/packages/battery_plus/battery_plus.dart.lib.js:33:45) at main._MyHomePageState.new. (http://127.0.0.1:8080/packages/battery_plus_example/main.dart.lib.js:471:65) at Generator.next () at runBody (http://127.0.0.1:8080/dart_sdk.js:40660:34) at Object._async [as async] (http://127.0.0.1:8080/dart_sdk.js:40691:7) at http://127.0.0.1:8080/packages/battery_plus_example/main.dart.lib.js:470:212 at [_handleTap] (http://127.0.0.1:8080/packages/flutter/src/material/icon_button.dart.lib.js:42254:31) at tap.TapGestureRecognizer.new.invokeCallback (http://127.0.0.1:8080/packages/flutter/src/gestures/recognizer.dart.lib.js:198:18) at tap.TapGestureRecognizer.new.handleTapUp (http://127.0.0.1:8080/packages/flutter/src/gestures/tap.dart.lib.js:411:42) at [_checkUp] (http://127.0.0.1:8080/packages/flutter/src/gestures/tap.dart.lib.js:217:12) at tap.TapGestureRecognizer.new.handlePrimaryPointer (http://127.0.0.1:8080/packages/flutter/src/gestures/tap.dart.lib.js:166:23) at tap.TapGestureRecognizer.new.handleEvent (http://127.0.0.1:8080/packages/flutter/src/gestures/recognizer.dart.lib.js:444:16) at [_dispatch] (http://127.0.0.1:8080/packages/flutter/src/gestures/pointer_router.dart.lib.js:86:9) at http://127.0.0.1:8080/packages/flutter/src/gestures/pointer_router.dart.lib.js:112:26 at LinkedMap.new.forEach (http://127.0.0.1:8080/dart_sdk.js:27745:11) at [_dispatchEventToRoutes] (http://127.0.0.1:8080/packages/flutter/src/gestures/pointer_router.dart.lib.js:110:29) at pointer_router.PointerRouter.new.route (http://127.0.0.1:8080/packages/flutter/src/gestures/pointer_router.dart.lib.js:105:37) at binding$5.WidgetsFlutterBinding.new.handleEvent (http://127.0.0.1:8080/packages/flutter/src/gestures/binding.dart.lib.js:367:26) at binding$5.WidgetsFlutterBinding.new.dispatchEvent (http://127.0.0.1:8080/packages/flutter/src/gestures/binding.dart.lib.js:355:24) at binding$5.WidgetsFlutterBinding.new.dispatchEvent (http://127.0.0.1:8080/packages/flutter/src/rendering/layer.dart.lib.js:5440:13) at [_handlePointerEventImmediately] (http://127.0.0.1:8080/packages/flutter/src/gestures/binding.dart.lib.js:331:14) at binding$5.WidgetsFlutterBinding.new.handlePointerEvent (http://127.0.0.1:8080/packages/flutter/src/gestures/binding.dart.lib.js:305:43) at [_flushPointerEventQueue] (http://127.0.0.1:8080/packages/flutter/src/gestures/binding.dart.lib.js:295:14) at [_handlePointerDataPacket] (http://127.0.0.1:8080/packages/flutter/src/gestures/binding.dart.lib.js:286:54) at Object.invoke1 (http://127.0.0.1:8080/dart_sdk.js:191747:7) at _engine.EnginePlatformDispatcher.__.invokeOnPointerDataPacket (http://127.0.0.1:8080/dart_sdk.js:171943:15) at [_onPointerData] (http://127.0.0.1:8080/dart_sdk.js:172879:49) at http://127.0.0.1:8080/dart_sdk.js:173317:28 at http://127.0.0.1:8080/dart_sdk.js:173273:16 at loggedHandler (http://127.0.0.1:8080/dart_sdk.js:172978:11)

Code Sample

Just using the official example is fine.

Logs

## macOS

[+8041 ms] Error: UnimplementedError: isInBatterySaveMode() has not been implemented.
                        at Object.throw_ [as throw] (http://localhost:55402/dart_sdk.js:5080:11)
                        at get isInBatterySaveMode [as isInBatterySaveMode]
                        (http://localhost:55402/packages/battery_plus_platform_interface/method_channel_battery_plus.dart.lib.js:81:17)
                        at get isInBatterySaveMode [as isInBatterySaveMode] (http://localhost:55402/packages/battery_plus/battery_plus.dart.lib.js:33:45)
                        at main._MyHomePageState.new.<anonymous> (http://localhost:55402/packages/battery_plus_example/main.dart.lib.js:471:65)
                        at Generator.next (<anonymous>)
                        at runBody (http://localhost:55402/dart_sdk.js:40660:34)
                        at Object._async [as async] (http://localhost:55402/dart_sdk.js:40691:7)
                        at http://localhost:55402/packages/battery_plus_example/main.dart.lib.js:470:212
                        at [_handleTap] (http://localhost:55402/packages/flutter/src/material/icon_button.dart.lib.js:42247:31)
                        at tap.TapGestureRecognizer.new.invokeCallback (http://localhost:55402/packages/flutter/src/gestures/recognizer.dart.lib.js:198:18)
                        at tap.TapGestureRecognizer.new.handleTapUp (http://localhost:55402/packages/flutter/src/gestures/tap.dart.lib.js:411:42)
                        at [_checkUp] (http://localhost:55402/packages/flutter/src/gestures/tap.dart.lib.js:217:12)
                        at tap.TapGestureRecognizer.new.handlePrimaryPointer (http://localhost:55402/packages/flutter/src/gestures/tap.dart.lib.js:166:23)
                        at tap.TapGestureRecognizer.new.handleEvent (http://localhost:55402/packages/flutter/src/gestures/recognizer.dart.lib.js:444:16)
                        at [_dispatch] (http://localhost:55402/packages/flutter/src/gestures/pointer_router.dart.lib.js:86:9)
                        at http://localhost:55402/packages/flutter/src/gestures/pointer_router.dart.lib.js:112:26
                        at LinkedMap.new.forEach (http://localhost:55402/dart_sdk.js:27745:11)
                        at [_dispatchEventToRoutes] (http://localhost:55402/packages/flutter/src/gestures/pointer_router.dart.lib.js:110:29)
                        at pointer_router.PointerRouter.new.route (http://localhost:55402/packages/flutter/src/gestures/pointer_router.dart.lib.js:105:37)
                        at binding$5.WidgetsFlutterBinding.new.handleEvent (http://localhost:55402/packages/flutter/src/gestures/binding.dart.lib.js:367:26)
                        at binding$5.WidgetsFlutterBinding.new.dispatchEvent (http://localhost:55402/packages/flutter/src/gestures/binding.dart.lib.js:355:24)
                        at binding$5.WidgetsFlutterBinding.new.dispatchEvent (http://localhost:55402/packages/flutter/src/rendering/layer.dart.lib.js:5440:13)
                        at [_handlePointerEventImmediately] (http://localhost:55402/packages/flutter/src/gestures/binding.dart.lib.js:331:14)
                        at binding$5.WidgetsFlutterBinding.new.handlePointerEvent
(http://localhost:55402/packages/flutter/src/gestures/binding.dart.lib.js:305:43)
                        at [_flushPointerEventQueue] (http://localhost:55402/packages/flutter/src/gestures/binding.dart.lib.js:295:14)
                        at [_handlePointerDataPacket] (http://localhost:55402/packages/flutter/src/gestures/binding.dart.lib.js:286:54)
                        at Object.invoke1 (http://localhost:55402/dart_sdk.js:191747:7)
                        at _engine.EnginePlatformDispatcher.__.invokeOnPointerDataPacket (http://localhost:55402/dart_sdk.js:171943:15)
                        at [_onPointerData] (http://localhost:55402/dart_sdk.js:172879:49)
                        at http://localhost:55402/dart_sdk.js:173317:28
                        at http://localhost:55402/dart_sdk.js:173273:16
                        at loggedHandler (http://localhost:55402/dart_sdk.js:172978:11)



## Windows

Error: UnimplementedError: isInBatterySaveMode() has not been implemented.
                         at Object.throw_ [as throw] (http://127.0.0.1:8080/dart_sdk.js:5080:11)
                         at get isInBatterySaveMode [as isInBatterySaveMode]
                         (http://127.0.0.1:8080/packages/battery_plus_platform_interface/method_channel_battery_plus.dart.lib.js:81:17)
                         at get isInBatterySaveMode [as isInBatterySaveMode]
(http://127.0.0.1:8080/packages/battery_plus/battery_plus.dart.lib.js:33:45)
                         at main._MyHomePageState.new.<anonymous> (http://127.0.0.1:8080/packages/battery_plus_example/main.dart.lib.js:471:65)
                         at Generator.next (<anonymous>)
                         at runBody (http://127.0.0.1:8080/dart_sdk.js:40660:34)
                         at Object._async [as async] (http://127.0.0.1:8080/dart_sdk.js:40691:7)
                         at http://127.0.0.1:8080/packages/battery_plus_example/main.dart.lib.js:470:212
                         at [_handleTap] (http://127.0.0.1:8080/packages/flutter/src/material/icon_button.dart.lib.js:42254:31)
                         at tap.TapGestureRecognizer.new.invokeCallback
(http://127.0.0.1:8080/packages/flutter/src/gestures/recognizer.dart.lib.js:198:18)
                         at tap.TapGestureRecognizer.new.handleTapUp (http://127.0.0.1:8080/packages/flutter/src/gestures/tap.dart.lib.js:411:42)
                         at [_checkUp] (http://127.0.0.1:8080/packages/flutter/src/gestures/tap.dart.lib.js:217:12)
                         at tap.TapGestureRecognizer.new.handlePrimaryPointer
(http://127.0.0.1:8080/packages/flutter/src/gestures/tap.dart.lib.js:166:23)
                         at tap.TapGestureRecognizer.new.handleEvent
(http://127.0.0.1:8080/packages/flutter/src/gestures/recognizer.dart.lib.js:444:16)
                         at [_dispatch] (http://127.0.0.1:8080/packages/flutter/src/gestures/pointer_router.dart.lib.js:86:9)
                         at http://127.0.0.1:8080/packages/flutter/src/gestures/pointer_router.dart.lib.js:112:26
                         at LinkedMap.new.forEach (http://127.0.0.1:8080/dart_sdk.js:27745:11)
                         at [_dispatchEventToRoutes] (http://127.0.0.1:8080/packages/flutter/src/gestures/pointer_router.dart.lib.js:110:29)
                         at pointer_router.PointerRouter.new.route
(http://127.0.0.1:8080/packages/flutter/src/gestures/pointer_router.dart.lib.js:105:37)
                         at binding$5.WidgetsFlutterBinding.new.handleEvent
(http://127.0.0.1:8080/packages/flutter/src/gestures/binding.dart.lib.js:367:26)
                         at binding$5.WidgetsFlutterBinding.new.dispatchEvent
(http://127.0.0.1:8080/packages/flutter/src/gestures/binding.dart.lib.js:355:24)
                         at binding$5.WidgetsFlutterBinding.new.dispatchEvent
(http://127.0.0.1:8080/packages/flutter/src/rendering/layer.dart.lib.js:5440:13)
                         at [_handlePointerEventImmediately] (http://127.0.0.1:8080/packages/flutter/src/gestures/binding.dart.lib.js:331:14)
                         at binding$5.WidgetsFlutterBinding.new.handlePointerEvent
(http://127.0.0.1:8080/packages/flutter/src/gestures/binding.dart.lib.js:305:43)
                         at [_flushPointerEventQueue] (http://127.0.0.1:8080/packages/flutter/src/gestures/binding.dart.lib.js:295:14)
                         at [_handlePointerDataPacket] (http://127.0.0.1:8080/packages/flutter/src/gestures/binding.dart.lib.js:286:54)
                         at Object.invoke1 (http://127.0.0.1:8080/dart_sdk.js:191747:7)
                         at _engine.EnginePlatformDispatcher.__.invokeOnPointerDataPacket (http://127.0.0.1:8080/dart_sdk.js:171943:15)
                         at [_onPointerData] (http://127.0.0.1:8080/dart_sdk.js:172879:49)
                         at http://127.0.0.1:8080/dart_sdk.js:173317:28
                         at http://127.0.0.1:8080/dart_sdk.js:173273:16
                         at loggedHandler (http://127.0.0.1:8080/dart_sdk.js:172978:11)

Flutter Doctor

## macOS

[✓] Flutter (Channel stable, 3.0.1, on macOS 12.4 21F79 darwin-arm, locale en-CN)
    • Flutter version 3.0.1 at /Users/cheverjohn/SE/envs/flutter/flutter3
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision fb57da5f94 (5 weeks ago), 2022-05-19 15:50:29 -0700
    • Engine revision caaafc5604
    • Dart version 2.17.1
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Users/cheverjohn/Library/Android/sdk
    • Platform android-32, build-tools 32.1.0-rc1
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[✓] IntelliJ IDEA Ultimate Edition (version 2022.1)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.68.1)
    • VS Code at /Users/cheverjohn/SE/app/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (3 available)
    • John’s iPhone (mobile) • 24c0f2776eb8a90283ef5f22dfad19984fb7615e • ios            • iOS 15.5 19F77
    • macOS (desktop)        • macos                                    • darwin-arm64   • macOS 12.4 21F79 darwin-arm
    • Chrome (web)           • chrome                                   • web-javascript • Google Chrome 102.0.5005.115

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

## Windows

[√] Flutter (Channel stable, 3.0.2, on Microsoft Windows [Version 10.0.19043.1706], locale en-US)
    • Flutter version 3.0.2 at D:\softengineering\DevelopmentEnvironments\Flutter\flutter_windows_3.0.2-stable\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision cd41fdd495 (12 days ago), 2022-06-08 09:52:13 -0700
    • Engine revision f15f824b57
    • Dart version 2.17.3
    • DevTools version 2.12.2
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at D:\softengineering\DevelopmentEnvironments\Android\sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = D:\softengineering\DevelopmentEnvironments\Android
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Professional 2019 16.11.0)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional
    • Visual Studio Professional 2019 version 16.11.31605.320
    • Windows 10 SDK version 10.0.19041.0

[√] Android Studio (version 2021.2)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)

[√] IntelliJ IDEA Ultimate Edition (version 2021.1)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA 2021.1.2
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart

[√] VS Code (version 1.68.1)
    • VS Code at C:\Users\Mr8go\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.23.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19043.1706]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 102.0.5005.115
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 102.0.1245.33

[√] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Chever-John avatar Jun 20 '22 18:06 Chever-John

thanks, I guess the method is not implemented on web. I think it would be good to implement it and return some "undefined" value.

miquelbeltran avatar Jun 20 '22 18:06 miquelbeltran

@miquelbeltran So are we going to pretend to make it happen? For example, when we recognize that the function(is on low power mode()) is called from a web application, the function returns "undefined" directly?

Chever-John avatar Jul 16 '22 12:07 Chever-John

@Chever-John we can do it later on, if this issue is blocking your work, please skip web and focus on integration testing on Android only.

miquelbeltran avatar Jul 16 '22 16:07 miquelbeltran

@miquelbeltran Got it~ Actually, I tried to solve this issue today!

Chever-John avatar Jul 16 '22 16:07 Chever-John

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 15 days

github-actions[bot] avatar Dec 28 '22 00:12 github-actions[bot]