diff options
Diffstat (limited to 'src/main/java/eu/siacs/conversations/ui')
-rw-r--r-- | src/main/java/eu/siacs/conversations/ui/ConversationActivity.java | 74 |
1 files changed, 40 insertions, 34 deletions
diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java index 74fe8432..0277f155 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java @@ -180,7 +180,6 @@ public class ConversationActivity extends XmppActivity implements hideConversationsOverview(); } }); - //registerForContextMenu(listView); mContentView = findViewById(R.id.content_view_spl); if (mContentView == null) { mContentView = findViewById(R.id.content_view_ll); @@ -195,12 +194,7 @@ public class ConversationActivity extends XmppActivity implements @Override public void onPanelOpened(View arg0) { - ActionBar ab = getActionBar(); - if (ab != null) { - ab.setDisplayHomeAsUpEnabled(false); - ab.setHomeButtonEnabled(false); - ab.setTitle(R.string.app_name); - } + updateActionBarTitle(); invalidateOptionsMenu(); hideKeyboard(); if (xmppConnectionServiceBound) { @@ -236,20 +230,32 @@ public class ConversationActivity extends XmppActivity implements }); } - public void openConversation() { + private void updateActionBarTitle() { + updateActionBarTitle(isConversationsOverviewHideable() && !isConversationsOverviewVisable()); + } + + private void updateActionBarTitle(boolean titleShouldBeName) { ActionBar ab = getActionBar(); if (ab != null) { - ab.setDisplayHomeAsUpEnabled(true); - ab.setHomeButtonEnabled(true); - if (getSelectedConversation().getMode() == Conversation.MODE_SINGLE - || ConversationActivity.this - .useSubjectToIdentifyConference()) { - ab.setTitle(getSelectedConversation().getName()); + if (titleShouldBeName) { + ab.setDisplayHomeAsUpEnabled(true); + ab.setHomeButtonEnabled(true); + if (getSelectedConversation().getMode() == Conversation.MODE_SINGLE || useSubjectToIdentifyConference()) { + ab.setTitle(getSelectedConversation().getName()); + } else { + ab.setTitle(getSelectedConversation().getContactJid().toBareJid().toString()); + } } else { - ab.setTitle(getSelectedConversation().getContactJid().toBareJid().toString()); + ab.setDisplayHomeAsUpEnabled(false); + ab.setHomeButtonEnabled(false); + ab.setTitle(R.string.app_name); } } - invalidateOptionsMenu(); + } + + private void openConversation() { + this.updateActionBarTitle(); + this.invalidateOptionsMenu(); if (xmppConnectionServiceBound) { xmppConnectionService.getNotificationService().setOpenConversation(getSelectedConversation()); if (!getSelectedConversation().isRead()) { @@ -638,14 +644,12 @@ public class ConversationActivity extends XmppActivity implements } @Override - public boolean onKeyDown(final int keyCode, final KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_BACK) { - if (!isConversationsOverviewVisable()) { - showConversationsOverview(); - return false; - } + public void onBackPressed() { + if (!isConversationsOverviewVisable()) { + showConversationsOverview(); + } else { + moveTaskToBack(true); } - return super.onKeyDown(keyCode, event); } @Override @@ -740,8 +744,9 @@ public class ConversationActivity extends XmppActivity implements this.mConversationFragment.appendText(text); } hideConversationsOverview(); + openConversation(); if (mContentView instanceof SlidingPaneLayout) { - openConversation(); + updateActionBarTitle(true); //fixes bug where slp isn't properly closed yet } } @@ -929,17 +934,15 @@ public class ConversationActivity extends XmppActivity implements @Override public void onAccountUpdate() { - final ConversationFragment fragment = (ConversationFragment) getFragmentManager() - .findFragmentByTag("conversation"); - if (fragment != null) { - runOnUiThread(new Runnable() { + runOnUiThread(new Runnable() { - @Override - public void run() { - fragment.updateMessages(); - } - }); - } + @Override + public void run() { + updateConversationList(); + ConversationActivity.this.mConversationFragment.updateMessages(); + updateActionBarTitle(); + } + }); } @Override @@ -955,6 +958,7 @@ public class ConversationActivity extends XmppActivity implements finish(); } ConversationActivity.this.mConversationFragment.updateMessages(); + updateActionBarTitle(); } }); } @@ -965,7 +969,9 @@ public class ConversationActivity extends XmppActivity implements @Override public void run() { + updateConversationList(); ConversationActivity.this.mConversationFragment.updateMessages(); + updateActionBarTitle(); } }); } |