Skip to content

Android 10 / Android Q Issues and Features #39858

Closed

Description

@shihaohong

This is a continuation of #32748, since it's preferable to have the complete list of to-dos for Android Q as its own issue rather than as part of a comment thread.

These are the different tasks that need to be completed to help myself keep track of progress and what else needs to be done. This will also help if I missed anything:

Edit: We don't plan to expose an API for mandatory system gesture insets, since they are a subset of the complete system gesture insets. Developers using system exclusion rects should follow a request to setSystemGestureExclusionRects() with getSystemGestureExclusionRects() and work with whatever exclusion rects the system granted, rather than assuming that the request was met.

Activity

  1. added
    platform-androidAndroid applications specifically
    frameworkflutter/packages/flutter repository. See also f: labels.
    p: material_uimaterial_ui package in flutter/packages
    customer: crowdAffects or could affect many people, though not necessarily a specific customer.
    on Sep 5, 2019
  2. added this to the October 2019 milestone on Sep 5, 2019
  3. self-assigned this
    on Sep 5, 2019
  4. PieterAelse commented on Sep 5, 2019

    @PieterAelse

    Isn't the setSystemGestureExclusionRects already done?
    flutter-team-archive/engine#11451

  5. shihaohong commented on Sep 5, 2019

    @shihaohong
    ContributorAuthor

    @PieterAelse not quite -- it still needs to be properly exposed on the framework.

  6. changed the title [-][Android Q] Expose Native Android gesture APIs[/-] [+]Android 10 / Android Q Issues and Features[/+] on Sep 5, 2019
  7. bernaferrari commented on Sep 16, 2019

    @bernaferrari
    Contributor

    Well.. I just found out that BottomNavigationBar works weirdly on iOS: it has a hard-coded padding for the bottom bar. This won't work on Android since the gesture/transparent bar can be of any size. I suggest a refactor to solve both issues (for example, using SafeArea).

    image

  8. shihaohong commented on Sep 16, 2019

    @shihaohong
    ContributorAuthor

    Hi @bernaferrari, could you clarify what you're expecting and what you actually get for iOS? I took a quick look at the BottonNavigationBar implementation and I'm under the impression that it's not hardcoded and uses MediaQuery's padding to determine the required spacing.

    For Android, you could use MediaQuery.systemGestureInsets to create this padding yourself.

  9. 5 remaining items

  10. Hixie commented on Oct 29, 2019

    @Hixie
    Contributor

    We believe we've done the critical work, but there is still some work remaining.

  11. slightfoot commented on Oct 30, 2019

    @slightfoot
    Member

    @Hixie Since the Pixel 4 release we have been having an issue with our latest app and the need to call setSystemGestureExclusionRects is required.

    I see it's in the engine but it has not yet been been exposed though SystemChrome in the framework yet. Is there a reason why?

  12. shihaohong commented on Oct 30, 2019

    @shihaohong
    ContributorAuthor

    @slightfoot Since get/setSystemGestureExclusionRects were methods that Android recommended against using unless absolutely necessary, so they were considered lower priority than the other features. This doesn't mean that we will not be finishing it up, but higher priority work came up for me so I had to sidestep to those in the meantime.

  13. PieterAelse commented on Feb 24, 2020

    @PieterAelse

    Any updates on this?
    Btw, I'm not sure if there are any changes, but Android 11 developer preview 1 is already out.

  14. shihaohong commented on Feb 24, 2020

    @shihaohong
    ContributorAuthor

    I'm planning on coming back to implement set/getSystemGestureExclusionRects soon now that some free time has opened up for me.

    I'll take a look into the slated changes for Android 11, but so far, it doesn't seem like there's any significant changes like Android 10's system gesture insets. I've created an issue titled Android 11 Issues and Features to collect these issues, so please put a comment down in #51365 if there's anything that catches anybody's eye!

  15. self-assigned this
    on Feb 28, 2020
  16. shihaohong commented on Feb 29, 2020

    @shihaohong
    ContributorAuthor

    After some discussion on the discord channel and an offline chat with @HansMuller, we've decided that it doesn't make sense to expose this via the framework and would be better for this to be a plugin because it is very specific to just one platform, and only Android 10+ versions of that one platform. I've closed the framework side PR and will likely revert the engine side ones

  17. PieterAelse commented on Mar 1, 2020

    @PieterAelse

    Sounds valid indeed.

    Will that plugin be build by the Flutter team or is it some work for the community?

  18. shihaohong commented on Mar 2, 2020

    @shihaohong
    ContributorAuthor

    @PieterAelse I'll need to figure that out myself, I haven't worked on plugins with the Flutter team before so I'll need to check with someone who is more familiar. I'll post here when I have more info!

  19. shihaohong commented on Mar 4, 2020

    @shihaohong
    ContributorAuthor

    From the discussion so far, it sounds like it would be work for the community.

  20. shihaohong commented on Apr 9, 2020

    @shihaohong
    ContributorAuthor

    Since the core work for this has been complete, I'm going to close out this issue. I opened a separate issue (#54397) to track implementing the exclusion rects API so for those interested in the feature, please move the conversation there :) Thank you!

  21. lock commented on Apr 25, 2020

    @lock

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  22. locked and limited conversation to collaborators on Apr 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

customer: crowdAffects or could affect many people, though not necessarily a specific customer.customer: solarisframeworkflutter/packages/flutter repository. See also f: labels.p: material_uimaterial_ui package in flutter/packagesplatform-androidAndroid applications specifically

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions