diff options
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/ConversationActivity.java | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ConversationActivity.java b/src/main/java/de/pixart/messenger/ui/ConversationActivity.java index c1aa6caaa..a6c135437 100644 --- a/src/main/java/de/pixart/messenger/ui/ConversationActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ConversationActivity.java @@ -209,6 +209,15 @@ public class ConversationActivity extends XmppActivity implements OnConversation } @Override + protected void onStart() { + final int theme = findTheme(); + if (this.mTheme != theme) { + recreate(); + } + super.onStart(); + } + + @Override protected void onNewIntent(final Intent intent) { if (isViewIntent(intent)) { if (xmppConnectionService != null) { @@ -228,10 +237,6 @@ public class ConversationActivity extends XmppActivity implements OnConversation @Override public void onResume() { super.onResume(); - final int theme = findTheme(); - if (this.mTheme != theme) { - recreate(); - } this.mActivityPaused = false; } @@ -335,7 +340,22 @@ public class ConversationActivity extends XmppActivity implements OnConversation @Override public void onConversationArchived(Conversation conversation) { - + //TODO; check if nothing more left; + Fragment mainFragment = getFragmentManager().findFragmentById(R.id.main_fragment); + if (mainFragment != null && mainFragment instanceof ConversationFragment) { + getFragmentManager().popBackStack(); + return; + } + Fragment secondaryFragment = getFragmentManager().findFragmentById(R.id.secondary_fragment); + if (secondaryFragment != null && secondaryFragment instanceof ConversationFragment) { + if (((ConversationFragment) secondaryFragment).getConversation() == conversation) { + Conversation suggestion = ConversationsOverviewFragment.getSuggestion(this, conversation); + if (suggestion != null) { + openConversation(suggestion, null); + return; + } + } + } } @Override |