From aad570487367903f16ccd971f02d1c8ba5a9e934 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sun, 29 Apr 2018 23:30:37 +0200 Subject: properly catch and ignore IllegalStateException instead of using commitAllowStateLoss --- .../de/pixart/messenger/ui/ConversationsActivity.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/main/java/de/pixart/messenger') diff --git a/src/main/java/de/pixart/messenger/ui/ConversationsActivity.java b/src/main/java/de/pixart/messenger/ui/ConversationsActivity.java index 06ab8ec89..d7f4bd88e 100644 --- a/src/main/java/de/pixart/messenger/ui/ConversationsActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ConversationsActivity.java @@ -494,7 +494,13 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); fragmentTransaction.replace(R.id.main_fragment, conversationFragment); fragmentTransaction.addToBackStack(null); - fragmentTransaction.commitAllowingStateLoss(); //allowing state loss is probably fine since view intents at all are already stored and a click can probably be 'ignored' + try { + fragmentTransaction.commit(); + } catch (IllegalStateException e) { + Log.w(Config.LOGTAG, "sate loss while opening conversation", e); + //allowing state loss is probably fine since view intents et all are already stored and a click can probably be 'ignored' + return; + } } } else { mainNeedsRefresh = true; @@ -829,7 +835,12 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio } Fragment mainFragment = getFragmentManager().findFragmentById(R.id.main_fragment); if (mainFragment != null && mainFragment instanceof ConversationFragment) { - getFragmentManager().popBackStack(); + try { + getFragmentManager().popBackStack(); + } catch (IllegalStateException e) { + Log.w(Config.LOGTAG, "state loss while popping back state after archiving conversation", e); + //this usually means activity is no longer active; meaning on the next open we will run through this again + } return; } Fragment secondaryFragment = getFragmentManager().findFragmentById(R.id.secondary_fragment); -- cgit v1.2.3