Skip to content

Commit

Permalink
Fix long running network requests causing a crash.
Browse files Browse the repository at this point in the history
Fixes #315
  • Loading branch information
JayNewstrom committed May 11, 2022
1 parent 56a3b2b commit 35b6626
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 5 deletions.
8 changes: 3 additions & 5 deletions library/src/main/java/com/okta/oidc/OktaResultFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,9 @@ public static void addLogoutFragment(WebRequest request,
fragment.logoutIntent = createAuthIntent(activity, request.toUri(), customTabOptions,
browsers);
FragmentManager fragmentManager = activity.getSupportFragmentManager();
if (!fragmentManager.isDestroyed()) {
fragmentManager.beginTransaction()
.add(fragment, AUTHENTICATION_REQUEST)
.commit();
}
fragmentManager.beginTransaction()
.add(fragment, AUTHENTICATION_REQUEST)
.commit();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import androidx.annotation.VisibleForTesting;
import androidx.annotation.WorkerThread;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.Lifecycle;

import com.okta.oidc.AuthenticationPayload;
import com.okta.oidc.AuthenticationResultHandler;
Expand Down Expand Up @@ -184,6 +185,11 @@ private StateResult startSignIn(Activity activity, WebRequest request)
CountDownLatch latch = new CountDownLatch(1);

if (activity instanceof FragmentActivity) {
if (!((FragmentActivity) activity).getLifecycle().getCurrentState()
.isAtLeast(Lifecycle.State.RESUMED)) {
resetCurrentState();
return StateResult.canceled();
}
activity.runOnUiThread(() -> addLoginFragment(
request,
mCustomTabOptions,
Expand Down Expand Up @@ -318,6 +324,11 @@ private StateResult startSignOut(Activity activity, WebRequest request)
CountDownLatch latch = new CountDownLatch(1);
AtomicReference<StateResult> resultWrapper = new AtomicReference<>();
if (activity instanceof FragmentActivity) {
if (!((FragmentActivity) activity).getLifecycle().getCurrentState()
.isAtLeast(Lifecycle.State.RESUMED)) {
resetCurrentState();
return StateResult.canceled();
}
activity.runOnUiThread(() -> addLogoutFragment(
request,
mCustomTabOptions,
Expand Down

0 comments on commit 35b6626

Please sign in to comment.