MaikuB / MaikuB/flutter_appauth

[Feature Request] Support Android AuthTabIntent to remove the Chrome Custom Tab minimize/PiP button

Open
#668 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Objective-C
Stars
308
Forks
301
Avg merge
2d 11h
Merged PRs (30d)
5

Description

### Description
On newer versions of Google Chrome for Android, standard Chrome Custom Tabs now include a "minimize" (down arrow) button by default. When users tap this during an OIDC/OAuth login flow, the authentication screen minimizes into a Picture-in-Picture window, leaving the app in a hanging state because the authentication never completes.

Google resolved this for authentication flows by introducing `AuthTabIntent` (available in `androidx.browser:browser:1.9.0-alpha01` and newer), which is a specialized Custom Tab that permanently hides the minimize button and other browser UI elements.

Currently, `flutter_appauth` relies on `AppAuth-Android`, which uses the standard `CustomTabsIntent` and does not yet support `AuthTabIntent`.

### Related Native Issues
This is a known issue upstream in the native Android SDK:
* `AppAuth-Android` Issue #1146: [Add first-class support for Chrome Auth Tab in AppAuth-Android](https://github.com/openid/AppAuth-Android/issues/1146)
* `AppAuth-Android` Issue #1128: [Support Auth Tab](https://github.com/openid/AppAuth-Android/issues/1128)

### Proposed Solution
Since `AppAuth-Android` has not had a major release in several years, we are blocked from natively hiding the minimize button in our Flutter apps.

Could `flutter_appauth` either:
1. Implement a custom Android MethodChannel fallback that launches an `AuthTabIntent` directly.
2. Consider using a maintained fork of `AppAuth-Android` that implements `AuthTabIntent` support until the official SDK merges the changes.

### Steps to Reproduce
1. Launch any standard login flow using `flutter_appauth` on an Android device with the latest version of Chrome installed.
2. Observe the "down arrow" (minimize) button in the top left corner of the Custom Tab header.
3. Tap the arrow. The login screen minimizes to the bottom of the screen, breaking the auth flow state.

### Environment
* **OS:** Android
* **Browser:** Google Chrome (Latest)
* **Package Version:** 12.0.2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Android integration that delegates to AppAuth-Android and review AppAuth-Android issues #1146 and #1128, then verify the AuthTabIntent requirements in androidx.browser:browser:1.9.0-alpha01. Done means an Android login flow no longer exposes the minimize button and completes without entering Picture-in-Picture.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, dart
Domain
authentication, mobile
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.