Crash in Authorization screen
When Authorization screen opens, Presenter loads from server oauthUrl (i think is is the layout of our screen). WebView loads the several pages as the whole content. So showProgressDialog(progress) is called several times. But user can move the app into the background, during loading the content.
ProgressDialog is the DialogFragment and the fragment transaction can't be executed after onSaveInstanceState. So when the dialog tries to be dismissed in background, the app crashes.
Branch - Develop.
See the crash log:
Process: ru.terrakok.gitlabclient, PID: 20245 java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1884) at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1902) at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:650) at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:609) at android.support.v4.app.DialogFragment.dismissInternal(DialogFragment.java:205) at android.support.v4.app.DialogFragment.dismiss(DialogFragment.java:171) at ru.terrakok.gitlabclient.ui.global.BaseFragment.showProgressDialog(BaseFragment.kt:25) at ru.terrakok.gitlabclient.ui.auth.AuthFragment.accessshowProgressDialog(AuthFragment.kt:24) at ru.terrakok.gitlabclient.ui.auth.AuthFragmentonActivityCreated2.onPageFinished(AuthFragment.kt:55) at com.android.webview.chromium.WebViewContentsClientAdapter.onPageFinished(WebViewContentsClientAdapter.java:196) at org.chromium.android_webview.AwContentsClientCallbackHelperMyHandler.handleMessage(AwContentsClientCallbackHelper.java:65) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6776) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
I found another crash during loading layout for the screen. Rotate the app during loading layout.
See the crash log:
Process: ru.terrakok.gitlabclient, PID: 23277 java.lang.IllegalStateException: Fragment has not been attached yet. at android.support.v4.app.Fragment.instantiateChildFragmentManager(Fragment.java:2210) at android.support.v4.app.Fragment.getChildFragmentManager(Fragment.java:708) at ru.terrakok.gitlabclient.ui.global.BaseFragment.showProgressDialog(BaseFragment.kt:23) at ru.terrakok.gitlabclient.ui.auth.AuthFragment.accessshowProgressDialog(AuthFragment.kt:24) at ru.terrakok.gitlabclient.ui.auth.AuthFragmentonActivityCreated2.onPageStarted(AuthFragment.kt:49) at com.android.webview.chromium.WebViewContentsClientAdapter.onPageStarted(WebViewContentsClientAdapter.java:187) at org.chromium.android_webview.AwContentsClientCallbackHelperMyHandler.handleMessage(AwContentsClientCallbackHelper.java:20) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6776) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)