aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs/conversations/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/eu/siacs/conversations/ui')
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ConversationActivity.java74
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();
}
});
}