Skip to content

Commit

Permalink
Merge pull request #316 from okta/jn-fix-long-running-crash
Browse files Browse the repository at this point in the history
Fix long running network requests causing a crash.
  • Loading branch information
JayNewstrom authored May 11, 2022
2 parents 56a3b2b + dad6e6a commit 65a9123
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 7 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
# 1.2.5

### Bug Fix
- [#316](https://github.com/okta/okta-oidc-android/pull/316) Fix a crash during login/logout.

# 1.2.4

### Bug Fix
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ It is recommended that your app extends [FragmentActivity][fragment-activity] or
Add the `Okta OIDC` dependency to your `build.gradle` file:

```gradle
implementation 'com.okta.android:okta-oidc-android:1.2.4'
implementation 'com.okta.android:okta-oidc-android:1.2.5'
```

The SDK requires Java 8 support.
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ subprojects {

ext {
versionNum = 19
versionName = "1.2.4"
versionName = "1.2.5"
versionDate = new Date()
minSdkVersion = 21
compileSdkVersion = 30
Expand Down
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 65a9123

Please sign in to comment.