Skip to content

Commit 65a9123

Browse files
authored
Merge pull request #316 from okta/jn-fix-long-running-crash
Fix long running network requests causing a crash.
2 parents 56a3b2b + dad6e6a commit 65a9123

5 files changed

Lines changed: 21 additions & 7 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# 1.2.5
2+
3+
### Bug Fix
4+
- [#316](https://github.com/okta/okta-oidc-android/pull/316) Fix a crash during login/logout.
5+
16
# 1.2.4
27

38
### Bug Fix

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ It is recommended that your app extends [FragmentActivity][fragment-activity] or
5959
Add the `Okta OIDC` dependency to your `build.gradle` file:
6060

6161
```gradle
62-
implementation 'com.okta.android:okta-oidc-android:1.2.4'
62+
implementation 'com.okta.android:okta-oidc-android:1.2.5'
6363
```
6464

6565
The SDK requires Java 8 support.

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ subprojects {
3535

3636
ext {
3737
versionNum = 19
38-
versionName = "1.2.4"
38+
versionName = "1.2.5"
3939
versionDate = new Date()
4040
minSdkVersion = 21
4141
compileSdkVersion = 30

library/src/main/java/com/okta/oidc/OktaResultFragment.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,9 @@ public static void addLogoutFragment(WebRequest request,
6060
fragment.logoutIntent = createAuthIntent(activity, request.toUri(), customTabOptions,
6161
browsers);
6262
FragmentManager fragmentManager = activity.getSupportFragmentManager();
63-
if (!fragmentManager.isDestroyed()) {
64-
fragmentManager.beginTransaction()
65-
.add(fragment, AUTHENTICATION_REQUEST)
66-
.commit();
67-
}
63+
fragmentManager.beginTransaction()
64+
.add(fragment, AUTHENTICATION_REQUEST)
65+
.commit();
6866
}
6967

7068
@Override

library/src/main/java/com/okta/oidc/clients/web/SyncWebAuthClientImpl.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import androidx.annotation.VisibleForTesting;
3333
import androidx.annotation.WorkerThread;
3434
import androidx.fragment.app.FragmentActivity;
35+
import androidx.lifecycle.Lifecycle;
3536

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

186187
if (activity instanceof FragmentActivity) {
188+
if (!((FragmentActivity) activity).getLifecycle().getCurrentState()
189+
.isAtLeast(Lifecycle.State.RESUMED)) {
190+
resetCurrentState();
191+
return StateResult.canceled();
192+
}
187193
activity.runOnUiThread(() -> addLoginFragment(
188194
request,
189195
mCustomTabOptions,
@@ -318,6 +324,11 @@ private StateResult startSignOut(Activity activity, WebRequest request)
318324
CountDownLatch latch = new CountDownLatch(1);
319325
AtomicReference<StateResult> resultWrapper = new AtomicReference<>();
320326
if (activity instanceof FragmentActivity) {
327+
if (!((FragmentActivity) activity).getLifecycle().getCurrentState()
328+
.isAtLeast(Lifecycle.State.RESUMED)) {
329+
resetCurrentState();
330+
return StateResult.canceled();
331+
}
321332
activity.runOnUiThread(() -> addLogoutFragment(
322333
request,
323334
mCustomTabOptions,

0 commit comments

Comments
 (0)