From 49bc78a34914a61c9c377ec82def83dc868e1030 Mon Sep 17 00:00:00 2001 From: Volodymyr Popadiuk Date: Wed, 3 Jan 2024 20:33:44 +0200 Subject: [PATCH] fix issue with opening auth fragment when AcquireTokenParameters.Builder.withFragment method is used --- changelog.txt | 1 + .../oauth2/AndroidAuthorizationStrategy.java | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 119a66da9f..a491ba7b4d 100644 --- a/changelog.txt +++ b/changelog.txt @@ -3,6 +3,7 @@ vNext - [PATCH] Translate MFA token error to UIRequiredException instead of ServiceException (#2538) - [MINOR] Add Child Spans for Interactive Span (#2516) - [MINOR] For MSAL CPP flows, match exact claims when deleting AT with intersecting scopes (#2548) +- [MINOR] Fix issue with fragment displaying when 'AcquireTokenParameters.Builder().withFragment()' is used (#2274) Version 18.2.2 ---------- diff --git a/common/src/main/java/com/microsoft/identity/common/internal/providers/oauth2/AndroidAuthorizationStrategy.java b/common/src/main/java/com/microsoft/identity/common/internal/providers/oauth2/AndroidAuthorizationStrategy.java index 5a246540a5..00c330fa47 100644 --- a/common/src/main/java/com/microsoft/identity/common/internal/providers/oauth2/AndroidAuthorizationStrategy.java +++ b/common/src/main/java/com/microsoft/identity/common/internal/providers/oauth2/AndroidAuthorizationStrategy.java @@ -78,7 +78,7 @@ protected void launchIntent(@NonNull Intent intent) throws ClientException { final Fragment fragment = mReferencedFragment.get(); if (fragment != null) { - final Fragment authFragment = AuthorizationActivityFactory.getAuthorizationFragmentFromStartIntent(intent); + final Fragment authFragment = getAuthorizationFragment(intent); final FragmentManager fragmentManager = fragment.getFragmentManager(); if (fragmentManager == null) { @@ -98,4 +98,15 @@ protected void launchIntent(@NonNull Intent intent) throws ClientException { } activity.startActivity(intent); } + + private static Fragment getAuthorizationFragment(@NonNull Intent intent) { + if (intent.getExtras() != null) { + return AuthorizationActivityFactory.getAuthorizationFragmentFromStartIntentWithState( + intent, + intent.getExtras() + ); + } + + return AuthorizationActivityFactory.getAuthorizationFragmentFromStartIntent(intent); + } }