feat: add support for API 35 EdgeToEdge - #2187

Merged
thatfiredev merged 16 commits into
version-9.1.0-devfrom
feat/edge-to-edge
Oct 22, 2025
Merged

feat: add support for API 35 EdgeToEdge#2187
thatfiredev merged 16 commits into
version-9.1.0-devfrom
feat/edge-to-edge

Conversation

@Lyokone

Copy link
Copy Markdown
Contributor

Hey there! So you want to contribute to FirebaseUI? Before you file this pull request, follow these steps:

  • Read the contribution guidelines.
  • Run ./gradlew check to ensure the Travis build passes.
  • If this has been discussed in an issue, make sure to mention the issue number here. If not, go file an issue about this to make sure this is a desirable change.
  • If this is a new feature please co-ordinate with someone on FirebaseUI-iOS to make sure that we can implement this on both platforms and maintain feature parity.

Lyokoneand others added 9 commits February 14, 2025 13:24
update versions
update version
fix
more tests
fixes
sdk bump
fix gradle
save the response
Sign In working
chore: upgrade Gradle, AGP and Kotlin
chore: move namespace to build.gradle
chore: upgrade Lint API
add new lines at EOF for checkstyle
ci: temporarily stop building proguard-test
test: update robolectric and use Looper
ignore test
clean
update
ci
remove comments
Bad code
fix?
unused imports
more
more
fix
fixes
fix
more fixes
)
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* fix
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* fix
* remove references
Comment threadauth/src/main/res/values-v35/styles.xml Outdated
@thatfiredev
thatfiredev changed the base branch from version-9.0.0-dev to version-9.1.0-devMarch 19, 2025 17:02
Comment threadbuildSrc/src/main/kotlin/Config.kt Outdated
Comment on lines +1 to +8
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="ResourceName">

<!-- Override the base FirebaseUI theme for edge-to-edge support -->
<style name="FirebaseUI" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
</style>

</resources> No newline at end of file

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that we're not overriding anything we don't need this file anymore.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ping on this

super.onCreate(savedInstanceState);

// Enable edge-to-edge for all activities
WindowCompat.setDecorFitsSystemWindows(getWindow(), false);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that this is just calling a single method, I'd prefer that we call this method in every other Activity rather than creating this new BaseActivity that is extended by all of them.

When we migrate the sample app to Kotlin, let's try to get rid of all of these "Base..." classes.

@thatfiredev

Copy link
Copy Markdown
Member

We need some padding on the screen that is shown when the user is signed in:

5785016379152386475

@Lyokone

Copy link
Copy Markdown
ContributorAuthor

Added more padding @thatfiredev

@luokailiang

Copy link
Copy Markdown

When will this feature be released?

1 similar comment
@tosuccesspractice

Copy link
Copy Markdown

When will this feature be released?

@SeanBlahovici

Copy link
Copy Markdown

With API 36 released, we cannot upgrade without this fix, the workaround no longer works. Please release this as soon as possible!

@vegeta2102

Copy link
Copy Markdown

When will edgeToEdge support be released ?

@sun-with

Copy link
Copy Markdown

When will this feature be released? 💦

@thatfiredev
thatfiredev merged commit cd299f7 into version-9.1.0-devOct 22, 2025
5 checks passed
@ArcherEmiya05

ArcherEmiya05 commented Oct 25, 2025

Copy link
Copy Markdown

This fix is incomplete or incorrect at all, it doesn't provide backward compatibility and doesn't follow the documentation for handling edge-to-edge. Additionally use padding instead of margin for better result.

Not working on older Android version (versions prior to 15)
Screenshot_1761380346

Statusbar content has no contrast thus battery percentage and other icons are no longer visible.
image

