Remove Microsoft Duo dual-screen support#2873
Open
joshfriend wants to merge 1 commit intoAzureAD:devfrom
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR removes Microsoft Duo dual-screen support by eliminating the DualScreenActivity base class and its associated layout, replacing them with a simpler FragmentActivity-based implementation. This change is motivated by the discontinuation of the Microsoft Duo device and aims to simplify the codebase by removing unnecessary dependencies.
Changes:
- Removed
DualScreenActivity.javaand its dual-screen layout handling logic including hinge detection, screen spanning, and dynamic constraint-based layouts - Removed
dual_screen_layout.xmland replaced with simplercommon_activity_content.xmlcontaining a singleFrameLayout - Updated
AuthorizationActivityandCurrentTaskAuthorizationActivityto extendFragmentActivitydirectly and use standard fragment transactions - Removed
com.microsoft.device.display:display-maskdependency from build.gradle
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| common/src/main/res/layout/dual_screen_layout.xml | Removed complex dual-screen constraint layout with guidelines for hinge positioning |
| common/src/main/res/layout/common_activity_content.xml | Added simple replacement layout with single FrameLayout container |
| common/src/main/java/com/microsoft/identity/common/internal/ui/DualScreenActivity.java | Removed entire class including dual-screen detection, hinge calculations, and edge-to-edge handling |
| common/src/main/java/com/microsoft/identity/common/internal/providers/oauth2/CurrentTaskAuthorizationActivity.java | Changed from extending DualScreenActivity to FragmentActivity, replaced setFragment() call with direct fragment transaction |
| common/src/main/java/com/microsoft/identity/common/internal/providers/oauth2/AuthorizationActivity.java | Changed from extending DualScreenActivity to FragmentActivity, replaced setFragment() call with direct fragment transaction |
| common/build.gradle | Removed display-mask dependency |
FalconeGiuseppe
approved these changes
Feb 11, 2026
FalconeGiuseppe
left a comment
There was a problem hiding this comment.
LGTM, DualScreenActivity is not more used since Surface Duo line was cancelled
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a longstanding issue people experience when trying to integrate the library for the first time: AzureAD/microsoft-authentication-library-for-android#1027
It seems VERY reasonable to me that the display-mask dependency is removed from this library because the phone it supported was cancelled years ago after selling functionally zero units.
Once this is merged and released, the main MSAL library can have all the weird custom proguard rules, ai instructions, and help doc pertaining to this library removed once and for all.