IllegalStateException when key agreement fails
- Android version: 5.1.1
- Briar version: 1.1.1 (9476782c)
- Phone model: Samsung SM-J200G (j2ltedd)
Stacktrace:
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:2053)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:2079)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:678)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:632)
at org.briarproject.briar.android.activity.BaseActivity.showNextFragment(BaseActivity.java:147)
at org.briarproject.briar.android.keyagreement.KeyAgreementActivity.showErrorFragment(KeyAgreementActivity.java:193)
at org.briarproject.briar.android.keyagreement.ContactExchangeActivity.keyAgreementFailed(ContactExchangeActivity.java:107)
at org.briarproject.briar.android.keyagreement.KeyAgreementFragment.lambda$keyAgreementFailed$2$KeyAgreementFragment(KeyAgreementFragment.java:283)
at org.briarproject.briar.android.keyagreement.KeyAgreementFragment$$Lambda$2.run(Unknown Source)
at org.briarproject.briar.android.fragment.BaseFragment.lambda$runOnUiThreadUnlessDestroyed$0$BaseFragment(BaseFragment.java:90)
at org.briarproject.briar.android.fragment.BaseFragment$$Lambda$0.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6946)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Looks like we should check the lifecycle state in BaseActivity#showNextFragment()
or KeyAgreementActivity#showErrorFragment()
.