demolaf added a commit that referenced this pull request Nov 26, 2025
* Begin development on 9.1.0
* chore: use minSdk=23 for auth, and minSdk=21 for other modules (#2196)
* fix(auth): remove enableHints parsing from FlowParameters (#2199)
* feat: add support for API 35 EdgeToEdge (#2187)
* Revert "chore: use minSdk=23 for auth, and minSdk=21 for other modules (#2196)"
This reverts commit eca0ca3
* Version 9.1.0
* chore(*): update release infrastructure
* Version 9.1.1 (#2257)
---------
Co-authored-by: rosariopf <rosariopf@google.com>
Co-authored-by: Guillaume Bernos <guillaume@bernos.dev>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Lyokone@thatfiredev@luokailiang@tosuccesspractice@SeanBlahovici@vegeta2102@sun-with@ArcherEmiya05@marinacoelho
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat: add support for API 35 EdgeToEdge - #2187

Merged
thatfiredev merged 16 commits into
version-9.1.0-devfrom
feat/edge-to-edge
Oct 22, 2025
Merged

feat: add support for API 35 EdgeToEdge#2187
thatfiredev merged 16 commits into
version-9.1.0-devfrom
feat/edge-to-edge

Conversation

@Lyokone

Copy link
Copy Markdown
Contributor

Hey there! So you want to contribute to FirebaseUI? Before you file this pull request, follow these steps:

  • Read the contribution guidelines.
  • Run ./gradlew check to ensure the Travis build passes.
  • If this has been discussed in an issue, make sure to mention the issue number here. If not, go file an issue about this to make sure this is a desirable change.
  • If this is a new feature please co-ordinate with someone on FirebaseUI-iOS to make sure that we can implement this on both platforms and maintain feature parity.

Lyokoneand others added 9 commits February 14, 2025 13:24
update versions
update version
fix
more tests
fixes
sdk bump
fix gradle
save the response
Sign In working
chore: upgrade Gradle, AGP and Kotlin
chore: move namespace to build.gradle
chore: upgrade Lint API
add new lines at EOF for checkstyle
ci: temporarily stop building proguard-test
test: update robolectric and use Looper
ignore test
clean
update
ci
remove comments
Bad code
fix?
unused imports
more
more
fix
fixes
fix
more fixes
)
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* fix
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* fix
* remove references
Comment threadauth/src/main/res/values-v35/styles.xml Outdated
@thatfiredev
thatfiredev changed the base branch from version-9.0.0-dev to version-9.1.0-devMarch 19, 2025 17:02
Comment threadbuildSrc/src/main/kotlin/Config.kt Outdated
Comment on lines +1 to +8
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="ResourceName">

<!-- Override the base FirebaseUI theme for edge-to-edge support -->
<style name="FirebaseUI" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
</style>

</resources> No newline at end of file

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that we're not overriding anything we don't need this file anymore.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ping on this

super.onCreate(savedInstanceState);

// Enable edge-to-edge for all activities
WindowCompat.setDecorFitsSystemWindows(getWindow(), false);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that this is just calling a single method, I'd prefer that we call this method in every other Activity rather than creating this new BaseActivity that is extended by all of them.

When we migrate the sample app to Kotlin, let's try to get rid of all of these "Base..." classes.

@thatfiredev

Copy link
Copy Markdown
Member

We need some padding on the screen that is shown when the user is signed in:

5785016379152386475

@Lyokone

Copy link
Copy Markdown
ContributorAuthor

Added more padding @thatfiredev

@luokailiang

Copy link
Copy Markdown

When will this feature be released?

1 similar comment
@tosuccesspractice

Copy link
Copy Markdown

When will this feature be released?

@SeanBlahovici

Copy link
Copy Markdown

With API 36 released, we cannot upgrade without this fix, the workaround no longer works. Please release this as soon as possible!

@vegeta2102

Copy link
Copy Markdown

When will edgeToEdge support be released ?

@sun-with

Copy link
Copy Markdown

When will this feature be released? 💦

@thatfiredev
thatfiredev merged commit cd299f7 into version-9.1.0-devOct 22, 2025
5 checks passed
@ArcherEmiya05

ArcherEmiya05 commented Oct 25, 2025

Copy link
Copy Markdown

This fix is incomplete or incorrect at all, it doesn't provide backward compatibility and doesn't follow the documentation for handling edge-to-edge. Additionally use padding instead of margin for better result.

Not working on older Android version (versions prior to 15)
Screenshot_1761380346

Statusbar content has no contrast thus battery percentage and other icons are no longer visible.
image

demolaf added a commit that referenced this pull request Nov 26, 2025
* Begin development on 9.1.0
* chore: use minSdk=23 for auth, and minSdk=21 for other modules (#2196)
* fix(auth): remove enableHints parsing from FlowParameters (#2199)
* feat: add support for API 35 EdgeToEdge (#2187)
* Revert "chore: use minSdk=23 for auth, and minSdk=21 for other modules (#2196)"
This reverts commit eca0ca3
* Version 9.1.0
* chore(*): update release infrastructure
* Version 9.1.1 (#2257)
---------
Co-authored-by: rosariopf <rosariopf@google.com>
Co-authored-by: Guillaume Bernos <guillaume@bernos.dev>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Lyokone@thatfiredev@luokailiang@tosuccesspractice@SeanBlahovici@vegeta2102@sun-with@ArcherEmiya05@marinacoelho
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add support for API 35 EdgeToEdge - #2187

Merged
thatfiredev merged 16 commits into
version-9.1.0-devfrom
feat/edge-to-edge
Oct 22, 2025
Merged

feat: add support for API 35 EdgeToEdge#2187
thatfiredev merged 16 commits into
version-9.1.0-devfrom
feat/edge-to-edge

Conversation

@Lyokone

Copy link
Copy Markdown
Contributor

Hey there! So you want to contribute to FirebaseUI? Before you file this pull request, follow these steps:

  • Read the contribution guidelines.
  • Run ./gradlew check to ensure the Travis build passes.
  • If this has been discussed in an issue, make sure to mention the issue number here. If not, go file an issue about this to make sure this is a desirable change.
  • If this is a new feature please co-ordinate with someone on FirebaseUI-iOS to make sure that we can implement this on both platforms and maintain feature parity.

Lyokoneand others added 9 commits February 14, 2025 13:24
update versions
update version
fix
more tests
fixes
sdk bump
fix gradle
save the response
Sign In working
chore: upgrade Gradle, AGP and Kotlin
chore: move namespace to build.gradle
chore: upgrade Lint API
add new lines at EOF for checkstyle
ci: temporarily stop building proguard-test
test: update robolectric and use Looper
ignore test
clean
update
ci
remove comments
Bad code
fix?
unused imports
more
more
fix
fixes
fix
more fixes
)
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* fix
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* fix
* remove references
Comment threadauth/src/main/res/values-v35/styles.xml Outdated
@thatfiredev
thatfiredev changed the base branch from version-9.0.0-dev to version-9.1.0-devMarch 19, 2025 17:02
Comment threadbuildSrc/src/main/kotlin/Config.kt Outdated
Comment on lines +1 to +8
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="ResourceName">

<!-- Override the base FirebaseUI theme for edge-to-edge support -->
<style name="FirebaseUI" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
</style>

</resources> No newline at end of file

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that we're not overriding anything we don't need this file anymore.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ping on this

super.onCreate(savedInstanceState);

// Enable edge-to-edge for all activities
WindowCompat.setDecorFitsSystemWindows(getWindow(), false);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that this is just calling a single method, I'd prefer that we call this method in every other Activity rather than creating this new BaseActivity that is extended by all of them.

When we migrate the sample app to Kotlin, let's try to get rid of all of these "Base..." classes.

@thatfiredev

Copy link
Copy Markdown
Member

We need some padding on the screen that is shown when the user is signed in:

5785016379152386475

@Lyokone

Copy link
Copy Markdown
ContributorAuthor

Added more padding @thatfiredev

@luokailiang

Copy link
Copy Markdown

When will this feature be released?

1 similar comment
@tosuccesspractice

Copy link
Copy Markdown

When will this feature be released?

@SeanBlahovici

Copy link
Copy Markdown

With API 36 released, we cannot upgrade without this fix, the workaround no longer works. Please release this as soon as possible!

@vegeta2102

Copy link
Copy Markdown

When will edgeToEdge support be released ?

@sun-with

Copy link
Copy Markdown

When will this feature be released? 💦

@thatfiredev
thatfiredev merged commit cd299f7 into version-9.1.0-devOct 22, 2025
5 checks passed
@ArcherEmiya05

ArcherEmiya05 commented Oct 25, 2025

Copy link
Copy Markdown

This fix is incomplete or incorrect at all, it doesn't provide backward compatibility and doesn't follow the documentation for handling edge-to-edge. Additionally use padding instead of margin for better result.

Not working on older Android version (versions prior to 15)
Screenshot_1761380346

Statusbar content has no contrast thus battery percentage and other icons are no longer visible.
image

demolaf added a commit that referenced this pull request Nov 26, 2025
* Begin development on 9.1.0
* chore: use minSdk=23 for auth, and minSdk=21 for other modules (#2196)
* fix(auth): remove enableHints parsing from FlowParameters (#2199)
* feat: add support for API 35 EdgeToEdge (#2187)
* Revert "chore: use minSdk=23 for auth, and minSdk=21 for other modules (#2196)"
This reverts commit eca0ca3
* Version 9.1.0
* chore(*): update release infrastructure
* Version 9.1.1 (#2257)
---------
Co-authored-by: rosariopf <rosariopf@google.com>
Co-authored-by: Guillaume Bernos <guillaume@bernos.dev>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Lyokone@thatfiredev@luokailiang@tosuccesspractice@SeanBlahovici@vegeta2102@sun-with@ArcherEmiya05@marinacoelho
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add support for API 35 EdgeToEdge - #2187

Merged
thatfiredev merged 16 commits into
version-9.1.0-devfrom
feat/edge-to-edge
Oct 22, 2025
Merged

feat: add support for API 35 EdgeToEdge#2187
thatfiredev merged 16 commits into
version-9.1.0-devfrom
feat/edge-to-edge

Conversation

@Lyokone

Copy link
Copy Markdown
Contributor

Hey there! So you want to contribute to FirebaseUI? Before you file this pull request, follow these steps:

  • Read the contribution guidelines.
  • Run ./gradlew check to ensure the Travis build passes.
  • If this has been discussed in an issue, make sure to mention the issue number here. If not, go file an issue about this to make sure this is a desirable change.
  • If this is a new feature please co-ordinate with someone on FirebaseUI-iOS to make sure that we can implement this on both platforms and maintain feature parity.

Lyokoneand others added 9 commits February 14, 2025 13:24
update versions
update version
fix
more tests
fixes
sdk bump
fix gradle
save the response
Sign In working
chore: upgrade Gradle, AGP and Kotlin
chore: move namespace to build.gradle
chore: upgrade Lint API
add new lines at EOF for checkstyle
ci: temporarily stop building proguard-test
test: update robolectric and use Looper
ignore test
clean
update
ci
remove comments
Bad code
fix?
unused imports
more
more
fix
fixes
fix
more fixes
)
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* fix
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* fix
* remove references
Comment threadauth/src/main/res/values-v35/styles.xml Outdated
@thatfiredev
thatfiredev changed the base branch from version-9.0.0-dev to version-9.1.0-devMarch 19, 2025 17:02
Comment threadbuildSrc/src/main/kotlin/Config.kt Outdated
Comment on lines +1 to +8
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="ResourceName">

<!-- Override the base FirebaseUI theme for edge-to-edge support -->
<style name="FirebaseUI" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
</style>

</resources> No newline at end of file

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that we're not overriding anything we don't need this file anymore.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ping on this

super.onCreate(savedInstanceState);

// Enable edge-to-edge for all activities
WindowCompat.setDecorFitsSystemWindows(getWindow(), false);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that this is just calling a single method, I'd prefer that we call this method in every other Activity rather than creating this new BaseActivity that is extended by all of them.

When we migrate the sample app to Kotlin, let's try to get rid of all of these "Base..." classes.

@thatfiredev

Copy link
Copy Markdown
Member

We need some padding on the screen that is shown when the user is signed in:

5785016379152386475

@Lyokone

Copy link
Copy Markdown
ContributorAuthor

Added more padding @thatfiredev

@luokailiang

Copy link
Copy Markdown

When will this feature be released?

1 similar comment
@tosuccesspractice

Copy link
Copy Markdown

When will this feature be released?

@SeanBlahovici

Copy link
Copy Markdown

With API 36 released, we cannot upgrade without this fix, the workaround no longer works. Please release this as soon as possible!

@vegeta2102

Copy link
Copy Markdown

When will edgeToEdge support be released ?

@sun-with

Copy link
Copy Markdown

When will this feature be released? 💦

@thatfiredev
thatfiredev merged commit cd299f7 into version-9.1.0-devOct 22, 2025
5 checks passed
@ArcherEmiya05

ArcherEmiya05 commented Oct 25, 2025

Copy link
Copy Markdown

This fix is incomplete or incorrect at all, it doesn't provide backward compatibility and doesn't follow the documentation for handling edge-to-edge. Additionally use padding instead of margin for better result.

Not working on older Android version (versions prior to 15)
Screenshot_1761380346

Statusbar content has no contrast thus battery percentage and other icons are no longer visible.
image

demolaf added a commit that referenced this pull request Nov 26, 2025
* Begin development on 9.1.0
* chore: use minSdk=23 for auth, and minSdk=21 for other modules (#2196)
* fix(auth): remove enableHints parsing from FlowParameters (#2199)
* feat: add support for API 35 EdgeToEdge (#2187)
* Revert "chore: use minSdk=23 for auth, and minSdk=21 for other modules (#2196)"
This reverts commit eca0ca3
* Version 9.1.0
* chore(*): update release infrastructure
* Version 9.1.1 (#2257)
---------
Co-authored-by: rosariopf <rosariopf@google.com>
Co-authored-by: Guillaume Bernos <guillaume@bernos.dev>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Lyokone@thatfiredev@luokailiang@tosuccesspractice@SeanBlahovici@vegeta2102@sun-with@ArcherEmiya05@marinacoelho
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat: add support for API 35 EdgeToEdge - #2187

Merged
thatfiredev merged 16 commits into
version-9.1.0-devfrom
feat/edge-to-edge
Oct 22, 2025
Merged

feat: add support for API 35 EdgeToEdge#2187
thatfiredev merged 16 commits into
version-9.1.0-devfrom
feat/edge-to-edge

Conversation

@Lyokone

Copy link
Copy Markdown
Contributor

Hey there! So you want to contribute to FirebaseUI? Before you file this pull request, follow these steps:

  • Read the contribution guidelines.
  • Run ./gradlew check to ensure the Travis build passes.
  • If this has been discussed in an issue, make sure to mention the issue number here. If not, go file an issue about this to make sure this is a desirable change.
  • If this is a new feature please co-ordinate with someone on FirebaseUI-iOS to make sure that we can implement this on both platforms and maintain feature parity.

Lyokoneand others added 9 commits February 14, 2025 13:24
update versions
update version
fix
more tests
fixes
sdk bump
fix gradle
save the response
Sign In working
chore: upgrade Gradle, AGP and Kotlin
chore: move namespace to build.gradle
chore: upgrade Lint API
add new lines at EOF for checkstyle
ci: temporarily stop building proguard-test
test: update robolectric and use Looper
ignore test
clean
update
ci
remove comments
Bad code
fix?
unused imports
more
more
fix
fixes
fix
more fixes
)
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* fix
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* fix
* remove references
Comment threadauth/src/main/res/values-v35/styles.xml Outdated
@thatfiredev
thatfiredev changed the base branch from version-9.0.0-dev to version-9.1.0-devMarch 19, 2025 17:02
Comment threadbuildSrc/src/main/kotlin/Config.kt Outdated
Comment on lines +1 to +8
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="ResourceName">

<!-- Override the base FirebaseUI theme for edge-to-edge support -->
<style name="FirebaseUI" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
</style>

</resources> No newline at end of file

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that we're not overriding anything we don't need this file anymore.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ping on this

super.onCreate(savedInstanceState);

// Enable edge-to-edge for all activities
WindowCompat.setDecorFitsSystemWindows(getWindow(), false);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that this is just calling a single method, I'd prefer that we call this method in every other Activity rather than creating this new BaseActivity that is extended by all of them.

When we migrate the sample app to Kotlin, let's try to get rid of all of these "Base..." classes.

@thatfiredev

Copy link
Copy Markdown
Member

We need some padding on the screen that is shown when the user is signed in:

5785016379152386475

@Lyokone

Copy link
Copy Markdown
ContributorAuthor

Added more padding @thatfiredev

@luokailiang

Copy link
Copy Markdown

When will this feature be released?

1 similar comment
@tosuccesspractice

Copy link
Copy Markdown

When will this feature be released?

@SeanBlahovici

Copy link
Copy Markdown

With API 36 released, we cannot upgrade without this fix, the workaround no longer works. Please release this as soon as possible!

@vegeta2102

Copy link
Copy Markdown

When will edgeToEdge support be released ?

@sun-with

Copy link
Copy Markdown

When will this feature be released? 💦

@thatfiredev
thatfiredev merged commit cd299f7 into version-9.1.0-devOct 22, 2025
5 checks passed
@ArcherEmiya05

ArcherEmiya05 commented Oct 25, 2025

Copy link
Copy Markdown

This fix is incomplete or incorrect at all, it doesn't provide backward compatibility and doesn't follow the documentation for handling edge-to-edge. Additionally use padding instead of margin for better result.

Not working on older Android version (versions prior to 15)
Screenshot_1761380346

Statusbar content has no contrast thus battery percentage and other icons are no longer visible.
image

demolaf added a commit that referenced this pull request Nov 26, 2025
* Begin development on 9.1.0
* chore: use minSdk=23 for auth, and minSdk=21 for other modules (#2196)
* fix(auth): remove enableHints parsing from FlowParameters (#2199)
* feat: add support for API 35 EdgeToEdge (#2187)
* Revert "chore: use minSdk=23 for auth, and minSdk=21 for other modules (#2196)"
This reverts commit eca0ca3
* Version 9.1.0
* chore(*): update release infrastructure
* Version 9.1.1 (#2257)
---------
Co-authored-by: rosariopf <rosariopf@google.com>
Co-authored-by: Guillaume Bernos <guillaume@bernos.dev>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Lyokone@thatfiredev@luokailiang@tosuccesspractice@SeanBlahovici@vegeta2102@sun-with@ArcherEmiya05@marinacoelho
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add support for API 35 EdgeToEdge - #2187

Merged
thatfiredev merged 16 commits into
version-9.1.0-devfrom
feat/edge-to-edge
Oct 22, 2025
Merged

feat: add support for API 35 EdgeToEdge#2187
thatfiredev merged 16 commits into
version-9.1.0-devfrom
feat/edge-to-edge

Conversation

@Lyokone

Copy link
Copy Markdown
Contributor

Hey there! So you want to contribute to FirebaseUI? Before you file this pull request, follow these steps:

  • Read the contribution guidelines.
  • Run ./gradlew check to ensure the Travis build passes.
  • If this has been discussed in an issue, make sure to mention the issue number here. If not, go file an issue about this to make sure this is a desirable change.
  • If this is a new feature please co-ordinate with someone on FirebaseUI-iOS to make sure that we can implement this on both platforms and maintain feature parity.

Lyokoneand others added 9 commits February 14, 2025 13:24
update versions
update version
fix
more tests
fixes
sdk bump
fix gradle
save the response
Sign In working
chore: upgrade Gradle, AGP and Kotlin
chore: move namespace to build.gradle
chore: upgrade Lint API
add new lines at EOF for checkstyle
ci: temporarily stop building proguard-test
test: update robolectric and use Looper
ignore test
clean
update
ci
remove comments
Bad code
fix?
unused imports
more
more
fix
fixes
fix
more fixes
)
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* fix
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* fix
* remove references
Comment threadauth/src/main/res/values-v35/styles.xml Outdated
@thatfiredev
thatfiredev changed the base branch from version-9.0.0-dev to version-9.1.0-devMarch 19, 2025 17:02
Comment threadbuildSrc/src/main/kotlin/Config.kt Outdated
Comment on lines +1 to +8
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="ResourceName">

<!-- Override the base FirebaseUI theme for edge-to-edge support -->
<style name="FirebaseUI" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
</style>

</resources> No newline at end of file

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that we're not overriding anything we don't need this file anymore.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ping on this

super.onCreate(savedInstanceState);

// Enable edge-to-edge for all activities
WindowCompat.setDecorFitsSystemWindows(getWindow(), false);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that this is just calling a single method, I'd prefer that we call this method in every other Activity rather than creating this new BaseActivity that is extended by all of them.

When we migrate the sample app to Kotlin, let's try to get rid of all of these "Base..." classes.

@thatfiredev

Copy link
Copy Markdown
Member

We need some padding on the screen that is shown when the user is signed in:

5785016379152386475

@Lyokone

Copy link
Copy Markdown
ContributorAuthor

Added more padding @thatfiredev

@luokailiang

Copy link
Copy Markdown

When will this feature be released?

1 similar comment
@tosuccesspractice

Copy link
Copy Markdown

When will this feature be released?

@SeanBlahovici

Copy link
Copy Markdown

With API 36 released, we cannot upgrade without this fix, the workaround no longer works. Please release this as soon as possible!

@vegeta2102

Copy link
Copy Markdown

When will edgeToEdge support be released ?

@sun-with

Copy link
Copy Markdown

When will this feature be released? 💦

@thatfiredev
thatfiredev merged commit cd299f7 into version-9.1.0-devOct 22, 2025
5 checks passed
@ArcherEmiya05

ArcherEmiya05 commented Oct 25, 2025

Copy link
Copy Markdown

This fix is incomplete or incorrect at all, it doesn't provide backward compatibility and doesn't follow the documentation for handling edge-to-edge. Additionally use padding instead of margin for better result.

Not working on older Android version (versions prior to 15)
Screenshot_1761380346

Statusbar content has no contrast thus battery percentage and other icons are no longer visible.
image

demolaf added a commit that referenced this pull request Nov 26, 2025
* Begin development on 9.1.0
* chore: use minSdk=23 for auth, and minSdk=21 for other modules (#2196)
* fix(auth): remove enableHints parsing from FlowParameters (#2199)
* feat: add support for API 35 EdgeToEdge (#2187)
* Revert "chore: use minSdk=23 for auth, and minSdk=21 for other modules (#2196)"
This reverts commit eca0ca3
* Version 9.1.0
* chore(*): update release infrastructure
* Version 9.1.1 (#2257)
---------
Co-authored-by: rosariopf <rosariopf@google.com>
Co-authored-by: Guillaume Bernos <guillaume@bernos.dev>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Lyokone@thatfiredev@luokailiang@tosuccesspractice@SeanBlahovici@vegeta2102@sun-with@ArcherEmiya05@marinacoelho
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add support for API 35 EdgeToEdge - #2187

Merged
thatfiredev merged 16 commits into
version-9.1.0-devfrom
feat/edge-to-edge
Oct 22, 2025
Merged

feat: add support for API 35 EdgeToEdge#2187
thatfiredev merged 16 commits into
version-9.1.0-devfrom
feat/edge-to-edge

Conversation

@Lyokone

Copy link
Copy Markdown
Contributor

Hey there! So you want to contribute to FirebaseUI? Before you file this pull request, follow these steps:

  • Read the contribution guidelines.
  • Run ./gradlew check to ensure the Travis build passes.
  • If this has been discussed in an issue, make sure to mention the issue number here. If not, go file an issue about this to make sure this is a desirable change.
  • If this is a new feature please co-ordinate with someone on FirebaseUI-iOS to make sure that we can implement this on both platforms and maintain feature parity.

Lyokoneand others added 9 commits February 14, 2025 13:24
update versions
update version
fix
more tests
fixes
sdk bump
fix gradle
save the response
Sign In working
chore: upgrade Gradle, AGP and Kotlin
chore: move namespace to build.gradle
chore: upgrade Lint API
add new lines at EOF for checkstyle
ci: temporarily stop building proguard-test
test: update robolectric and use Looper
ignore test
clean
update
ci
remove comments
Bad code
fix?
unused imports
more
more
fix
fixes
fix
more fixes
)
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* fix
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* fix
* remove references
Comment threadauth/src/main/res/values-v35/styles.xml Outdated
@thatfiredev
thatfiredev changed the base branch from version-9.0.0-dev to version-9.1.0-devMarch 19, 2025 17:02
Comment threadbuildSrc/src/main/kotlin/Config.kt Outdated
Comment on lines +1 to +8
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="ResourceName">

<!-- Override the base FirebaseUI theme for edge-to-edge support -->
<style name="FirebaseUI" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
</style>

</resources> No newline at end of file

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that we're not overriding anything we don't need this file anymore.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ping on this

super.onCreate(savedInstanceState);

// Enable edge-to-edge for all activities
WindowCompat.setDecorFitsSystemWindows(getWindow(), false);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that this is just calling a single method, I'd prefer that we call this method in every other Activity rather than creating this new BaseActivity that is extended by all of them.

When we migrate the sample app to Kotlin, let's try to get rid of all of these "Base..." classes.

@thatfiredev

Copy link
Copy Markdown
Member

We need some padding on the screen that is shown when the user is signed in:

5785016379152386475

@Lyokone

Copy link
Copy Markdown
ContributorAuthor

Added more padding @thatfiredev

@luokailiang

Copy link
Copy Markdown

When will this feature be released?

1 similar comment
@tosuccesspractice

Copy link
Copy Markdown

When will this feature be released?

@SeanBlahovici

Copy link
Copy Markdown

With API 36 released, we cannot upgrade without this fix, the workaround no longer works. Please release this as soon as possible!

@vegeta2102

Copy link
Copy Markdown

When will edgeToEdge support be released ?

@sun-with

Copy link
Copy Markdown

When will this feature be released? 💦

@thatfiredev
thatfiredev merged commit cd299f7 into version-9.1.0-devOct 22, 2025
5 checks passed
@ArcherEmiya05

ArcherEmiya05 commented Oct 25, 2025

Copy link
Copy Markdown

This fix is incomplete or incorrect at all, it doesn't provide backward compatibility and doesn't follow the documentation for handling edge-to-edge. Additionally use padding instead of margin for better result.

Not working on older Android version (versions prior to 15)
Screenshot_1761380346

Statusbar content has no contrast thus battery percentage and other icons are no longer visible.
image

demolaf added a commit that referenced this pull request Nov 26, 2025
* Begin development on 9.1.0
* chore: use minSdk=23 for auth, and minSdk=21 for other modules (#2196)
* fix(auth): remove enableHints parsing from FlowParameters (#2199)
* feat: add support for API 35 EdgeToEdge (#2187)
* Revert "chore: use minSdk=23 for auth, and minSdk=21 for other modules (#2196)"
This reverts commit eca0ca3
* Version 9.1.0
* chore(*): update release infrastructure
* Version 9.1.1 (#2257)
---------
Co-authored-by: rosariopf <rosariopf@google.com>
Co-authored-by: Guillaume Bernos <guillaume@bernos.dev>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Lyokone@thatfiredev@luokailiang@tosuccesspractice@SeanBlahovici@vegeta2102@sun-with@ArcherEmiya05@marinacoelho
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat: add support for API 35 EdgeToEdge - #2187

Merged
thatfiredev merged 16 commits into
version-9.1.0-devfrom
feat/edge-to-edge
Oct 22, 2025
Merged

feat: add support for API 35 EdgeToEdge#2187
thatfiredev merged 16 commits into
version-9.1.0-devfrom
feat/edge-to-edge

Conversation

@Lyokone

Copy link
Copy Markdown
Contributor

Hey there! So you want to contribute to FirebaseUI? Before you file this pull request, follow these steps:

  • Read the contribution guidelines.
  • Run ./gradlew check to ensure the Travis build passes.
  • If this has been discussed in an issue, make sure to mention the issue number here. If not, go file an issue about this to make sure this is a desirable change.
  • If this is a new feature please co-ordinate with someone on FirebaseUI-iOS to make sure that we can implement this on both platforms and maintain feature parity.

Lyokoneand others added 9 commits February 14, 2025 13:24
update versions
update version
fix
more tests
fixes
sdk bump
fix gradle
save the response
Sign In working
chore: upgrade Gradle, AGP and Kotlin
chore: move namespace to build.gradle
chore: upgrade Lint API
add new lines at EOF for checkstyle
ci: temporarily stop building proguard-test
test: update robolectric and use Looper
ignore test
clean
update
ci
remove comments
Bad code
fix?
unused imports
more
more
fix
fixes
fix
more fixes
)
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* fix
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* feat: rename setIsSmartLockEnabled to setCredentialManagerEnabled
* fix
* remove references
Comment threadauth/src/main/res/values-v35/styles.xml Outdated
@thatfiredev
thatfiredev changed the base branch from version-9.0.0-dev to version-9.1.0-devMarch 19, 2025 17:02
Comment threadbuildSrc/src/main/kotlin/Config.kt Outdated
Comment on lines +1 to +8
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="ResourceName">

<!-- Override the base FirebaseUI theme for edge-to-edge support -->
<style name="FirebaseUI" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
</style>

</resources> No newline at end of file

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that we're not overriding anything we don't need this file anymore.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ping on this

super.onCreate(savedInstanceState);

// Enable edge-to-edge for all activities
WindowCompat.setDecorFitsSystemWindows(getWindow(), false);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that this is just calling a single method, I'd prefer that we call this method in every other Activity rather than creating this new BaseActivity that is extended by all of them.

When we migrate the sample app to Kotlin, let's try to get rid of all of these "Base..." classes.

@thatfiredev

Copy link
Copy Markdown
Member

We need some padding on the screen that is shown when the user is signed in:

5785016379152386475

@Lyokone

Copy link
Copy Markdown
ContributorAuthor

Added more padding @thatfiredev

@luokailiang

Copy link
Copy Markdown

When will this feature be released?

1 similar comment
@tosuccesspractice

Copy link
Copy Markdown

When will this feature be released?

@SeanBlahovici

Copy link
Copy Markdown

With API 36 released, we cannot upgrade without this fix, the workaround no longer works. Please release this as soon as possible!

@vegeta2102

Copy link
Copy Markdown

When will edgeToEdge support be released ?

@sun-with

Copy link
Copy Markdown

When will this feature be released? 💦

@thatfiredev
thatfiredev merged commit cd299f7 into version-9.1.0-devOct 22, 2025
5 checks passed
@ArcherEmiya05

ArcherEmiya05 commented Oct 25, 2025

Copy link
Copy Markdown

This fix is incomplete or incorrect at all, it doesn't provide backward compatibility and doesn't follow the documentation for handling edge-to-edge. Additionally use padding instead of margin for better result.

Not working on older Android version (versions prior to 15)
Screenshot_1761380346

Statusbar content has no contrast thus battery percentage and other icons are no longer visible.
image

demolaf added a commit that referenced this pull request Nov 26, 2025
* Begin development on 9.1.0
* chore: use minSdk=23 for auth, and minSdk=21 for other modules (#2196)
* fix(auth): remove enableHints parsing from FlowParameters (#2199)
* feat: add support for API 35 EdgeToEdge (#2187)
* Revert "chore: use minSdk=23 for auth, and minSdk=21 for other modules (#2196)"
This reverts commit eca0ca3
* Version 9.1.0
* chore(*): update release infrastructure
* Version 9.1.1 (#2257)
---------
Co-authored-by: rosariopf <rosariopf@google.com>
Co-authored-by: Guillaume Bernos <guillaume@bernos.dev>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Lyokone@thatfiredev@luokailiang@tosuccesspractice@SeanBlahovici@vegeta2102@sun-with@ArcherEmiya05@marinacoelho