Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: PlatformException.code values are not the same between platforms #1375

Open
4 of 5 tasks
ekuleshov opened this issue Sep 9, 2024 · 0 comments
Open
4 of 5 tasks

Comments

@ekuleshov
Copy link
Contributor

Please check the following before submitting a new issue.

Please select affected platform(s)

  • Android
  • iOS
  • Windows

Steps to reproduce

  1. Request permission on iOS while another request is in progress, e.g. Permission.locationWhenInUse.request()
  2. Observe PlatformException.code is ERROR_ALREADY_REQUESTING_PERMISSIONS
  3. Request permission on Android while another request is in progress, e.g. Permission.locationWhenInUse.request()
  4. Observe PlatformException.code is PermissionHandler.PermissionManager (Ouch!)

Expected results

The PlatformException.code values for the same errors should be the same between platforms.

Actual results

On Android the PlatformException contains some generic error code. Here is an example stack trace:

PlatformException: PlatformException(PermissionHandler.PermissionManager, A request for permissions is already running, please wait for it to finish before doing another request (note that you can request multiple permissions at the same time)., null, null)
  #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:648)
  #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:334)
  File "<asynchronous suspension>"
  #3      MethodChannelPermissionHandler.requestPermissions (package:permission_handler_platform_interface/src/method_channel/method_channel_permission_handler.dart:80)
  File "<asynchronous suspension>"
  #5      PermissionActions.request (package:permission_handler/permission_handler.dart:109)
  File "<asynchronous suspension>"

Code sample

N/A

Screenshots or video

N/A

Version

11.3.1

Flutter Doctor output

Doctor output
[✓] Flutter (Channel stable, 3.24.2, on macOS 13.6.6 22G630 darwin-arm64, locale en-CA)
    • Flutter version 3.24.2 on channel stable at ...
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4cf269e36d (6 days ago), 2024-09-03 14:30:00 -0700
    • Engine revision a6bd3f1de1
    • Dart version 3.5.2
    • DevTools version 2.37.2

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at .../Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
    • Xcode at /Applications/Xcode_15.2.app/Contents/Developer
    • Build 15C500b
    • CocoaPods version 1.15.2

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

[✓] IntelliJ IDEA Ultimate Edition (version 2024.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 81.1.3
    • Dart plugin version 242.21829.3

[✓] Connected device (3 available)
    • macOS (desktop)                 • macos                 • darwin-arm64   • macOS 13.6.6 22G630 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin         • macOS 13.6.6 22G630 darwin-arm64
    • Chrome (web)                    • chrome                • web-javascript • Google Chrome 128.0.6613.120

[✓] Network resources
    • All expected network resources are available.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant